Obsah:
- Krok 1: Montáž
- Krok 2: Kód
- Krok 3: Nastavenie
- Krok 4: Slučka
- Krok 5: Žiadosť nebola nájdená
- Krok 6: Vrátenie teploty
- Krok 7: Návrat vlhkosti
- Krok 8: HTML
- Krok 9: Pokračovanie štýlu HTML
- Monitor DHT
- Krok 10: JavaScript
- Krok 11: Dokončenie programu ShowMonitor
- Krok 12: Testovanie
Video: ESP8266: Ako monitorovať teplotu a vlhkosť: 12 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:00
V dnešnom návode použijeme na čítanie teploty a vlhkosti senzora DHT22 ESP-01, čo je ESP8266 v konfigurácii 01 (iba s 2 GPIO). Ukážem vám elektrickú schému a programovaciu časť ESP s Arduinom. Príklad je jednoduchý, zrozumiteľný a je dodávaný s dokumentom PDF použitým vo videu na pomoc pri montáži.
V návrhu máme potom ESP01, zdroj, ktorý prevádza 110 alebo 220 na 5 voltov, regulátor napätia 3v3 a DHT22, ktorý je snímačom. Na obrazovke smartfónu budete mať okrem kódu JavaScript poskytovaného ESP aj miestnu IP adresu. Táto obrazovka preto prijme parametre teploty a vlhkosti a vytlačí tieto hodnoty, ktoré sa budú aktualizovať každých päť sekúnd. Na to nebudete potrebovať žiadne aplikácie v telefónoch a tabletoch, a to platí pre operačný systém Android aj iOS.
Krok 1: Montáž
Elektrická schéma je pomerne jednoduchá, rovnako ako časť o zostave, ktorá bude zahŕňať ESP01 ako server. ESPO1 bude naprogramovaný, ako keby to bolo Arduino: prostredníctvom jazyka C. Upozorňujem, že časť kódu je vytlačená z prehliadača. To znamená, že odosiela kód JavaScript do prehliadača. Ďalej podrobnejšie vysvetlím, ako to funguje.
Keď sa vrátim k schéme zapojenia, vložil som 5-voltový spínaný zdroj pripojený k regulátoru napätia 3v3 na napájanie ESP01. Stále tu máme DHT22 so štyrmi kolíkmi. Jeden z nich, údaje, sa nepoužíva. Na to však potrebujete pull up odpor.
Krok 2: Kód
Prvým krokom je zahrnutie končatín, ktoré použijeme. Knižnicu DHT lib je možné pridať pomocou možnosti Náčrt> Zahrnúť knižnicu> Spravovať knižnice …
V okne, ktoré sa otvorí, vyhľadajte knižnicu senzorov DHT.
Potom sme vytvorili premennú typu ESP8266WebServer, ktorá bude naším serverom a bude reagovať na požiadavky HTTP (port 80).
Vytvoríme tiež premennú DHT s parametrami 0 (čo je kolík GPIO 0) a typ (v našom prípade 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 to tipo DHT que possui funções para controlarmos o módulo dht // permitindo ler a temperatura e and umidade DHT dht (0, DHT22);
Krok 3: Nastavenie
V nastavení budeme inicializovať iba sériové číslo, aby sme mali protokol. K tomu dôjde, ak je ESP8266 pripojený k počítaču prostredníctvom sériového portu, aby sa mohol používať sériový monitor.
Zabezpečíme, aby sa ESP8266 pripojil k našej sieti. V našom prípade používame sieť TesteESP s heslom 87654321, ale budete to musieť zmeniť podľa siete, ktorú používate.
// Inicializujte a Serial apenas caso esteja com o ESP8266 conectado ao computador pela serla queira ter um log // para facilitar saber o que está acontecendo com o ESP8266 Serial.begin (115200); // Inštrukcie k ESP8266 sú pripojené. // Žiadne údaje o teste TesteESP e a senha 87654321. // Viacej alternatívnych odkazov ako informácie o WiFi.begin („TesteESP“, „87654321“); // Spätná väzba na to, čo môžete použiť o Monitor Serial Serial.println (""); Serial.print ("Conectando");
Čakáme, kým sa ESP8266 pripojí k sieti, a potom sa pripojí, pošleme nastavenia siete. Zmeňte podľa svojej siete.
// Esperamos até que o módulo with conecte à rede while (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print ("."); } // Konfigurácia IP adresy. Viac zmien je v súlade s IP adresou ip (192, 168, 3, 11); Brána IPAddress (192, 168, 3, 1); Podsieť IPAddress (255, 255, 255, 0); Serial.print ("Konfigurácia fixnej IP adresy:"); Serial.println (ip); // Envia a configuração WiFi.config (ip, gateway, subnet);
Nasledujúce príkazy sú iba v prípade, že máte ESP8266 pripojený k počítaču prostredníctvom sériového čísla, aby ste mali spätnú väzbu zo sériového monitora.
Môžete skontrolovať IP, ktorú ESP8266 získal, a zistiť, či je rovnaká ako v nastaveniach.
// Mostramos no Monitor Serial o ip com o qual o esp8266 s conectou para ver se está de acordo com o que configuramos Serial.println (""); Serial.println („Connectado“); Serial.print ("IP:"); Serial.println (WiFi.localIP ());
Tu začneme definovať, ktoré funkcie sa budú vykonávať pre každú požiadavku.
V nižšie uvedených pokynoch sa vždy, keď ESP8266 prijme požiadavku HTTP typu GET na cestu / teplotu, vykoná funkcia getTemperature.
// Definícia a kvalita vykonávania jednotlivých činností a tipov. // Viac informácií o https://192.168.2.8/temperature // (pode ser outro ip dependendo da sua configuração) a fun getãem getTemperature sera executada server.on ("/teplota", HTTP_GET, getTemperature);
V tomto inom vyhlásení sa vždy, keď ESP8266 prijme požiadavku HTTP typu GET na cestu / vlhkosť, spustí funkcia getHumidity.
// Viac informácií o https://192.168.2.8/humidity // (pod sériovým nastavením závisí od konfigurácie) a získaní konfigurácie getHumidity zo spustiteľného servera.on ("/vlhkosť", HTTP_GET, getHumidity);
V tejto inštrukcii bude zakaždým, keď ESP8266 prijme požiadavku HTTP typu GET na cestu / monitor, spustená funkcia showMonitor.
Funkcia showMonitor je zodpovedná za vrátenie hlavného html, ktorý bude zobrazovať hodnoty teploty a vlhkosti.
// Viac informácií o https://192.168.2.8/monitor // (pode ser outro ip dependendo da sua configuração) a funcao showMonitor sera executada. // Hlavné funkcie a hlavné hlavné hodnoty valores // teplota a rozsah údajov o tempách server temp.on ("/monitor", HTTP_GET, showMonitor);
Tu je definícia funkcie, ktorá by sa mala vykonať, ak sa požadovaná cesta nenájde.
// Definícia všetkých dôležitých funkcií spustenia servera alebo servera o registrácii servera.onNotFound (onNotFound);
Tu inicializujeme náš server, ktorý sme predtým deklarovali na porte 80.
Toto je koniec nastavenia.
// Inicializamos o server quemos na porta 80 server.begin (); Serial.println ("Spustenie servera HTTP"); }
Krok 4: Slučka
Vďaka serveru lib ESP8266WebServer nemusíme v slučke kontrolovať, či existujú klienti a aká je cesta k žiadosti. Stačí zavolať handleClient () a objekt skontroluje, či nejaký klient robí nejaké požiadavky, a presmeruje sa na zodpovedajúcu funkciu, ktorú sme predtým zaregistrovali.
void loop () {// Overenie všetkých alguma požiadaviek na ďalší klientský server.handleClient (); }
Krok 5: Žiadosť nebola nájdená
Túto funkciu sme v minulosti prihlásili na spustenie, keď klient predloží akékoľvek požiadavky, ktoré neboli zaregistrované.
Funkcia vracia iba kód 404 (predvolený kód pre prípad, keď sa zdroj nenájde), vrátený typ údajov (v prípade obyčajného textu) a text so slovami „Nenašiel sa“.
// Definícia všetkých parametrov, ktoré môžu byť potrebné pre registráciu alebo zrušenie platnosti onNotFound () {server.send (404, "text/plain", "Not Found"); }
Krok 6: Vrátenie teploty
Toto je funkcia, ktorá vráti json s teplotnými údajmi, keď klient zadá požiadavku GET pri / teplote.
// Definície všetkých sérií vykonaných klientskych operácií alebo požiadaviek // // Do you get NO CAMINO 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 = "{" temperature / ":"+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); }
Krok 7: Návrat vlhkosti
Toto je funkcia, ktorá vráti json s údajmi o vlhkosti, keď klient zadá požiadavku GET in / vlhkosť.
// Mnoho funkcií, ktoré môžete vykonať, alebo o ktorých klientoch požiadate o prijatie // urobte všetko, čo potrebujete 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 = "{" vlhkost / ":"+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); }
Krok 8: HTML
Toto je funkcia, ktorá vráti html, keď klient prejde na prístup / monitor. Táto stránka zobrazuje hodnoty teploty a vlhkosti a čas od času načítava údaje. Časť, ktorá je medzi a a štýl>
definuje vzhľad stránky a môžete ho ľubovoľne meniť.
// Definícia všetkých sérií vykonaných klientskych operácií alebo požiadavka na vykonanie // // nezískať žiadne https://192.168.2.8/monitor (pode ser outro ip dependendo da sua configuração) void showMonitor () {String html = "" "" ""
"Monitor DHT"
"telo {"
"polstrovanie: 35 pixelov;"
"farba pozadia: #222222;" "}"
Krok 9: Pokračovanie štýlu HTML
"h1 {" "farba: #FFFFFF;" "font-family: sans-serif;" "}" "p {" "farba: #EEEEEE;" "font-family: sans-serif;" "veľkosť písma: 18 pixelov;" "}" ""
Tu máme hlavnú časť html. V ňom máme dva odseky, ktoré zobrazia teplotu a vlhkosť. Dávajte pozor na identifikátory odsekov, pretože prostredníctvom nich tieto odstavce obnovíme, aby sme po rekvizíciách zadali hodnoty teploty a vlhkosti.
Monitor DHT
Teplota:
Vlhkosť:
Krok 10: JavaScript
Tu začneme definovať skript, ktorý z času na čas odčíta hodnoty teploty a vlhkosti. Funkcia refresh () volá funkcie refreshTemperature () a refreshHumdity () a setInterval volá funkciu obnovenia každých 5 000 milisekúnd (5 sekúnd).
"Obnoviť();" "setInterval (obnovenie, 5 000);" "funkcia refresh ()" "{" "refreshTemperature ()" "refreshHumidity ();" "}"
Funkcia refreshTemperature () robí požiadavku na / teplotu, analyzuje informácie obsiahnuté v json a do odseku pridá id teplotu.
"funkcia refreshTemperature ()" "{" "var xmlhttp = new XMLHttpRequest ();" "xmlhttp.onreadystatechange = function () {" "if (xmlhttp.readyState == XMLHttpRequest. DONE && xmlhttp.status == 200) {" "document.getElementById ('teplota'). innerHTML = 'Teplota:' + JSON. analyzovať (xmlhttp.responseText). teplota + 'C'; " "}" "};" "xmlhttp.open ('GET', 'https://192.168.2.8/temperature', true);" "xmlhttp.send ();" "}"
Funkcia refreshHumidity () odošle požiadavku na / vlhkosť, analyzuje informácie obsiahnuté v json a do odseku pridá vlhkosť ID. A tým dokončíme html, ktorý pošleme požiadavkám na / monitor.
"funkcia refreshHumidity ()" "{" "var xmlhttp = nový XMLHttpRequest ();" "xmlhttp.onreadystatechange = function () {" "if (xmlhttp.readyState == XMLHttpRequest. DONE && xmlhttp.status == 200) {" "document.getElementById ('vlhkosť'). innerHTML = 'Vlhkosť:' + JSON. analyzovať (xmlhttp.responseText). vlhkosť + '%'; " "}" "};" "xmlhttp.open ('GET', 'https://192.168.2.8/humidity', true);" "xmlhttp.send ();" "}"
"";
Krok 11: Dokončenie programu ShowMonitor
Teraz, keď je reťazec s html, ktorý pošleme, pripravený, môžeme ho odoslať klientovi. Tým je funkcia showMonitor a kód dokončené.
// 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); }
Krok 12: Testovanie
Teraz otvorte prehliadač a zadajte https://192.168.2.8/monitor (v závislosti od konfigurácie budete potrebovať inú IP adresu).
Odporúča:
M5STACK Ako zobraziť teplotu, vlhkosť a tlak na M5StickC ESP32 pomocou Visuino - jednoduché kroky: 6 krokov
M5STACK Ako zobraziť teplotu, vlhkosť a tlak na M5StickC ESP32 pomocou programu Visuino - Jednoduché kroky: V tomto návode sa naučíme, ako naprogramovať ESP32 M5Stack StickC s Arduino IDE a Visuino na zobrazenie teploty, vlhkosti a tlaku pomocou snímača ENV (DHT12, BMP280, BMM150)
Ako monitorovať ultrazvukovú vzdialenosť pomocou cloudu IoT ESP8266 a AskSensors: 5 krokov
Ako monitorovať ultrazvukovú vzdialenosť pomocou cloudu IoT ESP8266 a AskSensors: Tento návod uvádza, ako monitorovať vzdialenosť od objektu pomocou ultrazvukového senzora HC-SR04 a MCU uzla ESP8266 pripojeného k cloudu IoT AskSensors
Výstraha na teplotu a vlhkosť pomocou AWS a ESP32: 11 krokov
Upozornenie na teplotu a vlhkosť pomocou AWS a ESP32: V tomto tutoriáli budeme merať rôzne údaje o teplote a vlhkosti pomocou snímača teploty a vlhkosti. Dozviete sa tiež, ako tieto údaje odoslať do AWS
ESP8266 Monitorovanie teploty Nodemcu pomocou DHT11 na lokálnom webovom serveri - Získajte izbovú teplotu a vlhkosť vo svojom prehliadači: 6 krokov
ESP8266 Monitorovanie teploty Nodemcu pomocou DHT11 na lokálnom webovom serveri | Získajte vo svojom prehliadači izbovú teplotu a vlhkosť: Ahojte priatelia, dnes vyrobíme vlhkomer & systém monitorovania teploty pomocou ESP 8266 NODEMCU & Snímač teploty DHT11. Teplota a vlhkosť sa získajú zo senzora DHT11 v prehliadači je možné vidieť, ktorú webovú stránku bude spravovať
Pošlite teplotu a vlhkosť do aplikácie Blynk (Wemos D1 Mini Pro) .: 15 krokov (s obrázkami)
Odoslať teplotu a vlhkosť do aplikácie Blynk (Wemos D1 Mini Pro) .: Tento návod sa zameriava na používanie Wemos D1 Mini Pro na odosielanie údajov (teploty a vlhkosti) do aplikácie Blynk