Sisukord:
- Samm: kokkupanek
- 2. samm: kood
- 3. samm: seadistamine
- 4. samm: silmus
- Samm: taotlust ei leitud
- 6. samm: temperatuuri tagastamine
- 7. samm: niiskuse tagastamine
- 8. samm: HTML
- 9. samm: HTML -stiili jätkamine
- DHT monitor
- 10. samm: JavaScript
- Samm 11: ShowMonitori lõpetamine
- 12. samm: testimine
Video: ESP8266: Temperatuuri ja niiskuse jälgimine: 12 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:49
Tänases õpetuses kasutame DHT22 anduri temperatuuri ja niiskuse lugemiseks ESP-01, mis on konfiguratsioonis 01 ESP8266 (ainult 2 GPIO-ga). Näitan teile elektriskeemi ja ESP programmeerimisosa koos Arduinoga. Näide on lihtne, hõlpsasti mõistetav ja sisaldab ka videos kasutatud PDF -faili, mis aitab kokkupanekul.
Kujunduses on meil siis ESP01, allikas, mis muundab 110 või 220 5 -voldiseks, pingeregulaator 3v3 ja DHT22, mis on andur. Nutitelefoni ekraanil kuvatakse lisaks ESP pakutavale JavaScripti koodile ka kohalik IP -aadress. See ekraan saab seega temperatuuri ja niiskuse parameetrid ning prindib need väärtused, mida uuendatakse iga viie sekundi tagant. Selleks ei vaja te telefonides ja tahvelarvutites ühtegi rakendust ning see kehtib nii Androidi kui ka iOS -i kohta.
Samm: kokkupanek
Elektriskeem on üsna lihtne, nagu ka koost, mis hõlmab ESP01 -d serverina. ESPO1 programmeeritakse nii, nagu oleks see Arduino: C -keele kaudu. Juhin tähelepanu sellele, et osa koodist prinditakse brauserist. See tähendab, et see saadab brauserisse JavaScripti koodi. Allpool selgitan paremini, kuidas see toimib.
Juhtmestiku juurde tagasi tulles panin ESP01 toiteks 5-voldise lülitatud allika, mis oli ühendatud 3v3 pingeregulaatoriga. Meil on endiselt nelja tihvtiga DHT22. Ühte neist, andmeid, ei kasutata. Siiski on vaja tõmmatavat takistit.
2. samm: kood
Esimene samm on lisada libid, mida me kasutame. DHT -libi saab lisada visandi valikuga> Kaasa raamatukogu> Halda raamatukogusid…
Otsige avanevas aknas DHT -andurite kogu.
Pärast seda lõime muutuja tüüpi ESP8266WebServer, mis on meie server ja vastab HTTP päringutele (port 80).
Loome ka DHT muutuja parameetritega 0 (mis on GPIO pin 0) ja tüübiga (meie puhul 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 modeulo dht // loadindo ler a temperatura e a umidade DHT dht (0, DHT22);
3. samm: seadistamine
Seadistuses lähtestame seeria ainult nii, et meil oleks logi. See juhtub siis, kui ESP8266 on jadamonitori abil arvutiga jadaühenduse kaudu ühendatud.
Teeme ESP8266 -ga ühenduse meie võrguga. Meie puhul kasutame võrku TesteESP parooliga 87654321, kuid peate seda vastavalt kasutatavale võrgule muutma.
// 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 or ESP8266 se conectar à rede. // No nosso caso o nome da rede é TesteESP e a senha é 87654321. // Você deve alterar com as informationçes da daa rede WiFi.begin ("TesteESP", "87654321"); // Tagasiside caso esteja usando o Monitor Serial Serial.println (""); Serial.print ("Conectando");
Ootame ESP8266 võrguga ühenduse loomist ja pärast ühenduse loomist saadame võrguseaded. Muutke vastavalt oma võrgule.
// Esperamos até que o módulo se conecte à rede while (WiFi.status ()! = WL_CONNECTED) {delay (500); Seeria.print ("."); } // IP -fikseerimise seadistused. Você pode alterar conforme a sua rede IPAdd ip (192, 168, 3, 11); IPAddressi lüüs (192, 168, 3, 1); Alamvõrk IPAddress (255, 255, 255, 0); Serial.print ("Configurando IP fixo para:"); Seeria.println (ip); // Envia a configuração WiFi.config (ip, gateway, subnet);
Järgmised käsud on ainult juhul, kui teil on ESP8266 arvutiga ühendatud jada kaudu, nii et saate jadamonitorilt tagasisidet.
Saate kontrollida IP -d, mille ESP8266 sai, et näha, kas see on sama, mis seadetes.
// Mostramos no Monitor Serial o ip com o qual o esp8266 se conectou para ver se está de acordo com o que configuramos Serial.println (""); Serial.println ("Connectado"); Serial.print ("IP:"); Serial.println (WiFi.localIP ());
Siin hakkame määratlema, milliseid funktsioone iga päringu puhul täidetakse.
Allpool olevas juhises täidetakse funktsiooni getTemperature iga kord, kui ESP8266 võtab teel / temperatuuril vastu GET -tüüpi HTTP -päringu.
// 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ção getTemperature será executab server.on ("/temperature", HTTP_GET, getTemperature);
Selles teises avalduses täidetakse funktsiooni getHumidity iga kord, kui ESP8266 võtab teel / niiskuses vastu HTTP -päringu tüüpi GET.
// 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);
Selles juhises käivitatakse funktsioon showMonitor iga kord, kui ESP8266 võtab teele / kuvarile vastu GET -tüüpi HTTP -päringu.
Funktsioon showMonitor vastutab peamise html -i tagastamise eest, mis kuvab temperatuuri ja niiskuse väärtused.
// 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 princip que mostrará os valores // da temperatura e da umidade and recarregará essas information de tempos em temppos server.on ("/monitor", HTTP_GET, showMonitor);
Siin on funktsiooni määratlus, mis tuleks täita, kui soovitud teed ei leita.
// Aqui definimos qual função será executada caso o caminho que o cliente requisitou não tenha sido registrerado server.onNotFound (onNotFound);
Siin lähtestame oma serveri, mille oleme varem sadamas 80 deklareerinud.
See on seadistamise lõpp.
// Inicializamos või server que criamos na porta 80 server.begin (); Serial.println ("Servidor HTTP iniciado"); }
4. samm: silmus
Tänu lib ESP8266WebServerile ei pea me ahelas kontrollima, kas kliente on ja milline on päringutee. Peame lihtsalt helistama handleClient () ja objekt kontrollib, kas mõni klient esitab päringuid, ja suunab ümber vastavale funktsioonile, mille me varem registreerisime.
void loop () {// Verifica se há alguma requisição de algum cliente server.handleClient (); }
Samm: taotlust ei leitud
See on funktsioon, mille oleme varem loginud täitma, kui klient esitab registreerimata päringuid.
Funktsioon tagastab ainult koodi 404 (vaikekood, kui ressurssi ei leita), tagastatud andmetüübi (lihtteksti puhul) ja teksti sõnadega "Ei leitud".
// Função que definimos para ser chamada quando o caminho requisitado não foi registrerado void onNotFound () {server.send (404, "text/plain", "Not Found"); }
6. samm: temperatuuri tagastamine
See on funktsioon, mis tagastab json koos temperatuuriandmetega, kui klient esitab GET päringu aadressil / temperatuur.
// 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 modeulo dht float t = dht.readTemperature (); // Cria um json com os dados da temperatura String json = "{" temperatuur / ":"+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. samm: niiskuse tagastamine
See on funktsioon, mis tagastab json koos niiskuse andmetega, kui klient esitab GET -päringu / niiskuses.
// 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 moodulo dht float h = dht.readHumidity (); // Cria um json com os dados da umidade String json = "{" niiskust / ":"+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. samm: HTML
See on funktsioon, mis tagastab html -i, kui klient läheb juurde / jälgima. Sellel lehel kuvatakse temperatuuri ja niiskuse väärtused ning see laadib aeg -ajalt andmeid uuesti. Osa, mis jääb stiili ja vahele
määrab lehe välimuse ja saate seda oma äranägemise järgi muuta.
// 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"
"keha {"
"polster: 35 pikslit;"
"taustavärv: #222222;" "}"
9. samm: HTML -stiili jätkamine
"h1 {" "värv: #FFFFFF;" "font-family: sans-serif;" "}" "p {" "värv: #EEEEEE;" "font-family: sans-serif;" "fondi suurus: 18 pikslit;" "}" ""
Siin on meil html peamine osa. Selles on kaks lõiku, mis näitavad temperatuuri ja niiskust. Pöörake tähelepanu lõigete ID -dele, sest nende kaudu taastame need lõigud, et sisestada pärast nõudeid temperatuuri ja niiskuse väärtused.
DHT monitor
Temperatuur:
Niiskus:
10. samm: JavaScript
Siin hakkame määratlema skripti, mis aeg -ajalt loeb temperatuuri ja niiskuse väärtusi. Funktsioon refresh () kutsub üles funktsioonid refreshTemperature () ja refreshHumdity () ning setInterval kutsub värskendusfunktsiooni iga 5000 millisekundi (5 sekundi) järel.
"värskenda ();" "setInterval (värskendus, 5000);" "function refresh ()" "" "" refreshTemperature () "" "refreshHumidity ();" "}"
Funktsioon refreshTemperature () esitab päringu temperatuuril / temperatuur, parsib jsonis sisalduva teabe ja lisab lõikesse id temperatuuri.
"function refreshTemperature ()" "" "" var xmlhttp = new XMLHttpRequest (); " "xmlhttp.onreadystatechange = function () {" "if (xmlhttp.readyState == XMLHttpRequest. DONE && xmlhttp.status == 200) {" "document.getElementById ('temperatuur'). internalHTML = 'Temperatuur:' + JSON. sõeluda (xmlhttp.responseText).temperatuur + 'C'; " "}" "};" "xmlhttp.open ('GET', 'https://192.168.2.8/temperatuur', tõsi);" "xmlhttp.send ();" "}"
Funktsioon refreshHumidity () esitab päringu / niiskusele, parsib jsonis sisalduvat teavet ja lisab lõiku id niiskuse. Ja sellega lõpetame html -i, mille saadame taotlustesse / monitoris.
"function refreshHumidity ()" "" "" var xmlhttp = new XMLHttpRequest (); " "xmlhttp.onreadystatechange = function () {" "if (xmlhttp.readyState == XMLHttpRequest. DONE && xmlhttp.status == 200) {" "document.getElementById ('niiskus'). internalHTML = 'Niiskus:' + JSON. sõeluda (xmlhttp.responseText).niiskus + '%'; " "}" "};" "xmlhttp.open ('GET', 'https://192.168.2.8/humidity', true);" "xmlhttp.send ();" "}"
"";
Samm 11: ShowMonitori lõpetamine
Nüüd, kui saadetava html -i string on valmis, saame selle kliendile saata. See lõpetab funktsiooni showMonitor ja koodi.
// 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. samm: testimine
Nüüd avage oma brauser ja sisestage https://192.168.2.8/monitor (sõltuvalt konfiguratsioonist võib teil olla vaja erinevat IP -d).
Soovitan:
Temperatuuri ja niiskuse jälgimine AM2301 abil NodeMCU & Blynk'is: 3 sammu
Temperatuuri ja niiskuse jälgimine AM2301 abil NodeMCU -l ja Blynkil: On väga hästi teada tõsiasi, et enamikus tööstuse vertikaalides mängivad temperatuur, niiskus, rõhk, õhukvaliteet, veekvaliteet jne olulisi tegureid, mida tuleb pidevalt jälgida häiresüsteemid peavad olema paigas, kui väärtus
Temperatuuri ja niiskuse jälgimine NODE MCU ja BLYNK abil: 5 sammu
Temperatuuri ja niiskuse jälgimine NODE MCU ja BLYNK abil: Tere poisid! Selles juhendis saate teada, kuidas saada atmosfääri temperatuuri ja niiskust, kasutades DHT11-temperatuuri ja niiskuse andurit, kasutades rakendust Node MCU ja BLYNK
Ruumi temperatuuri ja niiskuse jälgimine ESP32 ja AskSensors Cloud abil: 6 sammu
Ruumi temperatuuri ja niiskuse jälgimine ESP32 ja AskSensors Cloud abil: sellest õpetusest saate teada, kuidas jälgida oma toa või laua temperatuuri ja niiskust, kasutades DHT11 ja pilvega ühendatud ESP32. Meie õpetuste värskendused leiate siit. Spetsifikatsioonid: DHT11 andur suudab mõõta temperatuuri
DHT temperatuuri ja niiskuse jälgimine ESP8266 ja AskSensors IoT platvormi abil: 8 sammu
DHT temperatuuri ja niiskuse jälgimine ESP8266 ja AskSensors IoT platvormi abil: Eelmises juhendis esitasin samm -sammult juhendi ESP8266 nodeMCU ja AskSensors IoT platvormiga alustamiseks. Selles õpetuses ühendan DHT11 anduri sõlmele MCU. DHT11 on tavaliselt kasutatav temperatuur ja niiskus
ESP8266 Nodemcu temperatuuri jälgimine DHT11 abil kohalikus veebiserveris - Saate oma brauseris toatemperatuuri ja niiskuse: 6 sammu
ESP8266 Nodemcu temperatuuri jälgimine DHT11 abil kohalikus veebiserveris | Saate oma brauserisse toatemperatuuri ja -niiskuse: Tere poisid, täna teeme õhuniiskust. temperatuuri jälgimissüsteem, kasutades ESP 8266 NODEMCU & DHT11 temperatuuriandur. Temperatuuri ja niiskuse saab DHT11 Sensor & brauserist on näha, millist veebilehte hallatakse