Talaan ng mga Nilalaman:

ESP8266 NodeMCU Access Point (AP) para sa Web Server Na May DT11 Temperature Sensor at Pag-print ng Temperatura at Humidity sa Browser: 5 Hakbang
ESP8266 NodeMCU Access Point (AP) para sa Web Server Na May DT11 Temperature Sensor at Pag-print ng Temperatura at Humidity sa Browser: 5 Hakbang

Video: ESP8266 NodeMCU Access Point (AP) para sa Web Server Na May DT11 Temperature Sensor at Pag-print ng Temperatura at Humidity sa Browser: 5 Hakbang

Video: ESP8266 NodeMCU Access Point (AP) para sa Web Server Na May DT11 Temperature Sensor at Pag-print ng Temperatura at Humidity sa Browser: 5 Hakbang
Video: NodeMCU ESP8266 Webserver in Access Point Mode 2024, Hulyo
Anonim
ESP8266 NodeMCU Access Point (AP) para sa Web Server Na May DT11 Temperature Sensor at Pag-print ng Temperatura at Humidity sa Browser
ESP8266 NodeMCU Access Point (AP) para sa Web Server Na May DT11 Temperature Sensor at Pag-print ng Temperatura at Humidity sa Browser

Kumusta mga kalalakihan sa karamihan ng mga proyekto na ginagamit namin ng ESP8266 at sa karamihan ng mga proyekto na ginagamit namin ang ESP8266 bilang isang webserver upang ma-access ang data sa anumang aparato sa pamamagitan ng wifi sa pamamagitan ng pag-access sa Webserver na naka-host ng ESP8266 ngunit ang problema lamang ay kailangan namin ng isang gumaganang router para sa iyon at ang aming aparato ay kailangan ding kumonekta sa router at kailangan naming ilagay ang aming mga kredensyal sa wifi sa code kaya kung binago mo ang wifi kailangan mong baguhin ang mga kredensyal sa code at kailangan mong i-upload muli ito. Kaya karaniwang mayroon kaming dalawang isyu dito: 1- kailangan namin ng koneksyon sa wifi upang ma-host ang webserver (router) 2- tuwing kailangan ng pagbabago ng koneksyon sa wifi kailangan nating mag-input ng mga kredensyal at muling i-upload ang code. Kaya upang maiwasan ang lahat ng problemang ito kung ano ang maaari nating gawin ay sa halip na magbigay ng isang maaari nating gawin ang wifi access ang ESP8266 upang lumikha ng isang koneksyon ng wifi ng sarili nito kung kung makakonekta kami sa koneksyon ng wifi na iyon maaari nating ma-access ang webserver ng ESP8266. Kaya karaniwang magho-host kami ng isang webserver na may ESP8266 na may access point. ay lumilikha isang webserver na gumagamit ng Access Point na may ESP8266 at ikonekta namin ang isang sensor ng DHT11 at i-print ang temperatura at halumigmig sa pahina ng webserver.

Hakbang 1: Mga Bagay na Kailangan mo

Mga Bagay na Kailangan Mo
Mga Bagay na Kailangan Mo
Mga Bagay na Kailangan Mo
Mga Bagay na Kailangan Mo

1x ESP 8266 Nodemcu: 1x DHT11: 1x breadboard:.: Ilang mga jumper:

Hakbang 2: Kunin ang Mga Aklatan ng DHT11

Kunin ang DHT11 Library
Kunin ang DHT11 Library
Kunin ang DHT11 Library
Kunin ang DHT11 Library

Buksan ang iyong Arduino IDE at pumunta sa Sketch> Isama ang Library> Pamahalaan ang Mga Aklatan. Dapat buksan ang Library Manager. Maghanap para sa "DHT" sa box para sa Paghahanap at mai-install ang library ng DHT mula sa Adafruit. Matapos mai-install ang DHT library mula sa Adafruit, i-type ang "Adafruit Unified Sensor" sa search box. Mag-scroll hanggang sa makita ang aklatan at mai-install ito. Pagkatapos i-install ang mga aklatan, i-restart ang iyong Arduino IDE.

Hakbang 3: Mga Koneksyon

Mga koneksyon
Mga koneksyon

Napakadali ng circuit na ikonekta ang lahat Ayon sa ipinakita sa schmatics

Hakbang 4: Access Point Code

Code ng Access Point
Code ng Access Point

Mula sa aking nakaraang mga itinuturo, babaguhin ko ang code ng webserver ng mga itinuturo na ito:

At gawin itong access point webserver code. Mangyaring kopyahin ang code na ibinigay sa ibaba:

# isama ang "Arduino.h" # isama ang "ESP8266WiFi.h"

# isama ang "Hash.h"

# isama ang "ESPAsyncTCP.h"

# isama ang "ESPAsyncWebServer.h"

# isama ang "Adafruit_Sensor.h"

# isama ang "DHT.h"

const char * ssid = "ESP8266"; const char * password = "password"; # tukuyin ang DHTPIN 5 // Digital pin na konektado sa sensor ng DHT // Hindi nag-komento ang uri ng sensor na ginagamit: // # tukuyin ang DHTTYPE DHT11 // DHT 11 # tukuyin ang DHTTYPE DHT22 // DHT 22 (AM2302) // # tukuyin ang DHTTYPE DHT21 // DHT 21 (AM2301) DHT dht (DHTPIN, DHTTYPE); // kasalukuyang temperatura at halumigmig, na-update sa loop () float t = 0.0; float h = 0.0; // Lumikha ng AsyncWebServer na object sa port 80AsyncWebServer server (80); // Pangkalahatan, dapat mong gamitin ang "unsigned long" para sa mga variable na humahawak ng oras // Ang halaga ay mabilis na magiging napakalaki para sa isang int na mai-storeun na naka-sign nang matagal nang nakaraangMillis = 0; // mag-iimbak ng huling oras na nai-update ang DHT // Mga Update sa pagbabasa ng DHT bawat 10 segundoconst long interval = 10000; const char index_html PROGMEM = R "rawliteral (ESP8266 DHT Server

Temperatura% TEMPERATURE% ° C

Humidity% HUMIDITY%%) rawliteral "; // Pinapalitan ang placeholder ng DHT nilaiString processor (const String & var) {//Serial.println(var); kung (var ==" TEMPERATURE ") {return String (t);} iba pa kung (var == "HUMIDITY") {return String (h);} return String ();} void setup () {// Serial port para sa mga layuning pag-debug Serial.begin (115200); dht.begin (); Serial.print ("Setting AP (Access Point)… "); // Alisin ang parameter ng password, kung nais mong bukas ang AP (Access Point) WiFi.softAP (ssid, password); IPAddress IP = WiFi.softAPIP (); Serial.print (" AP IP address: "); Serial.println (IP); // Print ESP8266 Local IP Address Serial.println (WiFi.localIP ()); // Route for root / web page server.on (" / ", HTTP_GET, (AsyncWebServerRequest * kahilingan) {request-> send_P (200, "text / html", index_html, processor);}); server.on ("/ temperatura", HTTP_GET, (AsyncWebServerRequest * kahilingan) {request- > send_P (200, "text / plain", String (t).c_str ());}); server.on ("/ halumigmig", HTTP_GET, (AsyncWebServerRequest * kahilingan) {request-> send_P (200, "text / plain", String (h).c_str ()); }); // Start server server.begin ();} void loop () {unsigned long currentMillis = millis (); kung (currentMillis - nakaraangMillis> = agwat) {// i-save ang huling oras na na-update mo ang mga halaga ng DHT na nakaraangMillis = currentMillis; // Basahin ang temperatura bilang Celsius (ang default) float newT = dht.readTemperature (); // Basahin ang temperatura bilang Fahrenheit (isFahrenheit = totoo) // float newT = dht.readTemperature (true); // kung nabasa ang temperatura, huwag baguhin ang t halaga kung (isnan (newT)) {Serial.println ("Nabigo basahin mula sa sensor ng DHT! "); } iba pa {t = newT; Serial.println (t); } // Basahin ang Humidity float newH = dht.readHumidity (); // kung nabasa ang kahalumigmigan, huwag baguhin ang h halaga kung (isnan (newH)) {Serial.println ("Nabigong basahin mula sa sensor ng DHT!"); } iba pa {h = newH; Serial.println (h); }}} Bago mo i-upload ang code tiyaking inilagay mo ang mga sumusunod na bagay: const char * ssid = "ESP8266"; // whatever ssid of wifi you wantconst char * password = "password"; // pass upang kumonekta sa itaas ssidSet Ang ESP8266 bilang isang Access Point: Upang itakda ang esp8266 bilang isang access point gagamitin namin ang softAP command tulad ng ipinakita sa ibaba; upang lumikha ng isang access point. WiFi.softAP (ssid, password); Mayroon ding iba pang mga opsyonal na parameter na maaari mong ipasa sa pamamaraang softAP (). Narito ang lahat ng mga parameter: Kung magbubukas ka ng serial monitor maaari mong makita ang IP ng access point. Alin ang ginagawa sa pamamagitan ng pagsunod sa bahagi ng code. IPAddress IP = WiFi.softAPIP (); Serial.print ("AP IP address:"); Serial.println (IP); Bilang default Ip address ay: 192.168.4.1

Hakbang 5: Pangwakas na Hakbang: Pagsubok

Pangwakas na Hakbang: Pagsubok
Pangwakas na Hakbang: Pagsubok

Matapos ang Pag-upload ng code pagkatapos buksan ang iyong mobile / pc wifi at kumonekta sa esp8266 wifi (kahit anong ipinasok na password at password na ipinasok mo sa code ay gamitin iyon). Pagkatapos ng pagkonekta buksan lamang ang IP sa iyong browser na nakuha namin mula sa serial monitor (https://192.168.4.1.) at makikita mo ang temperatura at halumigmig sa iyong browser bilang minahan. At hindi kami gumamit ng anumang wifi network upang magawa ito upang magawa ang access point ng esp8266 na gumagana.

Inirerekumendang: