- Potrebne komponente:
- LM35 senzor temperature:
- Povezivanje LM35 s NodeMCU:
- Objašnjenje koda:
- HTML kôd za prikaz temperature na web stranici:
- Radno:
U prethodnom vodiču za početak rada s NodeMCU vidjeli smo što je NodeMCU i kako ga možemo programirati pomoću Arduino IDE-a . Kao što znate, NodeMCU ima Wi-Fi čip, tako da se također može povezati s internetom. Vrlo je korisno graditi IoT projekte. Prije smo koristili ThingSpeak s Arduinom za izradu IoT termometra, ali ovdje ćemo stvoriti vlastitu web stranicu za prikaz temperature.
U ovom uputstvu istražit ćemo više o ovom zanimljivom MCU-u i polako zaranjamo u Internet stvari spajanjem NodeMCU-a s Internetom. Ovdje ćemo koristiti ovaj modul za određivanje sobne temperature u web pregledniku, tj. Napravit ćemo web poslužitelj za prikaz temperature koristeći LM35 kao temperaturni senzor.
Potrebne komponente:
- NodeMCU - ESP12
- LM35 Senzor temperature
- Breadboard
- Muško-ženski konektori
LM35 senzor temperature:
LM35 je analogni linearni temperaturni senzor. Njegov izlaz proporcionalan je temperaturi (u Celzijevim stupnjevima). Raspon radne temperature je od -55 ° C do 150 ° C. Izlazni napon varira za 10mV kao odgovor na svaki porast ili pad temperature o C. Može se upravljati napajanjem od 5 V, kao i od 3,3 V, a pripravna struja je manja od 60uA.


Imajte na umu da je LM35 dostupan u 3 varijante serije i to LM35A, LM35C i LM35D. Glavna razlika je u njihovom rasponu mjerenja temperature. Serija LM35D dizajnirana je za mjerenje od 0 do 100 Celzijevih stupnjeva, dok je kao i LM35A serija dizajnirana za mjerenje šireg raspona od -55 do 155 Celzijevih stupnjeva. Serija LM35C dizajnirana je za mjerenje od -40 do 110 Celzijevih stupnjeva.
Već smo koristili LM35 s mnogim drugim mikrokontrolerima za mjerenje temperature:
- Digitalni termometar pomoću mikrokontrolera LM35 i 8051
- Mjerenje temperature pomoću LM35 i AVR mikrokontrolera
- Digitalni termometar koji koristi Arduino i LM35 temperaturni senzor
- Mjerenje sobne temperature s Raspberry Pi
Povezivanje LM35 s NodeMCU:
Dijagram spoja za povezivanje LM35 s NodeMCU dan je u nastavku:

LM35 je analogni senzor pa ovaj analogni izlaz moramo pretvoriti u digitalni. Za to koristimo ADC pin NodeMCU koji je definiran kao A0. Izlaz LM35 spojit ćemo na A0.
Na izlaznim naponima NodeMCU-a imamo 3.3 V kao izlazni napon. Dakle, koristit ćemo 3,3 V kao Vcc za LM35.

Objašnjenje koda:
Kompletni kod s demonstracijskim videom dan je na kraju članka. Ovdje objašnjavamo nekoliko dijelova koda. Već smo objasnili prijenos koda u MCU pomoću Arduino IDE-a.
Prvo, moramo uključiti ESP8266wifi knjižnicu za pristup Wi-Fi funkcijama..
#include
Zatim unesite svoje Wi-Fi ime i lozinku u polje ssid i lozinka . Također je inicijalizirao varijable i pokrenuo poslužitelj na priključku 80 brzinom prijenosa 115200.
const char * ssid = "*********"; // Vaš ssid const char * password = "***********"; // Vaša lozinka pluta temp_celsius = 0; plutajuće temp_fahrenheit = 0; Poslužitelj WiFiServer (80); void setup () { Serial.begin (115200);
Veza Wi-Fi veze uspostavlja se pozivanjem ovih funkcija.
Serial.println (); Serial.println (); Serial.print ("Povezivanje s"); Serial.println (ssid); WiFi.begin (ssid, lozinka);
Uspostavljanje veze može potrajati nekoliko sekundi, pa nastavite prikazivati '…' dok se veza neće uspostaviti. Tada će sustav nastaviti čekati i provjeravati da se klijent poveže…
while (WiFi.status ()! = WL_CONNECTED) { delay (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi je povezan"); server.begin (); Serial.println ("Poslužitelj pokrenut"); Serial.println (WiFi.localIP ()); }
U odjeljku petlje pročitajte vrijednosti senzora i pretvorite ih u Celzijus i Fahrenheit te prikažite te vrijednosti na serijskom monitoru.
petlja praznina () { temp_celsius = (analogRead (A0) * 330.0) / 1023.0; // Za pretvaranje analognih vrijednosti u Celzijus Na našoj ploči imamo 3,3 V i znamo da izlazni napon LM35 varira za 10 mV na svaki Celzijev stupanj porasta / pada. Dakle, (A0 * 3300/10 ) / 1023 = Celzijus temp_fahrenheit = Celzijus * 1,8 + 32,0; Serial.print ("Temperatura ="); Serial.print (temp_celsius); Serial.print ("Celsius");
HTML kôd za prikaz temperature na web stranici:
Prikazujemo temperaturu na web stranici kako bi joj se moglo pristupiti s bilo kojeg mjesta na svijetu putem interneta. HTML kod je vrlo jednostavan; mi samo moramo koristiti funkciju client.println za odjek svakog retka HTML koda, tako da ga preglednik može izvršiti.
Ovaj dio prikazuje HTML kôd za stvaranje web stranice koja prikazuje vrijednost temperature.
WiFiClient klijent = server.available (); client.println ("HTTP / 1.1 200 OK"); client.println ("Vrsta sadržaja: tekst / html"); client.println ("Veza: blizu"); // veza će se zatvoriti nakon završetka odgovora client.println ("Osvježi: 10"); // ažuriranje stranice nakon 10 sekundi client.println (); client.println (""); client.println (""); client.print ("
Digitalni termometar
"); client.print ("Temperatura (* C) = "); client.println (temp_celsius); client.print ("
Temperatura (F) = "); client.println (temp_fahrenheit); client.print ("
"); client.println (" "); kašnjenje (5000); }Radno:
Nakon prijenosa koda pomoću Arduino IDE, otvorite serijski monitor i pritisnite gumb Reset na NodeMCU.

Sada možete vidjeti da je ploča spojena na Wi-Fi mrežu koju ste definirali u kodu, a dobili ste i IP. Kopirajte ovu IP adresu i zalijepite je u bilo koji web preglednik. Provjerite mora li se vaš sustav na kojem koristite web preglednik povezati s istom mrežom.

Vaš je digitalni termometar spreman i temperatura će se automatski osvježavati u web pregledniku nakon svakih 10 sekundi.
Da biste ovoj web stranici učinili dostupnu s Interneta, samo trebate postaviti prosljeđivanje ulaza u svom usmjerivaču / modemu. U nastavku pogledajte cjeloviti kod i Video.
Također provjerite:
- Meteorološka stanica Raspberry Pi: Praćenje vlažnosti, temperature i tlaka putem Interneta
- Praćenje temperature i vlažnosti uživo putem Interneta koristeći Arduino i ThingSpeak
