Cuprins:

Punct de acces (AP) NodeMCU ESP8266 pentru server web cu senzor de temperatură DT11 și temperatură și umiditate de imprimare în browser: 5 pași
Punct de acces (AP) NodeMCU ESP8266 pentru server web cu senzor de temperatură DT11 și temperatură și umiditate de imprimare în browser: 5 pași

Video: Punct de acces (AP) NodeMCU ESP8266 pentru server web cu senzor de temperatură DT11 și temperatură și umiditate de imprimare în browser: 5 pași

Video: Punct de acces (AP) NodeMCU ESP8266 pentru server web cu senzor de temperatură DT11 și temperatură și umiditate de imprimare în browser: 5 pași
Video: Esp8266 interfaced with Dht11 and displaying data in web server #esp8266 #nodemcu #sensor 2024, Noiembrie
Anonim
ESP8266 Punct de acces NodeMCU (AP) pentru server web cu senzor de temperatură DT11 și temperatură și umiditate de imprimare în browser
ESP8266 Punct de acces NodeMCU (AP) pentru server web cu senzor de temperatură DT11 și temperatură și umiditate de imprimare în browser

Bună băieți în majoritatea proiectelor folosim ESP8266 și în majoritatea proiectelor folosim ESP8266 ca server web, astfel încât datele să poată fi accesate de pe orice dispozitiv prin Wi-Fi accesând Webserver-ul găzduit de ESP8266, dar singura problemă este că avem nevoie de un router funcțional pentru asta și dispozitivul nostru trebuie, de asemenea, să se conecteze la router și trebuie să punem acreditările noastre wifi în cod, deci dacă schimbați wifi, atunci trebuie să schimbați acreditările în cod și trebuie să îl reîncărcați. Deci, practic, avem două probleme aici: 1- avem nevoie de o conexiune wifi pentru a găzdui serverul web (router) 2- de fiecare dată dacă conexiunea wifi trebuie schimbată, trebuie să introducem acreditări și să încărcăm din nou codul. acces wifi putem face ESP8266 pentru a crea o conexiune wifi proprie, deci dacă ne conectăm la acea conexiune wifi putem accesa serverul web al ESP8266. Deci, practic vom găzdui un server web cu ESP8266 cu punct de acces. va crea un server web folosind Access Point cu ESP8266 și vom conecta un senzor DHT11 și vom imprima temperatura și umiditatea pe pagina serverului web.

Pasul 1: Lucruri de care aveți nevoie

Lucruri de care ai nevoie
Lucruri de care ai nevoie
Lucruri de care ai nevoie
Lucruri de care ai nevoie

1x ESP 8266 Nodemcu: 1x DHT11: 1x panou:.: Puțini săritori:

Pasul 2: obțineți bibliotecile DHT11

Obțineți bibliotecile DHT11
Obțineți bibliotecile DHT11
Obțineți bibliotecile DHT11
Obțineți bibliotecile DHT11

Deschideți ID-ul Arduino și accesați Schiță> Includeți bibliotecă> Gestionați bibliotecile. Managerul bibliotecii ar trebui să se deschidă. Căutați „DHT” în caseta Căutare și instalați biblioteca DHT de la Adafruit. După instalarea bibliotecii DHT de la Adafruit, tastați „Adafruit Unified Sensor” în caseta de căutare. Derulați până la capăt pentru a găsi biblioteca și instalați-o. După instalarea bibliotecilor, reporniți ID-ul Arduino.

Pasul 3: Conexiuni

Conexiuni
Conexiuni

Circuitul este foarte ușor conectați totul în conformitate cu schematicele

Pasul 4: Codul punctului de acces

Codul punctului de acces
Codul punctului de acces

Din instructables-urile mele anterioare, voi modifica codul serverului web al acestor instructables:

Și transformați-l în codul serverului web al punctului de acces. Vă rugăm să copiați codul furnizat mai jos:

#include "Arduino.h" #include "ESP8266WiFi.h"

#includeți „Hash.h”

#include "ESPAsyncTCP.h"

#include "ESPAsyncWebServer.h"

#include "Adafruit_Sensor.h"

#include „DHT.h”

const char * ssid = "ESP8266"; const char * password = "password"; # define DHTPIN 5 // Pin digital conectat la senzorul DHT // Decomentați tipul de senzor utilizat: // # define DHTTYPE DHT11 // DHT 11 # define DHTTYPE DHT22 // DHT 22 (AM2302) // # define DHTTYPE DHT21 // DHT 21 (AM2301) DHT dht (DHTPIN, DHTTYPE); // temperatura și umiditatea curente, actualizate în bucla () float t = 0,0; float h = 0.0; // Creați un obiect AsyncWebServer pe portul 80 Server AsyncWebServer (80); // În general, ar trebui să utilizați „nesemnat lung” pentru variabilele care păstrează timpul // Valoarea va deveni rapid prea mare pentru ca un int să stocheze nesemnat mult timp anterior = 0; // va stoca ultima dată când DHT a fost actualizat // Actualizează citirile DHT la fiecare 10 secunde interval lung = 10000; const char index_html PROGMEM = R "rawliteral (ESP8266 DHT Server

Temperatura% TEMPERATURĂ% ° C

Umiditate% UMIDITATE%%) rawliteral "; // Înlocuiește substituentul cu valorile DHT Processor șir (const String & var) {//Serial.println(var); if (var ==" TEMPERATURĂ ") {return String (t);} else if (var == "UMIDITATE") {return String (h);} return String ();} void setup () {// Port serial pentru depanare Serial.begin (115200); dht.begin (); Serial.print ("Setarea AP (Punct de acces) … "); // Eliminați parametrul de parolă, dacă doriți ca AP (Punct de acces) să fie deschis WiFi.softAP (ssid, parolă); Adresă IP = WiFi.softAPIP (); Serial.print (" Adresă IP AP: "); Serial.println (IP); // Print ESP8266 Local IP Address Serial.println (WiFi.localIP ()); // Route for root / web page server.on (" / ", HTTP_GET, (AsyncWebServerRequest * request) {request-> send_P (200, "text / html", index_html, procesor);}); server.on ("/ temperature", HTTP_GET, (AsyncWebServerRequest * request) {request- > send_P (200, "text / plain", String (t).c_str ());}); server.on ("/ umiditate", HTTP_GET, (cerere AsyncWebServerRequest *) {request-> send_P (200, „text / simplu”, String (h).c_str ()); }); // Porniți serverul server.begin ();} void loop () {unsigned long currentMillis = millis (); if (currentMillis - previousMillis> = interval) {// salvați ultima dată când ați actualizat valorile DHT previousMillis = currentMillis; // Citiți temperatura ca Celsius (implicit) float newT = dht.readTemperature (); // Citiți temperatura ca Fahrenheit (isFahrenheit = true) // float newT = dht.readTemperature (true); // dacă citirea temperaturii a eșuat, nu modificați valoarea t dacă (isnan (newT)) {Serial.println ("Failed pentru a citi din senzorul DHT! "); } else {t = newT; Serial.println (t); } // Citire Umiditate float newH = dht.readHumidity (); // dacă citirea umidității a eșuat, nu modificați valoarea h dacă (isnan (newH)) {Serial.println ("Nu s-a citit de la senzorul DHT!"); } else {h = newH; Serial.println (h); }}} Înainte de a încărca codul, asigurați-vă că puneți următoarele lucruri: const char * ssid = "ESP8266"; // oricare ar fi ssid-ul de wifi pe care-l dorițiconst char * password = "password"; // treceți pentru a vă conecta la ssidSet de mai sus ESP8266 ca punct de acces: Pentru a seta esp8266 ca punct de acces vom folosi comanda softAP așa cum se arată mai jos; pentru a crea un punct de acces. WiFi.softAP (ssid, parolă); Există și alți parametri opționali pe care îi puteți trece la metoda softAP (). Iată toți parametrii: Dacă deschideți monitorul serial, puteți vedea adresa IP a punctului de acces. Ceea ce se face urmărind o parte a codului. IPAddress IP = WiFi.softAPIP (); Serial.print ("Adresa IP AP:"); Serial.println (IP); Implicit, adresa IP este: 192.168.4.1

Pasul 5: Pasul final: Testarea

Pasul final: testarea
Pasul final: testarea

După încărcarea codului, deschideți wifi-ul mobil / PC și conectați-vă la wifi-ul esp8266 (indiferent de SSID și parola pe care le-ați introdus în cod utilizați acest lucru). https://192.168.4.1.) și veți putea vedea temperatura și umiditatea în browserul dvs. ca ale mele. Și nu am folosit nicio rețea wifi pentru a face acest lucru, astfel încât să funcționeze punctul de acces al esp8266.

Recomandat: