Мазмуну:

ESP8266 NodeMCU кирүү чекити (AP) DT11 температура сенсору жана браузердеги басма температурасы жана нымдуулугу менен: 5 кадам
ESP8266 NodeMCU кирүү чекити (AP) DT11 температура сенсору жана браузердеги басма температурасы жана нымдуулугу менен: 5 кадам

Video: ESP8266 NodeMCU кирүү чекити (AP) DT11 температура сенсору жана браузердеги басма температурасы жана нымдуулугу менен: 5 кадам

Video: ESP8266 NodeMCU кирүү чекити (AP) DT11 температура сенсору жана браузердеги басма температурасы жана нымдуулугу менен: 5 кадам
Video: Введение в плату разработки NodeMCU ESP8266 WiFi с примером HTTP-клиента 2024, Ноябрь
Anonim
ESP8266 NodeMCU кирүү чекити (AP) DT11 температура сенсору жана браузердеги басма температурасы жана нымдуулугу менен веб -сервер үчүн
ESP8266 NodeMCU кирүү чекити (AP) DT11 температура сенсору жана браузердеги басма температурасы жана нымдуулугу менен веб -сервер үчүн

Салам достор, биз ESP8266 колдонгон долбоорлордун көбүндө жана ESP8266 проекттеринин көбүндө веб -сервер катары колдонобуз, ошондуктан ESP8266 тарабынан жайгаштырылган Webserverге кирүү аркылуу WiFi аркылуу каалаган түзмөктөн маалыматка жетүүгө болот, бирок бир гана көйгөй - биз үчүн жумушчу роутер керек. бул жана биздин түзмөк да роутерге туташышы керек жана биз wifi ишеним грамоталарыбызды кодго киргизишибиз керек, эгер сиз wifi'ди алмаштырсаңыз, анда коддогу ишеним грамоталарын өзгөртүүңүз керек жана аны кайра жүктөөңүз керек. Ошентип, негизинен бизде бул жерде эки маселе бар: 1- Веб-серверди (роутерди) жайгаштыруу үчүн бизге wifi байланышы керек 2- wifi туташуусу өзгөртүлүшү керек болгон сайын биз грамоталарды киргизип, кодду кайра жүктөөбүз керек. Ошентип, бул көйгөйдүн алдын алуу үчүн эмне кылсак болот wifi жеткиликтүүлүгү биз ESP8266ны өзүбүздүн Wi -Fi туташуубузду түзө алабыз, эгерде биз ошол wifi байланышына туташсак, биз ESP8266 веб -серверине кире алабыз. жаратат ESP8266 менен Access Pointти колдонгон веб -сервер жана биз DHT11 сенсорун жана веб -беттин температурасын жана нымдуулугун басып чыгарабыз.

1 -кадам: Сизге керектүү нерселер

Сиз керек
Сиз керек
Сиз керек
Сиз керек

1x ESP 8266 Nodemcu: 1x DHT11: 1x breadboard:.: Аз секиргендер:

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 серверинде AsyncWebServer объектисин түзүү (80); // Жалпысынан, убакытты кармаган өзгөрмөлөр үчүн "белгисиз узун" колдонушуңуз керек // Мааниси тез эле өтө чоң болуп калат. = 0; // акыркы жолу DHT жаңыртылганда сакталат // DHT окуулары ар бир 10 секундада узун аралыкта = 10000; const char index_html PROGMEM = R "rawliteral (ESP8266 DHT Server

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

Нымдуулук % HUMIDITY % %) rawliteral "; // Толтургучту DHT valuesString процессору менен алмаштырат (const String & var) {//Serial.println(var); if (var ==" TEMPERATURE ") {return String (t);} else if (var == "HUMIDITY") {return String (h);} String ();} void setup ();} 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 / web page server.on (" / ", HTTP_GET, (AsyncWebServerRequest *өтүнүчү) {request-> send_P (200, "text/html", index_html, процессор);}); server.on ("/temperature", HTTP_GET, (AsyncWebServerRequest *өтүнүчү) {суроо- > send_P (200, "текст/жөнөкөй", String (t).c_str ());}); server.on ("/нымдуулук", HTTP_GET, (AsyncWebServerRequest *өтүнүчү) {request-> send_P (200, "текст/жөнөкөй", Сап (h).c_str ()); }); // Serverди баштоо server.begin ();} void loop () {unsigned long currentMillis = millis (); if (currentMillis - previousMillis> = interval) {// акыркы жолу DHT баалуулуктарын жаңыртканыңызды мурункуMillis = currentMillis сактоо; // Окуу температурасы Цельсий (демейки) float newT = dht.readTemperature (); // Температураны Фаренгейт катары окуу (isFahrenheit = true) // float newT = dht.readTemperature (true); // эгерде температура окулбай калса, t маанисин өзгөртпөңүз (isnan (newT)) {Serial.println ("Failed DHT сенсорунан окуу! "); } else {t = newT; Serial.println (t); } // Окуу Нымдуулук float newH = dht.readHumidity (); // эгерде нымдуулук окулбай калса, h маанисин өзгөртпөңүз, эгер (isnan (newH)) {Serial.println ("DHT сенсорунан окуу ишке ашкан жок!"); } else {h = newH; Serial.println (h); }}} Кодду жүктөөдөн мурун төмөнкү нерселерди койгонуңузду текшериңиз: const char* ssid = "ESP8266"; // wifiдан каалаган нерсеңиз charcon* password = "password"; // өтүү ssidSet ESP8266га кирүү чекити катары туташуу үчүн: esp8266ны кирүү чекити катары коюу үчүн, биз төмөндө көрсөтүлгөндөй softAP буйругун колдонобуз; кирүү чекитин түзүү үчүн. WiFi.softAP (ssid, password); SoftAP () ыкмасына өткөрө турган башка кошумча параметрлер дагы бар. Бул жерде бардык параметрлер: Эгер сериялык мониторду ачсаңыз, кирүү чекитинин IP дарегин көрө аласыз. Бул коддун бир бөлүгүн аткаруу менен жасалат. IPAddress IP = WiFi.softAPIP (); Serial.print ("AP IP дареги:"); Serial.println (IP); Демейки Ip дареги: 192.168.4.1

5 -кадам: Акыркы кадам: Тестирлөө

Акыркы кадам: тестирлөө
Акыркы кадам: тестирлөө

Кодду жүктөгөндөн кийин, мобилдик/компьютериңиздин Wi -Fi тармагын ачыңыз жана esp8266 Wi -Fiга туташыңыз (кодго киргизилген бардык SSID жана пароль), туташкандан кийин сериялык монитордон алган браузериңиздеги IP дарегин ачыңыз (https://192.168.4.1.) жана сиз браузериңиздеги температураны жана нымдуулукту меники катары көрө аласыз.

Сунушталууда: