- Požadované komponenty:
- Snímač teploty LM35:
- Prepojenie LM35 s NodeMCU:
- Vysvetlenie kódu:
- HTML kód na zobrazenie teploty na webovej stránke:
- Pracovné:
V predchádzajúcom tutoriáli Začíname s NodeMCU sme videli, čo je NodeMCU a ako ho môžeme programovať pomocou Arduino IDE . Ako viete, NodeMCU má vo vnútri čip Wi-Fi, takže sa dá pripojiť aj na internet. Je veľmi užitočné zostavovať Projekty internetu vecí. Predtým sme na výrobu IoT teplomerov používali program ThingSpeak s Arduinom, ale tu si vytvoríme vlastnú webovú stránku na zobrazovanie teploty.
V tomto tutoriáli preskúmame viac o tomto zaujímavom MCU a pomaly sa ponárame do sveta vecí internetu pripojením NodeMCU k internetu. Tu použijeme tento modul na získanie izbovej teploty vo webovom prehliadači, tj. Urobíme webový server na zobrazovanie teploty pomocou LM35 ako teplotného snímača.
Požadované komponenty:
- NodeMCU - ESP12
- Snímač teploty LM35
- Nepál
- Konektory muž-žena
Snímač teploty LM35:
LM35 je analógový lineárny snímač teploty. Jeho výstup je úmerný teplote (v stupňoch Celzia). Rozsah prevádzkových teplôt je od -55 ° C do 150 ° C. Výstupné napätie sa mení o 10 mV v reakcii na každý nárast alebo pokles teploty o C. Môže byť napájaný z napájacieho zdroja 5 V aj 3,3 V a pohotovostný prúd je menší ako 60uA.
Pamätajte, že LM35 je k dispozícii v 3 variantoch série, a to série LM35A, LM35C a LM35D. Hlavný rozdiel je v ich rozsahu meraní teploty. Séria LM35D je určená na meranie od 0 do 100 stupňov Celzia, zatiaľ čo séria LM35A je určená na meranie širšieho rozsahu od -55 do 155 stupňov Celzia. Séria LM35C je navrhnutá na meranie od -40 do 110 stupňov Celzia.
LM35 sme už použili na meranie teploty s mnohými ďalšími mikrokontrolérmi:
- Digitálny teplomer využívajúci mikrokontrolér LM35 a 8051
- Meranie teploty pomocou mikrokontroléra LM35 a AVR
- Digitálny teplomer využívajúci Arduino a teplotný senzor LM35
- Meranie izbovej teploty pomocou Raspberry Pi
Prepojenie LM35 s NodeMCU:
Schéma zapojenia LM35 s NodeMCU je uvedená nižšie:
LM35 je analógový snímač, takže musíme prevádzať tento analógový výstup na digitálny. Na tento účel použijeme pin ADC z NodeMCU, ktorý je definovaný ako A0. Pripojíme výstup LM35 k A0.
Na kolíkoch NodeMCU máme výstupné napätie 3,3 V. Budeme teda používať 3,3 V ako Vcc pre LM35.
Vysvetlenie kódu:
Kompletný kód s demonštračným videom je uvedený na konci článku. Tu vysvetľujeme niekoľko častí kódu. Už sme si vysvetlili nahrávanie kódu do MCU pomocou Arduino IDE.
Najskôr musíme pre prístup k funkciám Wi-Fi zahrnúť knižnicu ESP8266wifi.
#include
Potom zadajte svoje meno a heslo Wi-Fi do poľa ssid a heslo . Tiež inicializovali premenné a spustili server na porte 80 s prenosovou rýchlosťou 115200.
const char * ssid = "*********"; // Váš ssid const char * heslo = "***********"; // Vaše heslo float temp_celsius = 0; float temp_fahrenheit = 0; Server WiFiServer (80); void setup () { Serial.begin (115200);
Pripojenie k sieti Wi-Fi sa uskutoční volaním týchto funkcií.
Serial.println (); Serial.println (); Serial.print („pripája sa k“); Serial.println (ssid); WiFi.begin (ssid, heslo);
Nadviazanie spojenia môže trvať niekoľko sekúnd, takže stále ukazujte „…“, kým sa spojenie nezačne. Potom bude systém čakať a kontrolovať pripojenie klienta…
while (WiFi.status ()! = WL_CONNECTED) { oneskorenie (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi je pripojený"); server.begin (); Serial.println ("Server spustený"); Serial.println (WiFi.localIP ()); }
V sekcii slučky načítajte hodnoty snímača a prevádzajte ich na stupne Celzia a Fahrenheita a tieto hodnoty zobrazte na sériovom monitore.
void loop () { temp_celsius = (analogRead (A0) * 330.0) / 1023.0; // Prevod analógových hodnôt na Celzia Na našej doske máme 3,3 V a vieme, že výstupné napätie LM35 sa líši o 10 mV na každý stupeň stúpania / klesania Celzia. Takže, (A0 * 3300/10 ) / 1023 = celsius temp_fahrenheit = celsius * 1,8 + 32,0; Serial.print ("Teplota ="); Serial.print (temp_celsius); Serial.print („Celzia“);
HTML kód na zobrazenie teploty na webovej stránke:
Teplotu zobrazujeme na webovej stránke, aby bola prístupná odkiaľkoľvek na svete cez internet. HTML kód je veľmi jednoduchý; musíme len použiť funkciu client.println na ozvenu každého riadku kódu HTML, aby ho mohol prehliadač vykonať.
Táto časť zobrazuje HTML kód na vytvorenie webovej stránky, ktorá zobrazuje hodnotu teploty.
WiFiClient klient = server.available (); client.println ("HTTP / 1,1 200 OK"); client.println ("Typ obsahu: text / html"); client.println ("Pripojenie: zavrieť"); // pripojenie sa uzavrie po dokončení odpovede client.println ("Refresh: 10"); // aktualizácia stránky po 10 s client.println (); client.println (""); client.println (""); client.print ("
Digitálny teplomer
"); client.print ("Teplota (* C) = "); client.println (temp_celsius); client.print ("
Teplota (F) = "); client.println (temp_fahrenheit); client.print ("
"); client.println (" "); oneskorenie (5 000); }Pracovné:
Po nahraní kódu pomocou Arduino IDE otvorte sériový monitor a stlačte tlačidlo Reset na NodeMCU.
Teraz môžete vidieť, že doska je pripojená k sieti Wi-Fi, ktorú ste definovali vo svojom kóde, a tiež ste dostali adresu IP. Skopírujte túto adresu IP a vložte ju do ľubovoľného webového prehliadača. Uistite sa, že váš systém, na ktorom je spustený webový prehľadávač, by mal byť pripojený k rovnakej sieti.
Váš digitálny teplomer je pripravený a teplota sa automaticky obnoví vo webovom prehliadači po každých 10 sekundách.
Ak chcete, aby bola táto webová stránka prístupná z internetu, musíte vo svojom smerovači / modeme nastaviť presmerovanie portov. Skontrolujte celý kód a video nižšie.
Skontrolujte tiež:
- Meteorologická stanica Raspberry Pi: Monitorovanie vlhkosti, teploty a tlaku cez internet
- Živé sledovanie teploty a vlhkosti cez internet pomocou Arduino a ThingSpeak