Πίνακας περιεχομένων:
- Προμήθειες
- Βήμα 1: Κάντε το να λειτουργήσει
- Βήμα 2: Πώς λειτουργεί ο κώδικας
- Βήμα 3: Ορίστε το NODEMCU ως διακομιστή
- Βήμα 4: Φόρτωση αρχείου HTML
- Βήμα 5: Δοκιμάστε το
Βίντεο: Πώς να χρησιμοποιήσετε το ESP8266 ως διακομιστή ιστοσελίδων: 5 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:32
Γεια, χρησιμοποιώ αυτήν τη στιγμή τα Windows 10, NodeMCU 1.0 και εδώ είναι η λίστα με το λογισμικό που χρησιμοποίησα και τους οδηγούς εγκατάστασης που ακολούθησα:
- Arduino IDE
- Πρόσθετοι πίνακες για το esp8266
- Spiff
Βιβλιοθήκη που χρησιμοποιείται:
Ιστοσελίδα
Χρησιμοποίησα το NodeMCU ως διακομιστή για την εξυπηρέτηση ενός αρχείου HTML που έφτιαξα από το thistutorial. Για την προβολή αυτού του αρχείου, ανέβασα το αρχείο στο σύστημα αρχείων nodemcu χρησιμοποιώντας Spiffs. Το αρχείο HTML στέλνει δεδομένα στο nodemcu χρησιμοποιώντας υποδοχές ιστού για εκτύπωση στη σειριακή οθόνη για αυτό. Η γρήγορη αμφίδρομη επικοινωνία μέσω δικτυακών υποδοχών του διακομιστή και του πελάτη επέτρεψε τη χρήση του ως τηλεχειριστήριο. Στα επόμενα βήματα, δεν μπορώ να εξηγήσω πώς λειτουργεί ο κωδικός μου
Προμήθειες
NodeMCU
Βήμα 1: Κάντε το να λειτουργήσει
Ακολουθούν τα βήματα για το πώς λειτουργεί
- Κατεβάστε το συνημμένο αρχείο και ανοίξτε το αρχείο mousebot.ino
- Μεταβείτε στο σκίτσο> εμφάνιση φακέλου σκίτσων και δημιουργήστε έναν νέο φάκελο με όνομα δεδομένα
- Αποθηκεύστε το αρχείο html από αυτό το σεμινάριο στο φάκελο με το όνομα. Ονόμασα το δικό μου ως "Joystick"
- Βεβαιωθείτε ότι το spiff σας είναι ήδη λειτουργικό πηγαίνοντας στα εργαλεία και δείτε την "μεταφόρτωση δεδομένων σκίτσων esp8266"
- Ανεβάστε το αρχείο html στο nodemcu κάνοντας κλικ στο "esp8266 sketch data upload"
- Μετά τη μεταφόρτωση αρχείου, ανεβάστε στο nodemcu το αρχείο mousebot.ino πατώντας στο arduino IDE και πατώντας ctrl U
Βήμα 2: Πώς λειτουργεί ο κώδικας
Αρχικά, συμπεριλαμβάνουμε τις βιβλιοθήκες που θα χρησιμοποιήσει αυτός ο κώδικας
// για να ενεργοποιήσετε τη σύνδεση ESP8266 με το WIFI
#include #include #include // Επιτρέπει στο ESP8266 να λειτουργεί ως διακομιστής #include // ενεργοποιεί την επικοινωνία με τον διακομιστή και τον πελάτη (η συνδεδεμένη συσκευή σας) #include #include // Για να ανοίξετε το αναβαθμισμένο αρχείο στο nodemcu #include
Ορίστε το esp8266 ως διακομιστή ιστού που ανοίγει στη θύρα 80. Οι θύρες είναι διαδρομές από τις οποίες θα περάσουν τα δεδομένα. Ως θύρα διακομιστή, θα στείλει το αρχείο HTML στον πελάτη (οι αποκλίσεις που συνδέονται με αυτό).
Προσθέτει μια σύνδεση δικτύου χρησιμοποιώντας τη θύρα 81 για να ακούσετε μηνύματα από τον πελάτη
Οι δικτυακοί σύνδεσμοι έχουν την παράμετρο num, WStype_t, ωφέλιμο φορτίο και μέγεθος. Ο αριθμός καθορίζει τον αριθμό πελάτη, το ωφέλιμο φορτίο είναι το μήνυμα που στέλνει, το μέγεθος είναι το μήκος του μηνύματος και το WStype_t είναι για διαφορετικά συμβάντα, όπως
- WStype_DISCONNECTED - κατά την αποσύνδεση ενός προγράμματος -πελάτη.
- WStype_CONNECTED: - όταν συνδεθεί ένας πελάτης
- WStype_TEXT - Έλαβε δεδομένα από τον πελάτη
Ανάλογα με τον τύπο του συμβάντος, γίνονται διάφορες ενέργειες και σχολιάζονται εδώ
void webSocketEvent (uint8_t num, τύπος WStype_t, uint8_t * ωφέλιμο φορτίο, μέγεθος_t μήκος) {
διακόπτης (τύπος) {case WStype_DISCONNECTED: Serial.printf ("[%u] Αποσυνδέθηκε! / n", αριθ.); // εκτυπώνει δεδομένα στο διάλειμμα σειριακής οθόνης. θήκη WStype_CONNECTED: {IPAddress ip = webSocket.remoteIP (num); // λαμβάνει την IP του πελάτη Serial.printf ("[%u] Συνδέθηκε από%d.%d.%d.%d url:%s / n", num, ip [0], ip [1], ip [2], ip [3], ωφέλιμο φορτίο); webSocket.sendTXT (num, "Connected"); // στέλνει "συνδεδεμένο" στην κονσόλα του προγράμματος περιήγησης} break; περίπτωση WStype_TEXT: Serial.printf ("[%u] Δεδομένα: %s / n", num, ωφέλιμο φορτίο); // εκτυπώνει τον αριθμό πελάτη σε %u και τα δεδομένα που λαμβάνονται ως συμβολοσειρές σε %s / n διακοπή;}}
Βήμα 3: Ορίστε το NODEMCU ως διακομιστή
ορίζει το ssid και τον κωδικό πρόσβασης που θα χρησιμοποιήσετε για να συνδεθείτε αργότερα σε αυτό
const char *ssid = "Δοκιμάστε";
const char *password = "12345678";
κατά τη ρύθμιση, καθορίζουμε τον ρυθμό με τον οποίο θα επικοινωνήσει το nodemcu και ο υπολογιστής μας, ο οποίος είναι 115200.
void setup (void) {
Serial.begin (115200); Serial.print ("\ n");
ρυθμισμένο σε true επίσης δείτε την έξοδο διαγνωστικού wifi στο τερματικό serila
Serial.setDebugOutput (true);
αρχικοποιήστε το σύστημα αρχείων
SPIFFS.begin ();
Ρυθμίστε το nodemcu ως σημείο πρόσβασης με ssid και κωδικό προστασίας νωρίτερα και εκτυπώνει το ip του nodemcu με το οποίο θα συνδεθείτε νωρίτερα. από προεπιλογή είναι 192.168.4.1
Serial.print ("Διαμόρφωση σημείου πρόσβασης …");
WiFi.mode (WIFI_AP); WiFi.softAP (ssid, κωδικός πρόσβασης); IPAddress myIP = WiFi.softAPIP (); Serial.print ("Διεύθυνση IP AP:"); Serial.println (myIP);
Αρχικοποιήστε την υποδοχή ιστού στο nodemcu, ο οποίος είναι διακομιστής pur
webSocket.begin ();
Καλεί τη συνάρτηση webSocketEvent όταν συμβεί ένα συμβάν websocket.
webSocket.onEvent (webSocketEvent);
Για εντοπισμό σφαλμάτων, εκτυπώστε "Ο διακομιστής WebSocket ξεκίνησε" σε μια νέα γραμμή. Αυτό γίνεται για να καθοριστεί η γραμμή κώδικα που επεξεργάζεται το nodemcu
Serial.println ("Ο διακομιστής WebSocket ξεκίνησε.");
όταν ένας πελάτης επισκέπτεται το 192.168.4.1, θα καλέσει τη συνάρτηση handleFileRead και θα στείλει μαζί του το URI διακομιστή παραμέτρων που σε αυτή την περίπτωση είναι οι πληροφορίες nodemcu. Η λειτουργία handleFileRead θα εξυπηρετήσει το αρχείο html από το σύστημα αρχείων nodemcu
server.onNotFound ( () {
εάν (! handleFileRead (server.uri ()))
αν δεν μπορεί να βρεθεί θα εμφανιστεί "FileNotFound"
server.send (404, "text/plain", "FileNotFound");
});
Ξεκινά ο διακομιστής και ο διακομιστής εκτύπωσης HTTP ξεκίνησε.
server.begin (); Serial.println ("Ο διακομιστής HTTP ξεκίνησε");
Στον κενό μας βρόχο, δίνουμε τη δυνατότητα στον διακομιστή να χειρίζεται με συνέπεια τον πελάτη και τις συνδέσεις ιστού του ως εξής:
void loop (void) {
server.handleClient (); webSocket.loop ();}
Βήμα 4: Φόρτωση αρχείου HTML
θα χρησιμοποιήσουμε μια λειτουργία που ονομάζεται handleFileRead για να ανοίξουμε και το αρχείο html από το σύστημα αρχείων nodemcu. θα επιστρέψει ένα boolean αξίας για να καθορίσει αν είναι φορτωμένο ή όχι.
Όταν ανοίξει το "192.168.4.1/" από τον πελάτη, ορίζουμε τη διαδρομή του αρχείου σε "/Joystick.html, το όνομα του αρχείου μας στο φάκελο δεδομένων
bool handleFileRead (διαδρομή συμβολοσειράς) {
Serial.println ("handleFileRead:" + διαδρομή); if (path.endsWith ("/")) path += "Joystick.html"; if (SPIFFS.exists (path)) {File file = SPIFFS.open (path, "r"); size_t sent = server.streamFile (αρχείο, "text/html"); file.close (); επιστροφή αληθινός? } επιστροφή false; }
Ελέγξτε εάν υπάρχει η διαδρομή αρχείου "/Joystick.html"
εάν (SPIFFS.exists (διαδρομή)) {
Εάν υπάρχει, ανοίξτε τη διαδρομή με σκοπό την ανάγνωσή της που καθορίζεται από το "r". Πηγαίνετε εδώ για περισσότερους σκοπούς.
Αρχείο αρχείου = SPIFFS.open (διαδρομή, "r");
Στέλνει το αρχείο στον διακομιστή με τύπο περιεχομένου "text/html"
size_t sent = server.streamFile (αρχείο, "text/html");
κλείστε το αρχείο
file.close ();
η λειτουργία handleFileRead επιστρέφει true
επιστροφή αληθές;}
εάν η διαδρομή αρχείου δεν υπάρχει, η συνάρτηση handleFileRead επιστρέφει false
επιστροφή αληθινός? }
Βήμα 5: Δοκιμάστε το
Συνδεθείτε στο nodeMCU και μεταβείτε στο "192.168.4.1" και δοκιμάστε το!:)
Συνιστάται:
Σεμινάριο: Πώς να χρησιμοποιήσετε το ESP32-CAM σε διακομιστή ροής βίντεο Web: 3 βήματα
Οδηγός: Πώς να χρησιμοποιήσετε το ESP32-CAM σε διακομιστή ροής βίντεο: Περιγραφή: Το ESP32-CAM είναι ένας πίνακας ανάπτυξης ESP32 Wireless IoT Vision σε πολύ μικρό συντελεστή μορφής, σχεδιασμένος για χρήση σε διάφορα έργα IoT, όπως οικιακές έξυπνες συσκευές, βιομηχανικές ασύρματος έλεγχος, ασύρματη παρακολούθηση, ασύρματη ταυτότητα QR
ESP8266 Παρακολούθηση θερμοκρασίας Nodemcu χρησιμοποιώντας DHT11 σε τοπικό διακομιστή ιστοσελίδων - Λάβετε θερμοκρασία δωματίου και υγρασία στο πρόγραμμα περιήγησής σας: 6 βήματα
ESP8266 Παρακολούθηση θερμοκρασίας Nodemcu χρησιμοποιώντας DHT11 σε τοπικό διακομιστή ιστοσελίδων | Λάβετε θερμοκρασία δωματίου και υγρασία στο πρόγραμμα περιήγησής σας: Γεια σας παιδιά σήμερα θα κάνουμε υγρασία & σύστημα παρακολούθησης θερμοκρασίας χρησιμοποιώντας ESP 8266 NODEMCU & Αισθητήρας θερμοκρασίας DHT11. Η θερμοκρασία και η υγρασία θα ληφθούν από τον αισθητήρα DHT11 & μπορεί να δει σε ένα πρόγραμμα περιήγησης ποια ιστοσελίδα θα διαχειριστεί
ESP 8266 Nodemcu RGB LED Strip Ελεγχόμενη από διακομιστή ιστοσελίδων Τηλεχειριστήριο: 4 βήματα
ESP 8266 Nodemcu RGB LED Strip Ελεγχόμενη από ένα διακομιστή διακομιστή ιστοσελίδων: Σε αυτό το εκπαιδευτικό εγχειρίδιο θα μάθουμε πώς να μετατρέπουμε ένα nodemcu σε ένα τηλεχειριστήριο IR της λωρίδας RGB LED και ότι το τηλεχειριστήριο nodemcu πρέπει να ελέγχεται από μια ιστοσελίδα που φιλοξενείται στο κινητό ή στον υπολογιστή από το nodemcu
ESP 8266 Nodemcu Ws 2812 Λάμπα LED MOOD βασισμένη σε νεοπίξελ με ελεγχόμενη χρήση διακομιστή ιστοσελίδων: 6 βήματα
ESP 8266 Nodemcu Ws 2812 Λάμπα LED MOOD βασισμένη σε νεοπίξελ ελεγχόμενη χρησιμοποιώντας διακομιστή ιστοσελίδας: Σε αυτό το έργο θα φτιάξουμε μια λάμπα διάθεσης από το nodemcu & neopixel και το οποίο μπορεί να ελεγχθεί από οποιοδήποτε πρόγραμμα περιήγησης χρησιμοποιώντας τοπικό διακομιστή ιστού
Πώς να χρησιμοποιήσετε το τερματικό Mac και πώς να χρησιμοποιήσετε βασικές λειτουργίες: 4 βήματα
Πώς να χρησιμοποιήσετε το τερματικό Mac και πώς να χρησιμοποιήσετε τις βασικές λειτουργίες: Θα σας δείξουμε πώς να ανοίξετε το τερματικό MAC. Θα σας δείξουμε επίσης μερικές λειτουργίες εντός του τερματικού, όπως ifconfig, αλλαγή καταλόγων, πρόσβαση σε αρχεία και arp. Το ifconfig θα σας επιτρέψει να ελέγξετε τη διεύθυνση IP και τη διαφήμισή σας MAC