Სარჩევი:
- ნაბიჯი 1: შეკრება
- ნაბიჯი 2: კოდი
- ნაბიჯი 3: დაყენება
- ნაბიჯი 4: მარყუჟი
- ნაბიჯი 5: მოთხოვნა ვერ მოიძებნა
- ნაბიჯი 6: ტემპერატურის დაბრუნება
- ნაბიჯი 7: ტენიანობის დაბრუნება
- ნაბიჯი 8: HTML
- ნაბიჯი 9: HTML სტილის გაგრძელება
- DHT მონიტორი
- ნაბიჯი 10: JavaScript
- ნაბიჯი 11: ShowMonitor– ის დასრულება
- ნაბიჯი 12: ტესტირება
ვიდეო: ESP8266: როგორ ვაკონტროლოთ ტემპერატურა და ტენიანობა: 12 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
დღევანდელ გაკვეთილში ჩვენ გამოვიყენებთ ESP-01, რომელიც არის ESP8266 კონფიგურაციის 01-ში (მხოლოდ 2 GPIO), DHT22 სენსორის ტემპერატურისა და ტენიანობის კითხვისთვის. მე გაჩვენებთ ელექტრო სქემას და ESP პროგრამირების ნაწილს არდუინოსთან ერთად. მაგალითი არის მარტივი, ადვილად გასაგები და ასევე მოყვება PDF– ში გამოყენებული ვიდეოში ასამბლეის დასახმარებლად.
დიზაინში ჩვენ გვაქვს ESP01, წყარო, რომელიც გარდაქმნის 110 ან 220 5 ვოლტად, ძაბვის რეგულატორს 3v3 და DHT22, რომელიც არის სენსორი. სმარტფონის ეკრანზე თქვენ გექნებათ ადგილობრივი IP მისამართი ESP– ის მიერ მოწოდებული JavaScript კოდის გარდა. ეს ეკრანი მიიღებს ტემპერატურისა და ტენიანობის პარამეტრებს და დაბეჭდავს ამ მნიშვნელობებს, რომლებიც განახლდება ყოველ ხუთ წამში. ამისათვის თქვენ არ დაგჭირდებათ პროგრამები ტელეფონებსა და ტაბლეტებზე და ეს ეხება როგორც Android OS- ს, ასევე IOS- ს.
ნაბიჯი 1: შეკრება
ელექტრო სქემა საკმაოდ მარტივია, ისევე როგორც ნაწილი ასამბლეის შესახებ, რომელიც ჩართავს ESP01 როგორც სერვერს. ESPO1 დაპროგრამდება თითქოს არდუინო: C ენაზე. მე აღვნიშნავ, რომ კოდის ნაწილი დაბეჭდილია ბრაუზერიდან. ეს ნიშნავს, რომ ის აგზავნის JavaScript კოდს ბრაუზერში. ქვემოთ, მე უკეთ აგიხსნით, თუ როგორ მუშაობს ეს.
დავბრუნდი გაყვანილობის დიაგრამაზე, მე დავამატე 5 ვოლტიანი გადამრთველი წყარო, რომელიც დაკავშირებულია 3v3 ძაბვის რეგულატორთან ESP01- ის დასაყენებლად. ჩვენ ჯერ კიდევ გვაქვს DHT22 ოთხი ქინძისთავით. ერთი მათგანი, მონაცემები, არ გამოიყენება. თუმცა, ამას სჭირდება გამწევი რეზისტორი.
ნაბიჯი 2: კოდი
პირველი ნაბიჯი არის ლიბების ჩართვა, რომელსაც ჩვენ გამოვიყენებთ. DHT lib შეიძლება დაემატოს ესკიზის ვარიანტი> ბიბლიოთეკის ჩართვა> ბიბლიოთეკების მართვა…
ფანჯარაში, რომელიც იხსნება, მოძებნეთ DHT სენსორების ბიბლიოთეკა.
ამის შემდეგ, ჩვენ შევქმენით ცვლადი ტიპის ESP8266WebServer, რომელიც იქნება ჩვენი სერვერი და უპასუხებს HTTP მოთხოვნებს (პორტი 80).
ჩვენ ასევე ვქმნით DHT ცვლადს პარამეტრებით 0 (რაც არის GPIO pin 0) და ტიპი (ჩვენს შემთხვევაში DHT22).
#ჩართეთ #ჩართეთ #ჩართეთ #ჩართეთ // Criamos uma variável do tipo ESP8266WebServer რომ ეს შესაძლებელია იყოს ფუნქციები // 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 // ნებადართული ტემპერატურისა და umidade DHT dht (0, DHT22);
ნაბიჯი 3: დაყენება
დაყენებისას ჩვენ დავიწყებთ სერიალის ინიციალიზაციას მხოლოდ ისე, რომ ჩვენ გვქონდეს ჟურნალი. ეს მოხდება, თუ ESP8266 უკავშირდება კომპიუტერს სერიული საშუალებით სერიული მონიტორის გამოსაყენებლად.
ჩვენ დავაკავშირებთ ESP8266 ჩვენს ქსელს. ჩვენს შემთხვევაში, ჩვენ ვიყენებთ TesteESP ქსელს პაროლით 87654321, მაგრამ თქვენ მოგიწევთ ამის შეცვლა ქსელის მიხედვით, რომელსაც თქვენ იყენებთ.
// ინიციალიზაცია Serial apenas caso esteja com o ESP8266 conectado ao computador pela serla queira ter um log // para easyar 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 fixo. Você pode alterar conforme 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 configuração WiFi.config (ip, gateway, subnet);
შემდეგი ბრძანებები მხოლოდ იმ შემთხვევაშია, თუ თქვენ გაქვთ ESP8266 კომპიუტერთან დაკავშირებული სერიული საშუალებით, ასე რომ თქვენ გაქვთ უკუკავშირი სერიული მონიტორისგან.
თქვენ შეგიძლიათ შეამოწმოთ IP, რომელიც მიიღო 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 ("კონექადო"); Serial.print ("IP:"); Serial.println (WiFi.localIP ());
აქ ჩვენ ვიწყებთ განსაზღვრას რომელი ფუნქციები შესრულდება თითოეული მოთხოვნისათვის.
ქვემოთ მოცემულ ინსტრუქციაში, ყოველ ჯერზე, როდესაც ESP8266 მიიღებს HTTP მოთხოვნას GET– ის ტიპის გზაზე / ტემპერატურაზე, მიიღება getTemperature ფუნქცია.
// Aqui definimos qual a função será Exeada 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) funcãoo getTemperature será serverada.on ("/temperature", HTTP_GET, getTemperature);
ამ სხვა განცხადებაში, ყოველ ჯერზე, როდესაც ESP8266 მიიღებს HTTP მოთხოვნას GET– ის ტიპის გზაზე / ტენიანობაში, getHumidity ფუნქცია შესრულდება.
// Nesse outo caso quando houver uma requisição http do tipo GET no caminho https://192.168.2.8/humidity // (pode ser out out ip dependendo da sua configuração) funchão getHumidity serada შესრულებული სერვერი. ("/ტენიანობა", HTTP_GET, getHumidity);
ამ ინსტრუქციაში, ყოველ ჯერზე, როდესაც ESP8266 მიიღებს HTTP მოთხოვნას GET– ის ტიპის გზაზე / მონიტორზე, ფუნქცია showMonitor შესრულდება.
ShowMonitor ფუნქცია პასუხისმგებელია მთავარი html- ის დაბრუნებაზე, რომელიც აჩვენებს ტემპერატურისა და ტენიანობის მნიშვნელობებს.
// Nesse caso quando houver uma requisição http do tipo GET no caminho https://192.168.2.8/monitor // (pode ser out out ip dependendo da sua configuração) funshão showMonitor será შესრულება. // 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 ("/მონიტორი", HTTP_GET, showMonitor);
აქ არის ფუნქციის განმარტება, რომელიც უნდა შესრულდეს მაშინ, როდესაც მოთხოვნილი გზა არ არის ნაპოვნი.
// Aqui definimos qual função será შესრულება ნებისმიერ დროს ან კლიენტის მოთხოვნით, რომ არ იყოს რეგისტრირებული server.onNotFound (onNotFound);
აქ ჩვენ ვაყენებთ ჩვენს სერვერს, რომელიც ადრე გამოვაცხადეთ 80 პორტზე.
ეს არის კონფიგურაციის დასასრული.
// ოფიციალური სერვერი და პორტა 80 server.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 (ნაგულისხმევი კოდი, როდესაც რესურსი არ არის ნაპოვნი), დაბრუნებული მონაცემების ტიპი (უბრალო ტექსტის შემთხვევაში) და ტექსტი სიტყვებით "არ მოიძებნა".
// ფუნქცია, რომელიც განსაზღვრულია იმის შესახებ, თუ როგორ უნდა შეასრულოს იგი საჭიროებისამებრ, რომ რეგისტრაცია გაუქმდეს onNotFound () {server.send (404, "text/plain", "Not found"); }
ნაბიჯი 6: ტემპერატურის დაბრუნება
ეს არის ფუნქცია, რომელიც დააბრუნებს json- ს ტემპერატურის მონაცემებით, როდესაც კლიენტი GET მოთხოვნას / ტემპერატურაზე აკეთებს.
// ფუნქცია, რომელიც განსაზღვრულია, თუ როგორ უნდა შეასრულოს ის კლიენტებთან ერთად, რაც მოითხოვს მოთხოვნას // გააკეთეთ რეკომენდაცია არ მიიღოთ https://192.168.2.8/temperature (pode ser out out 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á შესრულებული 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 = "{" ტენიანობა / ":"+სიმებიანი (თ)+"}"; // 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 როდესაც კლიენტი მიდის წვდომა / მონიტორზე. ეს გვერდი აჩვენებს ტემპერატურისა და ტენიანობის მნიშვნელობებს და დროდადრო განაახლებს მონაცემებს. ნაწილი, რომელიც არის და და> სტილს შორის>
განსაზღვრავს გვერდის გარეგნობას და თქვენ შეგიძლიათ შეცვალოთ ის, როგორც გსურთ.
// ფუნქცია, რომელიც განსაზღვრავს თქვენს კლიენტებს, რომლებიც საჭიროებენ თქვენს მოთხოვნას // გააკეთეთ რეკომენდაცია არ მიიღოთ 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 = ახალი XMLHttpRequest ();" "xmlhttp.onreadystatechange = ფუნქცია () {" "if (xmlhttp.readyState == XMLHttpRequest. DONE && xmlhttp.status == 200) {" "document.getElementById (" ტემპერატურა "). innerHTML = 'ტემპერატურა:' + JSON ანალიზი (xmlhttp.responseText). ტემპერატურა + 'C'; " "}" "};" "xmlhttp.open (" GET "," https://192.168.2.8/temperature ", true);" "xmlhttp.send ();" "}"
RefreshHumidity () ფუნქცია ითხოვს / ტენიანობას, აანალიზებს json– ში არსებულ ინფორმაციას და აბზაცს ამატებს id ტენიანობას. და ამით, ჩვენ ვამთავრებთ html– ს, რომელსაც ჩვენ გამოგიგზავნით მოთხოვნებს / მონიტორში.
"ფუნქცია refreshHumidity ()" "{" "var xmlhttp = ახალი XMLHttpRequest ();" "xmlhttp.onreadystatechange = ფუნქცია () {" "if (xmlhttp.readyState == XMLHttpRequest. DONE && xmlhttp.status == 200) {" "document.getElementById (" ტენიანობა "). innerHTML = 'ტენიანობა:' + JSON parse (xmlhttp.responseText). ტენიანობა + '%'; " "}" "};" "xmlhttp.open (" GET "," https://192.168.2.8/humidity ", true);" "xmlhttp.send ();" "}"
"";
ნაბიჯი 11: ShowMonitor– ის დასრულება
ახლა, როდესაც სტრიქონი html– ით, რომელსაც ჩვენ გამოგიგზავნით, მზადაა, შეგვიძლია გავუგზავნოთ კლიენტს. ეს ასრულებს showMonitor ფუნქციას და კოდს.
// Envia o html para or 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: ტესტირება
ახლა გახსენით თქვენი ბრაუზერი და შეიყვანეთ 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)
როგორ გავხადოთ ტენიანობა და ტემპერატურა რეალურ დროში მონაცემთა ჩამწერი Arduino UNO და SD ბარათით - DHT11 მონაცემთა მრიცხველის სიმულაცია Proteus– ში: 5 ნაბიჯი
როგორ გავხადოთ ტენიანობა და ტემპერატურა რეალურ დროში მონაცემთა ჩამწერი Arduino UNO და SD ბარათით | DHT11 მონაცემთა მრიცხველის სიმულაცია Proteus- ში: შესავალი: გამარჯობა, ეს არის Liono Maker, აქ არის YouTube ბმული. ჩვენ ვაკეთებთ შემოქმედებით პროექტს Arduino– სთან და ვმუშაობთ ჩამონტაჟებულ სისტემებზე. Data-Logger: მონაცემთა მრიცხველი (ასევე მონაცემების ჩამწერი ან მონაცემთა ჩამწერი) არის ელექტრონული მოწყობილობა, რომელიც დროთა განმავლობაში აფიქსირებს მონაცემებს
ESP8266 და Visuino: DHT11 ტემპერატურა და ტენიანობა ვებ სერვერი: 12 ნაბიჯი
ESP8266 და Visuino: DHT11 ტემპერატურისა და ტენიანობის ვებ სერვერი: ESP8266 მოდულები არის დიდი დაბალბიუჯეტიანი დამოუკიდებელი კონტროლერი ჩაშენებული Wi-Fi და მე უკვე გავაკეთე არაერთი ინსტრუქცია მათ შესახებ. DTH11/DTH21/DTH22 და AM2301 ძალიან პოპულარულია კომბინირებული ტემპერატურა და ტენიანობის არდუინოს სენსორები და მე გავაკეთე რიცხვი
სათბურის ავტომატიზაცია LoRa– ით! (ნაწილი 1) -- სენსორები (ტემპერატურა, ტენიანობა, ნიადაგის ტენიანობა): 5 ნაბიჯი
სათბურის ავტომატიზაცია LoRa– ით! (ნაწილი 1) || სენსორები (ტემპერატურა, ტენიანობა, ნიადაგის ტენიანობა): ამ პროექტში მე გაჩვენებთ როგორ ავტომატიზირებულია სათბური. ეს იმას ნიშნავს, რომ მე გაჩვენებთ თუ როგორ ავაშენე სათბური და როგორ შევაერთე ელექტროენერგიის სიმძლავრე და ავტომატიზაცია. ასევე მე გაჩვენებთ თუ როგორ უნდა დაპროგრამდეს Arduino დაფა, რომელიც იყენებს L
როგორ გამოვიყენოთ DHT11 ტემპერატურის სენსორი არდუინოსთან და ბეჭდვის ტემპერატურა სითბო და ტენიანობა: 5 ნაბიჯი
როგორ გამოვიყენოთ DHT11 ტემპერატურის სენსორი არდუინოსთან და ბეჭდვის ტემპერატურა სითბო და ტენიანობა: DHT11 სენსორი გამოიყენება ტემპერატურისა და ტენიანობის გასაზომად. ისინი ძალიან პოპულარული ელექტრონიკის მოყვარულები არიან. DHT11 ტენიანობის და ტემპერატურის სენსორი ნამდვილად აადვილებს ტენიანობის და ტემპერატურის მონაცემების დამატებას თქვენს წვრილმანი ელექტრონიკის პროექტებში. ეს არის