Obsah:
- Krok 1: Materiály
- Krok 2: Výběr senzoru
- Krok 3: LM35
- Krok 4: DS18B20
- Krok 5: Kód ESP8266
- Krok 6: ESP8266 Kód: LM35 Uživatel
- Krok 7: ESP8266 Kód: DS18B20 Uživatel
- Krok 8: ESP8266 Little Trick
- Krok 9: První uvedení do provozu
- Krok 10: Závěr
Video: WiFi záznamník teploty (s ESP8266): 11 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
Dobrý den, rád vás tu vidím. Doufám, že v tomto návodu najdete nějaké užitečné informace. Neváhejte mi posílat návrhy, dotazy, … Zde jsou některá základní data a rychlý přehled projektu. Pro mobilní uživatele: Video. Dejte mi vědět, co si o projektu myslíte v sekci komentáře, díky. Nedávno jsem si koupil desku NodeMcu (na bázi esp8266), abych to zkusil, takže to není opravdu pokročilý projekt. Ale funguje to a to je to, co potřebuji, takže je to v pořádku. Hlavní funkcí tohoto záznamníku dat je sbírat teplotu a ukládat ji na server. To umožňuje uživatelům kontrolovat data a grafy online, i když nejsou ve stejném umístění záznamníku (například pro meteorologickou stanici). Další užitečnou funkcí je aktualizace OTA zahrnutá v kódu, která umožňuje uživatelům snadno aktualizovat a přizpůsobit software. Analyzuji dva senzory a jejich související metody získávání, abych vytvořil rovnováhu mezi všemi klady a zápory.
Spoiler: po chvilce testování jsem zjistil, že digitální senzor jako DS18B20 je nejlepší řešení, protože nabízí stabilitu a vyšší přesnost. Je již vodotěsný a s kabelem.
Krok 1: Materiály
Jedná se o minimální projekt s pouze několika externími komponentami, proto bude seznam kusovníků opravdu krátký. Podívejme se však, jaký materiál je požadován:
- NodeMcu V3 (nebo jakýkoli kompatibilní procesor ESP8266 μ);
- RGB LED (společná anoda);
- Rezistory pro LED (1x10Ω, 1x22Ω, 1x100Ω, 1x10kΩ)
- DS18B20 (integrovaný teploměr Maxim);
- LM35 (Texas Instrument teploměr);
- Externí baterie (volitelně);
- Kabel;
- Connector (aby byl „pokročilejší“);
- Box (volitelný, opět aby byl „pokročilejší“);
- Držák LED (volitelně);
Poznámka: Jak jsem řekl, musíte si vybrat jednu ze dvou metod. Pokud zvolíte teploměr LM35, budete potřebovat několik dalších komponent:
- Attiny45/85;
- AVR programátor (nebo Arduino jako ISP);
- Rezistor (1x1kΩ, 1x2kΩ, 1x10kΩ, 1x18kΩ)
- 2,54mm páskový konektor (volitelně)
- Dioda (2x1N914)
- Perfboard nebo PCB;
Krok 2: Výběr senzoru
Výběr senzoru může být obtížný krok: dnes existuje mnoho převodníků (TI nabízí 144 různých prvků), analogových i digitálních s různým teplotním rozsahem, přesností a případem. Analogová čidla (od TI je k dispozici 46 dílů): Výhody:
- Datalogger lze snadno změnit z teploty na jinou veličinu (napětí, proud, …);
- Může být o něco levnější;
- Snadné použití, protože nevyžaduje žádnou speciální knihovnu;
Nevýhody:
- Vyžadujte ADC (který může ovlivnit přesnost měření) a další externí komponenty. Protože esp8266 má pouze jeden ADC (a není opravdu přesný), navrhoval bych použít externí.
- Vyžaduje vyhrazený kabel s potlačením šumu, protože jakékoli indukované napětí může změnit výsledek.
Po troše přemýšlení jsem se rozhodl použít LM35, lineární snímač s faktorem měřítka +10mV/° C s přesností 0,5 ° C a velmi nízkým proudem (asi 60uA) s provozním napětím od 4V do 30V. Pro více podrobností navrhuji nahlédnout do datasheetu: LM35.
Digitální senzory (vysoce doporučeno) Pros:
Jsou potřeba téměř všechny externí komponenty;
Integrovaný ADC
Nevýhody:
Požádejte knihovnu nebo software o dekódování digitálního signálu (I2C, SPI, Serial, One Wire,…);
Dražší;
Vybral jsem DS18B20, protože jsem našel sadu 5 vodotěsných senzorů na Amazonu a protože je široce dokumentován na internetu. Hlavní funkcí je 9-12bitové měření, 1vodičová sběrnice, napájecí napětí 3,0 až 5,5, přesnost 0,5 ° C. Opět pro další podrobnosti zde je datový list: DS18B20.
Krok 3: LM35
Pojďme analyzovat, jak jsem implementoval externí ADC a další funkce pro teploměr LM35. Našel jsem kabel se třemi vodiči, jeden se stíněním a dva bez. Rozhodl jsem se přidat oddělovací kondenzátor ke stabilizaci napájecího napětí v blízkosti snímače. K převodu analogové teploty na digitální jsem použil mikroprocesor Attiny85 v balíčku dip8 (více informací opět viz datový list: attiny85). Nejdůležitější věcí pro nás je 10bitový ADC (ne úplně nejlepší, ale pro mě dostatečně přesný). Pro komunikaci s Esp8266 jsem se rozhodl použít Sériovou komunikaci s ohledem na to, že esp8266 pracuje s 3,3 V a attiny85 při 5 V (protože potřebuje k napájení senzoru). Abych toho dosáhl, použil jsem jednoduchý dělič napětí (viz schéma). Abychom mohli číst zápornou teplotu, musíme přidat nějaké externí komponenty (odpor 2x1N914 a 1x18k), protože nechci používat záporné napájení. Zde je kód: úložiště TinyADC. Poznámka: ke kompilaci tohoto kódu budete muset nainstalovat Attiny to ide (vložte to do možnosti: https://drazzy.com/package_drazzy.com_index.json), pokud nevíte, jak na to, stačí hledat na Google. Nebo nahrajte přímo soubor.hex.
Krok 4: DS18B20
Koupil jsem ty senzory od Amazonu (5 stojí asi 10 €). Přišel s krytem z nerezové oceli a kabelem o délce 1 m. Tento senzor může vrátit 9 až 12 bitová data teploty. Do stejného pinu lze zapojit spoustu senzorů, protože všechny mají jedinečné ID. Pro připojení DS18B20 k esp8266 stačí postupovat podle schématu (druhá fotografie). Protože jsem se rozhodl, že můj záznamník bude mít tři sondy, musel jsem rozlišit, která je která. Tak mě napadlo dát jim barvu spojenou pomocí softwaru s jejich adresou. Použil jsem nějakou smršťovací trubičku (třetí fotka).
Krok 5: Kód ESP8266
Protože jsem v tomto světě nový, rozhodl jsem se použít spoustu knihoven. Jak bylo řečeno v úvodu, hlavní funkce jsou:
- Aktualizace OTA: nemusíte esp8266 připojovat k počítači pokaždé, když potřebujete nahrát kód (musíte to udělat pouze poprvé);
- Správce bezdrátového připojení, pokud se změní bezdrátová síť, nemusíte znovu načíst skicu. Jednoduše můžete znovu nakonfigurovat síťové parametry připojující se k přístupovému bodu esp8266;
- Přenos dat Thingspeak;
- Podporovány jsou LM35 i DS18B20;
- Jednoduché uživatelské rozhraní (LED dioda RGB ukazuje některé užitečné informace);
Omluvte mě prosím, protože můj software není nejlepší a není opravdu dobře objednaný. Před odesláním do zařízení musíte změnit některé parametry, aby kód odpovídal vašemu nastavení. Zde si můžete stáhnout software. Obecná konfigurace LM35 a DS18B20 Pro aktualizaci OTA je třeba změnit definici pinu, token, číslo kanálu, uživatele a heslo. Linka od 15 do 23.
#definujte červenou SVOU STRÁNKU #definujte zelenou SVOU STRÁNKU
#define blue YOURPINHERE const char* host = "vybrat adresu hostitele"; // opravdu není potřeba, můžete nechat esp8266-webupdate const char* update_path = "/firmware"; // změna adresy pro aktualizaci ex: 192.168.1.5/firmware const char* update_username = "YOURUSERHERE"; const char * update_password = "YOURPASSWORDHERE; unsigned long myChannelNumber = CHANNELNUMBERHERE; const char * myWriteAPIKey =" WRITEAPIHERE ";
Krok 6: ESP8266 Kód: LM35 Uživatel
K desce esp8266 musíte připojit desku Attiny, k napájení jednotky ADC použijte pin VU a G pin. Musíte si vybrat, který pin chcete použít pro sériovou komunikaci (aby byl hardwarový seriál volný pro účely ladění). Tx pin musí být vybrán, ale není ve skutečnosti používán. (Řádek 27). SoftwareSerial mySerial (RXPIN, TXPIN); Na začátek je třeba přidat: #define LM35USER
Krok 7: ESP8266 Kód: DS18B20 Uživatel
Jako první operaci musíte pro každý senzor identifikovat adresu zařízení. Zkompilujte a naprogramujte tento kód do esp a výsledky vyhledejte v seriálu. Kód naleznete zde (hledejte tento název na stránce: «Přečíst jednotlivé interní adresy DS18B20»). Chcete -li získat adresu, připojte pouze jeden senzor, výsledky by měly vypadat takto (zde náhodné číslo! Jen jako příklad): 0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12 Potom musíte změnit svůj kód v sekci " Konfigurace pro DS18B20 "(řádek 31 až 36)":
#define ONE_WIRE_BUS ONEWIREPINHERE #define TEMPERATURE_PRECISION TEMPBITPRECISION // (od 9 do 12) #define delayDallas READINTERVAL // (v milisekundách, minimum je 15s nebo 15000mS) DeviceAddress blueSensor = {0x11, 0x12}; // ZMĚNA S ADRESOU DeviceAddress redSensor = {0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12}; // ZMĚNA S ADRESOU DeviceAddress greenSensor = {0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12}; // ZMĚNA SVÉ ADRESY Na začátek je třeba přidat: #define DSUSER
Krok 8: ESP8266 Little Trick
Po trochu testování jsem zjistil, že pokud připojíte esp8266 bez programování, nespustí kód, dokud jednou nestisknete reset. Abych tento problém vyřešil, po troše výzkumu jsem zjistil, že musíte přidat pull-up odpor z 3,3 V na D3. To řekne procesoru, aby načítal kód z flash paměti. Pomocí této metody lze D3 přímo použít pro vstup dat pro senzory DS18B20.
Krok 9: První uvedení do provozu
Pokud jste kód nahráli správně, ale nikdy nepoužíváte knihovnu správce Wifi, je načase nakonfigurovat připojení Wi -Fi. Počkejte, až začne LED dioda RGB blikat rychleji než dříve, poté pomocí mobilního telefonu nebo počítače vyhledejte wifi síť s názvem „AutoConnectAp“a připojte se. Po připojení otevřete webový prohlížeč a zadejte 192.168.4.1, najdete rozhraní GUI správce wifi (viz fotografie) a stiskněte „Konfigurovat Wifi“. Počkejte, až esp8266 prohledá sítě Wi -Fi, a vyberte požadovanou. Vložte heslo a stiskněte „uložit“. Esp8266 se restartuje (tentokrát je to jedno LED dioda RGB, protože vygeneruje nějaké náhodné informace) a připojí se k síti.
Krok 10: Závěr
Na konci je graf převzatý z dataloggeru v provozu při zaznamenávání teploty mrazničky. Oranžově je DS18B20 a modře LM35 a jeho obvod. Můžete vidět největší rozdíl v přesnosti od digitálního k analogovému senzoru (s mým špatným „obvodem ADC“), který poskytuje některá nefyzická data. Když to shrneme, pokud chcete postavit tento záznamník, doporučuji použít digitální teplotní senzor DS18B20, protože je snáze čitelné a téměř „plug and play“, je stabilnější a přesnější, běží na 3,3 V a vyžaduje pouze jeden pin pro spoustu senzorů. Děkuji za pozornost, doufám, že tento projekt je pro vás dobrý a vy našel pár užitečných informací. A kdo si to chce uvědomit, přál bych si, abych poskytl všechny potřebné informace. Pokud ne, můžete se na vše zeptat, rád zodpovím všechny otázky. Protože nejsem anglicky mluvící, pokud je něco špatně nebo nesrozumitelného, dejte mi prosím vědět. Pokud se vám tento projekt líbil, hlasujte prosím pro soutěže a/nebo zanechte komentář ☺. Bude mě to povzbuzovat k neustálé aktualizaci a publikování nového obsahu. Děkuji.
Doporučuje:
Jak vytvořit záznamník vlhkosti a teploty v reálném čase pomocí Arduino UNO a SD karty - Simulace záznamníku dat DHT11 v Proteusu: 5 kroků
Jak vytvořit záznamník vlhkosti a teploty v reálném čase pomocí Arduino UNO a SD karty | Simulace záznamníku dat DHT11 v Proteus: Úvod: Ahoj, toto je Liono Maker, zde je odkaz na YouTube. Vytváříme kreativní projekt s Arduinem a pracujeme na vestavěných systémech. Data-Logger: Data logger (také data-logger nebo data recorder) je elektronické zařízení, které zaznamenává data v průběhu času s
Malý záznamník teploty ESP8266 (Tabulky Google): 15 kroků
Malý záznamník teploty ESP8266 (Tabulky Google): Toto je návod, jak si vytvořit svůj vlastní, naprosto malý záznamník teploty s podporou WiFi. Je založen na modulu ESP-01 a digitálním teplotním senzoru DS18B20, zabalený v těsném 3D tištěném pouzdře s 200mAh lithiovou baterií a mikro U
Záznamník teploty Raspberry Pi: 8 kroků
Záznamník teploty Raspberry Pi: Zde jsou pokyny k sestavení jednoduchého záznamníku teploty pomocí teplotního čidla I2C v hodnotě 5,00 USD. Data jsou uložena na SD kartu a lze je snadno importovat do Excelu. Jednoduše změnou nebo přidáním dalších senzorů mohou jiné typy dat také
AtticTemp - záznamník teploty / klimatu: 10 kroků (s obrázky)
AtticTemp - záznamník teploty / klimatu: teploměr s vysokou tolerancí a záznamník klimatu pro vaše podkroví nebo jiné venkovní stavby
Záznamník teploty, relativní vlhkosti a atmosférického tlaku pomocí připojení Raspberry Pi a TE MS8607-02BA01: 22 kroků (s obrázky)
Záznamník teploty, relativní vlhkosti a atmosférického tlaku pomocí připojení Raspberry Pi a TE MS8607-02BA01: Úvod: V tomto projektu vám ukážu, jak postupně nastavit systém protokolování teplotní vlhkosti a atmosférického tlaku. Tento projekt je založen na čipu prostředí Raspberry Pi 3 Model B a TE Connectivity MS8607-02BA