Cov txheej txheem:
- Kauj ruam 1: Sib dhos
- Kauj ruam 2: Code
- Kauj ruam 3: Teeb
- Kauj ruam 4: Loop
- Kauj Ruam 5: Thov Tsis Pom
- Kauj Ruam 6: Rov Ntsuas Kub
- Kauj Ruam 7: Rov Qab Vaum
- Kauj ruam 8: HTML
- Kauj ruam 9: HTML Style Txuas Ntxiv
- DHT Saib
- Kauj ruam 10: JavaScript
- Kauj ruam 11: Ua tiav ShowMonitor
- Kauj Ruam 12: Xeem
Video: ESP8266: Yuav Ua Li Cas Saib Xyuas Kub thiab Vaum: 12 Kauj Ruam
2024 Tus sau: John Day | [email protected]. Kawg hloov kho: 2024-01-30 09:29
Hauv kev qhia hnub no, peb yuav siv ESP-01, uas yog ESP8266 hauv kev teeb tsa 01 (nrog tsuas yog 2 GPIO), rau qhov ntsuas kub thiab av noo ntawm DHT22 sensor. Kuv yuav qhia koj txog cov phiaj xwm hluav taws xob thiab ESP txoj haujlwm nrog Arduino. Qhov piv txwv yog yooj yim, nkag siab yooj yim, thiab tseem los nrog PDF siv hauv cov vis dis aus los pab ua ke.
Hauv kev tsim, peb muaj ESP01, lub hauv paus uas hloov 110 lossis 220 rau 5 volts, tus tswj hluav taws xob ntawm 3v3, thiab DHT22, uas yog lub ntsuas. Ntawm lub vijtsam smartphone, koj yuav muaj tus IP chaw nyob hauv zos ntxiv rau JavaScript code muab los ntawm ESP. Vim li no lub vijtsam yuav tau txais qhov ntsuas ntawm qhov kub thiab txias thiab yuav luam tawm cov txiaj ntsig no, uas yuav hloov kho tshiab txhua tsib feeb. Txhawm rau ua qhov no, koj yuav tsis xav tau ib qho app hauv xov tooj thiab ntsiav tshuaj, thiab qhov no siv rau ob qho tib si Android OS thiab IOS.
Kauj ruam 1: Sib dhos
Cov phiaj xwm hluav taws xob tau yooj yim heev, ib yam li hais txog kev sib dhos, uas yuav koom nrog ESP01 ua tus neeg rau zaub mov. ESPO1 yuav tau ua haujlwm zoo li nws yog Arduino: dhau los ntawm hom C. Kuv taw qhia tias ib feem ntawm cov cai tau luam tawm los ntawm qhov browser. Qhov no txhais tau tias nws xa JavaScript code mus rau qhov browser. Hauv qab no, Kuv yuav piav qhia zoo dua txog qhov no ua haujlwm li cas.
Rov qab mus rau daim duab kab hluav taws xob, kuv tso 5-volt hloov chaw txuas nrog rau 3v3 tus tswj hluav taws xob kom muaj zog rau ESP01. Peb tseem muaj DHT22 nrog plaub tus pin. Ib qho ntawm cov no, cov ntaub ntawv, tsis siv. Txawm li cas los xij, nws yuav siv sij hawm rub tawm tus neeg tawm tsam.
Kauj ruam 2: Code
Thawj kauj ruam yog suav nrog cov libs uas peb yuav siv. DHT lib tuaj yeem ntxiv los ntawm Sketch kev xaiv> suav nrog Lub Tsev Qiv Ntawv> Tswj Tsev Qhua …
Hauv lub qhov rai uas qhib, saib rau DHT lub tsev qiv ntawv sensor.
Tom qab ntawd, peb tsim qhov sib txawv ntawm hom ESP8266WebServer uas yuav yog peb lub server thiab yuav teb rau HTTP thov (chaw nres nkoj 80).
Peb kuj tsim DHT sib txawv nrog cov ntsuas 0 (uas yog GPIO tus pin 0) thiab hom (hauv peb kis 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 // permitindo ler a temperatura e a umidade DHT dht (0, DHT22);
Kauj ruam 3: Teeb
Hauv kev teeb tsa, peb yuav pib Serial nkaus xwb kom peb muaj lub cav. Qhov no yuav tshwm sim yog tias ESP8266 txuas nrog lub khoos phis tawj dhau los ua ntu zus los siv lub ntsuas saib.
Peb yuav ua ESP8266 txuas rau peb lub network. Hauv peb qhov xwm txheej, peb siv lub network TesteESP nrog tus password 87654321, tab sis koj yuav tau hloov qhov no raws li lub network uas koj siv.
// Inicialize 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); // Instrução para o ESP8266 se conectar à rede. // No nosso caso o nome da rede é TesteESP e senha é 87654321. // Você deve alterar com as informações da sua rede WiFi.begin ("TesteESP", "87654321"); // Kev tawm tswv yim caso esteja usando o Monitor Serial.println (""); Serial.print ("Conectando");
Peb tos ESP8266 txuas rau lub network, thiab tom qab nws txuas, peb xa cov teeb tsa network. Hloov raws li koj lub network.
// Esperamos até que o módulo se conecte à rede thaum (WiFi.status ()! = WL_CONNECTED) {ncua (500); Serial.print ("."); } // Configurações ua IP fixo. Você pode alterar conforme a sua rede IPAddress ip (192, 168, 3, 11); IPAddress rooj vag (192, 168, 3, 1); IPAddress subnet (255, 255, 255, 0); Serial.print ("Configurando IP fixo para:"); Serial.println (ip); // Envia a configuração WiFi.config (ip, rooj vag, subnet);
Cov lus txib tom ntej tsuas yog nyob rau hauv rooj plaub uas koj muaj ESP8266 txuas nrog lub khoos phis tawj los ntawm cov ntawv xov xwm, yog li koj muaj lus tawm tswv yim los ntawm Serial Monitor.
Koj tuaj yeem tshawb xyuas tus IP uas ESP8266 tau txais los saib seb nws zoo ib yam li hauv kev teeb tsa.
// Mostramos tsis muaj Tus Saib Xyuas 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 ());
Ntawm no, peb pib txiav txim siab lub luag haujlwm twg uas yuav ua tiav rau txhua qhov kev thov.
Hauv cov lus qhia hauv qab no, txhua zaus ESP8266 tau txais HTTP thov ntawm hom GET hauv txoj hauv kev / qhov kub, qhov ua haujlwm getTemperature yuav ua tiav.
// 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) função getTemperature será executada server.on ("/kub", HTTP_GET, ua kom sov);
Hauv lwm nqe lus no, txhua lub sijhawm ESP8266 tau txais HTTP thov ntawm hom GET hauv txoj hauv kev / av noo, qhov ua kom muaj dej txaus yuav ua tiav.
// Nesse outo caso quando houver uma requisição http do tipo Tau txais tsis muaj caminho https://192.168.2.8/humidity // (pode ser outro ip dependendo da sua configuração) função getHumidity será executada server.on ("/humidity", HTTP_GET, getHumidity);
Hauv cov lus qhia no, txhua zaus ESP8266 tau txais HTTP thov ntawm hom GET hauv txoj hauv kev / saib xyuas, kev ua haujlwm showMonitor yuav ua tiav.
ShowMonitor lub luag haujlwm yog lub luag haujlwm xa rov qab lub ntsiab html uas yuav tso saib qhov ntsuas kub thiab av noo.
// 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) função showMonitor será executada. // Esta função retornará a página principal que mostrará os valores // da temperatura e da umidade e recarregará essas informações de tempos em tempos server.on ("/monitor", HTTP_GET, showMonitor);
Nov yog lub luag haujlwm txhais uas yuav tsum tau ua thaum txoj kev thov tsis pom.
// Aqui definimos qual função será executada caso o caminho que o cliente requisitou não tenha sido registrado server.onNotFound (onNotFound);
Ntawm no peb pib peb cov server uas peb tau tshaj tawm yav dhau los ntawm chaw nres nkoj 80.
Qhov no yog qhov kawg ntawm kev teeb tsa.
// Inicializamos o server que criamos na porta 80 server.begin (); Serial.println ("Servidor HTTP iniciado"); }
Kauj ruam 4: Loop
Ua tsaug rau lib ESP8266WebServer, peb tsis tas yuav tshuaj xyuas hauv lub voj yog tias muaj cov neeg siv khoom thiab rau qhov kev thov yog dab tsi. Peb tsuas yog yuav tsum tau hu handleClient (), thiab lub hom phiaj yuav tshuaj xyuas yog tias ib tus neeg siv tau thov ib qho twg thiab yuav hloov mus rau qhov ua haujlwm sib xws uas peb tau sau npe ua ntej.
void loop () {// Verifica se há alguma requisição de algum cliente server.handleClient (); }
Kauj Ruam 5: Thov Tsis Pom
Nov yog txoj haujlwm peb yav dhau los tau nkag mus rau ua thaum tus neeg siv khoom thov yam uas tsis tau sau npe.
Lub luag haujlwm tsuas yog rov qab cov cai 404 (tus lej tsis raug rau thaum tsis pom cov peev txheej), cov ntaub ntawv xa rov qab (hauv cov ntawv yooj yim), thiab cov ntawv nrog cov lus "Tsis Pom."
// Função que definimos para ser chamada quando o caminho requisitado não foi registrado void onNotFound () {server.send (404, "text/plain", "Not Found"); }
Kauj Ruam 6: Rov Ntsuas Kub
Nov yog qhov ua haujlwm uas yuav rov qab json nrog cov ntaub ntawv ntsuas kub thaum tus neeg siv khoom thov kom tau txais ntawm / qhov kub.
// Função que definimos que será executada quando o cliente fizer uma requisição // ua tipo Tau txais tsis muaj 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 ua módulo dht ntab 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, "thov/json", json); }
Kauj Ruam 7: Rov Qab Vaum
Nov yog qhov ua haujlwm uas yuav rov qab json nrog cov ntaub ntawv ntub dej thaum tus neeg siv khoom thov kom tau txais hauv / av noo.
// Função que definimos que será executada quando o cliente fizer uma requisição // ua tipo Tau txais tsis muaj 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 = "{" humidity / ":"+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, "thov/json", json); }
Kauj ruam 8: HTML
Nov yog txoj haujlwm uas yuav xa rov qab html thaum tus neeg siv nkag mus / saib xyuas. Nplooj ntawv no yuav qhia qhov ntsuas kub thiab av noo, thiab nws yuav rov qhib cov ntaub ntawv ib ntus. Ib feem uas yog nruab nrab thiab thiab style>
txhais cov tsos ntawm nplooj ntawv, thiab koj tuaj yeem hloov nws raws li koj nyiam.
// Função que definimos que será executada quando o cliente fizer uma requisição // ua tipo Tau txais tsis muaj caminho https://192.168.2.8/monitor (pode ser outro ip dependendo da sua configuração) void showMonitor () {String html = "" "" "" "Yog
"DHT Saib"
"cev {"
"ncoo: 35px;"
"keeb kwm yav dhau xim: #222222;" "}"
Kauj ruam 9: HTML Style Txuas Ntxiv
"h1 {" "xim: #FFFFFF;" "tsev neeg font: sans-serif;" "}" "p {" "xim: #EEEEEE;" "tsev neeg font: sans-serif;" "font-loj: 18px;" "}" "" "Yog
Ntawm no peb muaj qhov tseem ceeb ntawm html. Hauv nws, peb muaj ob kab lus uas yuav qhia qhov kub thiab txias. Ua tib zoo saib cov lej ntawm kab lus, vim nws yog los ntawm lawv uas peb yuav rov qab cov kab lus no kom nkag mus rau qhov ntsuas kub thiab av noo tom qab qhov xav tau.
DHT Saib
Kub:
Vaum:
Kauj ruam 10: JavaScript
Ntawm no peb pib txhais cov ntawv uas yuav los ntawm lub sijhawm dhau los nyeem qhov tseem ceeb ntawm qhov kub thiab txias. Qhov ua haujlwm tshiab () hu rau qhov ua kom sov sov () thiab ua kom rov zoo nkauj () ua haujlwm, thiab setInterval hu rau kev ua haujlwm tshiab txhua 5000 milliseconds (5 vib nas this).
"tshiab ();" "setInterval (kho tshiab, 5000);" "muaj nuj nqi refresh ()" "{" "refreshTemperature ()" "refreshHumidity ();" "}"
Kev ua haujlwm tshiab refreshTemperature () ua rau thov ntawm / ntsuas kub, txheeb xyuas cov ntaub ntawv muaj nyob hauv json, thiab ntxiv rau hauv kab lus tus lej kub.
"muaj nuj nqi refreshTemperature ()" "{" "var xmlhttp = tshiab XMLHttpRequest ();" "xmlhttp.onreadystatechange = function () {" "yog (xmlhttp.readyState == XMLHttpRequest. DONE && xmlhttp.status == 200) {" "document.getElementById ('kub'). innerHTML = 'Kub:' + JSON. parse (xmlhttp.responseText).temperature + 'C'; " "}" "};" "xmlhttp.open ('Tau', 'https://192.168.2.8/temperature', muaj tseeb);" "xmlhttp.send ();" "}"
RefreshHumidity () muaj nuj nqi ua rau thov rau / av noo, txheeb xyuas cov ntaub ntawv muaj nyob hauv json, thiab ntxiv rau hauv pawg lus id tus av noo. Thiab nrog qhov ntawd, peb ua tiav qhov html uas peb yuav xa hauv kev thov hauv / saib xyuas.
"muaj nuj nqi refreshHumidity ()" "{" "var xmlhttp = tshiab XMLHttpRequest ();" "xmlhttp.onreadystatechange = function () {" "yog (xmlhttp.readyState == XMLHttpRequest. DONE && xmlhttp.status == 200) {" "document.getElementById ('av noo'). innerHTML = 'Vaum:' + JSON. parse (xmlhttp.responseText). av noo + '%'; " "}" "};" "xmlhttp.open ('Tau', 'https://192.168.2.8/humidity', tseeb);" "xmlhttp.send ();" "}"
"";
Kauj ruam 11: Ua tiav ShowMonitor
Tam sim no tias txoj hlua nrog html uas peb yuav xa tau npaj tiav, peb tuaj yeem xa nws mus rau tus neeg siv khoom. Qhov no ua tiav showMonitor muaj nuj nqi thiab cov cai.
// 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, "ntawv/html", html); }
Kauj Ruam 12: Xeem
Tam sim no qhib koj tus browser thiab nkag mus rau https://192.168.2.8/monitor (koj yuav xav tau tus IP sib txawv raws li koj teeb tsa).
Pom zoo:
M5STACK Yuav Ua Li Cas Saib Kub, Vaum thiab Siab ntawm M5StickC ESP32 Siv Visuino - Yooj Yim Ua: 6 Kauj Ruam
M5STACK Yuav Ua Li Cas Thiaj Li Kub, Vaum thiab Siab ntawm M5StickC ESP32 Siv Visuino - Yooj Yim Ua: Hauv qhov kev qhia no peb yuav kawm paub yuav ua haujlwm ESP32 M5Stack StickC nrog Arduino IDE thiab Visuino kom tso saib qhov kub thiab txias thiab siab siv ENV sensor (DHT12, BMP280, BMM150)
Saib Xyuas Kub thiab Vaum Nrog AM2301 ntawm NodeMCU & Blynk: 3 Kauj Ruam
Saib Xyuas Qhov Kub thiab Vaum Nrog AM2301 ntawm NodeMCU & Blynk: Nws yog qhov paub zoo heev tias feem ntau ntawm kev lag luam ntsug, kub, av noo, siab, huab cua zoo, dej zoo, thiab lwm yam, ua qhov tseem ceeb kom tau saib xyuas tas li thiab tsim nyog kev ceeb toom yuav tsum tau nyob hauv qhov chaw thaum tus nqi
ESP32 Raws M5Stack M5stick C Huab Cua Saib Nrog DHT11 - Saib Xyuas Qhov Kub Kub & Qhov Kub Kub ntawm M5stick-C Nrog DHT11: 6 Cov Kauj Ruam
ESP32 Raws M5Stack M5stick C Huab Cua Saib Nrog DHT11 | Saib Xyuas Qhov Kub thiab Qhov Ntsuas Kub ntawm M5stick-C Nrog DHT11: Nyob zoo cov neeg, hauv cov lus qhia no peb yuav kawm paub yuav ua li cas cuam tshuam DHT11 ntsuas kub nrog m5stick-C (pawg tswj hwm kev txhim kho los ntawm m5stack) thiab tso tawm ntawm cov zaub ntawm m5stick-C. Yog li hauv qhov kev qhia no peb yuav nyeem qhov ntsuas kub, av noo & heat kuv
Yuav Ua Li Cas Siv DHT11 Kub Sensor Nrog Arduino thiab Luam Kub Kub thiab Vaum: 5 Kauj Ruam
Yuav Ua Li Cas Siv DHT11 Kub Sensor Nrog Arduino thiab Luam Kub Kub thiab Vaum: Lub DHT11 sensor tau siv los ntsuas kub thiab av noo. Lawv yog cov khoom siv hluav taws xob nrov tshaj plaws.Qhov DHT11 cov av noo thiab ntsuas kub ua rau nws yooj yim ntxiv cov av noo thiab ntsuas kub rau koj li DIY cov phiaj xwm hluav taws xob. Nws yog rau
Kev Nyuaj Siab: Kev Saib Xyuas thiab Saib Xyuas Ntxiv rau Kev Teeb Meem: 9 Cov Kauj Ruam
Hard Drive: Kev Saib Xyuas thiab Kev Saib Xyuas Ntxiv Teeb Meem: Daim duab saum toj no yog Hard Drive ib txwm muaj. Cov no yog cov tsav tsheb feem ntau siv niaj hnub no, tab sis tsis tas yuav nrawm tshaj. Tib neeg siv tus tsav no rau nws tus nqi qis dua gigabyte thiab lub neej ntev dua. Phau ntawv qhia no yuav qhia koj txog qhov sib txawv