Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
Salom bolalar, biz ESP8266 -dan foydalanadigan ko'pgina loyihalarda va ESP8266 -ni veb -server sifatida ishlatamiz, shuning uchun ma'lumotlarni ESP8266 -da joylashgan veb -serverga kirish orqali Wi -Fi orqali har qanday qurilmadan olish mumkin, lekin yagona muammo shundaki, bizda ishlaydigan yo'riqnoma kerak. bu va bizning qurilmamiz ham yo'riqchiga ulangan bo'lishi kerak va biz Wi -Fi ma'lumotlarini kodga kiritishimiz kerak, shuning uchun agar siz wifi -ni o'zgartirsangiz, siz koddagi hisob ma'lumotlarini o'zgartirishingiz kerak va siz uni qayta yuklashingiz kerak. Shunday qilib, bizda bu erda ikkita muammo bor.: 1- bizga veb-serverni (yo'riqnoma) joylashtirish uchun wifi ulanishi kerak 2- har safar Wi-Fi ulanishi o'zgarganda, biz hisob ma'lumotlarini kiritishimiz va kodni qayta yuklashimiz kerak, shuning uchun bu muammoning oldini olish uchun nima qilish kerak? wifi -ga kirish biz ESP8266 -ni o'ziga xos Wi -Fi ulanishini yaratishimiz mumkin, shuning uchun agar biz wifi -ga ulansak, biz ESP8266 -ning veb -serveriga kira olamiz, shuning uchun biz asosan kirish nuqtasi bo'lgan ESP8266 -ga ega bo'lgan veb -serverni joylashtiramiz. yaratadi ESP8266 bilan kirish nuqtasini ishlatadigan veb -server va biz DHT11 sensorini ulaymiz va veb -server sahifasida harorat va namlikni bosib chiqaramiz.
1 -qadam: Sizga kerak bo'lgan narsalar
1x ESP 8266 Nodemcu: 1x DHT11: 1x non paneli:.: Bir nechta sakrash:
2 -qadam: DHT11 kutubxonalarini oling
Arduino IDE -ni oching va Sketch> Kutubxonani qo'shish> Kutubxonalarni boshqarish -ga o'ting. Kutubxona menejeri ochilishi kerak. Qidiruv maydonida "DHT" ni qidiring va Adafruit -dan DHT kutubxonasini o'rnating. Adafruit -dan DHT kutubxonasini o'rnatgandan so'ng, qidiruv maydoniga "Adafruit Unified Sensor" yozing. Kutubxonani topib o'rnatish uchun pastga aylantiring va kutubxonalarni o'rnatgandan so'ng Arduino IDE -ni qayta ishga tushiring.
3 -qadam: ulanishlar
Sxematikada ko'rsatilganidek, sxemani hamma narsaga ulash juda oson
4 -qadam: kirish nuqtasi kodi
Oldingi ko'rsatmalarimdan men ushbu ko'rsatmalarni veb-server kodini o'zgartiraman:
Va uni kirish nuqtasi veb -server kodiga aylantiring. Iltimos, quyida keltirilgan kodni nusxa ko'chiring:
#"Arduino.h" ni kiriting#"ESP8266WiFi.h" ni qo'shing
#"Hash.h" ni qo'shing
#"ESPAsyncTCP.h" ni qo'shing
#"ESPAsyncWebServer.h" ni qo'shing
#"Adafruit_Sensor.h" ni qo'shing
#"DHT.h" ni qo'shing
const char* ssid = "ESP8266"; const char* parol = "parol";#DHTPIN 5 ni aniqlang // DHT sensoriga ulangan raqamli pin // Amaldagi sensor turiga izoh qoldirmang: //#DHTTYPE DHT11 // DHT ni aniqlang 11#DHTTYPE DHT22 // DHT 22 (AM2302) //#DHTTYPE DHT21 // DHT 21 (AM2301) DHT dht (DHTPIN, DHTTYPE) ni belgilang; // joriy harorat va namlik, pastadir () float t = 0.0; float h = 0.0; // 80AsyncWebServer server (80) portida AsyncWebServer ob'ektini yaratish; // Odatda, vaqtni ushlab turuvchi o'zgaruvchilar uchun "imzosiz uzun" dan foydalanish kerak // qiymat imzolanmagan uzoq oldingiMillisni saqlash uchun tezda juda katta bo'ladi. = 0; // DHT oxirgi marta yangilanganida saqlanadi // DHT o'qilishini har 10 soniya oralig'ida yangilaydi = 10000; const char index_html PROGMEM = R "rawliteral (ESP8266 DHT Server)
Harorat % TEMPERATURE % ° C
Namlik % HUMIDITY % %) rawliteral "; // Doldorni DHT qiymatlari bilan almashtiradi String protsessori (const String & var) {//Serial.println(var); if (var ==" TEMPERATURE ") {return String (t);} else if (var == "HUMIDITY") {return String (h);} Stringni qaytarish ();} void setup ();} nosozliklarni tuzatish uchun ketma -ket port Serial.begin (115200); dht.begin (); Serial.print ("APni sozlash (Kirish nuqtasi) … "); // Parol parametrini olib tashlang, agar AP (kirish nuqtasi) WiFi.softAP (ssid, parol) ochiq bo'lishini xohlasangiz; IPAddress IP = WiFi.softAPIP (); Serial.print (" AP IP manzili: "); Serial.println (IP); // ESP8266 mahalliy IP -manzilini chop etish Serial.println (WiFi.localIP ()); // Ildiz / veb -sahifa serveri.on (" / ", HTTP_GET, (AsyncWebServerRequest *so'rovi) {request-> send_P (200, "text/html", index_html, protsessor);}); server.on ("/harorat", HTTP_GET, (AsyncWebServerRequest *so'rovi) {so'rov- > send_P (200, "matn/oddiy", String (t).c_str ());}); server.on ("/namlik", HTTP_GET, (AsyncWebServerRequest *so'rovi) {request-> send_P (200, "matn/oddiy", String (h).c_str ()); }); // serverni ishga tushiring server.begin ();} void loop () {unsigned long currentMillis = millis (); if (currentMillis - previousMillis> = interval) {// oxirgi marta DHT qiymatlarini yangilaganingizda avvalgiMillis = currentMillis saqlang; // Haroratni Selsiy bo'yicha o'qing (standart) float newT = dht.readTemperature (); // Haroratni Farengeyt (isFahrenheit = rost) sifatida o'qing // float newT = dht.readTemperature (true); // agar harorat o'qilmasa, t qiymatini o'zgartirmang, agar (isnan (newT)) {Serial.println ("Muvaffaqiyatsiz DHT sensoridan o'qish! "); } boshqa {t = newT; Serial.println (t); } // O'qing namlik float newH = dht.readHumidity (); // agar namlik o'qilmasa, h qiymatini o'zgartirmang if (isnan (newH)) {Serial.println ("DHT sensoridan o'qib bo'lmadi!"); } boshqa {h = newH; Serial.println (h); }}} Kodni yuklashdan oldin quyidagi narsalarni qo'yganingizga ishonch hosil qiling: const char* ssid = "ESP8266"; // wifi -ning ssid nima bo'lishidan qat'i nazar, char* password = "parol"; // o'tish ssidSet ESP8266 -ni kirish nuqtasi sifatida ulash uchun: esp8266 -ni kirish nuqtasi sifatida o'rnatish uchun biz quyida ko'rsatilgan softAP buyrug'idan foydalanamiz; kirish nuqtasini yaratish uchun Wi -Fi.softAP (ssid, parol); softAP () usuliga o'tishingiz mumkin bo'lgan boshqa ixtiyoriy parametrlar ham mavjud. Bu erda barcha parametrlar: Agar siz ketma -ket monitorni ochsangiz, kirish nuqtasining IP -manzilini ko'rishingiz mumkin. Bu kodning bir qismini bajarish orqali amalga oshiriladi. IPAddress IP = WiFi.softAPIP (); Serial.print ("AP IP -manzili:"); Serial.println (IP); Odatiy IP manzili: 192.168.4.1
5 -qadam: Yakuniy bosqich: test
Kodni yuklaganingizdan so'ng, mobil/kompyuter Wi -Fi -ni oching va esp8266 wifi -ga ulaning (kodga kiritilgan ssid va parolni ishlating). Ulagandan so'ng, brauzerda ketma -ket monitordan olingan IP -ni oching (https://192.168.4.1.) va siz brauzeringizdagi harorat va namlikni meniki sifatida ko'rishingiz mumkin va biz buni amalga oshirish uchun hech qanday Wi -Fi tarmog'idan foydalanmaganmiz, shuning uchun esp8266 kirish nuqtasi qanday ishlaydi.