Kazalo:

Beležnik temperature WiFi (z ESP8266): 11 korakov (s slikami)
Beležnik temperature WiFi (z ESP8266): 11 korakov (s slikami)

Video: Beležnik temperature WiFi (z ESP8266): 11 korakov (s slikami)

Video: Beležnik temperature WiFi (z ESP8266): 11 korakov (s slikami)
Video: Изучите Arduino за 30 минут: примеры и проекты 2024, November
Anonim
Image
Image
Materiali
Materiali

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

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

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

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

Koda ESP8266
Koda ESP8266
Koda ESP8266
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

ESP8266 Mali trik
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

Prva operacija
Prva operacija
Prva operacija
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

Zaključek
Zaključek
Zaključek
Zaključek
Zaključek
Zaključek
Zaključek
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: