Përmbajtje:

ESP8266 Pika e hyrjes NodeMCU (AP) për Ueb -Server me Sensor Temperature DT11 dhe Temperatura dhe Lagështi Shtypi në Shfletues: 5 Hapa
ESP8266 Pika e hyrjes NodeMCU (AP) për Ueb -Server me Sensor Temperature DT11 dhe Temperatura dhe Lagështi Shtypi në Shfletues: 5 Hapa

Video: ESP8266 Pika e hyrjes NodeMCU (AP) për Ueb -Server me Sensor Temperature DT11 dhe Temperatura dhe Lagështi Shtypi në Shfletues: 5 Hapa

Video: ESP8266 Pika e hyrjes NodeMCU (AP) për Ueb -Server me Sensor Temperature DT11 dhe Temperatura dhe Lagështi Shtypi në Shfletues: 5 Hapa
Video: Программирование модуля датчика температуры и влажности ESP8266 ESP01 DHT11 | удаленныйXY | ФЛПрог 2024, Nëntor
Anonim
ESP8266 Pika e hyrjes NodeMCU (AP) për Ueb Server me Sensor të Temperaturës DT11 dhe Temperatura dhe Lagështi Shtypi në Shfletues
ESP8266 Pika e hyrjes NodeMCU (AP) për Ueb Server me Sensor të Temperaturës DT11 dhe Temperatura dhe Lagështi Shtypi në Shfletues

Përshëndetje djema në shumicën e projekteve që ne përdorim ESP8266 dhe në shumicën e projekteve ne përdorim ESP8266 si një server në internet kështu që të dhënat mund të arrihen në çdo pajisje përmes wifi duke hyrë në serverin e uebit të pritur nga ESP8266 por problemi i vetëm është se ne kemi nevojë për një ruter pune për ajo dhe pajisja jonë gjithashtu duhet të lidhet me ruterin dhe ne duhet të vendosim kredencialet tona wifi në kod, kështu që nëse ndryshoni wifi, atëherë duhet të ndryshoni kredencialet në kod dhe duhet ta ringarkoni atë. Pra, në thelb kemi dy çështje këtu: 1- ne kemi nevojë për një lidhje wifi për të pritur serverin e uebit (ruterin) 2- çdo herë nëse lidhja wifi duhet të ndryshohet, ne duhet të futim kredencialet dhe të ringarkojmë kodin. Pra, për të shmangur të gjithë këtë problem, ajo që mund të bëjmë është në vend që të japim një qasje wifi ne mund ta bëjmë ESP8266 për të krijuar një lidhje wifi të vetin, kështu që nëse lidhemi me atë lidhje wifi mund të hyjmë në serverin e uebit të ESP8266. Pra, në thelb ne do të presim një server në internet me ESP8266 me pikë aksesi. Pra, në këtë udhëzues ne do të krijojë një server në internet duke përdorur Access Point me ESP8266 dhe ne do të lidhim një sensor DHT11 dhe temperaturën dhe lagështinë e printimit në faqen e serverit në internet.

Hapi 1: Gjërat që ju nevojiten

Gjërat që ju nevojiten
Gjërat që ju nevojiten
Gjërat që ju nevojiten
Gjërat që ju nevojiten

1x ESP 8266 Nodemcu: 1x DHT11: 1x panxhar:.: Pak kërcyes:

Hapi 2: Merrni Bibliotekat DHT11

Merrni Bibliotekat DHT11
Merrni Bibliotekat DHT11
Merrni Bibliotekat DHT11
Merrni Bibliotekat DHT11

Hapni IDE tuaj Arduino dhe shkoni te Skica> Përfshirja e Bibliotekës> Menaxhoni Bibliotekat. Menaxheri i Bibliotekës duhet të hapet. Kërkoni për "DHT" në kutinë e Kërkimit dhe instaloni bibliotekën DHT nga Adafruit. Pas instalimit të bibliotekës DHT nga Adafruit, shkruani "Adafruit Unified Sensor" në kutinë e kërkimit. Shkoni deri në fund për të gjetur bibliotekën dhe instaloni atë. Pas instalimit të bibliotekave, rinisni Arduino IDE tuaj.

Hapi 3: Lidhjet

Lidhjet
Lidhjet

Qarku është shumë i lehtë lidhni gjithçka Siç tregohet në skmatikë

Hapi 4: Kodi i Pikës së Qasjes

Kodi i Pikës së Qasjes
Kodi i Pikës së Qasjes

Nga udhëzimet e mia të mëparshme do të modifikoj kodin e serverit në internet të këtij udhëzuesi:

Dhe kthejeni atë në kodin e serverit të pikës së hyrjes. Ju lutemi kopjoni kodin e dhënë më poshtë:

#përfshi "Arduino.h"#përfshi "ESP8266WiFi.h"

#përfshi "Hash.h"

#përfshi "ESPAsyncTCP.h"

#përfshi "ESPAsyncWebServer.h"

#përfshi "Adafruit_Sensor.h"

#përfshi "DHT.h"

const char* ssid = "ESP8266"; const char* fjalëkalim = "fjalëkalim";#përcakto DHTPIN 5 // Kodi dixhital i lidhur me sensorin DHT // Mos komento llojin e sensorit në përdorim: //##përcakto DHTTYPE DHT11 // DHT 11#përcakto DHTTYPE DHT22 // DHT 22 (AM2302) //#përcakto DHTTYPE DHT21 // DHT 21 (AM2301) DHT dht (DHTPIN, DHTTYPE); // temperatura dhe lagështia aktuale, përditësuar në lak () noton t = 0.0; float h = 0.0; // Krijoni objekt AsyncWebServer në portin 80AsyncWebServer server (80); // Në përgjithësi, duhet të përdorni "pa shenjë të gjatë" për variablat që mbajnë kohën // Vlera shpejt do të bëhet shumë e madhe për një int për të ruajtur të nënshkruar shumë kohë më parë Milis = 0; // do të ruhet herën e fundit kur DHT u përditësua // Përditëson leximet e DHT çdo 10 sekondandërprerë interval të gjatë = 10000; const char index_html PROGMEM = R "rawliteral (ESP8266 DHT Server

Temperatura % TEMPERATURE % ° C

Lagështia % HUMIDITY % %) rawliteral "; // Zëvendëson vendmbërritësin me vlerat DHTProcesori string (const String & var) {//Serial.println(var); if (var ==" TEMPERATURE ") {return String (t);} tjetër nëse (var == "HUMIDITY") {return String (h);} return String ();} void setup () {// Port serial për qëllime të korrigjimit Serial.begin (115200); dht.begin (); Serial.print ("Setting AP (Pika e hyrjes)… "); // Hiq parametrin e fjalëkalimit, nëse dëshiron që AP (Pika e hyrjes) të jetë e hapur WiFi.softAP (ssid, fjalëkalim); IPAddress IP = WiFi.softAPIP (); Serial.print (" Adresa IP e AP -së: "); Serial.println (IP); // Shtyp ESP8266 Adresa IP Lokale Serial.println (WiFi.localIP ()); // Rruga për serverin e faqes / faqes në internet." (" /", HTTP_GET, (AsyncWebServerRequest *request) {request-> send_P (200, "text/html", index_html, processor);}); server.on ("/temperature", HTTP_GET, (AsyncWebServerRequest *kërkesë) {kërkesë- > send_P (200, "text/plain", String (t).c_str ());}); server.on ("/lagështia", HTTP_GET, (kërkesë AsyncWebServerRequest *) {request-> send_P (200, "tekst/i thjeshtë", String (h).c_str ()); }); // Nis serverin server.begin ();} loop void () {i panënshkruar aktual i gjatëMillis = millis (); if (currentMillis - previousMillis> = interval) {// ruani herën e fundit që keni përditësuar vlerat DHT previousMillis = currentMillis; // Lexoni temperaturën si Celsius (parazgjedhja) noton newT = dht.readTemperature (); // Lexoni temperaturën si Fahrenheit (isFahrenheit = e vërtetë) // notoni newT = dht.readTemperature (e vërtetë); // nëse temperatura nuk lexohet, mos e ndryshoni vlerën nëse (isnan (newT)) {Serial.println ("Failed për të lexuar nga sensori DHT! "); } tjetër {t = newT; Serial.println (t); } // Lexo Humidity float newH = dht.readHumidity (); // nëse lagështia e leximit dështoi, mos e ndryshoni vlerën h nëse (isnan (newH)) {Serial.println ("Leximi nuk u lexua nga sensori DHT!"); } tjetër {h = newH; Serial.println (h); }}} Para se të ngarkoni kodin sigurohuni që keni vënë gjërat e mëposhtme: const char* ssid = "ESP8266"; // çfarëdo ssid të wifi që dëshironi të konstatoni char* fjalëkalim = "fjalëkalim"; // kaloni për t'u lidhur me ssidSet E vendosur ESP8266 si një pikë hyrje: Për të vendosur esp8266 si një pikë aksesi ne do të përdorim komandën softAP siç tregohet më poshtë; për të krijuar një pikë aksesi. WiFi.softAP (ssid, fjalëkalim); Ka edhe parametra të tjerë opsionalë që mund t'i kaloni në metodën softAP (). Këtu janë të gjithë parametrat: Nëse hapni monitorin serik, mund të shihni IP -në e pikës së hyrjes. Kjo bëhet duke ndjekur një pjesë të kodit.

Hapi 5: Hapi Final: Testimi

Hapi i fundit: Testimi
Hapi i fundit: Testimi

Pasi të keni ngarkuar kodin, hapni wifi celular/kompjuterin tuaj dhe lidheni me wifi esp8266 (çfarëdo ssid dhe fjalëkalimi që keni futur në kod, përdorni atë). Pas lidhjes, thjesht hapni IP -në në shfletuesin tuaj, të cilën e kemi marrë nga monitori serik (https://192.168.4.1.) dhe ju do të jeni në gjendje të shihni temperaturën dhe lagështinë në shfletuesin tuaj si e imja. Dhe ne nuk përdorëm asnjë rrjet wifi për ta bërë këtë në mënyrë që të funksionojë pika e hyrjes së esp8266.

Recommended: