Πίνακας περιεχομένων:

ESP8266 NodeMCU Access Point (AP) για διακομιστή Web με αισθητήρα θερμοκρασίας DT11 και θερμοκρασία εκτύπωσης και υγρασία στο πρόγραμμα περιήγησης: 5 βήματα
ESP8266 NodeMCU Access Point (AP) για διακομιστή Web με αισθητήρα θερμοκρασίας DT11 και θερμοκρασία εκτύπωσης και υγρασία στο πρόγραμμα περιήγησης: 5 βήματα

Βίντεο: ESP8266 NodeMCU Access Point (AP) για διακομιστή Web με αισθητήρα θερμοκρασίας DT11 και θερμοκρασία εκτύπωσης και υγρασία στο πρόγραμμα περιήγησης: 5 βήματα

Βίντεο: ESP8266 NodeMCU Access Point (AP) για διακομιστή Web με αισθητήρα θερμοκρασίας DT11 και θερμοκρασία εκτύπωσης και υγρασία στο πρόγραμμα περιήγησης: 5 βήματα
Βίντεο: How to use DHT11 DHT22 with NodeMCU ESP8266 to read temperature over WiFi - IoT 2024, Νοέμβριος
Anonim
ESP8266 NodeMCU Access Point (AP) για διακομιστή Web με αισθητήρα θερμοκρασίας DT11 και θερμοκρασία εκτύπωσης και υγρασία στο πρόγραμμα περιήγησης
ESP8266 NodeMCU Access Point (AP) για διακομιστή Web με αισθητήρα θερμοκρασίας 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 breadboard:.: Λίγοι άλτες:

Βήμα 2: Αποκτήστε τις Βιβλιοθήκες DHT11

Αποκτήστε τις Βιβλιοθήκες DHT11
Αποκτήστε τις Βιβλιοθήκες DHT11
Αποκτήστε τις βιβλιοθήκες DHT11
Αποκτήστε τις βιβλιοθήκες DHT11

Ανοίξτε το Arduino IDE και μεταβείτε στο Σκίτσο> Συμπερίληψη βιβλιοθήκης> Διαχείριση βιβλιοθηκών. Ο Διαχειριστής βιβλιοθήκης πρέπει να ανοίξει. Αναζητήστε "DHT" στο πλαίσιο Αναζήτηση και εγκαταστήστε τη βιβλιοθήκη DHT από το Adafruit. Αφού εγκαταστήσετε τη βιβλιοθήκη DHT από το Adafruit, πληκτρολογήστε "Adafruit Unified Sensor" στο πλαίσιο αναζήτησης. Κάντε κύλιση μέχρι κάτω για να βρείτε τη βιβλιοθήκη και να την εγκαταστήσετε. Μετά την εγκατάσταση των βιβλιοθηκών, κάντε επανεκκίνηση του Arduino IDE.

Βήμα 3: Συνδέσεις

Συνδέσεις
Συνδέσεις

Το κύκλωμα είναι πολύ εύκολο να συνδέσετε τα πάντα Όπως φαίνεται στους σχυματικούς

Βήμα 4: Κωδικός σημείου πρόσβασης

Κωδικός σημείου πρόσβασης
Κωδικός σημείου πρόσβασης

Από τις προηγούμενες οδηγίες μου θα τροποποιήσω τον κώδικα διακομιστή ιστού αυτών των οδηγιών:

Και μετατρέψτε τον σε κωδικό διακομιστή σημείου πρόσβασης. Αντιγράψτε τον κωδικό που παρέχεται παρακάτω:

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

#include "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 // Digitalηφιακή ακίδα συνδεδεμένη με τον αισθητήρα DHT // Αποσχολιάστε τον τύπο του αισθητήρα που χρησιμοποιείται: //##ορίστε 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" για μεταβλητές που διατηρούν χρόνο = 0; // θα αποθηκευτεί την τελευταία φορά που ενημερώθηκε το DHT // Ενημερώνει τις ενδείξεις DHT κάθε 10 δευτερόλεπτα μεγάλο διάστημα = 10000; const char index_html PROGMEM = R "rawliteral (ESP8266 DHT Server

Θερμοκρασία % ΘΕΡΜΟΚΡΑΣΙΑ % ° C

Υγρασία % ΥΓΡΑΣΙΑ % %) rawliteral "; // Αντικαθιστά το κράτημα θέσης με τιμές DHT "HUMIDITY") {return String (h);} return String ();} void setup () {// Serial port for debugging Serial.begin (115200); dht.begin (); Serial.print ("Setting AP (Σημείο πρόσβασης)… "); // Καταργήστε την παράμετρο κωδικού πρόσβασης, εάν θέλετε το AP (Σημείο πρόσβασης) να είναι ανοιχτό WiFi.softAP (ssid, password); IPAddress IP = WiFi.softAPIP (); Serial.print (" Διεύθυνση IP AP: "); Serial.println (IP); // Εκτύπωση ESP8266 Τοπική Διεύθυνση IP Serial.println (WiFi.localIP ()); // Διαδρομή για root / web server 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-> send_P (200, "κείμενο/απλό", String (h).c_str ()); }); // Έναρξη διακομιστή server.begin ();} void loop () {unsigned long currentMillis = millis (); εάν (currentMillis - previousMillis> = διάστημα) {// αποθηκεύστε την τελευταία φορά που ενημερώσατε τις τιμές DHT previousMillis = currentMillis. // Διαβάστε τη θερμοκρασία ως Κελσίου (η προεπιλογή) επιπλέει newT = dht.readTemperature (); // Διαβάστε τη θερμοκρασία ως Φαρενάιτ (isFahrenheit = true) // float newT = dht.readTemperature (true); // αν η θερμοκρασία απέτυχε, μην αλλάξετε την τιμή t εάν (isnan (newT)) {Serial.println ("Failed για ανάγνωση από τον αισθητήρα DHT! "); } else {t = newT; Serial.println (t); } // Διαβάστε Υγρασία float newH = dht.readHumidity (); // εάν η ανάγνωση υγρασίας απέτυχε, μην αλλάξετε την τιμή h (isnan (newH)) {Serial.println ("Η ανάγνωση απέτυχε από τον αισθητήρα DHT!"); } else {h = newH; Serial.println (h); }}} Πριν ανεβάσετε τον κωδικό, βεβαιωθείτε ότι έχετε βάλει τα ακόλουθα στοιχεία: const char* ssid = "ESP8266"; // όποιο ssid του wifi θέλετεconst char* password = "password"? // pass για σύνδεση με το παραπάνω ssidSet Το ESP8266 ως σημείο πρόσβασης: Για να ορίσετε το esp8266 ως σημείο πρόσβασης θα χρησιμοποιούμε την εντολή softAP όπως φαίνεται παρακάτω. για να δημιουργήσετε ένα σημείο πρόσβασης. WiFi.softAP (ssid, κωδικός πρόσβασης); Υπάρχουν επίσης άλλες προαιρετικές παράμετροι που μπορείτε να περάσετε στη μέθοδο softAP (). Ακολουθούν όλες οι παράμετροι: Εάν ανοίξετε τη σειριακή οθόνη, μπορείτε να δείτε την IP του σημείου πρόσβασης. Αυτό γίνεται ακολουθώντας μέρος του κώδικα. IPAddress IP = WiFi.softAPIP (); Serial.print ("IP AP address:"); Serial.println (IP); By default Ip address is: 192.168.4.1

Βήμα 5: Τελικό βήμα: Δοκιμή

Τελικό βήμα: Δοκιμή
Τελικό βήμα: Δοκιμή

Αφού ανεβάσετε τον κωδικό, ανοίξτε το wifi του κινητού σας/υπολογιστή και συνδεθείτε στο esp8266 wifi (ό, τι ssid & password έχετε εισαγάγει στον κώδικα, χρησιμοποιήστε το). Αφού συνδέσετε, ανοίξτε μόνο την IP στο πρόγραμμα περιήγησής σας που πήραμε από τη σειριακή οθόνη (https://192.168.4.1.) και θα μπορείτε να δείτε τη θερμοκρασία και την υγρασία στο πρόγραμμα περιήγησής σας ως δική μου. Και δεν χρησιμοποιήσαμε κανένα δίκτυο wifi για να το κάνουμε αυτό, έτσι ώστε να λειτουργεί το σημείο πρόσβασης του esp8266.

Συνιστάται: