Kazalo:
- 1. korak: Materiali
- 2. korak: Izbira senzorja
- 3. korak: LM35
- 4. korak: DS18B20
- 5. korak: Koda ESP8266
- 6. korak: Koda ESP8266: uporabnik LM35
- 7. korak: Koda ESP8266: uporabnik DS18B20
- 8. korak: ESP8266 Mali trik
- 9. korak: Prva operacija
- 10. korak: Zaključek
Video: Beležnik temperature WiFi (z ESP8266): 11 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
Pozdravljeni, vesel sem, da vas vidim tukaj. Upam, da boste v tem navodilu našli nekaj koristnih informacij. Pošljite mi predloge, vprašanja,… Tukaj je nekaj osnovnih podatkov in hiter pregled projekta. Za uporabnike mobilnih naprav: Video. Sporočite mi, kaj mislite o projektu v razdelku za komentarje, hvala. Pred kratkim sem kupil ploščo NodeMcu (na osnovi esp8266), da poskusim, zato to ni res napreden projekt. Ampak deluje in to je tisto, kar potrebujem, zato je v redu. Glavna funkcija tega zapisovalnika podatkov je, da zbira temperaturo in jo shrani na strežnik. To uporabnikom omogoča preverjanje podatkov in grafov na spletu, tudi če niso na istem mestu zapisovalnika (na primer za vremensko postajo). Druga koristna funkcija je posodobitev OTA, vključena v kodo, ki uporabnikom omogoča enostavno posodobitev in prilagoditev programske opreme. Analiziral bom dva senzorja in z njimi povezano metodo pridobivanja, da bom uravnotežil vse prednosti in slabosti.
Spojler: po kratkem testiranju sem ugotovil, da je digitalni senzor, kot je DS18B20, najboljša rešitev, saj ponuja stabilnost in večjo natančnost. Je že vodoodporen in s kablom.
1. korak: Materiali
To je minimalen projekt z le nekaj zunanjimi komponentami, zato bo seznam specifikacij res kratek. Pa poglejmo, kateri material se zahteva:
- NodeMcu V3 (ali kateri koli združljiv mikroprocesor ESP8266);
- RGB LED (skupna anoda);
- Upori za LED (1x10Ω, 1x22Ω, 1x100Ω, 1x10kΩ)
- DS18B20 (vgrajen termometer Maxim);
- LM35 (termometer Texas Instrument);
- Zunanja baterija (neobvezno);
- Kabel;
- Konektor (za bolj "napreden");
- Box (neobvezno, spet za bolj "napreden");
- Nosilec LED (neobvezno);
Opomba: Kot sem rekel, morate izbrati eno od dveh metod. Če izberete termometer LM35, boste potrebovali še nekaj drugih komponent:
- Attiny45/85;
- Programer AVR (ali Arduino kot ponudnik internetnih storitev);
- Upor (1x1kΩ, 1x2kΩ, 1x10kΩ, 1x18kΩ)
- 2,54 mm tračni priključek (neobvezno)
- Dioda (2x1N914)
- Perfboard ali PCB;
2. korak: Izbira senzorja
Izbira senzorja je lahko težaven korak: danes je na voljo veliko pretvornikov (TI ponuja 144 različnih elementov), tako analognih kot digitalnih z različnimi temperaturnimi območji, natančnostjo in ohišjem.
- Zapisovalnik podatkov lahko enostavno spremenite iz temperature v drugo količino (napetost, tok,…);
- Lahko je malo ceneje;
- Enostaven za uporabo, saj ne potrebuje posebne knjižnice;
Slabosti:
- Zahtevajte ADC (ki lahko vpliva na natančnost meritve) in druge zunanje komponente. Ker ima esp8266 samo en ADC (in ni ravno natančen), predlagam uporabo zunanjega.
- Potrebuje namenski kabel z zavračanjem hrupa, saj lahko vsaka inducirana napetost spremeni rezultat.
Po premisleku sem se odločil za uporabo LM35, linearnega senzorja s faktorjem lestvice +10mV/° C z natančnostjo 0,5 ° C in zelo nizkim tokom (približno 60uA) z delovno napetostjo od 4V do 30V. Za več podrobnosti predlagam ogled podatkovnega lista: LM35.
Digitalni senzorji (zelo priporočljivo) Prednosti:
Potrebne so skoraj vse zunanje komponente;
Integriran ADC
Slabosti:
Knjižnica zahtevkov ali programska oprema za dekodiranje digitalnega signala (I2C, SPI, Serial, One Wire,…);
Dražje;
Za DS18B20 sem se odločil, ker sem na Amazonu našel niz 5 vodotesnih senzorjev in ker je široko dokumentiran na internetu. Glavna značilnost je 9-12-bitno merjenje, 1-žično vodilo, napajalna napetost 3,0 do 5,5, natančnost 0,5 ° C. Za več podrobnosti je tu podatkovni list: DS18B20.
3. korak: LM35
Analizirajmo, kako sem uporabil zunanji ADC in druge funkcije za termometer LM35. Našel sem kabel s tremi žicami, enega z oklopom in dva brez. Odločil sem se, da dodam ločilni kondenzator za stabilizacijo napajalne napetosti v bližini senzorja. Za pretvorbo analogne temperature v digitalno sem uporabil mikroprocesor Attiny85 v paketu dip8 (za več informacij glejte podatkovni list: attiny85). Za nas je najpomembnejši 10 -bitni ADC (v resnici ni najboljši, vendar zame dovolj natančen). Za komunikacijo z Esp8266 sem se odločil uporabiti serijsko komunikacijo, pri čemer upoštevam, da esp8266 deluje s 3.3V in attiny85 pri 5V (saj mora napajati senzor). Da bi to dosegel, sem uporabil preprost razdelilnik napetosti (glej shemo). Za branje negativne temperature moramo dodati nekaj zunanjih komponent (2x1N914 in 1x18k upor), ker ne želim uporabljati negativnega napajanja. Tukaj je koda: skladišče TinyADC. Opomba: če želite sestaviti to kodo, morate namestiti attiny to ide (vstavite to v možnost: https://drazzy.com/package_drazzy.com_index.json), če ne veste, kako to storiti, samo poiščite v Googlu. Ali pa neposredno naložite datoteko.hex.
4. korak: DS18B20
Te senzorje sem kupil pri Amazonu (5 stane približno 10 €). Prišel je s pokrovom iz nerjavečega jekla in kablom dolžine 1 m. Ta senzor lahko vrne 9 do 12 -bitne podatke o temperaturi. Veliko senzorjev je mogoče priključiti na isti pin, saj imajo vsi edinstven ID. Če želite DS18B20 priključiti na esp8266, lahko sledite shemi (druga fotografija). Ker sem se odločil, da bi imel moj zapisovalnik tri sonde, sem moral ločiti, katera je katera. Zato sem mislil, da bi jim dal barvo, povezano s programsko opremo, na njihov naslov. Uporabil sem nekaj termoskrčljive cevi (tretja fotografija).
5. korak: Koda ESP8266
Ker sem nov na tem svetu, sem se odločil, da bom uporabil veliko knjižnic. Kot je navedeno v uvodu, so glavne značilnosti:
- Posodobitev OTA: esp8266 vam ni treba priključiti na računalnik vsakič, ko morate naložiti kodo (to morate storiti samo prvič);
- Brezžični upravitelj, če se brezžično omrežje spremeni, vam skice ni treba znova naložiti. Lahko preprosto znova konfigurirate omrežne parametre, ki se povezujejo z dostopno točko esp8266;
- Posredovanje podatkov Thingspeak;
- Podprti sta LM35 in DS18B20;
- Enostaven uporabniški vmesnik (LED RGB označuje nekaj koristnih informacij);
Oprostite, ker moja programska oprema ni najboljša in ni dobro urejena. Preden naložite v napravo, morate spremeniti nekatere parametre, da se koda prilagodi vašim nastavitvam. Tukaj lahko prenesete programsko opremo. Skupne konfiguracije LM35 in DS18B20 Za posodobitev OTA morate spremeniti definicijo pina, žeton, številko kanala, uporabnika in geslo. Vrstica od 15 do 23.
#define red YOURPINHERE #define green YOURPINHERE
#define blue YOURPINHERE const char* host = "izberite naslov gostitelja"; // res ni potrebno, lahko pustite esp8266-webupdate const char* update_path = "/firmware"; // spremeniti naslov za posodabljanje npr.: 192.168.1.5/firmware const char* update_username = "YOURUSERHERE"; const char * update_password = "YOURPASSWORDHERE; unsigned long myChannelNumber = CHANNELNUMBERHERE; const char * myWriteAPIKey =" WRITEAPIHERE ";
6. korak: Koda ESP8266: uporabnik LM35
Ploščo attiny morate priključiti na esp8266, za napajanje enote ADC pa uporabite VU pin in G pin. Izbrati morate, kateri zatič želite uporabiti za serijsko komunikacijo (da ostane serijska strojna oprema prosta za odpravljanje napak). Tx pin je treba izbrati, vendar se v resnici ne uporablja. (Vrstica 27). SoftwareSerial mySerial (RXPIN, TXPIN); Na vrhu morate dodati: #define LM35USER
7. korak: Koda ESP8266: uporabnik DS18B20
Kot prvo operacijo morate za vsak senzor identificirati naslov naprave. Sestavite in programirajte to kodo na esp in poiščite rezultate v seriji. Kodo najdete tukaj (poiščite ta naslov na strani: «Preberite posamezne notranje naslove DS18B20»). Če želite pridobiti naslov, povežite samo en senzor, rezultati bi morali biti nekako takšni (tukaj je naključna številka! Kot primer): 0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12 Potem morate v razdelku spremeniti mojo kodo " Konfiguracija za DS18B20 "(vrstice 31 do 36)":
#define ONE_WIRE_BUS ONEWIREPINHERE #define TEMPERATURE_PRECISION TEMPBITPRECISION // (od 9 do 12) #define delayDallas READINTERVAL // (v milisekundah je najmanj 15s ali 15000mS) Naslov naprave blueSensorx, 0xx, 0xx, 0xx, 0x, 0x9, 0x, 0x, 0x, 0x12}; // SPREMENI S VAŠIM NASLOVOM DeviceAddress redSensor = {0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12}; // SPREMENI S VAŠIM NASLOVOM DeviceAddress greenSensor = {0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12}; // SPREMENI S NASLOVOM Na vrhu morate dodati: #define DSUSER
8. korak: ESP8266 Mali trik
Po kratkem testiranju sem ugotovil, da če priklopite esp8266 brez programiranja, koda ne bo zagnana, dokler enkrat ne pritisnete reset. Če želite rešiti to težavo, sem po nekaj raziskavah odkril, da morate dodati vlečni upor od 3,3 V do D3. To bo povedalo procesorju, da naloži kodo iz bliskovnega pomnilnika. S to metodo lahko D3 neposredno uporabimo za vnos podatkov za senzorje DS18B20.
9. korak: Prva operacija
Če ste kodo pravilno naložili, vendar nikoli ne uporabljate knjižnice upravitelja Wifi, je čas, da konfigurirate povezavo Wi -Fi. Počakajte, da LED dioda RGB utripa hitreje kot prej, nato z mobilnim telefonom ali računalnikom poiščite omrežje WiFi, imenovano "AutoConnectAp", in se povežite. Po povezavi odprite spletni brskalnik in vnesite 192.168.4.1, našli boste vmesnik grafičnega vmesnika upravitelja WiFi (glejte fotografije) in pritisnite »Konfiguriraj Wifi«. Počakajte, da esp8266 poišče omrežja wifi in izberite želenega. Vnesite geslo in pritisnite »shrani«. Esp8266 se bo znova zagnal (tokrat ga ne skrbi RGB, ker bo predvajal nekaj naključnih informacij) in se povezal z omrežjem.
10. korak: Zaključek
Na koncu je tu še graf, vzeti iz zapisovalnika podatkov v akciji med beleženjem temperature zamrzovalnika. V oranžni je DS18B20, v modri pa LM35 in njeno vezje. Največjo razliko v natančnosti lahko vidite od digitalnega do analognega senzorja (z mojim slabim "vezjem ADC"), ki daje nekaj nefizičnih podatkov. Če povzamem, če želite sestaviti ta zapisovalnik, predlagam uporabo digitalnega temperaturnega senzorja DS18B20, saj je lažje brati in skoraj "plug and play", je bolj stabilen in natančen, deluje pri 3.3V in zahteva le en pin za veliko senzorjev. Hvala za pozornost, upam, da je ta projekt dober za vas in vi našel nekaj koristnih informacij. In če kdo želi to uresničiti, želim, da sem dal vse potrebne informacije. Če ne boste mogli vprašati vsega, bom z veseljem odgovoril na vsa vprašanja. Ker nisem govornik angleščine, mi sporočite, če je kaj narobe ali nerazumljivo. Če vam je bil ta projekt všeč, ga glasujte za natečaje in/ali pustite komentar ☺. To me bo spodbudilo k nenehnemu posodabljanju in objavljanju novih vsebin. Hvala vam.
Priporočena:
Raspberry Pi Box hladilnega ventilatorja s indikatorjem temperature procesorja: 10 korakov (s slikami)
Raspberry Pi polje hladilnega ventilatorja s indikatorjem temperature procesorja: V prejšnjem projektu sem predstavil vezje temperature CPU-ja maline pi (v nadaljevanju RPI). To vezje preprosto prikazuje različno temperaturo procesorja RPI 4 na naslednji način. Temperatura procesorja je znotraj 30 ~
Senzor temperature in mesa BBQ na ESP8266 z zaslonom: 5 korakov (s slikami)
Senzor temperature in mesa za žar na ESP8266 z zaslonom: V tem navodilu vam bom pokazal, kako narediti svojo različico orodja za peko na žaru, ki meri trenutno temperaturo na vašem žaru in vklopi ventilator, da ga po potrebi prižge. Poleg tega je priključen tudi senzor temperature jedra mesa
Sonda za kuhanje - nadzor temperature WiFi: 14 korakov (s slikami)
Sonda za pripravo kave - WiFi -monitor temperature
Beležnik pospeševanja Nokia 3310: 8 korakov
Nokia 3310 Acceleration Logger: Kako narediti zapisovalnik pospeškov v mobilnem telefonu Nokia 3310. Z njim bom meril sile na rolerjih
Serijski beležnik: 3 koraki
Serijski beležnik: To beležnico sem naredil, ker … no. Nisem imel kaj početi. Vem, da lahko dobite zadevo za urejanje dos, vendar sem vseeno želel narediti svojo različico. Vse, kar počne, je, da vam omogoča poimenovanje in izdelavo datoteke. ..al