- Potrebne komponente:
- LM35 Temperaturni senzor:
- Povezovanje LM35 z NodeMCU:
- Razlaga kode:
- HTML koda za prikaz temperature na spletni strani:
- Delo:
V prejšnjem Vodiču za začetek uporabe NodeMCU smo videli, kaj je NodeMCU in kako ga lahko programiramo z uporabo Arduino IDE . Kot veste, ima NodeMCU v sebi čip Wi-Fi, zato se lahko poveže tudi z internetom. Zelo koristno je graditi IoT projekte. Pred tem smo ThingSpeak uporabljali z Arduinom za izdelavo IoT termometra, toda tukaj bomo ustvarili lastno spletno stran za prikaz temperature.
V tej vadnici bomo raziskali več o tem zanimivem MCU-ju in se počasi potapljali v internet stvari s povezovanjem NodeMCU z internetom. Tu bomo uporabili ta modul za določanje sobne temperature v spletnem brskalniku, tj. Naredili bomo spletni strežnik za prikaz temperature z uporabo LM35 kot temperaturnega senzorja.
Potrebne komponente:
- NodeMCU - ESP12
- LM35 Temperaturni senzor
- Breadboard
- Moški-ženski konektorji
LM35 Temperaturni senzor:
LM35 je analogni linearni temperaturni senzor. Njegova moč je sorazmerna s temperaturo (v stopinjah Celzija). Območje delovne temperature je od -55 ° C do 150 ° C. Izhodna napetost se razlikuje glede na 10mV kot odziv na vsaki ° vzpon C ali padec temperature. Lahko ga napajate tako iz napajalne napetosti 5V kot tudi 3.3V, tok pripravljenosti pa je manjši od 60uA.
Upoštevajte, da je LM35 na voljo v treh različicah, in sicer LM35A, LM35C in LM35D. Glavna razlika je v njihovem območju meritev temperature. Serija LM35D je zasnovana za merjenje od 0 do 100 stopinj Celzija, pri čemer je serija LM35A zasnovana za merjenje širšega območja od -55 do 155 stopinj Celzija. Serija LM35C je zasnovana za merjenje od -40 do 110 stopinj Celzija.
Za merjenje temperature smo že uporabljali LM35 s številnimi drugimi mikrokrmilniki:
- Digitalni termometer z mikrokrmilnikom LM35 in 8051
- Merjenje temperature z mikrokrmilnikom LM35 in AVR
- Digitalni termometer z uporabo temperaturnega senzorja Arduino in LM35
- Merjenje sobne temperature z Raspberry Pi
Povezovanje LM35 z NodeMCU:
Shema vezja za povezavo LM35 z NodeMCU je podana spodaj:
LM35 je analogni senzor, zato moramo ta analogni izhod pretvoriti v digitalni. Za to uporabljamo ADC pin NodeMCU, ki je definiran kot A0. Izhod LM35 bomo povezali z A0.
Na zatičih NodeMCU imamo izhodno napetost 3,3 V. Torej bomo uporabili 3,3 V kot Vcc za LM35.
Razlaga kode:
Popolna koda z demonstracijskim videom je podana na koncu članka. Tukaj razlagamo nekaj delov kode. Že smo razložili nalaganje kode v MCU z uporabo Arduino IDE.
Najprej moramo za dostop do funkcij Wi-Fi vključiti knjižnico ESP8266wifi.
#include
Nato vnesite svoje ime in geslo za Wi-Fi v polje ssid in geslo . Prav tako inicializirate spremenljivke in zaženete strežnik na vratih 80 s hitrostjo prenosa 115200.
const char * ssid = "*********"; // Vaše ssid const char * password = "***********"; // Vaše geslo plava temp_celsius = 0; plovec temp_fahrenheit = 0; Strežnik WiFiServer (80); void setup () { Serial.begin (115200);
Povezava Wi-Fi se vzpostavi s klicem teh funkcij.
Serial.println (); Serial.println (); Serial.print ("Povezovanje z"); Serial.println (ssid); WiFi.begin (ssid, geslo);
Vzpostavitev povezave lahko traja nekaj sekund, zato nadaljujte s prikazovanjem »…«, dokler se povezava ne bo vzpostavila. Potem bo sistem še naprej čakal in preverjal, ali se stranka poveže…
medtem ko (WiFi.status ()! = WL_CONNECTED) { zamuda (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi je povezan"); server.begin (); Serial.println ("Strežnik se je začel"); Serial.println (WiFi.localIP ()); }
V odseku zanke preberite vrednosti senzorja, jih pretvorite v Celzijeve in Fahrenheitove in te vrednosti prikažite na serijskem monitorju.
void loop () { temp_celsius = (analogRead (A0) * 330.0) / 1023.0; // Za pretvorbo analognih vrednosti v Celzijeve vrednosti Na naši plošči imamo 3,3 V in vemo, da se izhodna napetost LM35 spreminja za 10 mV na vsako stopinjo Celzija dviga / pada. Torej, (A0 * 3300/10 ) / 1023 = Celzija temp_fahrenheit = Celzija * 1,8 + 32,0; Serial.print ("Temperatura ="); Serial.print (temp_celsius); Serial.print ("Celzija");
HTML koda za prikaz temperature na spletni strani:
Na spletni strani prikazujemo temperaturo, tako da je prek interneta dostopna od koder koli na svetu. HTML koda je zelo preprosta; samo uporabiti moramo funkcijo client.println za odmev vsake vrstice kode HTML, da jo lahko brskalnik izvede.
Ta del prikazuje kodo HTML za ustvarjanje spletne strani, ki prikazuje vrednost temperature.
Odjemalec WiFiClient = server.available (); client.println ("HTTP / 1.1 200 OK"); client.println ("Vrsta vsebine: besedilo / html"); client.println ("Povezava: blizu"); // povezava bo zaprta po zaključku odziva client.println ("Osveži: 10"); // posodobimo stran po 10 sekundah client.println (); client.println (""); client.println (""); client.print ("
Digitalni termometer
"); client.print ("Temperatura (* C) = "); client.println (temp_celsius); client.print ("
Temperatura (F) = "); client.println (temp_fahrenheit); client.print ("
"); client.println (" "); zamuda (5000); }Delo:
Po nalaganju kode z uporabo Arduino IDE odprite serijski monitor in pritisnite gumb Reset na NodeMCU.
Zdaj lahko vidite, da je plošča povezana z omrežjem Wi-Fi, ki ste ga določili v svoji kodi, in tudi, da ste dobili IP. Kopirajte ta IP in ga prilepite v kateri koli spletni brskalnik. Prepričajte se, da mora biti vaš sistem, v katerem uporabljate spletni brskalnik, povezan v isto omrežje.
Vaš digitalni termometer je pripravljen in temperatura se bo samodejno osveževala v spletnem brskalniku po vsakih 10 sekundah.
Če želite, da je ta spletna stran dostopna iz interneta, morate v usmerjevalniku / modemu nastaviti preusmeritev vrat. Preverite celotno kodo in video spodaj.
Preverite tudi:
- Vremenska postaja Raspberry Pi: spremljanje vlažnosti, temperature in tlaka prek interneta
- Spremljanje temperature in vlažnosti v živo prek interneta z uporabo Arduino in ThingSpeak