ዝርዝር ሁኔታ:
- ደረጃ 1 - ስብሰባ
- ደረጃ 2 ኮድ
- ደረጃ 3: ማዋቀር
- ደረጃ 4 - ሉፕ
- ደረጃ 5 - ጥያቄ አልተገኘም
- ደረጃ 6 - የሙቀት መጠኑን መመለስ
- ደረጃ 7 እርጥበት መመለስ
- ደረጃ 8 ኤችቲኤምኤል
- ደረጃ 9 የኤችቲኤምኤል ዘይቤ መቀጠል
- DHT ሞኒተር
- ደረጃ 10 ጃቫስክሪፕት
- ደረጃ 11: ShowMonitor ን መጨረስ
- ደረጃ 12: ሙከራ
ቪዲዮ: ESP8266: የሙቀት መጠንን እና እርጥበትን እንዴት መከታተል እንደሚቻል - 12 ደረጃዎች
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:33
በዛሬው ትምህርት ውስጥ ፣ ለ 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 ሊፈልጉ ይችላሉ)።
የሚመከር:
M5STACK ቪዲዮን በመጠቀም M5StickC ESP32 ላይ የሙቀት መጠንን ፣ እርጥበትን እና ግፊትን እንዴት ማሳየት እንደሚቻል - ማድረግ ቀላል ነው - 6 ደረጃዎች
M5STACK Visuino ን በመጠቀም በ M5StickC ESP32 ላይ የሙቀት መጠንን ፣ እርጥበትን እና ግፊትን እንዴት ማሳየት እንደሚቻል - ማድረግ ቀላል ነው - በዚህ መማሪያ ውስጥ የ ENV ዳሳሽ (DHT12 ፣ BMP280 ፣ BMM150)
በ ESP8266 እና በ AskSensors IoT ደመና አማካኝነት የአልትራሳውንድ ርቀትን እንዴት መከታተል እንደሚቻል - 5 ደረጃዎች
በ ESP8266 እና በ AskSensors IoT ደመና አማካኝነት የአልትራሳውንድ ርቀትን እንዴት መከታተል እንደሚቻል-ይህ አስተማሪ ከአይሶሴንስ IoT ደመና ጋር የተገናኘ የአልትራሳውንድ HC-SR04 ዳሳሽ እና ESP8266 መስቀለኛ መንገድ MCU ን በመጠቀም ከአንድ ነገር ርቀትን እንዴት እንደሚቆጣጠር ያሳያል።
የሙቀት መጠንን ሊለካ የሚችል ኩብሳትን እንዴት መሥራት እንደሚቻል -3 ደረጃዎች
የሙቀት መጠንን የሚለካ ኩብሳትን እንዴት መሥራት እንደሚቻል - ይዘው ይምጡ እና 11x11x11x11 ኩብ ንፁህ ምናብ ያያሉ ፣ እጄን ይውሰዱ እና የማርስን የሙቀት መጠን ያያሉ! (ለዊሊ ዎንካ “ምናብ” ዜማ) ዛሬ የራስዎን CubeSat መገንባት እንዳለብዎ አሳያችኋለሁ! እኔ እና አጋሮቼ አሊሳ እና
የሙቀት መጠንን እንዴት መገንባት እንደሚቻል - 5 ደረጃዎች
የሙቀት መጠን ኩቤሳትን እንዴት እንደሚገነቡ - ከ 10x10x10 ኩብ በስተቀር ምንም ነገር ሳይጠቀሙ ፕላኔትን የማሰስ ችሎታ ይኑርዎት። አሁን ይችላሉ
የአዕምሮ ሣጥን - የነርቭ መጠንን በጊዜ መከታተል -20 ደረጃዎች
የአዕምሮ ሣጥን - ከጊዜ በኋላ የነርቭ መጠንን መከታተል - ወደ ረዥም የሰው ሕይወት ድንበር መግባቱ ከእኛ በፊት በሥልጣኔዎች የማይታዩ በሽታዎች መነሣትን አስገኝቷል። ከእነዚህ መካከል አልዛይመር በ 2017 በግምት 5.3 ሚሊዮን ሕያው አረጋውያን አሜሪካውያንን ፣ ወይም በግምት 1 በ 10 ሠ