- Szükséges alkatrészek:
- LM35 hőmérséklet-érzékelő:
- Az LM35 csatlakoztatása a NodeMCU-hoz:
- Kód Magyarázat:
- HTML-kód a hőmérséklet megjelenítéséhez a weboldalon:
- Dolgozó:
Az előző Ismerkedés a NodeMCU oktatóanyaggal láttuk, hogy mi a NodeMCU, és hogyan programozhatjuk az Arduino IDE használatával . Mint tudják, a NodeMCU-ban van Wi-Fi chip, így csatlakozni tud az internethez is. Nagyon hasznos az IoT-projektek építése. Korábban a ThingSpeak-ot használtuk az Arduino-val az IoT hőmérőjének elkészítéséhez, de itt létrehozzuk a saját weboldalunkat a hőmérséklet megjelenítésére.
Ebben az oktatóanyagban többet fogunk megtudni erről az érdekes MCU-ról, és lassan elmerülünk a dolgok internetében a NodeMCU és az Internet összekapcsolásával. Itt ezt a modult fogjuk használni a szobahőmérséklet megadására a webböngészőben, azaz egy webszervert készítünk a hőmérséklet megjelenítésére az LM35 hőmérséklet-érzékelőként.
Szükséges alkatrészek:
- CsomópontMCU - ESP12
- LM35 hőmérséklet-érzékelő
- Kenyérlemez
- Férfi-női csatlakozók
LM35 hőmérséklet-érzékelő:
Az LM35 analóg lineáris hőmérséklet-érzékelő. Kimenete arányos a hőmérséklettel (Celsius-fokban). Az üzemi hőmérséklet-tartomány -55 ° C és 150 ° C között van. A kimeneti feszültség 10 mV-kal változik, reagálva minden o C hőmérséklet-emelkedésre vagy -esésre. 5 V-os és 3,3 V-os tápfeszültségről működtethető, és a készenléti áram kevesebb, mint 60uA.
Ne feledje, hogy az LM35 3 sorozatváltozatban kapható, nevezetesen az LM35A, LM35C és LM35D sorozatokban. A fő különbség a hőmérséklet-mérés tartományában van. Az LM35D sorozatot 0 és 100 Celsius fok közötti mérésre tervezték, ahol az LM35A sorozat szélesebb tartományának -55 és 155 Celsius fok közötti mérésére készült. Az LM35C sorozatot -40 és 110 Celsius fok közötti mérésre tervezték.
Az LM35-et számos más mikrovezérlővel már használtuk a hőmérséklet mérésére:
- Digitális hőmérő LM35 és 8051 mikrokontrollerrel
- Hőmérsékletmérés LM35 és AVR mikrokontrollerrel
- Digitális hőmérő Arduino és LM35 hőmérséklet érzékelővel
- Szobahőmérséklet mérés Raspberry Pi-vel
Az LM35 csatlakoztatása a NodeMCU-hoz:
Az LM35 és a NodeMCU összekapcsolásának kapcsolási rajza az alábbiakban látható:
Az LM35 analóg érzékelő, ezért ezt az analóg kimenetet digitálisra kell átalakítanunk. Ehhez a NodeMCU ADC pinjét használjuk, amelyet A0-ként határozunk meg. Az LM35 kimenetét összekapcsoljuk az A0-val.
A NodeMCU csapjain 3,3 V kimeneti feszültség van. Tehát 3,3 V-ot fogunk Vcc-ként használni az LM35-hez.
Kód Magyarázat:
A teljes kód a bemutató videóval a cikk végén található. Itt elmagyarázzuk a kód néhány részét. Már elmagyaráztuk, hogyan kell feltölteni a kódot az MCU-ba az Arduino IDE segítségével.
Először hozzá kell adnunk az ESP8266wifi könyvtárat a Wi-Fi funkciók eléréséhez.
#include
Ezután írja be a Wi-Fi nevét és jelszavát a ssid és jelszó mezőbe. Inicializálja a változókat, és indítsa el a szervert a 80-as porton 115200 átviteli sebességgel.
const char * ssid = "*********"; // A ssid const char * password = "***********"; // A jelszó változó temp_celsius = 0; float temp_fahrenheit = 0; WiFiServer szerver (80); void setup () { Soros.kezdés (115200);
A Wi-Fi kapcsolat ezen funkciók meghívásával jön létre.
Soros.println (); Soros.println (); Serial.print ("Csatlakozás a következőkhöz"); Soros.println (ssid); WiFi.begin (ssid, jelszó);
A kapcsolat létrehozása néhány másodpercet vehet igénybe, így a „…” jelzés látható addig, amíg a kapcsolat nem jön létre. Ezután a rendszer továbbra is várja és ellenőrzi, hogy az ügyfél csatlakozzon-e…
while (WiFi.status ()! = WL_CONNECTED) { késleltetés (500); Soros.nyomtatás ("."); } Soros.println (""); Serial.println ("A WiFi csatlakozik"); server.begin (); Serial.println ("A szerver elindult"); Serial.println (WiFi.localIP ()); }
A hurok szakaszban olvassa el az érzékelő értékeit, és alakítsa át Celsiusra és Fahrenheitre, és jelenítse meg ezeket az értékeket a soros monitoron.
void loop () { temp_celsius = (analogRead (A0) * 330,0) / 1023,0; // Az analóg értékek konvertálása Celsiusra A táblánkon 3,3 V van, és tudjuk, hogy az LM35 kimeneti feszültsége 10 mV-kal változik minden Celsius-fok emelkedés / csökkenés esetén. Tehát, (A0 * 3300/10 ) / 1023 = celsius temp_fahrenheit = celsius * 1,8 + 32,0; Soros nyomtatás ("Hőmérséklet ="); Soros nyomtatás (temp_celsius); Soros nyomtatás ("Celsius");
HTML-kód a hőmérséklet megjelenítéséhez a weboldalon:
Megjelenítjük a hőmérsékletet egy weboldalon, hogy az az interneten keresztül a világ bármely pontjáról elérhető legyen. A HTML kód nagyon egyszerű; csak a client.println függvényt kell használnunk a HTML-kód egyes sorainak visszhangozásához, hogy a böngésző végrehajthassa azokat.
Ez a rész egy HTML-kódot mutat be egy weboldal létrehozásához, amely megjeleníti a hőmérséklet értékét.
WiFiClient kliens = server.available (); client.println ("HTTP / 1.1 200 OK"); client.println ("Tartalom-típus: szöveg / html"); client.println ("Kapcsolat: bezár"); // a kapcsolat le lesz zárva a válasz kliens befejezése után.println ("Frissítés: 10"); // 10 másodperc után frissítse az oldalt client.println (); client.println (""); client.println (""); client.print ("
Digitális hőmérő
"); client.print ("Hőmérséklet (* C) = "); client.println (temp_celsius); client.print ("
Hőmérséklet (F) = "); client.println (temp_fahrenheit); client.print ("
"); client.println (" "); delay (5000); }Dolgozó:
Miután feltöltötte a kódot az Arduino IDE segítségével, nyissa meg a soros monitort, és nyomja meg a Nullázás gombot a NodeMCU-n.
Most láthatja, hogy a kártya csatlakozik a Wi-Fi hálózathoz, amelyet a kódban definiált, és megkapta az IP-t is. Másolja ezt az IP-címet, és illessze be bármelyik webböngészőbe. Győződjön meg arról, hogy a webböngészőt futtató rendszernek ugyanahhoz a hálózathoz kell csatlakoznia.
Digitális hőmérője készen áll, és a hőmérséklet minden 10 másodperc után automatikusan frissül a webböngészőben.
Ahhoz, hogy ezt a weboldalt az internetről elérhetővé tegye, csak be kell állítania a Port Forwarding funkciót az útválasztóban / modemben. Ellenőrizze az alábbi kódot és videót.
Ellenőrizze még:
- Raspberry Pi Weather Station: Páratartalom, hőmérséklet és nyomás figyelése az interneten keresztül
- Élő hőmérséklet- és páratartalom-figyelés az interneten keresztül Arduino és ThingSpeak segítségével