Სარჩევი:

ESP8266 NodeMCU წვდომის წერტილი (AP) ვებ სერვერისთვის DT11 ტემპერატურის სენსორით და ბეჭდვის ტემპერატურა და ტენიანობა ბრაუზერში: 5 ნაბიჯი
ESP8266 NodeMCU წვდომის წერტილი (AP) ვებ სერვერისთვის DT11 ტემპერატურის სენსორით და ბეჭდვის ტემპერატურა და ტენიანობა ბრაუზერში: 5 ნაბიჯი

ვიდეო: ESP8266 NodeMCU წვდომის წერტილი (AP) ვებ სერვერისთვის DT11 ტემპერატურის სენსორით და ბეჭდვის ტემპერატურა და ტენიანობა ბრაუზერში: 5 ნაბიჯი

ვიდეო: ESP8266 NodeMCU წვდომის წერტილი (AP) ვებ სერვერისთვის DT11 ტემპერატურის სენსორით და ბეჭდვის ტემპერატურა და ტენიანობა ბრაუზერში: 5 ნაბიჯი
ვიდეო: How to use ESP32 WiFi and Bluetooth with Arduino IDE full details with examples and code 2024, დეკემბერი
Anonim
ESP8266 NodeMCU წვდომის წერტილი (AP) ვებ სერვერისთვის DT11 ტემპერატურის სენსორით და ბეჭდვის ტემპერატურა და ტენიანობა ბრაუზერში
ESP8266 NodeMCU წვდომის წერტილი (AP) ვებ სერვერისთვის DT11 ტემპერატურის სენსორით და ბეჭდვის ტემპერატურა და ტენიანობა ბრაუზერში

გამარჯობა ბიჭებო პროექტების უმეტესობაში ჩვენ ვიყენებთ ESP8266 და უმეტეს პროექტებში ჩვენ ვიყენებთ ESP8266 როგორც ვებ სერვერს, ასე რომ მონაცემების წვდომა შესაძლებელია ნებისმიერ მოწყობილობაზე wifi საშუალებით, ვებ სერვერზე წვდომისათვის ESP8266, მაგრამ ერთადერთი პრობლემა ის არის, რომ ჩვენ გვჭირდება სამუშაო როუტერი რომ და ჩვენი მოწყობილობა ასევე უნდა იყოს დაკავშირებული როუტერთან და ჩვენ უნდა ჩავდოთ ჩვენი wifi სერთიფიკატები კოდში, ასე რომ, თუ თქვენ შეცვლით wifi, თქვენ უნდა შეცვალოთ რწმუნებათა სიგელები კოდში და თქვენ უნდა გადატვირთოთ იგი. ასე რომ, ძირითადად ჩვენ გვაქვს ორი საკითხი აქ: 1- ჩვენ გვჭირდება wifi კავშირი ვებ სერვერის (როუტერის) მასპინძლობისთვის 2- ყოველ ჯერზე, თუ wifi კავშირი უნდა შეიცვალოს, ჩვენ უნდა შევიტანოთ სერთიფიკატები და ხელახლა ჩავტვირთოთ კოდი. ამ პრობლემის თავიდან აცილების მიზნით, რისი გაკეთებაც შეგვიძლია wifi წვდომის საშუალებით ჩვენ შეგვიძლია ESP8266 შევქმნათ საკუთარი wifi კავშირი, ასე რომ, თუ ჩვენ დავუკავშირდებით ამ wifi კავშირს, ჩვენ შეგვიძლია შეხვიდეთ ESP8266 ვებ სერვერზე. ასე რომ, ძირითადად ჩვენ ვიმასპინძლებთ ვებ სერვერს ESP8266– ით წვდომის წერტილით. ასე რომ, ამ ინსტრუქციებში ჩვენ შეიქმნება ვებ სერვერი წვდომის წერტილის გამოყენებით ESP8266 და ჩვენ დავუკავშირდებით DHT11 სენსორს და დაბეჭდვის ტემპერატურასა და ტენიანობას ვებ სერვერის გვერდზე.

ნაბიჯი 1: ის, რაც გჭირდებათ

ნივთები რაც თქვენ გჭირდებათ
ნივთები რაც თქვენ გჭირდებათ
ნივთები რაც თქვენ გჭირდებათ
ნივთები რაც თქვენ გჭირდებათ

1x ESP 8266 Nodemcu: 1x DHT11: 1x breadboard:.: რამდენიმე მხტუნავი:

ნაბიჯი 2: მიიღეთ DHT11 ბიბლიოთეკები

მიიღეთ DHT11 ბიბლიოთეკები
მიიღეთ DHT11 ბიბლიოთეკები
მიიღეთ DHT11 ბიბლიოთეკები
მიიღეთ DHT11 ბიბლიოთეკები

გახსენით თქვენი Arduino IDE და გადადით ჩანახატზე> ბიბლიოთეკის ჩართვა> ბიბლიოთეკების მართვა. ბიბლიოთეკის მენეჯერი უნდა გაიხსნას. მოძებნეთ "DHT" საძიებო ველში და დააინსტალირეთ DHT ბიბლიოთეკა Adafruit– დან. Adafruit– დან DHT ბიბლიოთეკის დაყენების შემდეგ, საძიებო ველში ჩაწერეთ „Adafruit Unified Sensor“. გადაახვიეთ ბოლომდე ბიბლიოთეკის საპოვნელად და დააინსტალირეთ. ბიბლიოთეკების დაყენების შემდეგ გადატვირთეთ თქვენი Arduino IDE.

ნაბიჯი 3: კავშირები

კავშირები
კავშირები

წრე ძალიან ადვილია ყველაფრის დაკავშირება როგორც ეს ნაჩვენებია სკამატიკებში

ნაბიჯი 4: წვდომის წერტილის კოდი

წვდომის წერტილის კოდი
წვდომის წერტილის კოდი

ჩემი წინა ინსტრუქციიდან მე შევცვლი ამ ინსტრუქციის ვებ სერვერის კოდს:

და გადააქციე წვდომის წერტილის ვებ სერვერის კოდი. გთხოვთ დააკოპიროთ ქვემოთ მოყვანილი კოდი:

#მოიცავს "Arduino.h"#მოიცავს "ESP8266WiFi.h"

#მოიცავს "Hash.h"

#მოიცავს "ESPAsyncTCP.h"

#მოიცავს "ESPAsyncWebServer.h"

#მოიცავს "Adafruit_Sensor.h"

#მოიცავს "DHT.h"

const char* ssid = "ESP8266"; const char* პაროლი = "პაროლი";#განსაზღვრეთ DHTPIN 5 // DHT სენსორთან დაკავშირებული ციფრული პინი // გამოაქვეყნეთ გამოყენებული სენსორის ტიპი: //#განსაზღვრეთ DHTTYPE DHT11 // DHT 11#განსაზღვრეთ DHTTYPE DHT22 // DHT 22 (AM2302) //#განსაზღვრეთ DHTTYPE DHT21 // DHT 21 (AM2301) DHT dht (DHTPIN, DHTTYPE); // მიმდინარე ტემპერატურა და ტენიანობა, განახლებულია მარყუჟში () float t = 0.0; float h = 0.0; // შექმენით AsyncWebServer ობიექტი პორტში 80AsyncWebServer სერვერი (80); // საერთოდ, თქვენ უნდა გამოიყენოთ "ხელმოუწერელი გრძელი" ცვლადებისთვის, რომლებიც დროს ინარჩუნებენ. = 0; // შეინახავს ბოლო დროს, როდესაც DHT განახლდა // განაახლებს DHT კითხვებს ყოველ 10 წამში </ b> გრძელი ინტერვალი = 10000; const char index_html PROGMEM = R "rawliteral (ESP8266 DHT სერვერი

ტემპერატურა % TEMPERATURE % ° C

ტენიანობა % HUMIDITY % %) rawliteral "; // ცვლის ადგილსამყოფელს DHT მნიშვნელობებით სიმებიანი პროცესორი (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 (წვდომის წერტილი)… "); // ამოიღეთ პაროლის პარამეტრი, თუ გსურთ რომ AP (წვდომის წერტილი) იყოს ღია WiFi.softAP (ssid, პაროლი); IPAddress IP = WiFi.softAPIP (); Serial.print (" AP IP მისამართი: "); Serial.println (IP); // ბეჭდვა ESP8266 ლოკალური IP მისამართი Serial.println (WiFi.localIP ()); // მარშრუტი root / ვებ გვერდის სერვერზე." (" /", HTTP_GET, (AsyncWebServerRequest *მოთხოვნა) {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 ("/ტენიანობა", HTTP_GET, (AsyncWebServerRequest *მოთხოვნა) {request-> send_P (200, "ტექსტი/უბრალო", სიმებიანი (თ).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 სენსორიდან წასაკითხად! "); } else {t = newT; Serial.println (t); } // წაკითხვის Humidity float newH = dht.readHumidity (); // თუ ტენიანობის წაკითხვა ვერ მოხერხდა, არ შეცვალოთ h მნიშვნელობა if (isnan (newH)) {Serial.println ("DHT სენსორიდან წაკითხვა ვერ მოხერხდა!"); } სხვა {h = newH; სერიული. ბეჭდვა (თ); }}} კოდის ატვირთვამდე დარწმუნდით, რომ ჩაწერეთ შემდეგი ნივთები: const char* ssid = "ESP8266"; // რაც არ უნდა იყოს wifi ss, შენიშვნა char* პაროლი = "პაროლი"; // pass to connect with above ssidSet The ESP8266 as Access Point: რომ დააყენოთ esp8266 როგორც წვდომის წერტილი, ჩვენ ვიყენებთ softAP ბრძანებას, როგორც ნაჩვენებია ქვემოთ; წვდომის წერტილის შესაქმნელად. WiFi.softAP (ssid, პაროლი); ასევე არსებობს სხვა სურვილისამებრ პარამეტრები, რომელთა გადატანა შეგიძლიათ softAP () მეთოდზე. აქ არის ყველა პარამეტრი: თუ გახსენით სერიული მონიტორი, შეგიძლიათ ნახოთ წვდომის წერტილის IP. რაც კეთდება კოდის ნაწილის შემდეგ. IP მისამართი IP = WiFi.softAPIP (); Serial.print ("AP IP მისამართი:"); Serial.println (IP); სტანდარტულად IP მისამართია: 192.168.4.1

ნაბიჯი 5: საბოლოო ნაბიჯი: ტესტირება

დასკვნითი ეტაპი: ტესტირება
დასკვნითი ეტაპი: ტესტირება

კოდის ატვირთვის შემდეგ გახსენით თქვენი მობილური/კომპიუტერის wifi და დაუკავშირდით esp8266 wifi- ს (რასაც ssid და პაროლი ჩაწერეთ კოდში გამოიყენეთ). დაკავშირების შემდეგ უბრალოდ გახსენით IP ბრაუზერში, რომელიც მივიღეთ სერიული მონიტორიდან (https://192.168.4.1.) და თქვენ შეგიძლიათ ნახოთ ტემპერატურა და ტენიანობა თქვენს ბრაუზერში, როგორც ჩემი. და ჩვენ არ გამოგვიყენებია არც ერთი wifi ქსელი ამის გასაკეთებლად, ასე რომ, როგორ მუშაობს esp8266 წვდომის წერტილი.

გირჩევთ: