Turinys:

ESP8266 „NodeMCU“prieigos taškas (AP) žiniatinklio serveriui su DT11 temperatūros jutikliu ir spausdinimo temperatūra ir drėgmė naršyklėje: 5 žingsniai
ESP8266 „NodeMCU“prieigos taškas (AP) žiniatinklio serveriui su DT11 temperatūros jutikliu ir spausdinimo temperatūra ir drėgmė naršyklėje: 5 žingsniai

Video: ESP8266 „NodeMCU“prieigos taškas (AP) žiniatinklio serveriui su DT11 temperatūros jutikliu ir spausdinimo temperatūra ir drėgmė naršyklėje: 5 žingsniai

Video: ESP8266 „NodeMCU“prieigos taškas (AP) žiniatinklio serveriui su DT11 temperatūros jutikliu ir spausdinimo temperatūra ir drėgmė naršyklėje: 5 žingsniai
Video: Kaip užprogramuoti ESP8266 ESP-01 Wi-Fi relės modulį 2024, Lapkritis
Anonim
ESP8266 „NodeMCU“prieigos taškas (AP) žiniatinklio serveriui su DT11 temperatūros jutikliu ir spausdinimo temperatūra ir drėgmė naršyklėje
ESP8266 „NodeMCU“prieigos taškas (AP) žiniatinklio serveriui su DT11 temperatūros jutikliu ir spausdinimo temperatūra ir drėgmė naršyklėje

Sveiki, vaikinai, daugelyje projektų naudojame ESP8266, o daugumoje projektų ESP8266 naudojame kaip žiniatinklio serverį, kad duomenis būtų galima pasiekti bet kuriame įrenginyje per „Wi -Fi“prisijungus prie interneto serverio, kurį priglobia ESP8266, tačiau vienintelė problema yra tai, kad mums reikia veikiančio maršrutizatoriaus kad ir mūsų įrenginys taip pat turi būti prijungtas prie maršrutizatoriaus, ir mes turime įvesti savo „wifi“kredencialus į kodą, taigi, jei keičiate „wifi“, turite pakeisti kodo kredencialus ir jį iš naujo įkelti. Taigi iš esmės čia turime dvi problemas: 1- mums reikia „Wi-Fi“ryšio, kad galėtume talpinti žiniatinklio serverį (maršrutizatorių) 2- kiekvieną kartą, jei reikia pakeisti „Wi-Fi“ryšį, turime įvesti kredencialus ir iš naujo įkelti kodą. Taigi, kad išvengtume visos šios problemos, ką galime padaryti, užuot pateikę „Wi -Fi“prieiga gali priversti ESP8266 sukurti savo „Wi -Fi“ryšį, taigi, jei prisijungsime prie šio „Wi -Fi“ryšio, galėsime pasiekti ESP8266 žiniatinklio serverį. Taigi iš esmės mes priimsime žiniatinklio serverį su ESP8266 su prieigos tašku. Taigi šioje instrukcijoje mes bus kuriama žiniatinklio serverį, naudojantį prieigos tašką su ESP8266, ir mes prijungsime DHT11 jutiklį bei spausdinimo temperatūrą ir drėgmę žiniatinklio serverio puslapyje.

1 žingsnis: reikalingi dalykai

Daiktai, kurių jums reikia
Daiktai, kurių jums reikia
Daiktai, kurių jums reikia
Daiktai, kurių jums reikia

1x ESP 8266 Nodemcu: 1x DHT11: 1x duonos lenta:.: Keletas džemperių:

2 žingsnis: Gaukite DHT11 bibliotekas

Gaukite DHT11 bibliotekas
Gaukite DHT11 bibliotekas
Gaukite DHT11 bibliotekas
Gaukite DHT11 bibliotekas

Atidarykite „Arduino IDE“ir eikite į Eskizas> Įtraukti biblioteką> Tvarkyti bibliotekas. Bibliotekos tvarkyklė turėtų atsidaryti. Ieškokite „DHT“paieškos laukelyje ir įdiekite DHT biblioteką iš „Adafruit“. Įdiegę DHT biblioteką iš „Adafruit“, paieškos laukelyje įveskite „Adafruit Unified Sensor“. Slinkite iki galo, kad surastumėte biblioteką ir ją įdiegtumėte. Įdiegę bibliotekas, iš naujo paleiskite „Arduino IDE“.

3 žingsnis: jungtys

Sujungimai
Sujungimai

Grandinė yra labai paprasta prijungti viską Pagal tai, kaip parodyta schmatikoje

4 veiksmas: prieigos taško kodas

Prieigos taško kodas
Prieigos taško kodas

Iš ankstesnių nurodymų pakeisiu šių nurodymų žiniatinklio serverio kodą:

Ir paverskite jį prieigos taško žiniatinklio serverio kodu. Nukopijuokite žemiau pateiktą kodą:

#įtraukti „Arduino.h“#įtraukti „ESP8266WiFi.h“

#įtraukti „Hash.h“

#include "ESPAsyncTCP.h"

#include "ESPAsyncWebServer.h"

#include "Adafruit_Sensor.h"

#įtraukti „DHT.h“

const char* ssid = "ESP8266"; const char* password = "password";#define DHTPIN 5 // Skaitmeninis kaištis prijungtas prie DHT jutiklio // Nekomentuokite naudojamo jutiklio tipo: //#define DHTTYPE DHT11 // DHT 11#define DHTTYPE DHT22 // DHT 22 (AM2302) //#define DHTTYPE DHT21 // DHT 21 (AM2301) DHT dht (DHTPIN, DHTTYPE); // dabartinė temperatūra ir drėgmė, atnaujinta cikle () float t = 0.0; float h = 0.0; // Sukurti „AsyncWebServer“objektą 80 prievade „AsyncWebServer“serveris (80); // Paprastai kintamiesiems, kurie laiko laiko, turėtumėte naudoti „unsigned long“// Reikšmė greitai taps per didelė, kad būtų galima saugoti neparašytą ilgą ankstesnįMillis = 0; // išsaugos paskutinį kartą atnaujintą DHT // atnaujina DHT rodmenis kas 10 sekundžių const char index_html PROGMEM = R "rawliteral (ESP8266 DHT serveris

Temperatūra % TEMPERATURE % ° C

Drėgmė % HUMIDITY % %) rawliteral "; // Vietos žymeklį pakeičia DHT reikšmėmisString procesorius (const String & var) {//Serial.println(var); if (var ==" TEMPERATURE ") {return String (t);} else if (var == "HUMIDITY") {return String (h);} return String ();} void setup () {// Serijinis prievadas derinimui Serial.begin (115200); dht.begin (); Serial.print ("AP nustatymas (Prieigos taškas)… "); // Pašalinkite slaptažodžio parametrą, jei norite, kad AP (prieigos taškas) būtų atviras WiFi.softAP (ssid, slaptažodis); IPAddress IP = WiFi.softAPIP (); Serial.print (" AP IP adresas: "); Serial.println (IP); // Spausdinti ESP8266 vietinis IP adresas Serial.println (WiFi.localIP ()); // Šaknies / tinklalapio serverio maršrutas.on (" / ", HTTP_GET, (AsyncWebServerRequest *užklausa) {request-> send_P (200, "text/html", index_html, procesorius);}); server.on ("/temperature", HTTP_GET, (AsyncWebServerRequest *užklausa) {request- > send_P (200, "text/plain", String (t).c_str ());}); server.on ("/drėgmė", HTTP_GET, (AsyncWebServerRequest *užklausa) {request-> send_P (200, "tekstas/paprastas", Eilutė (h).c_str ()); }); // Paleisti serverio serverį.begin ();} void loop () {unsigned long currentMillis = millis (); if (currentMillis - previousMillis> = intervalas) {// išsaugoti paskutinį kartą atnaujinus DHT reikšmes previousMillis = currentMillis; // Skaityti temperatūrą kaip Celsijų (numatytoji) float newT = dht.readTemperature (); // Skaityti temperatūrą kaip Farenheitą (isFahrenheit = true) // float newT = dht.readTemperature (true); // jei temperatūra nuskaityta nepavyko, nekeiskite t vertės, jei (isnan (newT)) {Serial.println ("Nepavyko skaityti iš DHT jutiklio! "); } else {t = newT; Serijinis.println (t); } // Skaityti drėgmės plūdę newH = dht.readHumidity (); // jei nepavyko perskaityti drėgmės, nekeiskite h reikšmės if (isnan (newH)) {Serial.println ("Nepavyko nuskaityti iš DHT jutiklio!"); } else {h = newH; Serijinis.println (h); }}} Prieš įkeliant kodą būtinai įdėkite šiuos dalykus: const char* ssid = "ESP8266"; // kokio ssid wifi noriteconst char* password = "password"; // pass, kad prisijungtumėte prie aukščiau esančio ssidSet ESP8266 kaip prieigos taškas: norėdami nustatyti esp8266 kaip prieigos tašką, naudosime „softAP“komandą, kaip parodyta žemiau; sukurti prieigos tašką. WiFi.softAP (ssid, slaptažodis); Taip pat yra kitų pasirenkamų parametrų, kuriuos galite perduoti softAP () metodui. Čia yra visi parametrai: Jei atidarote nuoseklųjį monitorių, galite pamatyti prieigos taško IP. Tai daroma sekant kodo dalį. IPAddress IP = WiFi.softAPIP (); Serial.print ("AP IP address:"); Serial.println (IP); Pagal numatytuosius nustatymus IP adresas yra: 192.168.4.1

5 žingsnis: paskutinis žingsnis: bandymas

Paskutinis žingsnis: bandymas
Paskutinis žingsnis: bandymas

Įkėlę kodą, atidarykite savo mobilųjį/asmeninį „wifi“ir prisijunkite prie „esp8266“„wifi“(naudokitės tuo, kokį ssidą ir slaptažodį įvedėte į kodą). Prisijungę tiesiog atidarykite savo naršyklės IP, kurį gavome iš serijinio monitoriaus (https://192.168.4.1.) ir jūs galėsite matyti temperatūrą ir drėgmę savo naršyklėje kaip mano. Ir mes tam nenaudojome jokio „Wi -Fi“tinklo, todėl veikia esp8266 prieigos taškas.

Rekomenduojamas: