Агуулгын хүснэгт:

ESP8266 NodeMCU хандалтын цэг (AP) нь DT11 температур мэдрэгчтэй, хөтөч дэх температур ба чийгшил бүхий вэб серверийн хувьд: 5 алхам
ESP8266 NodeMCU хандалтын цэг (AP) нь DT11 температур мэдрэгчтэй, хөтөч дэх температур ба чийгшил бүхий вэб серверийн хувьд: 5 алхам

Видео: ESP8266 NodeMCU хандалтын цэг (AP) нь DT11 температур мэдрэгчтэй, хөтөч дэх температур ба чийгшил бүхий вэб серверийн хувьд: 5 алхам

Видео: ESP8266 NodeMCU хандалтын цэг (AP) нь DT11 температур мэдрэгчтэй, хөтөч дэх температур ба чийгшил бүхий вэб серверийн хувьд: 5 алхам
Видео: Как запрограммировать модуль реле Wi-Fi ESP8266 ESP-01 2024, Долдугаар сарын
Anonim
ESP8266 NodeMCU хандалтын цэг (AP) нь DT11 температур мэдрэгчтэй, хөтөч дэх температур ба чийгшил бүхий вэб сервер юм
ESP8266 NodeMCU хандалтын цэг (AP) нь DT11 температур мэдрэгчтэй, хөтөч дэх температур ба чийгшил бүхий вэб сервер юм

Сайн байцгаана уу залуус аа, бид ESP8266 ашигладаг ихэнх төслүүд болон ихэнх төслүүдэд ESP8266 -ийг вэб сервер болгон ашигладаг тул ESP8266 -ийн зохион байгуулсан вэб сервер рүү нэвтрэх замаар өгөгдлийг ямар ч төхөөрөмж дээр wifi -ээр дамжуулан авах боломжтой боловч ганц асуудал бол бидэнд ажиллах чиглүүлэгч хэрэгтэй болно. Энэ нь бидний төхөөрөмж мөн чиглүүлэгчтэй холбогдсон байх ёстой бөгөөд бид wifi -ийн итгэмжлэлээ кодонд оруулах ёстой бөгөөд хэрэв та wifi -г сольж байвал кодын итгэмжлэлийг өөрчлөх шаардлагатай бөгөөд үүнийг дахин ачаалах хэрэгтэй болно. Тиймээс үндсэндээ бидэнд энд хоёр асуудал байна.: 1- Вэб серверийг (чиглүүлэгч) байршуулахын тулд бидэнд wifi холболт хэрэгтэй. 2- wifi холболтыг өөрчлөх шаардлагатай бол бид итгэмжлэлээ оруулж, кодыг дахин ачаалах хэрэгтэй. Тиймээс энэ бүх асуудлаас зайлсхийхийн тулд юу хийх вэ? wifi хандалт нь бид ESP8266 -г өөрийн гараар wifi холболт үүсгэх боломжтой болгодог, хэрэв бид энэ wifi холболттой холбогдвол ESP8266 -ийн вэб сервер рүү нэвтрэх боломжтой болно. Тиймээс үндсэндээ бид ESP8266 -тай нэвтрэх цэг бүхий вэб серверийг байршуулах болно. бүтээх болно ESP8266 -тай Access Point ашигладаг вэб сервер бөгөөд бид DHT11 мэдрэгчийг холбож, температур, чийгшлийг вэб хуудсан дээр хэвлэх болно.

Алхам 1: Танд хэрэгтэй зүйл

Танд хэрэгтэй зүйлс
Танд хэрэгтэй зүйлс
Танд хэрэгтэй зүйлс
Танд хэрэгтэй зүйлс

1x ESP 8266 Nodemcu: 1x DHT11: 1x талхны самбар:.: Цөөхөн үсрэгчид:

Алхам 2: DHT11 номын сангуудыг аваарай

DHT11 номын санг авах
DHT11 номын санг авах
DHT11 номын санг авах
DHT11 номын санг авах

Arduino IDE -ээ нээгээд Sketch> Номын санг оруулах> Номын санг удирдах хэсэгт очно уу. Номын сангийн менежер нээх ёстой. Хайлтын талбар дээр "DHT" гэж хайгаад Adafruit дээрээс DHT номын санг суулгаарай. Adafruit -аас DHT номын санг суулгасны дараа хайлтын талбарт "Adafruit Unified Sensor" гэж бичнэ үү. Номын санг хайж олохын тулд доошоо гүйлгэж, номын санг суулгасны дараа Arduino IDE -г дахин эхлүүлнэ үү.

Алхам 3: Холболтууд

Холболтууд
Холболтууд

Схемийг харуулсан шиг хэлхээг бүгдийг нь холбоход маш хялбар байдаг

Алхам 4: Хандалтын цэгийн код

Хандалтын цэгийн код
Хандалтын цэгийн код

Өмнөх зааварчилгаанаас би энэ зааврын вэб серверийн кодыг өөрчлөх болно:

Үүнийг хандалтын цэгийн вэб серверийн код болгон хөрвүүлнэ үү.

#"Arduino.h" оруулах#"ESP8266WiFi.h" оруулах

#"Hash.h" оруулна уу

#"ESPAsyncTCP.h" -ийг оруулах

#"ESPAsyncWebServer.h" -ийг оруулна уу

#"Adafruit_Sensor.h" -ийг оруулна уу.

#"DHT.h" оруулах

const char* ssid = "ESP8266"; const char* password = "password";#DHTPIN 5 -ийг тодорхойлох // DHT мэдрэгчтэй холбогдсон дижитал зүү // Ашиглаж буй мэдрэгчийн төрлийг тайлбарлах: //#DHTTYPE DHT11 // DHT -ийг тодорхойлох 11#тодорхойлох DHTTYPE DHT22 // DHT 22 (AM2302) //#тодорхойлох DHTTYPE DHT21 // DHT 21 (AM2301) DHT dht (DHTPIN, DHTTYPE); // одоогийн температур ба чийгшил, давталтад шинэчлэгдсэн () float t = 0.0; float h = 0.0; // 80AsyncWebServer сервер (80) порт дээр AsyncWebServer объектыг үүсгэх; // Ерөнхийдөө та цаг барьдаг хувьсагчдын хувьд "гарын үсэг зураагүй урт" -г ашиглах ёстой // Үнэ нь гарын үсэг зураагүй урт өмнөхMillis -ийг хадгалахад маш хурдан хэт том болно. = 0; // DHT -ийг хамгийн сүүлд шинэчлэх үед хадгалах болно // DHT -ийн уншилтыг 10 секундын урт хугацааны интервал бүрт шинэчилнэ = 10000; const char index_html PROGMEM = R "rawliteral (ESP8266 DHT сервер

Температур % TEMPERATURE % ° C

Чийглэг % HUMIDITY % %) rawliteral "; // Орлуулагчийг DHT утгуудаар солиноString процессор (const String & var) {//Serial.println(var); if (var ==" TEMPERATURE ") {return String (t);} if if (var == "HUMIDITY") {return String (h);} String ();} буцаах String ();} void setup () {// Serial.begin (115200); dht.begin (); Serial.print ("AP тохиргоо (Хандалтын цэг)… "); // Хэрэв та AP (хандалтын цэг) -ийг WiFi.softAP (ssid, нууц үг) нээлттэй байлгахыг хүсвэл нууц үгийн параметрийг устгаарай; IPAddress IP = WiFi.softAPIP (); Serial.print (" AP IP хаяг: "); Serial.println (IP); // ESP8266 орон нутгийн IP хаягийг хэвлэх Serial.println (WiFi.localIP ()); // Root / вэб хуудасны сервер.on (" / ", HTTP_GET, (AsyncWebServerRequest *хүсэлт) {хүсэлт-> send_P (200, "текст/html", index_html, процессор);}); server.on ("/температур", HTTP_GET, (AsyncWebServerRequest *хүсэлт) {хүсэлт- > send_P (200, "текст/энгийн", String (t).c_str ());}); server.on ("/чийгшил", HTTP_GET, (AsyncWebServerRequest *хүсэлт) {хүсэлт-> send_P (200, "текст/энгийн", String (h).c_str ()); }); // Server server.begin ();} void loop () {unsigned long currentMillis = millis (); if (currentMillis - previousMillis> = интервал) {// хамгийн сүүлд DHT -ийн утгыг шинэчлэх үедээ хадгална уу өмнөхMillis = currentMillis; // Цельсийн (анхдагч) float newT = dht.readTemperature () температурыг уншина уу; // Температурыг Фаренгейтээр уншина уу (isFahrenheit = true) // float newT = dht.readTemperature (true); // хэрэв температурыг уншиж чадаагүй бол (isnan (newT)) {Serial.println ("Failed DHT мэдрэгчээс унших! "); } өөр {t = newT; Serial.println (t); } // Чийглэгийг унших float newH = dht.readHumidity (); // хэрэв чийгшил уншиж чадаагүй бол h утгыг бүү өөрчил (if is (newH)) {Serial.println ("DHT мэдрэгчээс уншиж чадсангүй!"); } өөр {h = newH; Serial.println (h); }}} Кодыг байршуулахаасаа өмнө дараах зүйлсийг оруулсан эсэхээ шалгаарай: const char* ssid = "ESP8266"; // wifi -ийн ямар ч хамаагүй зүйл бол char* password = "password"; // pass to connect to above ssidSet ESP8266 -ийг хандалтын цэг болгон тохируулах: esp8266 -ийг хандалтын цэг болгон тохируулахын тулд бид доор үзүүлсэн шиг softAP командыг ашиглах болно; Хандалтын цэг үүсгэхийн тулд Wi -Fi.softAP (ssid, password); softAP () аргад дамжуулж болох бусад нэмэлт параметрүүд байдаг. Энд бүх параметрүүд байна: Хэрэв та цуваа дэлгэцийг нээвэл хандалтын цэгийн IP хаягийг харах боломжтой. Үүнийг кодын хэсгийг дагаж хийдэг. IPAddress IP = WiFi.softAPIP (); Serial.print ("AP IP address:"); Serial.println (IP); Анхдагч байдлаар IP хаяг нь: 192.168.4.1

Алхам 5: Эцсийн алхам: Туршилт

Эцсийн шат: Туршилт
Эцсийн шат: Туршилт

Кодыг байршуулсны дараа гар утас/pc wifi -аа нээж, esp8266 wifi -д холбогдоно уу (кодонд оруулсан ssid болон нууц үг ямар ч байсан үүнийг ашиглана). Холбогдсоны дараа сериал дэлгэцээс авсан хөтөч дээрээ IP -г нээнэ үү (https://192.168.4.1.), та хөтөчийнхөө температур, чийгшлийг минийх гэж үзэх боломжтой бөгөөд бид үүнийг хийхийн тулд ямар ч wifi сүлжээ ашиглаагүй бөгөөд ингэснээр esp8266 -ийн хандалтын цэг хэрхэн ажилладаг.

Зөвлөмж болгож буй: