Obsah:

WiFi záznamník teploty (s ESP8266): 11 krokov (s obrázkami)
WiFi záznamník teploty (s ESP8266): 11 krokov (s obrázkami)

Video: WiFi záznamník teploty (s ESP8266): 11 krokov (s obrázkami)

Video: WiFi záznamník teploty (s ESP8266): 11 krokov (s obrázkami)
Video: Home Assistant - подключаем адресную ленту WS2812B через ESP8266 с прошивкой WLED 2024, November
Anonim
Image
Image
Materiály
Materiály

Dobrý deň, som rád, že vás tu vidím. Dúfam, že v tomto návode nájdete niekoľko užitočných informácií. Neváhajte mi poslať návrhy, otázky … Tu je niekoľko základných údajov a rýchly prehľad projektu. Pre mobilných používateľov: Video. Dajte mi vedieť, čo si o projekte myslíte v sekcii komentárov, vďaka. Nedávno som si kúpil dosku NodeMcu (na báze esp8266), aby som to vyskúšal, takže nejde o skutočne pokročilý projekt. Ale funguje to a to je to, čo potrebujem, takže je to v poriadku. Hlavnou funkciou tohto záznamníka údajov je zber teploty a uloženie na server. To umožňuje používateľom kontrolovať údaje a grafy online, aj keď sa nenachádzajú na rovnakom mieste záznamníka (napríklad pre meteorologickú stanicu). Ďalšou užitočnou funkciou je aktualizácia OTA zahrnutá v kóde, ktorá používateľom umožňuje jednoduchú aktualizáciu a prispôsobenie softvéru. Analyzujem dva senzory a s nimi súvisiacu metódu získavania, aby som našiel rovnováhu medzi všetkými kladmi a zápormi.

Spoiler: Po troche testovania som zistil, že digitálny snímač ako DS18B20 je najlepším riešením, pretože ponúka stabilitu a vyššiu presnosť. Je už vodotesný a s káblom.

Krok 1: Materiály

Materiály
Materiály
Materiály
Materiály
Materiály
Materiály

Toto je minimálny projekt s iba niekoľkými externými komponentmi, a preto bude zoznam kusovníkov skutočne krátky. Pozrime sa však, aký materiál je požadovaný:

  • NodeMcu V3 (alebo akýkoľvek kompatibilný procesor ESP8266 μ);
  • RGB LED (spoločná anóda);
  • Rezistory pre LED (1x10Ω, 1x22Ω, 1x100Ω, 1x10kΩ)
  • DS18B20 (integrovaný teplomer Maxim);
  • LM35 (prístrojový teplomer Texas);
  • Externá batéria (voliteľné);
  • Kábel;
  • Connector (aby bol „pokročilejší“);
  • Box (voliteľné, opäť aby bol „pokročilejší“);
  • Držiak LED (voliteľný);

Poznámka: Ako som už povedal, musíte si vybrať jednu z dvoch metód. Ak si vyberiete teplomer LM35, budete potrebovať niekoľko ďalších komponentov:

  • Attiny45/85;
  • Programátor AVR (alebo Arduino ako ISP);
  • Rezistor (1x1kΩ, 1x2kΩ, 1x10kΩ, 1x18kΩ)
  • 2,54 mm páskový konektor (voliteľné)
  • Dióda (2x1N914)
  • Perfboard alebo PCB;

Krok 2: Výber snímača

Výber snímača
Výber snímača

Výber senzora môže byť náročný krok: dnes existuje veľa prevodníkov (TI ponúka 144 rôznych prvkov), analógových aj digitálnych s rôznym teplotným rozsahom, presnosťou a veľkosťou prípadu. Analógové snímače (od TI je k dispozícii 46 dielov): Výhody:

  • Záznamník údajov je možné ľahko zmeniť z teploty na iné množstvo (napätie, prúd, …);
  • Môžu byť o niečo lacnejšie;
  • Jednoduché použitie, pretože nevyžaduje žiadnu špeciálnu knižnicu;

Zápory:

  • Vyžadovať ADC (ktorý môže ovplyvniť presnosť merania) a ďalšie externé komponenty. Pretože esp8266 má iba jeden ADC (a nie veľmi presný), navrhoval by som použiť externý.
  • Vyžaduje vyhradený kábel s potlačením šumu, pretože akékoľvek indukované napätie môže zmeniť výsledok.

Po troche premýšľania som sa rozhodol použiť LM35, lineárny snímač s faktorom mierky +10mV/° C s presnosťou 0,5 ° C a veľmi nízkym prúdom (asi 60uA) s prevádzkovým napätím od 4V do 30V. Podrobnejšie informácie nájdete v technickom liste: LM35.

Výhody digitálnych senzorov (vysoko odporúčané):

Potrebné sú takmer všetky externé komponenty;

Integrovaný ADC

Zápory:

Požiadajte knižnicu alebo softvér o dekódovanie digitálneho signálu (I2C, SPI, Serial, One Wire, …);

Drahší;

Vybral som DS18B20, pretože som našiel sadu 5 vodotesných senzorov na Amazone a pretože je široko zdokumentovaný na internete. Hlavnou funkciou je meranie 9-12 bitov, 1-vodičová zbernica, napájacie napätie 3,0 až 5,5, presnosť 0,5 ° C. Opäť platí, že pre ďalšie podrobnosti tu je list s technickými údajmi: DS18B20.

Krok 3: LM35

LM35
LM35
LM35
LM35
LM35
LM35

Poďme analyzovať, ako som implementoval externý ADC a ďalšie funkcie pre teplomer LM35. Našiel som kábel s tromi vodičmi, jeden s tienením a dva bez. Rozhodol som sa pridať oddeľovací kondenzátor na stabilizáciu napájacieho napätia v blízkosti snímača. Na prevod analógovej teploty na digitálny som použil mikroprocesor Attiny85 v balení dip8 (ďalšie informácie nájdete opäť v technickom liste: attiny85). Najdôležitejšou vecou pre nás je 10 -bitový ADC (nie je to najlepšie, ale pre mňa dostatočne presné). Na komunikáciu s Esp8266 som sa rozhodol použiť sériovú komunikáciu, pričom majte na pamäti, že esp8266 pracuje s 3,3 V a attiny85 pri 5 V (pretože potrebuje napájať senzor). Aby som to dosiahol, použil som jednoduchý delič napätia (pozri schému). Na čítanie negatívnej teploty musíme pridať niektoré externé komponenty (odpor 2x1N914 a 1x18k), pretože nechcem používať záporné napájanie. Tu je kód: úložisko TinyADC. Poznámka: na zostavenie tohto kódu budete musieť nainštalovať Attiny to ide (zadajte toto do možnosti: https://drazzy.com/package_drazzy.com_index.json), ak neviete, ako na to, stačí vyhľadať na Googli. Alebo nahrajte súbor.hex priamo.

Krok 4: DS18B20

DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20

Kúpil som tie senzory od Amazonu (5 stojí asi 10 €). Prišiel s krytom z nehrdzavejúcej ocele a káblom o dĺžke 1 m. Tento senzor dokáže vrátiť 9 až 12 bitové údaje o teplote. K rovnakému kolíku je možné pripojiť veľa senzorov, pretože všetky majú jedinečné ID. Na pripojenie DS18B20 k esp8266 stačí postupovať podľa schémy (druhá fotografia). Keďže som sa rozhodol, že môj záznamník bude mať tri sondy, musel som rozlíšiť, ktorá je ktorá. Preto som im povedal, aby som im dal farbu spojenú prostredníctvom softvéru s ich adresou. Použil som nejakú teplom zmrštiteľnú tubu (tretia fotka).

Krok 5: Kód ESP8266

Kód ESP8266
Kód ESP8266
Kód ESP8266
Kód ESP8266

Keďže som v tomto svete nový, rozhodol som sa používať veľa knižníc. Ako bolo uvedené v úvode, hlavné funkcie sú:

  • Aktualizácia OTA: esp8266 nemusíte pripájať k počítaču zakaždým, keď potrebujete nahrať kód (musíte to urobiť iba prvýkrát);
  • Správca bezdrôtového pripojenia, ak sa zmení bezdrôtová sieť, skicu nemusíte znova načítať. Môžete jednoducho znova nakonfigurovať parametre siete pripájajúce sa k prístupovému bodu esp8266;
  • Prenos dát Thingspeak;
  • Podporované sú LM35 aj DS18B20;
  • Jednoduché používateľské rozhranie (LED dióda RGB označuje niekoľko užitočných informácií);

Ospravedlňte ma, pretože môj softvér nie je najlepší a nie je skutočne dobre objednaný. Pred odoslaním do zariadenia musíte zmeniť niektoré parametre, aby kód zodpovedal vášmu nastaveniu. Tu si môžete stiahnuť softvér. Bežná konfigurácia LM35 a DS18B20 Na aktualizáciu OTA musíte zmeniť definíciu pinu, token, číslo kanála, používateľa a heslo. Linka od 15 do 23.

#definujte červenú SVOJU STRÁNKU #definujte zelenú SVOJU STRÁNKU

#define blue YOURPINHERE const char* host = "select host address"; // nie je to naozaj potrebné, môžete nechať esp8266-webupdate const char* update_path = "/firmware"; // zmena adresy na aktualizáciu ex: 192.168.1.5/firmware const char* update_username = "YOURUSERHERE"; const char * update_password = "YOURPASSWORDHERE; nepodpísané dlhé myChannelNumber = CHANNELNUMBERHERE; const char * myWriteAPIKey =" WRITEAPIHERE ";

Krok 6: ESP8266 Kód: LM35 Používateľ

Musíte pripojiť Attiny dosku k esp8266, na napájanie jednotky ADC použite pin VU a G pin. Musíte si vybrať, ktorý pin chcete použiť na sériovú komunikáciu (aby bol hardvérový sériový server voľný na účely ladenia). Tx pin musíte vybrať, ale v skutočnosti sa nepoužíva. (Riadok 27). SoftwareSerial mySerial (RXPIN, TXPIN); Na vrchole musíte pridať: #define LM35USER

Krok 7: ESP8266 Kód: DS18B20 Používateľ

Ako prvú operáciu musíte identifikovať adresu zariadenia pre každý senzor. Skompilovajte a naprogramujte tento kód do systému ESP a vyhľadajte výsledky v sériovom čísle. Kód nájdete tu (hľadajte tento názov na stránke: «Prečítajte si jednotlivé interné adresy DS18B20»). Pripojte iba jeden senzor, aby ste získali adresu, výsledky by mali byť asi také (náhodné číslo tu! Len ako príklad): 0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12 Potom musíte zmeniť môj kód v sekcii " Konfigurácia pre DS18B20 "(riadok 31 až 36)":

#define ONE_WIRE_BUS ONEWIREPINHERE #define TEMPERATURE_PRECISION TEMPBITPRECISION // (od 9 do 12) #define delayDallas READINTERVAL // (v milisekundách, minimum je 15 s alebo 15 000 mS) DeviceAddress blueSensor = {0x11, 0Dx 0x12}; // ZMENA ZA SVOJU ADRESU DeviceAddress redSensor = {0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12}; // ZMENA ZA SVOJU ADRESU DeviceAddress greenSensor = {0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12}; // ZMENA SVOJEJ ADRESY Na vrchole musíte pridať: #define DSUSER

Krok 8: ESP8266 Little Trick

ESP8266 Malý trik
ESP8266 Malý trik

Po troche testovania som zistil, že ak pripojíte esp8266 bez programovania, kód sa nespustí, kým raz nestlačíte reset. Aby som tento problém vyriešil, po troche výskumu som zistil, že na D3 musíte pridať výsuvný odpor z 3,3 V. Procesoru to povie, aby načítal kód z pamäte flash. Touto metódou je možné D3 priamo použiť na vstup údajov pre snímače DS18B20.

Krok 9: Prvá prevádzka

Prvá prevádzka
Prvá prevádzka
Prvá prevádzka
Prvá prevádzka

Ak ste kód nahrali správne, ale nikdy nepoužívate knižnicu správcu Wifi, je čas nakonfigurovať vaše pripojenie Wi -Fi. Počkajte, kým LED kontrolka RGB nebude blikať rýchlejšie ako predtým, a potom pomocou mobilného telefónu alebo počítača vyhľadajte wifi sieť s názvom „AutoConnectAp“a pripojte sa. Po pripojení otvorte webový prehliadač a zadajte 192.168.4.1. Nájdete rozhranie GUI správcu wifi (pozri fotografie) a kliknite na „Konfigurovať Wifi“. Počkajte, kým esp8266 vyhľadá siete Wi -Fi, a vyberte požadovanú. Zadajte heslo a kliknite na „uložiť“. Esp8266 sa reštartuje (tentokrát mi to je jedno, LED dióda RGB, pretože bude zobrazovať nejaké náhodné informácie) a pripojí sa k sieti.

Krok 10: Záver

Záver
Záver
Záver
Záver
Záver
Záver
Záver
Záver

Na záver je tu graf prevzatý z ústredne údajov v prevádzke pri zaznamenávaní teploty mrazničky. Oranžová je DS18B20 a modrá LM35 a jej obvod. Môžete vidieť najväčší rozdiel v presnosti od digitálneho k analógovému senzoru (s mojím zlým „obvodom ADC“), ktorý poskytuje niektoré nefyzické údaje. Keď to zhrnieme, ak chcete postaviť tento záznamník, navrhujem použiť digitálny snímač teploty DS18B20, pretože ľahšie sa číta a takmer „plug and play“, je stabilnejší a presnejší, beží na 3,3 V a vyžaduje iba jeden kolík pre množstvo senzorov. Ďakujem za pozornosť, dúfam, že tento projekt je pre vás dobrý a vy ste našiel niekoľko užitočných informácií. A pre tých, ktorí si to chcú uvedomiť, želám si, aby som poskytol všetky potrebné informácie. Ak nie, môžete sa na všetko opýtať, rád odpoviem na všetky otázky. Keďže nie som anglicky hovoriaci, ak je niečo nesprávne alebo nepochopiteľné, dajte mi prosím vedieť. Ak sa vám tento projekt páčil, hlasujte zaň a zapojte ho do komentárov ☺. Bude ma to povzbudzovať v aktualizácii a publikovaní nového obsahu. Ďakujem.

Odporúča: