ዝርዝር ሁኔታ:

ESP8266: የሙቀት መጠንን እና እርጥበትን እንዴት መከታተል እንደሚቻል - 12 ደረጃዎች
ESP8266: የሙቀት መጠንን እና እርጥበትን እንዴት መከታተል እንደሚቻል - 12 ደረጃዎች

ቪዲዮ: ESP8266: የሙቀት መጠንን እና እርጥበትን እንዴት መከታተል እንደሚቻል - 12 ደረጃዎች

ቪዲዮ: ESP8266: የሙቀት መጠንን እና እርጥበትን እንዴት መከታተል እንደሚቻል - 12 ደረጃዎች
ቪዲዮ: Vital signs ጤናማ የደም ግፊት ፣የልብ ምት፣አተነፋፈስ እና የሰውነት ሙቀት መጠን፤ ሲዛቡስ ምን ይጠቁሙናል ? በዶ/ር ሽመልስ | Dr Shimels 2024, ሀምሌ
Anonim
Image
Image
ስብሰባ
ስብሰባ

በዛሬው ትምህርት ውስጥ ፣ ለ DHT22 ዳሳሽ የሙቀት መጠን እና የእርጥበት ንባብ ESP-016 ን ፣ ይህም በቅንጅት 01 (በ 2 GPIO ብቻ) ESP8266 ን እንጠቀማለን። የኤሌክትሪክ አርማቲክ እና የ ESP ፕሮግራም ክፍልን ከአርዱዲኖ ጋር አሳያችኋለሁ። ምሳሌው ቀላል ፣ ለመረዳት ቀላል እና እንዲሁም በቪዲዮው ውስጥ ጥቅም ላይ ከዋለው ፒዲኤፍ ጋር አብሮ ለመሰብሰብ ይመጣል።

በንድፍ ውስጥ ፣ ከዚያ እኛ 110 ወይም 220 ን ወደ 5 ቮልት የሚቀይር ምንጭ ፣ 3V3 የቮልቴጅ ተቆጣጣሪ እና ዳሳሽ የሆነውን DHT22 ፣ ESP01 አለን። በስማርትፎን ማያ ገጹ ላይ በኢኤስፒ ከቀረበው የጃቫስክሪፕት ኮድ በተጨማሪ የአከባቢው አይፒ አድራሻ ይኖርዎታል። ስለዚህ ይህ ማያ ገጽ የሙቀት እና እርጥበት መለኪያዎች ይቀበላል እና በየአምስት ሰከንዶች የሚዘመኑትን እነዚህን እሴቶች ያትማል። ይህንን ለማድረግ በስልኮች እና በጡባዊዎች ላይ ምንም መተግበሪያዎች አያስፈልጉዎትም ፣ እና ይህ ለሁለቱም ለ Android OS እና ለ IOS ይሠራል።

ደረጃ 1 - ስብሰባ

የኤሌክትሪክ መርሃግብሩ በጣም ቀላል ነው ፣ እንዲሁም ስለ ስብሰባው ክፍል ፣ ESP01 ን እንደ አገልጋይ ያካትታል። ESPO1 አርዱinoኖን ይመስል በፕሮግራም ይዘጋጃል - በ C ቋንቋ በኩል። የኮዱ ክፍል ከአሳሹ የታተመ መሆኑን እጠቁማለሁ። ይህ ማለት የጃቫስክሪፕት ኮድ ወደ አሳሹ ይልካል ማለት ነው። ከዚህ በታች ፣ ይህ እንዴት እንደሚሠራ በተሻለ ሁኔታ እገልጻለሁ።

ወደ ሽቦው ዲያግራም ስመለስ ፣ ESP01 ን ለማብራት ከ 3 ቪ 3 የቮልቴጅ ተቆጣጣሪ ጋር የተገናኘ የ 5 ቮልት የመቀየሪያ ምንጭ አስቀምጫለሁ። አሁንም DHT22 ከአራት ፒኖች ጋር አለን። ከእነዚህ ውስጥ አንዱ ፣ ውሂብ ፣ ጥቅም ላይ አልዋለም። ሆኖም ፣ መጎተቻ ተከላካይ ይወስዳል።

ደረጃ 2 ኮድ

የመጀመሪያው እርምጃ እኛ የምንጠቀማቸውን ቅባቶች ማካተት ነው። የ “DHT lib” በ “Sketch” አማራጭ> ቤተ -መጽሐፍትን ያካትቱ> ቤተ -ፍርግሞችን ያቀናብሩ…

በሚከፈተው መስኮት ውስጥ የ DHT ዳሳሽ ቤተ -መጽሐፍትን ይፈልጉ።

ከዚያ በኋላ ፣ የእኛ አገልጋይ እና ለኤችቲቲፒ ጥያቄዎች (ወደብ 80) ምላሽ የሚሰጥ የ ESP8266WebServer ዓይነት ተለዋዋጭ ፈጠርን።

እኛ ደግሞ የ DHT ተለዋዋጭ መለኪያዎች 0 (ይህም የ GPIO ፒን 0 ነው) እና ዓይነት (በእኛ ሁኔታ DHT22) እንፈጥራለን።

#ያካትቱ #ያካትቱ #ያካትቱ #ያካትቱ // 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);

ደረጃ 3: ማዋቀር

በማዋቀሩ ውስጥ እኛ አንድ መዝገብ እንዲኖረን Serial ን እናስጀምራለን። ተከታታይ መቆጣጠሪያውን ለመጠቀም ESP8266 ከኮምፒዩተር ጋር በተከታታይ ከተገናኘ ይህ ይከሰታል።

ESP8266 ን ከአውታረ መረባችን ጋር እንዲገናኝ እናደርጋለን። በእኛ ሁኔታ ፣ አውታረ መረብ TesteESP ን በይለፍ ቃል 87654321 እንጠቀማለን ፣ ግን እርስዎ በሚጠቀሙበት አውታረ መረብ መሠረት ይህንን መለወጥ ይኖርብዎታል።

// 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 a senha é 87654321. // Você deve alterar com as informações da sua rede WiFi.begin ("TesteESP", "87654321"); // ግብረመልስ caso esteja usando o Monitor Serial Serial.println (""); Serial.print ("Conectando");

ESP8266 ከአውታረ መረቡ ጋር እስኪገናኝ ድረስ እንጠብቃለን ፣ እና ከተገናኘ በኋላ የአውታረ መረብ ቅንብሮችን እንልካለን። እንደ አውታረ መረብዎ ይለውጡ።

// Esperamos até que o módulo se conecte à rede (WiFi.status ()! = WL_CONNECTED) {መዘግየት (500); Serial.print ("."); } // የአይፒ ፋይቾን ያዋቅሩ። Você pode alterar conforme a sua rede IPAddress ip (192, 168, 3, 11); የአይፒ አድራሻ አድራሻ (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 ፣ gateway ፣ subnet) ፤

የሚቀጥሉት ትዕዛዞች በተከታታይ በኩል ከኮምፒውተሩ ጋር የተገናኙት ESP8266 ካለዎት ብቻ ነው ፣ ስለዚህ ከ Serial Monitor ግብረመልስ እንዲኖርዎት።

በቅንብሮች ውስጥ ካለው ጋር ተመሳሳይ መሆኑን ለማየት ESP8266 የተቀበለውን አይፒ ማረጋገጥ ይችላሉ።

// 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 በመንገድ / የሙቀት መጠን ውስጥ የኤች ቲ ቲ ፒ ጥያቄን በተቀበለ ቁጥር የ getTemperature ተግባር ይፈጸማል።

// 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á executada server.on ("/ሙቀት" ፣ HTTP_GET) ፣ የሙቀት መጠንን ያግኙ);

በዚህ ሌላ መግለጫ ፣ ESP8266 በመንገድ / እርጥበት ውስጥ የኤች ቲ ቲ ፒ ጥያቄን በተቀበለ ቁጥር የ 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á executada server.on ("/እርጥበት" ፣ HTTP_GET ፣ getHumidity);

በዚህ መመሪያ ፣ ESP8266 በመንገድ / ሞኒተር ውስጥ የኤች ቲ ቲ ፒ ጥያቄን በተቀበለ ቁጥር ፣ የተግባር ማሳያ ሞኒተር ይፈጸማል።

የ 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) a função showMonitor será executada. // Esta função retornará a página principal que mostrará os valores // da temperatura e da umidade and recarregará Essas informações de tempos em tempos server.on ("/monitor", HTTP_GET, showMonitor);

የተጠየቀው መንገድ በማይገኝበት ጊዜ መከናወን ያለበት የተግባር ፍች እዚህ አለ።

// Aqui definimos qual função será executada caso o caminho que o cliente requisitou não tenha sido registrado server.onNotFound (onNotFound);

ከዚህ በፊት ወደብ 80 ላይ ያወጀነውን አገልጋያችንን እዚህ እናስጀምራለን።

ይህ የማዋቀር መጨረሻ ነው።

// Inicializamos o አገልጋይ que criamos na porta 80 server.begin (); Serial.println ("የአገልጋይ ኤችቲቲፒ iniciado"); }

ደረጃ 4 - ሉፕ

ለ lib ESP8266WebServer ምስጋና ይግባቸው ፣ ደንበኞች ካሉ እና የጥያቄው ዱካ ምን እንደ ሆነ መመርመር አያስፈልገንም። እኛ እጀታ ደንበኛን () መደወል ብቻ አለብን ፣ እና እቃው ማንኛውም ደንበኛ ማንኛውንም ጥያቄ እየጠየቀ መሆኑን ይፈትሻል እና ቀደም ሲል ወደተመዘገብነው ተጓዳኝ ተግባር ያዞራል።

ባዶነት loop () {// Verifica se há alguma requisição de algum cliente server.handleClient (); }

ደረጃ 5 - ጥያቄ አልተገኘም

ደንበኛው ያልተመዘገበ ማንኛውንም ጥያቄ ሲያቀርብ ለማስፈጸም ቀደም ብለን የገባንበት ተግባር ነው።

ተግባሩ ኮድ 404 ን ብቻ ይመልሳል (ሀብቱ በማይገኝበት ጊዜ ነባሪ ኮድ) ፣ የተመለሰው የውሂብ ዓይነት (በቀላል ጽሑፍ ሁኔታ) እና “አልተገኘም” የሚል ጽሑፍ ያለው ጽሑፍ ብቻ ነው።

// Função que definimos para ser chamada quando o caminho requisitado não foi registrado void onNotFound () {server.send (404 ፣ “text/ሜዳ” ፣ “አልተገኘም”); }

ደረጃ 6 - የሙቀት መጠኑን መመለስ

ደንበኛው በ / የሙቀት መጠን የ GET ጥያቄ ሲያቀርብ ይህ የሙቀት መጠን ዳታ ያለው ጄሶንን የሚመልሰው ተግባር ነው።

// 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) ባዶ ቦታ ሙቀት () {// 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 ፣ “ማመልከቻ/json” ፣ json); }

ደረጃ 7 እርጥበት መመለስ

ደንበኛው የ GET ጥያቄ / እርጥበት በሚሰጥበት ጊዜ ይህ የእርጥበት መረጃን በመጠቀም ጄሶንን የሚመልሰው ተግባር ነው።

// 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) ባዶ getHumidity () {// Fazemos a leitura ዳ umidade através do módulo dht float h = dht.readHumidity (); // Cria um json com os dados da umidade String json = "{" እርጥበት / ":"+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 ፣ “ማመልከቻ/json” ፣ json); }

ደረጃ 8 ኤችቲኤምኤል

ደንበኛው ወደ መዳረሻ / ተቆጣጣሪ ሲሄድ html የሚመልሰው ይህ ተግባር ነው። ይህ ገጽ የሙቀት እና እርጥበት እሴቶችን ያሳያል ፣ እና ውሂቡን ከጊዜ ወደ ጊዜ እንደገና ይጫናል። መካከል እና እና ቅጥ ያለው ክፍል>

የገጹን ገጽታ ይገልጻል ፣ እና እንደወደዱት መለወጥ ይችላሉ።

// 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) ባዶ ማሳያ ሞኒተር () {String html = "" "" """

“DHT Monitor”

"አካል {"

"መለጠፍ: 35 ፒክስል;"

"የጀርባ ቀለም- #222222;" "}"

ደረጃ 9 የኤችቲኤምኤል ዘይቤ መቀጠል

"h1 {" "ቀለም: #FFFFFF;" "ቅርጸ-ቁምፊ-ቤተሰብ-ሳንስ-ሰርፍ;" "}" "p {" "ቀለም ፦ #EEEEEE;" "ቅርጸ-ቁምፊ-ቤተሰብ-ሳንስ-ሰርፍ;" "የቅርጸ-ቁምፊ መጠን 18 ፒክሰል;" "}" ""

እዚህ እኛ የ html ዋና ክፍል አለን። በውስጡ ፣ ሙቀቱን እና እርጥበቱን የሚያሳዩ ሁለት አንቀጾች አሉን። ለአንቀጾቹ መታወቂያዎች ትኩረት ይስጡ ፣ ምክንያቱም ከተጠየቁ በኋላ የሙቀት እና እርጥበት እሴቶችን ለማስገባት እነዚህን አንቀጾች የምናገኘው በእነሱ በኩል ነው።

DHT ሞኒተር

የሙቀት መጠን

እርጥበት

ደረጃ 10 ጃቫስክሪፕት

እዚህ ከጊዜ ወደ ጊዜ የሙቀት እና እርጥበት እሴቶችን የሚያነብበትን ስክሪፕት መግለፅ እንጀምራለን። የእድሳት () ተግባር የእድሳት ቴምፕሬተር () እና የእድሳት (የእድሳት) () ተግባሮችን ይጠራል ፣ እና setInterval የእያንዳንዱን 5000 ሚሊሰከንዶች (5 ሰከንዶች) የእድሳት ተግባርን ይጠራል።

"አድስ ();" "setInterval (አድስ ፣ 5000);" "ተግባር አድስ ()" "{" "refreshTemperature ()" "refreshHumidity ();" "}"

ተግባሩ refreshTemperature () በ / ሙቀት ጥያቄን ያቀርባል ፣ በ json ውስጥ ያለውን መረጃ ይተነትናል ፣ እና በአንቀጹ ውስጥ የመታወቂያውን የሙቀት መጠን ያክላል።

"ተግባር refreshTemperature ()" "{" "var xmlhttp = new XMLHttpRequest ();" "xmlhttp.onreadystatechange = function () {" "if (xmlhttp.readyState == XMLHttpRequest. DONE && xmlhttp.status == 200) {" "document.getElementById ('ሙቀት'). innerHTML = 'Temperature:' + JSON. መተንተን (xmlhttp.responseText).temperature + 'C'; " "}" "};" "xmlhttp.open ('GET' ፣ 'https://192.168.2.8/temperature' ፣ እውነት) ፤» "xmlhttp.send ();" "}"

የ refreshHumidity () ተግባር ለ / እርጥበት ጥያቄን ያቀርባል ፣ በ json ውስጥ ያለውን መረጃ ይተነትናል ፣ እና በአንቀጽ ውስጥ የመታወቂያውን እርጥበት ያክላል። እና በዚህ ፣ እኛ በ ውስጥ / በክትትል ውስጥ የምንልከውን html እንጨርሳለን።

"ተግባር refreshHumidity ()" "{" "var xmlhttp = new XMLHttpRequest ();" "xmlhttp.onreadystatechange = function () {" "if (xmlhttp.readyState == XMLHttpRequest. DONE && xmlhttp.status == 200) {" "document.getElementById ('እርጥበት'). innerHTML = 'Humidity:' + JSON. መተንተን (xmlhttp.responseText)። እርጥበት + '%'; " "}" "};" "xmlhttp.open ('GET' ፣ 'https://192.168.2.8/humidity' ፣ እውነት) ፤" "xmlhttp.send ();" "}"

"";

ደረጃ 11: ShowMonitor ን መጨረስ

አሁን እኛ የምንልክበት ኤችቲኤምኤል ያለው ሕብረቁምፊ ዝግጁ ሆኖ ለደንበኛው መላክ እንችላለን። ይህ የ ShowMonitor ተግባሩን እና ኮዱን ያጠናቅቃል።

// 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 ፣ “ጽሑፍ/html” ፣ html) ፤ }

ደረጃ 12: ሙከራ

ሙከራ
ሙከራ

አሁን አሳሽዎን ይክፈቱ እና https://192.168.2.8/monitor ን ያስገቡ (እንደ ውቅረትዎ የተለየ ip ሊፈልጉ ይችላሉ)።

የሚመከር: