Mündəricat:
- Addım 1: Quraşdırma
- Addım 2: Kod
- Addım 3: Quraşdırma
- Addım 4: Döngə
- Addım 5: İstək Tapılmadı
- Addım 6: Temperaturun qaytarılması
- Addım 7: Rütubətin qaytarılması
- Addım 8: HTML
- Addım 9: HTML Stilinin davamı
- DHT Monitoru
- Addım 10: JavaScript
- Addım 11: ShowMonitor -un bitməsi
- Addım 12: Test
Video: ESP8266: İstilik və Rütubəti Necə İzləmək olar: 12 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:47
Bugünkü dərsdə, DHT22 sensorunun temperatur və rütubət göstəriciləri üçün 01 konfiqurasiyasında ESP8266 olan ESP-01-dən (yalnız 2 GPIO ilə) istifadə edəcəyik. Sizə bir elektrik sxemini və bir Arduino ilə ESP proqramlaşdırma hissəsini göstərəcəyəm. Nümunə sadə, başa düşüləndir və montajda kömək etmək üçün videoda istifadə olunan PDF ilə gəlir.
Dizaynda 110 və ya 220 -ni 5 volta çevirən ESP01 mənbəyi, 3v3 gərginlik tənzimləyicisi və sensor olan DHT22 var. Smartfon ekranında, ESP tərəfindən verilən JavaScript koduna əlavə olaraq yerli IP ünvanınız olacaq. Bu ekran bu səbəbdən temperatur və rütubət parametrlərini alacaq və hər beş saniyədə bir yenilənəcək bu dəyərləri çap edəcək. Bunu etmək üçün telefonlarda və planşetlərdə heç bir tətbiqə ehtiyacınız olmayacaq və bu həm Android OS, həm də IOS üçün keçərlidir.
Addım 1: Quraşdırma
Elektrik sxemi, ESP01 -in bir server olaraq iştirak edəcəyi montaj haqqında olduğu kimi olduqca sadədir. ESPO1 sanki Arduino kimi proqramlaşdırılacaq: C dili vasitəsilə. Kodun bir hissəsinin brauzerdən çap olunduğunu qeyd edirəm. Bu o deməkdir ki, brauzerə JavaScript kodu göndərir. Aşağıda bunun necə işlədiyini daha yaxşı izah edəcəyəm.
Bağlama sxeminə qayıdaraq, ESP01-i gücləndirmək üçün 3v3 gərginlik tənzimləyicisinə qoşulmuş 5 voltlu açar mənbəyi qoydum. Hələ də dörd sancaqlı DHT22 -ə sahibik. Bunlardan biri olan məlumatlar istifadə edilmir. Bununla birlikdə, bir müqavimət çəkmək lazımdır.
Addım 2: Kod
İlk addım, istifadə edəcəyimiz libləri daxil etməkdir. DHT libini Sketch seçimi> Kitabxanaya Daxil Et> Kitabxanaları İdarə et…
Açılan pəncərədə DHT sensor kitabxanasını axtarın.
Bundan sonra serverimiz olacaq və HTTP sorğularına cavab verəcək ESP8266WebServer tipli bir dəyişən yaratdıq (port 80).
0 parametrləri (GPIO pin 0) və növü (bizim vəziyyətimizdə DHT22) olan bir DHT dəyişənini də yaradırıq.
#include #include #include #daxil edin // ESP8266WebServer və ya ESP8266 və ya ESP8266 xidmətlərinə cavab verən ESP8266WebServer serveri (80); // DHT -nin dəyişdirilməsi və ya dəyişdirilməsi ilə əlaqədar olaraq, DHT -nin (0, DHT22) istiləşməsinə icazə verin;
Addım 3: Quraşdırma
Quraşdırmada, yalnız bir qeydimiz olması üçün Serialı işə salacağıq. Bu, ESP8266 seriyalı monitordan istifadə etmək üçün kompüterə serial vasitəsilə qoşulduqda baş verəcəkdir.
ESP8266 -nı şəbəkəmizə bağlayacağıq. Bizim vəziyyətimizdə 87654321 şifrəsi ilə TesteESP şəbəkəsini istifadə edirik, ancaq istifadə etdiyiniz şəbəkəyə uyğun olaraq bunu dəyişdirməlisiniz.
// ESP8266 ilə əlaqə qurmaq üçün ESP8266 ilə əlaqə qurun və ya ESP8266 Serial.begin (115200) ilə əlaqə qurun; // ESP8266 ilə əlaqədar təlimat. // No 8764321 TesteESP və ya başqa heç bir məlumat yoxdur. // WiFi.begin ("TesteESP", "87654321") məlumatlarını dəyişdirməklə əlaqə qurun; // Əlaqə Serial Serial.println ("") izləmək; Serial.print ("Conectando");
ESP8266 -nın şəbəkəyə qoşulmasını gözləyirik və qoşulduqdan sonra şəbəkə parametrlərini göndəririk. Şəbəkənizə görə dəyişin.
// Esperamos até que o módulo se conecte à rede while (WiFi.status ()! = WL_CONNECTED) {gecikmə (500); Serial.print ("."); } // IP düzeltmeyi konfiqurasiya edin. Əlavə məlumat IPAddress ip -ə uyğun gəlir (192, 168, 3, 11); IP ünvan ünvanı (192, 168, 3, 1); IPAddress alt şəbəkəsi (255, 255, 255, 0); Serial.print ("Configurando IP fixo para:"); Serial.println (ip); // WiFi.config konfiqurasiyasına daxil olun (ip, ağ geçidi, alt şəbəkə);
Növbəti əmrlər yalnız ESP8266 -nı kompüterə serial vasitəsi ilə bağladığınız təqdirdə Serial Monitordan geribildiriminiz olsun.
ESP8266 -nın qəbul etdiyi IP -ni parametrlərdəki ilə eyni olub olmadığını yoxlaya bilərsiniz.
// Mostramos yoxlanılmamış Seriallar və ya Serial.println ("") konfiqurasiyasını yoxlamaqla əlaqədar olaraq, Esp8266 ilə əlaqə qurun; Serial.println ("Connectado"); Serial.print ("IP:"); Serial.println (WiFi.localIP ());
Burada, hər bir istək üçün hansı funksiyaların yerinə yetiriləcəyini təyin etməyə başlayırıq.
Aşağıdakı təlimatda, ESP8266 hər dəfə yol / temperaturda GET tipli bir HTTP sorğusu alanda getTemperature funksiyası yerinə yetiriləcəkdir.
// Şərhlər və tapşırıqların yerinə yetirilməsi üçün müəyyən bir tapşırıq var. // Lazım deyilsə, https://192.168.2.8/temperature əldə etmək üçün https://192.168.2.8/temperature // (serverdən asılı olmayaraq konfiqurasiya etmək üçün) getTemperature server.on ("/temperatur", HTTP_GET), getTemperature);
Bu digər ifadədə, ESP8266 hər dəfə yol / rütubətdə GET tipli bir HTTP sorğusu aldıqda getHumidity funksiyası yerinə yetiriləcək.
// Heç bir şey əldə etməmək üçün https://192.168.2.8/humidity // məlumat əldə etmək üçün serverdən istifadə edə bilərsiniz ("/rütubət") HTTP_GET, getHumidity);
Bu təlimatda, ESP8266 hər dəfə yolda / monitorda GET tipli bir HTTP sorğusu alanda showMonitor funksiyası yerinə yetiriləcək.
ShowMonitor funksiyası, temperatur və rütubət dəyərlərini əks etdirən əsas html -in qaytarılmasından məsuldur.
// Nəzərə almaq lazımdır ki, https://192.168.2.8/monitor əldə etməyin https://192.168.2.8/monitor // (proqram təminatı müstəqil olaraq göstərilir) və ShowMonitor proqramının icrası. // Başlanğıc funksiyalarını yerinə yetirmək üçün əsas şərtlər // həm serverin, həm də temperaturun və ya məlumatların yenilənməsi ilə bağlı məlumatlar ("/monitor", HTTP_GET, showMonitor);
İstədiyiniz yol tapılmadıqda icra edilməli olan funksiya tərifi budur.
// İstifadəçi üçün lazımlı məlumatların qeydiyyatı server.onNotFound (onNotFound);
Burada əvvəllər 80 portda elan etdiyimiz serverimizi işə salırıq.
Bu quraşdırmanın sonudur.
// serverin 80 server.begin () serverini yoxlayın; Serial.println ("Servidor HTTP iniciado"); }
Addım 4: Döngə
Lib ESP8266WebServer sayəsində müştərilərin olub olmadığını və sorğu yolunun nə olduğunu yoxlamaq lazım deyil. Yalnız handleClient () -ə zəng etməliyik və obyekt hər hansı bir müştərinin hər hansı bir sorğu göndərdiyini yoxlayacaq və əvvəllər qeyd etdiyimiz müvafiq funksiyaya yönləndirəcək.
void loop () {// Müştəri serveri.handleClient () məlumatlarını yoxlamaq lazımdır; }
Addım 5: İstək Tapılmadı
Müştəri qeydiyyatdan keçməmiş hər hansı bir sorğu verdikdə yerinə yetirmək üçün əvvəllər daxil olduğumuz funksiyadır.
Funksiya yalnız 404 kodunu (bir qaynaq tapılmadığı üçün standart kod), qaytarılmış məlumat tipini (düz mətn halında) və "Tapılmadı" sözləri olan bir mətni qaytarır.
// Əməliyyat sənədlərinin müəyyən edilməsi üçün onNotFound () {server.send (404, "mətn/düz", "Tapılmadı") qeydiyyatdan keçməməlisiniz; }
Addım 6: Temperaturun qaytarılması
Müştəri / temperaturda GET tələbi verdikdə, temperatur məlumatları ilə bir json qaytaracaq funksiyadır.
// İstifadəçilərə lazım olan bütün məlumatları almaq üçün https://192.168.2.8/temperature (heç bir problem yoxdur) getTemperature () {/Fazemos a leitura da temperatura através módulo dht float t = dht.readTemperature (); // Crus um json com os dados da temperatura String json = "{" temperatur / ":"+String (t)+"}"; // Müştərilər üçün 200 və ya daha çox server, server.send (200, "application/json", json) üçün bir tələb var; }
Addım 7: Rütubətin qaytarılması
Müştəri / rütubətdə GET sorğusu verdikdə nəm məlumatları ilə bir json qaytaracaq funksiyadır.
// İstifadəçilərə lazım olan bütün məlumatları almaq üçün https://192.168.2.8/ rütubətdən (heç bir problem yoxdur) getHumidity () {// Fazemos a leitura float h = dht.readHumidity (); // Cria um json com os dados da umidade String json = "{" rütubət / ":"+String (h)+"}"; // Müştərilər üçün 200 və ya daha çox server, server.send (200, "application/json", json) üçün bir tələb var; }
Addım 8: HTML
Müştəri daxil olmaq / izləmək üçün getdikdə html -i qaytaracaq funksiyadır. Bu səhifə temperatur və rütubət dəyərlərini göstərəcək və zaman zaman məlumatları yenidən yükləyəcək. Və üslubu arasında olan hissə>
səhifənin görünüşünü təyin edir və istədiyiniz kimi dəyişə bilərsiniz.
// İstifadəçilərə lazım olan bütün tapşırıqları yerinə yetirmək üçün // heç bir məlumat əldə etməyin https://192.168.2.8/monitor (hər hansı bir konfiqurasiya konfiqurasiyasından asılı olmayaraq) showMonitor () {String html = "" "" ""
"DHT Monitor"
"bədən {"
"doldurma: 35 piksel;"
"fon rəngi: #222222;" "}"
Addım 9: HTML Stilinin davamı
"h1 {" "color: #FFFFFF;" "font-family: sans-serif;" "}" "p {" "rəng: #EEEEEE;" "font-family: sans-serif;" "font ölçüsü: 18px;" "}" ""
Burada html -in əsas hissəsi var. İçərisində, temperatur və rütubəti göstərən iki paraqrafımız var. Paraqrafların idlərinə diqqət yetirin, çünki istəklərdən sonra temperatur və rütubət dəyərlərini daxil etmək üçün bu paraqrafları bərpa edəcəyik.
DHT Monitoru
Temperatur:
Rütubət:
Addım 10: JavaScript
Burada zaman zaman temperatur və rütubət dəyərlərini oxuyacaq ssenarini təyin etməyə başlayırıq. Yeniləmə () funksiyası refreshTemperature () və refreshHumdity () funksiyalarını çağırır və setInterval yeniləmə funksiyasını hər 5000 millisaniyədə (5 saniyə) çağırır.
"təzələmək();" "setInterval (yeniləmə, 5000);" "funksiya yeniləmə ()" "{" "refreshTemperature ()" "refreshHumidity ();" "}"
RefreshTemperature () funksiyası / temperaturda sorğu göndərir, jsonda olan məlumatları təhlil edir və paraqrafa id temperaturunu əlavə edir.
"funksiya refreshTemperature ()" "{" "var xmlhttp = yeni XMLHttpRequest ();" "xmlhttp.onreadystatechange = function () {" "if (xmlhttp.readyState == XMLHttpRequest. DONE && xmlhttp.status == 200) {" "document.getElementById ('temperatur'). innerHTML = 'Temperatur:' + JSON. təhlil (xmlhttp.responseText).temperature + 'C'; " "}" "};" "xmlhttp.open ('GET', 'https://192.168.2.8/temperature', doğru);" "xmlhttp.send ();" "}"
RefreshHumidity () funksiyası / nəmlik istəyi edir, jsonda olan məlumatları təhlil edir və paraqrafa id nəmliyi əlavə edir. Və bununla da / monitordakı istəklərdə göndərəcəyimiz html -i bitiririk.
"funksiya refreshHumidity ()" "{" "var xmlhttp = yeni XMLHttpRequest ();" "xmlhttp.onreadystatechange = function () {" "if (xmlhttp.readyState == XMLHttpRequest. DONE && xmlhttp.status == 200) {" "document.getElementById ('nem'). innerHTML = 'Rütubət:' + JSON. təhlil (xmlhttp.responseText). rütubət + '%'; " "}" "};" "xmlhttp.open ('GET', 'https://192.168.2.8/humidity', true);" "xmlhttp.send ();" "}"
"";
Addım 11: ShowMonitor -un bitməsi
İndi göndərəcəyimiz html olan sətir hazır olduğu üçün onu müştəriyə göndərə bilərik. Bu, showMonitor funksiyasını və kodu tamamlayır.
// Müştəri üçün 200 -dən çox html, server.send (200, "text/html", html) üçün bir tələb var. }
Addım 12: Test
İndi brauzerinizi açın və https://192.168.2.8/monitor daxil edin (konfiqurasiyanızdan asılı olaraq fərqli bir ipə ehtiyacınız ola bilər).
Tövsiyə:
NodeMCU & Blynk -də AM2301 ilə İstilik və Rütubəti izləyin: 3 addım
NodeMCU & Blynk -də AM2301 ilə İstilik və Rütubəti İzləyin: Sənayenin əksər hissələrində temperatur, rütubət, təzyiq, hava keyfiyyəti, suyun keyfiyyəti və s. dəyər verilən zaman xəbərdarlıq sistemlərinin mövcud olması lazımdır
ESP8266 və AskSensors IoT Cloud ilə Ultrasonik Məsafəni Necə İzləmək olar: 5 addım
ESP8266 və AskSensors IoT Bulud ilə Ultrasonik Məsafəni Necə İzləmək olar: Bu təlimat, AskSensors IoT buluduna bağlı ultrasəs HC-SR04 sensoru və ESP8266 node MCU istifadə edərək bir obyektdən məsafəni necə izlədiyinizi təqdim edir
ESP8266 Nodemcu Yerli Web Serverdə DHT11 istifadə edərək İstilik Monitorinqi - Brauzerinizdə Otaq İstiliyi və Rütubəti əldə edin: 6 addım
ESP8266 Nodemcu Yerli Web Serverdə DHT11 istifadə edərək İstilik Monitorinqi | Brauzerinizdə Otaq İstiliyi və Rütubət əldə edin: Salam uşaqlar bu gün nəmləndirəcəyik & ESP 8266 NODEMCU & DHT11 temperatur sensoru. İstilik və rütubət DHT11 Sensor & hansı veb səhifənin idarə olunacağını bir brauzerdə görmək olar
Esp8266: 5 addımlarından istifadə edərək cihazları idarə etmək və havanı izləmək üçün bir IoT cihazı necə etmək olar
Esp8266 istifadə edərək cihazları idarə etmək və havanı izləmək üçün bir IoT Cihazı Necə Hazırlanır: Əşyaların İnterneti (IoT) fiziki cihazların ("əlaqəli qurğular" və "ağıllı qurğular" olaraq da adlandırılır), binaların, və elektronika, proqram təminatı, sensorlar, aktuatorlar və
Komanda İstemində Kompüter Rəmzləri ilə Ulduz Döyüşlərini Necə İzləmək olar: 3 addım
Komanda İstemində Kompüter Rəmzləri Olan Ulduz Döyüşlərini Necə İzləmək olar: Bu, öyrəndiyim qəribə bir hiylədir, buna görə də bunu dərc etmək qərarına gəldim. Bir oğlanın əmr sorğusundan IV hissə olan ilk Starwars filminin başlanğıcını izləyə bilərsiniz. Olduqca sərin. DISCLAIMER: Mən buna görə kredit götürmürəm