Obsah:

WiFi záznamník teploty (s ESP8266): 11 kroků (s obrázky)
WiFi záznamník teploty (s ESP8266): 11 kroků (s obrázky)

Video: WiFi záznamník teploty (s ESP8266): 11 kroků (s obrázky)

Video: WiFi záznamník teploty (s ESP8266): 11 kroků (s obrázky)
Video: Using Micro SD Card and Data logging with Arduino | Arduino Step by Step Course Lesson 106 2024, Červenec
Anonim
Image
Image
Materiály
Materiály

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

Materiály
Materiály
Materiály
Materiály
Materiály
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
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

LM35
LM35
LM35
LM35
LM35
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

DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
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

Kód ESP8266
Kód ESP8266
Kód ESP8266
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

ESP8266 Malý trik
ESP8266 Malý trik

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

První provoz
První provoz
První provoz
První provoz

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

Závěr
Závěr
Závěr
Závěr
Závěr
Závěr
Závěr
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: