- Požadované komponenty:
- Snímač teploty LM35:
- Propojení LM35 s NodeMCU:
- Vysvětlení kódu:
- HTML kód pro zobrazení teploty na webové stránce:
- Pracovní:
V předchozím kurzu Začínáme s NodeMCU jsme viděli, co je NodeMCU a jak jej můžeme naprogramovat pomocí Arduino IDE . Jak víte, NodeMCU má uvnitř čip Wi-Fi, takže se může také připojit k internetu. Je velmi užitečné vytvářet projekty IoT. Dříve jsme použili ThingSpeak s Arduinem k výrobě IoT teploměru, ale zde si vytvoříme vlastní webovou stránku pro zobrazení teploty.
V tomto tutoriálu prozkoumáme více o tomto zajímavém MCU a pomalu se ponoříme do světa věcí internetu připojením NodeMCU k internetu. Zde použijeme tento modul k získání pokojové teploty ve webovém prohlížeči, tj. Vytvoříme webový server, který bude zobrazovat teplotu pomocí LM35 jako teplotního čidla.
Požadované komponenty:
- NodeMCU - ESP12
- Snímač teploty LM35
- Nepájivá deska
- Konektory muž-žena
Snímač teploty LM35:
LM35 je analogový lineární teplotní senzor. Jeho výkon je úměrný teplotě (ve stupních Celsia). Rozsah provozních teplot je od -55 ° C do 150 ° C. Výstupní napětí se mění o 10 mV v reakci na každý nárůst nebo pokles teploty o C. Může být provozován ze zdroje 5V i 3,3V a pohotovostní proud je menší než 60uA.
Všimněte si, že LM35 je k dispozici ve 3 variantách řady, jmenovitě řady LM35A, LM35C a LM35D. Hlavní rozdíl je v jejich rozsahu měření teploty. Řada LM35D je navržena pro měření 0 až 100 stupňů Celsia, zatímco řada LM35A je určena pro měření širšího rozsahu -55 až 155 stupňů Celsia. Řada LM35C je navržena pro měření od -40 do 110 stupňů Celsia.
LM35 jsme již použili k měření teploty u mnoha dalších mikrokontrolérů:
- Digitální teploměr využívající mikrokontrolér LM35 a 8051
- Měření teploty pomocí LM35 a mikrokontroléru AVR
- Digitální teploměr využívající Arduino a teplotní senzor LM35
- Měření teploty v místnosti s Raspberry Pi
Propojení LM35 s NodeMCU:
Schéma zapojení pro připojení LM35 k NodeMCU je uvedeno níže:
LM35 je analogový snímač, takže musíme převést tento analogový výstup na digitální. K tomu používáme pin ADC NodeMCU, který je definován jako A0. Spojíme výstup LM35 s A0.
Máme 3,3 V jako výstupní napětí na pinech NodeMCU. Budeme tedy používat 3,3 V jako Vcc pro LM35.
Vysvětlení kódu:
Kompletní kód s ukázkovým videem je uveden na konci článku. Zde vysvětlujeme několik částí kódu. Již jsme vysvětlili, že chcete nahrát kód do MCU pomocí Arduino IDE.
Nejprve musíme zahrnout knihovnu ESP8266wifi pro přístup k funkcím Wi-Fi.
#zahrnout
Poté zadejte své jméno a heslo Wi-Fi do pole ssid a heslo . Také inicializujte proměnné a spusťte server na portu 80 s přenosovou rychlostí 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);
Spojení Wi-Fi je navázáno voláním těchto funkcí.
Serial.println (); Serial.println (); Serial.print ("Připojení k"); Serial.println (ssid); WiFi.begin (ssid, heslo);
Připojení může trvat několik sekund, takže se bude zobrazovat „…“, dokud se připojení nenaváže. Poté bude systém čekat a kontrolovat připojení klienta…
while (WiFi.status ()! = WL_CONNECTED) { zpoždění (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi je připojeno"); server.begin (); Serial.println ("Server spuštěn"); Serial.println (WiFi.localIP ()); }
V části smyčky načtěte hodnoty snímače a převeďte je na Celsia a Fahrenheita a zobrazte tyto hodnoty na sériovém monitoru.
void loop () { temp_celsius = (analogRead (A0) * 330.0) / 1023.0; // Převod analogových hodnot na Celsius Na naší desce máme 3,3 V a víme, že výstupní napětí LM35 se mění o 10 mV na každý stupeň Celsia. Takže (A0 * 3300/10 ) / 1023 = celsius temp_fahrenheit = celsius * 1,8 + 32,0; Serial.print ("Teplota ="); Serial.print (temp_celsius); Serial.print ("Celsius");
HTML kód pro zobrazení teploty na webové stránce:
Zobrazujeme teplotu na webové stránce, aby byla přístupná odkudkoli na světě prostřednictvím internetu. HTML kód je velmi jednoduchý; musíme použít funkci client.println k ozvěně každého řádku kódu HTML, aby jej mohl prohlížeč spustit.
Tato část zobrazuje HTML kód pro vytvoření webové stránky, která zobrazuje hodnotu teploty.
WiFiClient client = server.available (); client.println ("HTTP / 1,1 200 OK"); client.println ("Typ obsahu: text / html"); client.println ("Připojení: zavřít"); // připojení bude ukončeno po dokončení odpovědi client.println ("Refresh: 10"); // aktualizovat stránku po 10 s client.println (); client.println (""); client.println (""); client.print ("
Digitální teploměr
"); client.print ("Teplota (* C) = "); client.println (temp_celsius); client.print ("
Teplota (F) = "); client.println (temp_fahrenheit); client.print ("
"); client.println (" "); delay (5000); }Pracovní:
Po nahrání kódu pomocí Arduino IDE otevřete sériový monitor a stiskněte tlačítko Reset na NodeMCU.
Nyní vidíte, že je deska připojena k síti Wi-Fi, kterou jste definovali ve svém kódu, a také jste dostali IP. Zkopírujte tuto adresu IP a vložte ji do libovolného webového prohlížeče. Ujistěte se, že váš systém, na kterém používáte webový prohlížeč, by měl být připojen ke stejné síti.
Váš digitální teploměr je připraven a teplota se automaticky obnoví ve webovém prohlížeči po každých 10 s.
Abyste tuto webovou stránku zpřístupnili z internetu, musíte ve svém routeru / modemu nastavit přesměrování portů. Níže zkontrolujte kompletní kód a video.
Zkontrolujte také:
- Meteorologická stanice Raspberry Pi: Monitorování vlhkosti, teploty a tlaku přes internet
- Živé sledování teploty a vlhkosti přes internet pomocí Arduino a ThingSpeak