สารบัญ:

ESP8266 NodeMCU Access Point (AP) สำหรับเว็บเซิร์ฟเวอร์พร้อมเซ็นเซอร์อุณหภูมิ DT11 และอุณหภูมิและความชื้นในการพิมพ์ในเบราว์เซอร์: 5 ขั้นตอน
ESP8266 NodeMCU Access Point (AP) สำหรับเว็บเซิร์ฟเวอร์พร้อมเซ็นเซอร์อุณหภูมิ DT11 และอุณหภูมิและความชื้นในการพิมพ์ในเบราว์เซอร์: 5 ขั้นตอน
Anonim
ESP8266 NodeMCU Access Point (AP) สำหรับเว็บเซิร์ฟเวอร์พร้อมเซ็นเซอร์อุณหภูมิ DT11 และอุณหภูมิและความชื้นในการพิมพ์ในเบราว์เซอร์
ESP8266 NodeMCU Access Point (AP) สำหรับเว็บเซิร์ฟเวอร์พร้อมเซ็นเซอร์อุณหภูมิ DT11 และอุณหภูมิและความชื้นในการพิมพ์ในเบราว์เซอร์

สวัสดี ในโครงการส่วนใหญ่เราใช้ ESP8266 และในโครงการส่วนใหญ่เราใช้ ESP8266 เป็นเว็บเซิร์ฟเวอร์เพื่อให้สามารถเข้าถึงข้อมูลบนอุปกรณ์ใดก็ได้ผ่าน wifi โดยการเข้าถึงเว็บเซิร์ฟเวอร์ที่โฮสต์โดย ESP8266 แต่ปัญหาเดียวคือเราต้องการเราเตอร์ที่ใช้งานได้ นั่นและอุปกรณ์ของเรายังต้องเชื่อมต่อกับเราเตอร์และเราจำเป็นต้องใส่ข้อมูลรับรอง wifi ของเราในรหัส ดังนั้นหากคุณเปลี่ยน wifi คุณจะต้องเปลี่ยนข้อมูลรับรองในรหัสและคุณต้องอัปโหลดใหม่ ดังนั้นโดยพื้นฐานแล้วเรามีปัญหาสองประการที่นี่:1- เราต้องการการเชื่อมต่อ wifi เพื่อโฮสต์เว็บเซิร์ฟเวอร์ (เราเตอร์)2- ทุกครั้งที่ต้องเปลี่ยนการเชื่อมต่อ wifi เราจำเป็นต้องป้อนข้อมูลรับรองและอัปโหลดรหัสอีกครั้ง ดังนั้นเพื่อหลีกเลี่ยงปัญหาทั้งหมดนี้ สิ่งที่เราทำได้คือแทนที่จะให้ การเข้าถึง wifi เราสามารถสร้าง ESP8266 เพื่อสร้างการเชื่อมต่อ wifi ของตัวเองได้ ดังนั้นหากเราเชื่อมต่อกับการเชื่อมต่อ wifi นั้น เราสามารถเข้าถึงเว็บเซิร์ฟเวอร์ของ ESP8266 ได้ ดังนั้นโดยพื้นฐานแล้ว เราจะโฮสต์เว็บเซิร์ฟเวอร์ด้วย ESP8266 พร้อมจุดเชื่อมต่อ ดังนั้นในคำแนะนำนี้ เรา จะสร้าง เว็บเซิร์ฟเวอร์ที่ใช้ Access Point กับ ESP8266 และเราจะเชื่อมต่อเซ็นเซอร์ DHT11 และอุณหภูมิและความชื้นในการพิมพ์บนเว็บเซิร์ฟเวอร์

ขั้นตอนที่ 1: สิ่งที่คุณต้องการ

สิ่งที่คุณต้องการ
สิ่งที่คุณต้องการ
สิ่งที่คุณต้องการ
สิ่งที่คุณต้องการ

1x ESP 8266 Nodemcu: 1x DHT11: 1x เขียงหั่นขนม:.: จัมเปอร์ไม่กี่ตัว:

ขั้นตอนที่ 2: รับไลบรารี DHT11

รับไลบรารี DHT11
รับไลบรารี DHT11
รับไลบรารี DHT11
รับไลบรารี DHT11

เปิด Arduino IDE ของคุณแล้วไปที่ Sketch > รวมไลบรารี > จัดการไลบรารี ตัวจัดการไลบรารีควรเปิดขึ้น ค้นหา "DHT" ในช่องค้นหาและติดตั้งไลบรารี DHT จาก Adafruit หลังจากติดตั้งไลบรารี DHT จาก Adafruit แล้ว ให้พิมพ์ "Adafruit Unified Sensor" ในช่องค้นหา เลื่อนลงมาจนสุดเพื่อค้นหาไลบรารีและติดตั้ง หลังจากติดตั้งไลบรารี่แล้ว ให้รีสตาร์ท Arduino IDE ของคุณ

ขั้นตอนที่ 3: การเชื่อมต่อ

การเชื่อมต่อ
การเชื่อมต่อ

วงจรเชื่อมต่อทุกอย่างได้ง่ายมาก ตามที่แสดงในแผนผัง

ขั้นตอนที่ 4: รหัสจุดเข้าใช้งาน

รหัสจุดเข้าใช้งาน
รหัสจุดเข้าใช้งาน

จากคำสั่งก่อนหน้าของฉัน ฉันจะแก้ไขรหัสเว็บเซิร์ฟเวอร์ของคำสั่งนี้:

และเปลี่ยนเป็นรหัสเว็บเซิร์ฟเวอร์จุดเชื่อมต่อ โปรดคัดลอกรหัสที่ให้ไว้ด้านล่าง:

#รวม "Arduino.h" # รวม "ESP8266WiFi.h"

#รวม "Hash.h"

#include "ESPAsyncTCP.h"

#include "ESPAsyncWebServer.h"

#รวม "Adafruit_Sensor.h"

#รวม "DHT.h"

const char* ssid = "ESP8266";const char* password = "password";#define DHTPIN 5 // พินดิจิตอลที่เชื่อมต่อกับเซ็นเซอร์ DHT// ยกเลิกหมายเหตุประเภทของเซ็นเซอร์ที่ใช้งาน: //#define DHTTYPE DHT11 // DHT 11#define DHTTYPE DHT22 // DHT 22 (AM2302)//#define DHTTYPE DHT21 // DHT 21 (AM2301)DHT dht(DHTPIN, DHTTYPE); // อุณหภูมิและความชื้นปัจจุบัน อัปเดตในลูป ()float t = 0.0; float h = 0.0;// สร้างอ็อบเจ็กต์ AsyncWebServer บนพอร์ต 80AsyncWebServer server(80);// โดยทั่วไป คุณควรใช้ "unsigned long" สำหรับตัวแปรที่คงเวลาไว้ // ค่าจะใหญ่เกินไปอย่างรวดเร็วสำหรับ int ที่จะเก็บค่าก่อนหน้าที่ยังไม่ได้ลงนามนาน = 0; // จะจัดเก็บ DHT ครั้งล่าสุดที่อัปเดต // อัปเดตการอ่าน DHT ทุกๆ 10 วินาทีconst ช่วงเวลายาว = 10000; const char index_html PROGMEM = R"rawliteral (เซิร์ฟเวอร์ ESP8266 DHT

อุณหภูมิ %TEMPERATURE% °C

ความชื้น % HUMIDITY% %)rawliteral";// แทนที่ตัวยึดตำแหน่งด้วย DHT valuesString processor (const String& var){ //Serial.println(var); if(var == "TEMPERATURE"){ return String(t); } else if(var == "HUMIDITY"){ return String(h); } return String();}void setup(){ // พอร์ตอนุกรมสำหรับการดีบัก Serial.begin(115200); dht.begin(); Serial.print("การตั้งค่า AP (Access Point)…"); // ลบพารามิเตอร์รหัสผ่าน หากคุณต้องการให้ AP (Access Point) เปิด WiFi.softAP(ssid, password); IPAddress IP = WiFi.softAPIP(); Serial.print(" ที่อยู่ IP ของ AP: "); Serial.println (IP); // พิมพ์ที่อยู่ IP ท้องถิ่น ESP8266 Serial.println (WiFi.localIP ()); // เส้นทางสำหรับรูท / เว็บเพจ server.on ("/", HTTP_GET, (AsyncWebServerRequest *request){ request->send_P(200, "text/html", index_html, processor); }); server.on("/temperature", HTTP_GET, (AsyncWebServerRequest *request){ request- >send_P(200, "text/plain", String(t).c_str()); }); server.on("/humidity", HTTP_GET, (AsyncWebServerRequest *request){ request->send_P(200, "ข้อความ/ธรรมดา", สตริง(h).c_str()); }); // เริ่มเซิร์ฟเวอร์ server.begin();}void loop(){ unsigned long currentMillis = millis(); if (currentMillis - PreviousMillis >= ช่วงเวลา) { // บันทึกครั้งสุดท้ายที่คุณอัปเดตค่า DHT PreviousMillis = currentMillis; // อ่านอุณหภูมิเป็นเซลเซียส (ค่าเริ่มต้น) float newT = dht.readTemperature(); // อ่านอุณหภูมิเป็นฟาเรนไฮต์ (isFahrenheit = true) //float newT = dht.readTemperature(true);// หากการอ่านอุณหภูมิล้มเหลว อย่าเปลี่ยนค่า t ถ้า (isnan (newT)) { Serial.println ("Failed อ่านจากเซ็นเซอร์ DHT!"); } อื่น ๆ { t = newT; Serial.println(t); } // อ่านค่าความชื้นลอย newH = dht.readHumidity(); // หากการอ่านค่าความชื้นล้มเหลว อย่าเปลี่ยนค่า h ถ้า (isnan (newH)) { Serial.println ("ไม่สามารถอ่านจากเซ็นเซอร์ DHT!"); } อื่น ๆ { h = newH; Serial.println(ซ); } }}ก่อนที่คุณจะอัปโหลดโค้ด ให้แน่ใจว่าคุณใส่สิ่งต่อไปนี้: const char* ssid = "ESP8266"; // ssid อะไรก็ตามของ wifi ที่คุณต้องการconst char* password = "password"; //ผ่านเพื่อเชื่อมต่อกับ ssidSet ด้านบนให้ ESP8266 เป็น Access Point: หากต้องการตั้งค่า esp8266 เป็นจุดเชื่อมต่อ เราจะใช้คำสั่ง softAP ดังแสดงด้านล่าง เพื่อสร้าง access point. WiFi.softAP(ssid, password);นอกจากนี้ยังมีพารามิเตอร์ทางเลือกอื่นๆ ที่คุณสามารถส่งผ่านไปยังเมธอด softAP() ได้ นี่คือพารามิเตอร์ทั้งหมด: หากคุณเปิดจอภาพแบบอนุกรม คุณจะเห็น IP ของจุดเข้าใช้งาน ซึ่งทำได้โดยทำตามส่วนหนึ่งของรหัส. IPAddress IP = WiFi.softAPIP();Serial.print("AP IP address: ");Serial.println(IP);โดยค่าเริ่มต้นที่อยู่ IP คือ: 192.168.4.1

ขั้นตอนที่ 5: ขั้นตอนสุดท้าย: การทดสอบ

ขั้นตอนสุดท้าย: การทดสอบ
ขั้นตอนสุดท้าย: การทดสอบ

หลังจากอัปโหลดรหัสแล้ว ให้เปิด wifi มือถือ/พีซีของคุณและเชื่อมต่อกับ esp8266 wifi (ไม่ว่าจะใช้ ssid & รหัสผ่านใดในรหัสก็ตาม) หลังจากเชื่อมต่อแล้ว ให้เปิด IP ในเบราว์เซอร์ของคุณซึ่งเราได้รับจากมอนิเตอร์แบบอนุกรม (https://192.168.4.1.) และคุณจะสามารถดูอุณหภูมิและความชื้นในเบราว์เซอร์ของคุณเหมือนของฉัน และเราไม่ได้ใช้เครือข่าย wifi ใด ๆ เพื่อทำสิ่งนี้ให้สำเร็จ นั่นคือวิธีการทำงานของจุดเชื่อมต่อของ esp8266

แนะนำ: