Բովանդակություն:
- Քայլ 1: Հավաքում
- Քայլ 2: Կոդ
- Քայլ 3: Կարգավորում
- Քայլ 4: Օղակ
- Քայլ 5. Հարցումը չի գտնվել
- Քայլ 6: Retերմաստիճանի վերադարձ
- Քայլ 7: Խոնավության վերադարձ
- Քայլ 8: HTML
- Քայլ 9. HTML ոճի շարունակություն
- DHT մոնիտոր
- Քայլ 10: JavaScript
- Քայլ 11: Ավարտելով ShowMonitor- ը
- Քայլ 12: Փորձարկում
Video: ESP8266. Ինչպես վերահսկել ջերմաստիճանը և խոնավությունը. 12 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:51
Այսօրվա ձեռնարկում մենք կօգտագործենք ESP-01- ը, որը ESP8266 է 01 կազմաձևով (ընդամենը 2 GPIO- ով), DHT22 տվիչի ջերմաստիճանի և խոնավության ցուցանիշների համար: Ես ձեզ ցույց կտամ էլեկտրական սխեմա և ESP ծրագրավորման մասը Arduino- ով: Օրինակը պարզ է, դյուրըմբռնելի, ինչպես նաև գալիս է տեսանյութում օգտագործված PDF- ի հետ, որն օգնում է հավաքմանը:
Նախագծում մենք այնուհետև ունենք ESP01, աղբյուրը, որը 110 կամ 220 -ը փոխակերպում է 5 վոլտի, 3v3 լարման կարգավորիչը և DHT22- ը, որը սենսորն է: Սմարթֆոնի էկրանին, բացի ESP- ի տրամադրած JavaScript ծածկագրից, կունենաք տեղական IP հասցե: Այս էկրանը, հետևաբար, կստանա ջերմաստիճանի և խոնավության պարամետրերը և կտպագրի այդ արժեքները, որոնք կթարմացվեն յուրաքանչյուր հինգ վայրկյանը մեկ: Դա անելու համար ձեզ հարկավոր չեն որևէ ծրագիր հեռախոսների և պլանշետների վրա, և դա վերաբերում է ինչպես Android OS- ին, այնպես էլ IOS- ին:
Քայլ 1: Հավաքում
Էլեկտրական սխեման բավականին պարզ է, ինչպես նաև հավաքման մասին հատվածը, որը ESP01- ը կներառի որպես սերվեր: ESPO1- ը ծրագրավորվելու է այնպես, ասես դա Arduino- ն է `C լեզվով: Ես նշում եմ, որ կոդի մի մասը տպված է բրաուզերից: Սա նշանակում է, որ այն JavaScript կոդ է ուղարկում դիտարկիչին: Ստորև ես ավելի լավ կբացատրեմ, թե ինչպես է դա աշխատում:
Վերադառնալով էլեկտրագծերի գծապատկերին, ESP01- ը սնուցելու համար ես դնում եմ 5 վոլտ անջատիչ աղբյուր, որը միացված է 3v3 լարման կարգավորիչին: Մենք դեռ ունենք DHT22- ը ՝ չորս կապում: Դրանցից մեկը ՝ տվյալները, չի օգտագործվում: Այնուամենայնիվ, այն տևում է ձգման դիմադրություն:
Քայլ 2: Կոդ
Առաջին քայլը ներառում է այն բեկորները, որոնք մենք կօգտագործենք: DHT lib- ը կարող է ավելացվել Sketch տարբերակով> Ներառել գրադարան> Կառավարել գրադարանները …
Բացվող պատուհանում փնտրեք DHT տվիչների գրադարանը:
Դրանից հետո մենք ստեղծեցինք ESP8266WebServer տիպի փոփոխական, որը կլինի մեր սերվերը և կպատասխանի HTTP- ի հարցերին (նավահանգիստ 80):
Մենք նաև ստեղծում ենք DHT փոփոխական 0 պարամետրերով (որը GPIO- ի 0 փինն է) և տեսակը (մեր դեպքում DHT22):
#ներառել #ներառել #ներառել #ներառել // Criamos uma variável do tipo ESP8266WebServer, որը հնարավորություն է տալիս օգտվել // ինչպես նաև օգնել ESP8266 արագ արձագանքման համար կամ ESP8266 արձագանքողին ESP8266WebServer սերվեր (80); // Variável do tipo DHT que possui funções para controlarmos o módulo dht // թույլ տալ թույլատրել ջերմաստիճանը և բարձրացնել DHT dht (0, DHT22);
Քայլ 3: Կարգավորում
Կարգավորման մեջ մենք սերիալը կսկսենք միայն այնպես, որ գրանցամատյան ունենանք: Դա տեղի կունենա, եթե ESP8266- ը սերիայի միջոցով միացված է համակարգչին `սերիական մոնիտորը օգտագործելու համար:
Մենք կստիպենք ESP8266- ը միանալ մեր ցանցին: Մեր դեպքում մենք օգտագործում ենք TesteESP ցանցը 87654321 գաղտնաբառով, բայց դուք ստիպված կլինեք դա փոխել ըստ ձեր օգտագործած ցանցի:
// Inicialize a Serial apenas caso esteja com o ESP8266 conectado ao computador pela serla queira ter um log // para easalar 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 informações da sua rede WiFi.begin («TesteESP», «87654321»); // Հետադարձ կապ, օգտագործողի կամ դիտողի սերիական Serial.println (""); Serial.print ("Conectando");
Մենք սպասում ենք, որ ESP8266- ը միանա ցանցին, և այն միանալուց հետո մենք ուղարկում ենք ցանցի կարգավորումները: Փոխեք ըստ ձեր ցանցի:
// Esperamos até que o módulo se conecte à rede while (WiFi.status ()! = WL_CONNECTED) {հետաձգում (500); Serial.print ("."); } // IP ֆիքսման կարգավորումներ: Você pode alterar consae a sua rede IPAddress ip (192, 168, 3, 11); IPAddress դարպաս (192, 168, 3, 1); IPAddress ենթահամակարգ (255, 255, 255, 0); Serial.print ("Configurando IP fixo para:"); Serial.println (ip); // Envia a configuração WiFi.config (ip, gateway, subnet);
Հաջորդ հրամանները միայն այն դեպքում, երբ դուք ունեք ESP8266 համակարգչին սերիայի միջոցով, որպեսզի ունենաք հետադարձ կապ սերիական մոնիտորից:
Կարող եք ստուգել ESP8266- ի ստացած IP- ն ՝ արդյոք այն նույնն է, ինչ պարամետրերում:
// 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 ());
Այստեղ մենք սկսում ենք սահմանել, թե որ գործառույթները կկատարվեն յուրաքանչյուր հարցման համար:
Ստորև բերված հրահանգում ամեն անգամ, երբ ESP8266- ը ճանապարհին / ջերմաստիճանում GET տիպի HTTP հարցում է ստանում, getTemperature գործառույթը կկատարվի:
// Aqui definimos qual a função será execada 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 out out ip dependendo da sua configuração) a função getTemperature será serverada.on ("/temperature", HTTP_GET, getTemperature);
Այս մյուս հայտարարության մեջ ամեն անգամ, երբ ESP8266- ը ճանապարհին / խոնավության մեջ GET տիպի HTTP հարցում է ստանում, getHumidity գործառույթը կկատարվի:
// 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á exeada server.on ("/խոնավություն"), HTTP_GET, getHumidity);
Այս հրահանգում, ամեն անգամ, երբ ESP8266- ը ուղու / մոնիտորի մեջ GET տիպի HTTP հարցում է ստանում, showMonitor գործառույթը կկատարվի:
ShowMonitor գործառույթը պատասխանատու է հիմնական html- ի վերադարձի համար, որը կցուցադրի ջերմաստիճանի և խոնավության արժեքները:
// 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) funcão showMonitor ծառայություն կատարման համար: // Esta função retornará a página principal que mostrará os valores // ջերմաստիճանի բարձրացում և վերամշակում ՝ օգտագործելով տեղեկատվական աղբյուրներ tempos em tempos server.on ("/monitor", HTTP_GET, showMonitor);
Ահա ֆունկցիայի սահմանումը, որը պետք է կատարվի, երբ պահանջվող ուղին չգտնվի:
// Aqui definimos qual função será performada caso o caminho que o cliente պահանջել ոչ միայն գրանցել server.onNotFound (onNotFound);
Այստեղ մենք նախաստորագրում ենք մեր սերվերը, որը մենք նախկինում հայտարարել էինք 80 նավահանգստում:
Սա կարգավորման ավարտն է:
// Տեղեկատվական ծառայություն կամ սերվերի առկայություն 80 port.begin (); Serial.println ("Servidor HTTP iniciado"); }
Քայլ 4: Օղակ
Շնորհիվ lib ESP8266WebServer- ի, մենք կարիք չունենք ստուգել, թե արդյոք կան հաճախորդներ և ինչի համար է պահանջվող ուղին: Մենք պարզապես պետք է զանգահարենք handleClient (), և օբյեկտը կստուգի ՝ արդյոք որևէ հաճախորդ ինչ -որ խնդրանք ներկայացնու՞մ է, և կվերաուղղորդի այն գործառույթին, որը մենք գրանցել էինք նախկինում:
void loop () {// Verifica se há alguma requisição de algum cliente server.handleClient (); }
Քայլ 5. Հարցումը չի գտնվել
Սա այն գործառույթն է, որը մենք նախկինում մուտք ենք գործել `կատարելու համար, երբ հաճախորդը կատարում է չգրված որևէ պահանջ:
Ֆունկցիան վերադարձնում է միայն 404 կոդը (կանխադրված կոդը, երբ ռեսուրսը չի գտնվում), վերադարձված տվյալների տեսակը (պարզ տեքստի դեպքում) և տեքստ «Չգտնվեց» բառերով:
// Funվարճանք, որը թույլ է տալիս պարզել ձեր պահանջները կամ պահանջել, որ գրանցումը չեղարկվի onNotFound () {server.send (404, "text/plain", "Not Found"); }
Քայլ 6: Retերմաստիճանի վերադարձ
Սա այն գործառույթն է, որը կվերադարձնի json ջերմաստիճանի տվյալները, երբ հաճախորդը GET հարցում / ջերմաստիճանի դեպքում:
// Função que definimos que será exeada 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 Լարային json = "{" ջերմաստիճան / ":"+Լար (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: Խոնավության վերադարձ
Սա այն գործառույթն է, որը կվերադարձնի json- ը խոնավության տվյալներով, երբ հաճախորդը GET հարցում / խոնավություն:
// Função que definimos que será exeada 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 = "{" խոնավություն / ":"+Լար (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: HTML
Սա այն գործառույթն է, որը կվերադարձնի html- ը, երբ հաճախորդը գնում է մուտք / մոնիտոր: Այս էջը կցուցադրի ջերմաստիճանի և խոնավության արժեքները, և այն ժամանակ առ ժամանակ կբեռնաթափի տվյալները: Հատվածը և ոճի միջև> և
սահմանում է էջի տեսքը, և դուք կարող եք փոխել այն, ինչպես ցանկանում եք:
// Funksão que definimos que será exeada quando o cliente fizer uma requisição // do tipo GET no caminho https://192.168.2.8/monitor (pode ser out out ip dependendo da sua configuração) void showMonitor () {String html = "" "" ""
«DHT մոնիտոր»
"մարմին {"
"լիցքավորում` 35px;"
"ֆոնի գույնը` #222222; " "}"
Քայլ 9. HTML ոճի շարունակություն
"h1 {" "գույն: #FFFFFF;" "font-family: sans-serif;" "}" "p {" "գույնը ՝ #EEEEEE;" "font-family: sans-serif;" "տառատեսակի չափը` 18px; " "}" ""
Այստեղ մենք ունենք html- ի հիմնական մասը: Դրա մեջ մենք ունենք երկու պարբերություն, որոնք ցույց կտան ջերմաստիճանը և խոնավությունը: Ուշադրություն դարձրեք պարբերությունների ID- ներին, քանի որ դրանց միջոցով մենք կվերականգնենք այս պարբերությունները `պահանջներից հետո ջերմաստիճանի և խոնավության արժեքները մուտքագրելու համար:
DHT մոնիտոր
Երմաստիճանը:
Խոնավություն:
Քայլ 10: JavaScript
Այստեղ մենք սկսում ենք սահմանել այն սցենարը, որը ժամանակ առ ժամանակ կկարդա ջերմաստիճանի և խոնավության արժեքները: Թարմացման () գործառույթը կանչում է refreshTemperature () և refreshHumdity () գործառույթները, իսկ setInterval- ը թարմացման գործառույթ է կանչում յուրաքանչյուր 5000 միլիվայրկյանում (5 վայրկյան):
"թարմացնել ();" "setInterval (թարմացում, 5000);" "գործառույթը թարմացնել ()" "{" "refreshTemperature ()" "refreshHumidity ();" "}"
RefreshTemperature () գործառույթը դիմում է / ջերմաստիճանի դեպքում, վերլուծում է json- ում պարունակվող տեղեկատվությունը և պարբերության մեջ ավելացնում id ջերմաստիճանը:
"գործառույթը refreshTemperature ()" "{" "var xmlhttp = new XMLHttpRequest ();" "xmlhttp.onreadystatechange = գործառույթը () {" "if (xmlhttp.readyState == XMLHttpRequest. DONE && xmlhttp.status == 200) {" "document.getElementById (" ջերմաստիճան "). innerHTML = 'peratերմաստիճանը.' + JSON: վերլուծել (xmlhttp.responseText). ջերմաստիճան + 'C'; " "}" "};" "xmlhttp.open ('GET', 'https://192.168.2.8/temperature', true);" "xmlhttp.send ();" "}"
RefreshHumidity () գործառույթը դիմում է / խոնավության, վերլուծում է json- ում պարունակվող տեղեկատվությունը և պարբերության մեջ ավելացնում id խոնավությունը: Եվ դրանով մենք ավարտում ենք այն html- ը, որը մենք ուղարկելու ենք հարցումները / մոնիտոր:
"գործառույթը refreshHumidity ()" "{" "var xmlhttp = new XMLHttpRequest ();" "xmlhttp.onreadystatechange = գործառույթը () {" "if (xmlhttp.readyState == XMLHttpRequest. DONE && xmlhttp.status == 200) {" "document.getElementById (" խոնավություն "). innerHTML = 'Խոնավություն.' + JSON: վերլուծել (xmlhttp.responseText). խոնավություն + '%'; " "}" "};" "xmlhttp.open (" GET "," https://192.168.2.8/humidity ", true);") "xmlhttp.send ();" "}"
"";
Քայլ 11: Ավարտելով ShowMonitor- ը
Այժմ, երբ html- ով տողը, որը մենք կուղարկենք, պատրաստ է, կարող ենք այն ուղարկել հաճախորդին: Սա ավարտում է showMonitor գործառույթը և ծածկագիրը:
// Envia o html para o cliente com o código 200, que is a código quando a requisição foi realizada com sucesso server.send (200, "text/html", html); }
Քայլ 12: Փորձարկում
Այժմ բացեք ձեր դիտարկիչը և մուտքագրեք https://192.168.2.8/monitor (ձեզ կարող է անհրաժեշտ լինել այլ ip ՝ կախված ձեր կազմաձևից):
Խորհուրդ ենք տալիս:
M5STACK Ինչպես ցուցադրել ջերմաստիճանը, խոնավությունը և ճնշումը M5StickC ESP32- ում Visuino- ի միջոցով - Հեշտ է անել. 6 քայլ
M5STACK Ինչպես ցուցադրել ջերմաստիճանը, խոնավությունը և ճնշումը M5StickC ESP32- ի վրա Visuino- ի միջոցով. Հեշտ է անել. Այս ձեռնարկում մենք կսովորենք, թե ինչպես ծրագրավորել ESP32 M5Stack StickC- ն Arduino IDE- ով և Visuino- ով `ցուցադրելու ջերմաստիճանը, խոնավությունը և ճնշումը` օգտագործելով ENV սենսոր (DHT12, BMP280, BMM150)
Դիտեք ջերմաստիճանը և խոնավությունը AM2301- ով NodeMCU- ում և Blynk- ում ՝ 3 քայլ
N2MCU & Blynk- ում AM2301- ով ջերմաստիճանի և խոնավության մոնիտորինգ. Հայտնի փաստ է, որ արդյունաբերության մեծ մասում ուղղահայաց ուղղությունները, ջերմաստիճանը, խոնավությունը, ճնշումը, օդի որակը, ջրի որակը և այլն, կարևոր գործոններ են, որոնք պետք է մշտապես և անհրաժեշտ վերահսկվեն: ահազանգման համակարգերը պետք է գործեն, երբ արժեքավոր
Չափել ջերմաստիճանը և խոնավությունը ՝ օգտագործելով DHT11 / DHT22 և Arduino ՝ 4 քայլ
Չափել ջերմաստիճանը և խոնավությունը DHT11 / DHT22- ի և Arduino- ի միջոցով. Այս Arduino- ի ձեռնարկում մենք կսովորենք, թե ինչպես օգտագործել DHT11- ը կամ DHT22 սենսորը Arduino տախտակով ջերմաստիճանի և խոնավության չափման համար:
ESP8266 Nodemcu ջերմաստիճանի մոնիտորինգ DHT11- ի միջոցով տեղական վեբ սերվերի վրա - Ստացեք սենյակի ջերմաստիճանը և խոնավությունը ձեր դիտարկիչում ՝ 6 քայլ
ESP8266 Nodemcu ջերմաստիճանի մոնիտորինգ DHT11- ի միջոցով տեղական վեբ սերվերի վրա | Ստացեք սենյակի ջերմաստիճանը և խոնավությունը ձեր դիտարկիչում. ջերմաստիճանի մոնիտորինգի համակարգ օգտագործելով ESP 8266 NODEMCU & DHT11 ջերմաստիճանի տվիչ: Temերմաստիճանը եւ խոնավությունը կստանան DHT11 ցուցիչից & այն կարող է դիտվել զննարկչի վրա, թե որ վեբ էջը կառավարվելու է
Ինչպես վերահսկել գարեջրի խմորման ջերմաստիճանը և ծանրությունը ձեր սմարթֆոնից. 4 քայլ (նկարներով)
Ինչպես վերահսկել գարեջրի խմորման ջերմաստիճանը և ծանրությունը ձեր սմարթֆոնից. Երբ գարեջուրը խմորում է, դուք պետք է ամեն օր վերահսկեք դրա ծանրությունն ու ջերմաստիճանը: Հեշտ է մոռանալ դա անելը, և անհնար է, եթե դու հեռու ես: Որոշ գուգլներ անելուց հետո ես գտա մի քանի լուծում ինքնահոս ծանրության մոնիտորինգի համար (մեկ, երկու, երեք): Մեկը ՝