
Tartalomjegyzék:
- 1. lépés: Összeszerelés
- 2. lépés: Kód
- 3. lépés: Beállítás
- 4. lépés: Hurok
- 5. lépés: A kérelem nem található
- 6. lépés: A hőmérséklet visszaállítása
- 7. lépés: A páratartalom visszatérése
- 8. lépés: HTML
- 9. lépés: HTML stílus folytatása
- DHT monitor
- 10. lépés: JavaScript
- 11. lépés: A ShowMonitor befejezése
- 12. lépés: Tesztelés
2025 Szerző: John Day | [email protected]. Utoljára módosítva: 2025-01-23 14:48



A mai oktatóanyagban a DHT22 érzékelő hőmérsékletének és páratartalmának leolvasásához ESP-01-t fogunk használni, amely az ESP8266 01 konfigurációban (csak 2 GPIO-val). Mutatok egy elektromos kapcsolási rajzot és egy ESP programozási részt egy Arduino -val. A példa egyszerű, könnyen érthető, és a videóban használt PDF -fájl is az összeszerelést segíti.
A tervezésben ezután az ESP01, a 110 vagy 220 feszültséget 5 voltra konvertáló forrás, a 3v3 feszültségszabályozó és a DHT22, amely az érzékelő. Az okostelefon képernyőjén az ESP által biztosított JavaScript -kód mellett megjelenik a helyi IP -cím. Ez a képernyő ezért megkapja a hőmérséklet és páratartalom paramétereit, és kinyomtatja ezeket az értékeket, amelyek öt másodpercenként frissülnek. Ehhez nincs szüksége semmilyen alkalmazásra a telefonokon és táblagépeken, és ez vonatkozik az Android operációs rendszerre és az IOS -ra is.
1. lépés: Összeszerelés
Az elektromos rendszer meglehetősen egyszerű, csakúgy, mint az összeszerelésről szóló rész, amely az ESP01 -t mint szervert foglalja magában. Az ESPO1 programozása úgy történik, mintha egy Arduino lenne: a C nyelven keresztül. Rámutatok arra, hogy a kód egy része a böngészőből nyomtatódik ki. Ez azt jelenti, hogy JavaScript kódot küld a böngészőnek. Az alábbiakban jobban elmagyarázom, hogyan működik ez.
Visszatérve a kapcsolási rajzra, az ESP01 tápellátására egy 5 voltos kapcsolt forrást tettem, amely egy 3v3 feszültségszabályozóhoz van csatlakoztatva. Még mindig megvan a DHT22 négy tűvel. Ezek egyike, az adatok nem kerülnek felhasználásra. Ehhez azonban felhúzó ellenállás kell.
2. lépés: Kód
Az első lépés a használni kívánt libek beillesztése. A DHT lib hozzáadható a Vázlat opció> Könyvtár bevonása> Könyvtárak kezelése…
A megnyíló ablakban keresse meg a DHT érzékelő könyvtárat.
Ezt követően létrehoztuk az ESP8266WebServer típusú változót, amely a szerverünk lesz, és válaszolni fog a HTTP -kérésekre (80 -as port).
Létrehozunk egy DHT változót is 0 paraméterekkel (ami a GPIO 0 pin) és a típussal (esetünkben DHT22).
#include #include #include #include // Criamos uma variável do tipo ESP8266WebServer que já possui funções // que auxiliam na criação das rotas que o ESP8266 vai responder ESP8266WebServer server (80); // Variável do tipo DHT que possui funções para controlarmos o módulo dht // allowindo ler a temperatura e a umidade DHT dht (0, DHT22);
3. lépés: Beállítás
A beállítás során csak akkor inicializáljuk a sorozatot, hogy legyen naplónk. Ez akkor fordul elő, ha az ESP8266 a soros monitoron keresztül csatlakozik a számítógéphez a soros monitor használatához.
Az ESP8266 -ot csatlakoztatjuk a hálózatunkhoz. Esetünkben a TesteESP hálózatot 87654321 jelszóval használjuk, de ezt az Ön által használt hálózattól függően módosítania kell.
// Inicialize a Serial apenas caso esteja com o ESP8266 conectado ao computador pela serla queira ter um log // para facilititar saber o que está acontecendo com o ESP8266 Serial.begin (115200); // Instrução para o ESP8266 se conectar à rede. // No nosso caso o nome da rede é TesteESP e a senha é 87654321. // Você deve alterar com as informationções da sua rede WiFi.begin ("TesteESP", "87654321"); // Visszajelzés caso esteja usando o Monitor Serial Serial.println (""); Serial.print ("Conectando");
Várjuk, amíg az ESP8266 csatlakozik a hálózathoz, és miután csatlakozik, elküldjük a hálózati beállításokat. Változtasson a hálózatának megfelelően.
// Esperamos até que o módulo se conecte à rede while (WiFi.status ()! = WL_CONNECTED) {delay (500); Soros.nyomtatás ("."); } // IP fixo konfigurálása. Você pode alterar conforme a sua rede IPAddress ip (192, 168, 3, 11); IPAddress gateway (192, 168, 3, 1); IPAddress alhálózat (255, 255, 255, 0); Serial.print ("Configurando IP fixo para:"); Soros.println (ip); // Envia a configuração WiFi.config (ip, átjáró, alhálózat);
A következő parancsok csak abban az esetben adhatók meg, ha az ESP8266 készüléket soros kapcsolaton keresztül csatlakoztatta a számítógéphez, így visszajelzést kaphat a Soros figyelőtől.
Az ESP8266 által kapott IP -címen ellenőrizheti, hogy megegyezik -e a beállításokkal.
// Mostramos no Monitor Serial o ip com o qual o esp8266 se conectou para ver se está de acordo com o que configuraramos Serial.println (""); Serial.println ("Connectado"); Serial.print ("IP:"); Serial.println (WiFi.localIP ());
Itt kezdjük el meghatározni, hogy mely funkciókat hajtjuk végre az egyes kérésekhez.
Az alábbi utasításban minden alkalommal, amikor az ESP8266 GET típusú HTTP kérést kap az útvonalon / hőmérsékleten, a getTemperature függvény kerül végrehajtásra.
// Aqui definimos qual a função será executada para o caminho e tipo dado. // Nesse caso quando houver uma requisição http do tipo GET no caminho https://192.168.2.8/temperature // (pode ser outro ip dependendo da sua configuração) a fun getã getTemperature será executada server.on ("/hőmérséklet", HTTP_GET, getTemperature);
Ebben a másik utasításban minden alkalommal, amikor az ESP8266 GET típusú HTTP -kérést kap az útvonalon / páratartalomban, a getHumidity függvény kerül végrehajtásra.
// Nesse outo caso quando houver uma requisição http do tipo GET no caminho https://192.168.2.8/humidity // (pode ser outro ip dependendo da sua configuração) a função getHumidity será executab server.on ("/kosteus", HTTP_GET, getHumidity);
Ebben az utasításban minden alkalommal, amikor az ESP8266 GET típusú HTTP kérést kap az elérési útban / monitorban, a showMonitor függvény kerül végrehajtásra.
A showMonitor funkció felelős a fő html visszaadásáért, amely megjeleníti a hőmérséklet és a páratartalom értékeit.
// Nesse caso quando houver uma requisição http do tipo GET no caminho https://192.168.2.8/monitor // (pode ser outro ip dependendo da sua configuração) a função showMonitor será executab. // Esta função retornará a página main que mostrará os valores // da temperatura e da umidade e recarregará essas information of temppos em tempos server.on ("/monitor", HTTP_GET, showMonitor);
Itt található a függvénydefiníció, amelyet akkor kell végrehajtani, ha a kért útvonal nem található.
// Aqui definimos qual função será executada caso o caminho que o cliente requisitou não tenha sido registrado server.onNotFound (onNotFound);
Itt inicializáljuk a szerverünket, amelyet korábban a 80 -as porton deklaráltunk.
Ez a beállítás vége.
// Inicializamos o server que criamos na porta 80 server.begin (); Serial.println ("Servidor HTTP iniciado"); }
4. lépés: Hurok
A lib ESP8266WebServernek köszönhetően nem kell ellenőriznünk a ciklusban, hogy vannak -e ügyfelek, és mi a kérési útvonal. Csak meg kell hívnunk a handleClient () -ot, és az objektum ellenőrzi, hogy az ügyfél kér -e valamit, és átirányít a korábban regisztrált megfelelő funkcióra.
void loop () {// Verifica se há alguma requisição de algum cliente server.handleClient (); }
5. lépés: A kérelem nem található
Ez az a funkció, amelyet korábban bejelentkeztünk végrehajtani, amikor az ügyfél olyan kéréseket tesz, amelyeket még nem regisztráltak.
A függvény csak a 404 -es kódot (az alapértelmezett kód arra az esetre, ha az erőforrás nem található), a visszaadott adattípust (egyszerű szöveg esetén) és a „Not Found” szavakat adja vissza.
// Função que definimos para ser chamada quando o caminho requisitado não foi registerrado void onNotFound () {server.send (404, "text/plain", "Not Found"); }
6. lépés: A hőmérséklet visszaállítása
Ez az a funkció, amely visszaad egy json -t a hőmérsékleti adatokkal, amikor a kliens GET kérést küld a / hőmérsékletnél.
// Função que definimos que será executada quando o cliente fizer uma requisição // do tipo GET no caminho https://192.168.2.8/temperature (pode ser outro ip dependendo da sua configuração) void getTemperature () {// Fazemos a leitura da temperatura através do módulo dht float t = dht.readTemperature (); // Cria um json com os dados da temperatura String json = "{" hőmérséklet / ":"+String (t)+"}"; // Envia o json para o cliente com o código 200, que é o código quando a requisição foi realizada com sucesso server.send (200, "application/json", json); }
7. lépés: A páratartalom visszatérése
Ez az a funkció, amely visszaad egy json -t a nedvességadatokkal, amikor a kliens GET kérést tesz / páratartalomban.
// Função que definimos que será executada quando o cliente fizer uma requisição // do tipo GET no caminho https://192.168.2.8/humidity (pode ser outro ip dependendo da sua configuração) void getHumidity () {// Fazemos a leitura da umidade através do módulo dht float h = dht.readHumidity (); // Cria um json com os dados da umidade String json = "{" páratartalom / ":"+String (h)+"}"; // Envia o json para o cliente com o código 200, que é o código quando a requisição foi realizada com sucesso server.send (200, "application/json", json); }
8. lépés: HTML
Ez az a funkció, amely visszaadja a html -t, amikor az ügyfél hozzáférés / monitorhoz megy. Ez az oldal a hőmérséklet és a páratartalom értékeit mutatja, és időről időre újratölti az adatokat. Az a rész, amely a és a stílus között van
meghatározza az oldal megjelenését, és tetszés szerint módosíthatja.
// Função que definimos que será executada quando o cliente fizer uma requisição // do tipo GET no caminho https://192.168.2.8/monitor (pode ser outro ip dependendo da sua configuração) void showMonitor () {String html = "" "" ""
"DHT monitor"
"test{"
"párnázás: 35 képpont;"
"háttérszín: #222222;" "}"
9. lépés: HTML stílus folytatása
"h1 {" "szín: #FFFFFF;" "font-family: sans-serif;" "}" "p {" "szín: #EEEEEE;" "font-family: sans-serif;" "betűméret: 18 képpont;" "}" ""
Itt van a html fő része. Ebben két bekezdés található, amelyek a hőmérsékletet és a páratartalmat mutatják. Ügyeljen a bekezdések azonosítóira, mert rajtuk keresztül fogjuk visszaállítani ezeket a bekezdéseket, hogy a követelmények után megadjuk a hőmérséklet és a páratartalom értékét.
DHT monitor
Hőfok:
Páratartalom:
10. lépés: JavaScript
Itt kezdjük meghatározni azt a szkriptet, amely időről időre leolvassa a hőmérséklet és a páratartalom értékét. A refresh () függvény meghívja a refreshTemperature () és a refreshHumdity () függvényeket, a setInterval pedig 5000 ezredmásodpercenként (5 másodpercenként) hívja fel a frissítési funkciót.
"Frissítés();" "setInterval (frissítés, 5000);" "function refresh ()" "" "" refreshTemperature () "" "refreshHumidity ();" "}"
A refreshTemperature () függvény kérést küld a / hőmérsékletnél, elemzi a json -ban található információkat, és hozzáadja a bekezdéshez az id hőmérsékletet.
"function refreshTemperature ()" "" "" var xmlhttp = new XMLHttpRequest (); " "xmlhttp.onreadystatechange = function () {" "if (xmlhttp.readyState == XMLHttpRequest. DONE && xmlhttp.status == 200) {" "document.getElementById ('hőmérséklet'). internalHTML = 'Hőmérséklet:' + JSON. parse (xmlhttp.responseText).temperature + 'C'; " "}" "};" "xmlhttp.open ('GET', 'https://192.168.2.8/temperature', igaz);" "xmlhttp.send ();" "}"
A refreshHumidity () függvény kérést küld a / drėgmére, elemzi a json -ban található információkat, és hozzáadja a bekezdéshez az id páratartalmat. Ezzel befejezzük a html -t, amelyet elküldünk a kérésekbe a / monitoron.
"function refreshHumidity ()" "" "" var xmlhttp = new XMLHttpRequest (); " "xmlhttp.onreadystatechange = function () {" "if (xmlhttp.readyState == XMLHttpRequest. DONE && xmlhttp.status == 200) {" "document.getElementById ('páratartalom'). internalHTML = 'Nedvesség:' + JSON. parse (xmlhttp.responseText). páratartalom + '%'; " "}" "};" "xmlhttp.open ('GET', 'https://192.168.2.8/humidity', true);" "xmlhttp.send ();" "}"
"";
11. lépés: A ShowMonitor befejezése
Most, hogy az elküldendő html karakterlánc készen áll, elküldhetjük az ügyfélnek. Ezzel befejeződik a showMonitor funkció és a kód.
// Envia o html para o cliente com o código 200, que é o código quando a requisição foi realizada com sucesso server.send (200, "text/html", html); }
12. lépés: Tesztelés

Most nyissa meg a böngészőt, és írja be a https://192.168.2.8/monitor címet (a konfigurációtól függően szükség lehet egy másik ip -re).
Ajánlott:
Hőmérséklet és páratartalom monitorozása AM2301 segítségével a NodeMCU és Blynk rendszeren: 3 lépés

Hőmérséklet és páratartalom figyelése az AM2301 segítségével a NodeMCU & Blynk -en: Nagyon jól ismert tény, hogy az iparág legtöbb függőleges területén a hőmérséklet, páratartalom, nyomás, levegőminőség, vízminőség stb. riasztórendszereknek kell működniük, amikor az érték
ESP8266 és Visuino: DHT11 Hőmérséklet és páratartalom webszerver: 12 lépés

ESP8266 és Visuino: DHT11 hőmérséklet és páratartalom webszerver: Az ESP8266 modulok nagyszerű, alacsony költségű önálló vezérlők beépített Wi-Fi-vel, és már számos utasítást készítettem róluk. A DTH11/DTH21/DTH22 és AM2301 nagyon népszerű kombinált hőmérséklet és a páratartalom Arduino érzékelőit, és készítettem egy számot
DHT hőmérséklet és páratartalom monitorozás az ESP8266 és az AskSensors IoT platform használatával: 8 lépés

DHT hőmérséklet- és páratartalom -figyelés az ESP8266 és az AskSensors IoT Platform használatával: Egy korábbi utasításban lépésről lépésre ismertettem az ESP8266 nodeMCU és az AskSensors IoT platform használatának megkezdéséhez. Ebben az oktatóanyagban DHT11 érzékelőt csatlakoztatok az MCU csomóponthoz. A DHT11 általánosan használt hőmérséklet és páratartalom
ESP8266 Nodemcu hőmérséklet -figyelés DHT11 használatával a helyi webszerveren - Szobahőmérséklet és páratartalom beállítása a böngészőben: 6 lépés

ESP8266 Nodemcu hőmérséklet -figyelés DHT11 használatával a helyi webszerveren | Szobahőmérséklet és páratartalom beállítása böngészőjében: Sziasztok, ma páratartalmat és amp; hőmérséklet -felügyeleti rendszer ESP 8266 NODEMCU & DHT11 hőmérséklet -érzékelő. A hőmérsékletet és a páratartalmat a DHT11 Sensor & böngészőben látható, hogy melyik weboldalt fogják kezelni
ESP8266 NodeMCU hozzáférési pont (AP) webszerverhez DT11 hőmérséklet -érzékelővel és nyomtatási hőmérséklet és páratartalom a böngészőben: 5 lépés

ESP8266 NodeMCU hozzáférési pont (AP) webszerverhez DT11 hőmérséklet -érzékelővel és nyomtatási hőmérséklet és páratartalom a böngészőben: Sziasztok srácok, a legtöbb projektben ESP8266 -ot használunk, és a legtöbb projektben ESP8266 -ot használunk webszerverként, így az adatok hozzáférhetők bármilyen eszköz wifi -n keresztül az ESP8266 által üzemeltetett webszerver elérésével, de az egyetlen probléma az, hogy működő útválasztóra van szükségünk