- Τι είναι ο προγραμματισμός OTA;
- ESP8266 NodeMCU
- Απαιτούμενα στοιχεία
- Προετοιμασία του NodeMCU για λήψη ασύρματης ενημέρωσης OTA
- Πρόγραμμα ESP8266 που αναβοσβήνει LED για μεταφορά OTA
- Αναβοσβήνει η λυχνία LED στο ESP8266 μέσω ενημέρωσης OTA
Τι είναι ο προγραμματισμός OTA;
Ο προγραμματισμός OTA (Over the Air) είναι μια διαδικασία που επιτρέπει στις συσκευές να αναβαθμίσουν το υλικολογισμικό ή το λογισμικό τους ασύρματα χωρίς καμία φυσική πρόσβαση. Χρησιμοποιεί ασύρματη τεχνολογία όπως Wi-Fi, Bluetooth, GPRS ή 4G / 3G και όχι ενσύρματη σειριακή επικοινωνία. Το OTA χρησιμοποιείται για τον επαναπρογραμματισμό συσκευών όπως μικροελεγκτές, κινητά τηλέφωνα, υπολογιστές, αποκωδικοποιητές κ.λπ. Οι ενημερώσεις OTA αποστέλλονται γενικά για ενημέρωση του λογισμικού, επίλυση σφαλμάτων, προσθήκη ορισμένων λειτουργιών κ.λπ. Με την αυξανόμενη χρήση συσκευών IoT, το OTA μεταφέρεται χρησιμοποιώντας ζώνες συχνοτήτων με χαμηλό ρυθμό μετάδοσης δεδομένων (868 MHz, 900 MHz, 2400 MHz).
Εδώ σε αυτό το σεμινάριο, θα στείλουμε την ενημέρωση OTA στο ESP8266 NodeMCU για να αναβοσβήνει ένα LED.
ESP8266 NodeMCU
Το NodeMCU είναι μια πλατφόρμα IoT ανοιχτού κώδικα. Περιλαμβάνει υλικολογισμικό που λειτουργεί με χαμηλό κόστος Wi-Fi με δυνατότητα ESP8266 Wi-Fi SoC από την Espressif Systems και υλικό που βασίζεται στη μονάδα ESP-12. Έχει καρφίτσες GPIO, SPI, I2C, ADC, PWM και UART. Μπορεί να προγραμματιστεί με το Arduino IDE. Ενσωματωμένο NodeMCU διαθέτει CP2102 IC που παρέχει λειτουργικότητα USB σε TTL. Για να μάθετε περισσότερα σχετικά με το ESP8266, ελέγξτε άλλα έργα που βασίζονται στο ESP8266.
Απαιτούμενα στοιχεία
- NodeMCU ESP8266
- Καλώδιο Micro USB
- Arduino IDE
Προετοιμασία του NodeMCU για λήψη ασύρματης ενημέρωσης OTA
Πρώτα συνδέστε το NodeMCU ESP8266 με τον υπολογιστή χρησιμοποιώντας καλώδιο micro USB. Στη συνέχεια, για να ανεβάσετε το υλικολογισμικό χρησιμοποιώντας OTA, πρέπει να ανεβάσουμε το σκίτσο σειριακά χρησιμοποιώντας micro USB για να δημιουργήσουμε τη διεύθυνση IP ESP. Αυτό είναι το απαραίτητο βήμα για να ανεβάσετε το υλικολογισμικό ασύρματα την επόμενη φορά. Επιλέξτε τη σειριακή θύρα στην οποία είναι συνδεδεμένο το καλώδιο από Εργαλεία -> Θύρα .
Το ESP8266 συνοδεύεται από βιβλιοθήκες και παραδείγματα στα οποία μπορείτε να έχετε απευθείας πρόσβαση από το Arduino IDE. Ανοίξτε το Arduino IDE και, στη συνέχεια, ανοίξτε το παράδειγμα BasicOTA.
Επεξεργαστείτε το σκίτσο αντικαθιστώντας το "your-ssid" και το "your-password" από το Wi-Fi SSID και τον κωδικό πρόσβασης και, στη συνέχεια, ανεβάστε το σκίτσο
Ανοίξτε το σειριακό μόνιτορ αφού ανεβάσετε επιτυχώς το πρόγραμμα. Ρυθμίστε το ρυθμό Baud 115200 στο Serial Monitor και πατήστε το κουμπί Reset στο NodeMCU ESP8266. Η σύνδεση του NodeMCU ESP8266 με Wi-Fi διαρκεί λίγο καθώς ελέγχει τα διαπιστευτήρια Wi-Fi. Εάν το SSID και ο κωδικός πρόσβασης είναι σωστοί, το NodeMCU ESP8266 θα συνδεθεί με Wi-Fi και η διεύθυνση IP του ESP θα εμφανιστεί στη σειριακή οθόνη.
Πρόγραμμα ESP8266 που αναβοσβήνει LED για μεταφορά OTA
Ο πλήρης κώδικας για τη μεταφορά του προγράμματος LED που αναβοσβήνει μέσω OTA δίνεται στο τέλος, εδώ εξηγούμε κάποιο σημαντικό μέρος του κώδικα.
Η εισαγωγή των απαιτούμενων βιβλιοθηκών είναι το πρώτο βήμα στη σύνταξη του κώδικα. Η βιβλιοθήκη ESP8266WiFi.h παρέχει ESP8266 συγκεκριμένες ρουτίνες Wi-Fi που απαιτούνται για τη σύνδεση σε δίκτυο. Παρέχει επίσης μεθόδους και ιδιότητες για τη λειτουργία ESP8266 σε λειτουργία σταθμού ή λειτουργίας σημείου μαλακής πρόσβασης. Το ESP8266mDNS.h επιτρέπει στο σκίτσο να ανταποκρίνεται σε ερωτήματα DNS πολλαπλής διανομής.
#περιλαμβάνω
Ορίστε μεταβλητές για SSID και κωδικό πρόσβασης του δικτύου Wi-Fi στο οποίο πρόκειται να συνδεθεί το ESP. Πρέπει να συνδέσουμε τον υπολογιστή και το ESP μας στο ίδιο δίκτυο Wi-Fi.
#ifndef STASSID #define STASSID "your-ssid" #define STAPSK "your-password" #endif const char * ssid = STASSID; const char * κωδικός πρόσβασης = STAPSK;
Το ESP8266 έχει οριστεί ως λειτουργία σταθμού και η σύνδεση Wi-Fi ξεκινά δίνοντας διαπιστευτήρια. Χρειάζεται κάποιος χρόνος για να συνδεθεί το ESP με τη μονάδα Wi-Fi. Εάν το SSID και ο κωδικός πρόσβασης είναι σωστά, συνδέεται με Wi-Fi και εάν το SSID και ο κωδικός πρόσβασης δεν είναι σωστοί, θα επανεκκινήσει σε κάθε 1 δευτερόλεπτο.
Serial.begin (115200); // Ορίστε το ρυθμό Baud σε 115200 Serial.println ("Booting"); // Βήμα για να συνδέσετε το ESP με το Wi-Fi WiFi.mode (WIFI_STA). // Ορισμός ESP ως λειτουργία σταθμού WiFi.begin (SSID, κωδικός πρόσβασης); // Διαπιστευτήρια Wi-Fi ενώ (WiFi.waitForConnectResult ()! = WL_CONNECTED) // Η σύνδεση του ESP στο wi-fi διαρκεί λίγο χρόνο, οπότε περιμένετε έως ότου συνδεθεί { Serial.println ("Η σύνδεση απέτυχε! Επανεκκίνηση…"); καθυστέρηση (1000) ESP. Επανεκκίνηση (); }
Η διεύθυνση IP του ESP εκτυπώνεται στη σειριακή οθόνη ως σύνδεση με τη μονάδα Wi-Fi. Το WiFi.localIP () δίνει τη διεύθυνση IP του ESP.
Μετά τη μεταφόρτωση του κώδικα, ανοίξτε με επιτυχία την σειριακή οθόνη στο 115200 Baud Rate. Πατήστε το κουμπί επαναφοράς και μετά από λίγα δευτερόλεπτα θα μπορείτε να δείτε τη διεύθυνση IP ESP στο Serial Monitor. Τώρα θα μπορείτε να ανεβάσετε το υλικολογισμικό ασύρματα.
Αναβοσβήνει η λυχνία LED στο ESP8266 μέσω ενημέρωσης OTA
Πριν ανεβάσετε το επόμενο σκίτσο, μεταβείτε στο Εργαλεία και αλλάξτε τη διεύθυνση PORT σε ESP IP για να ανεβάσετε το υλικολογισμικό ασύρματα στο NodeMCU
Τώρα ανεβάστε το παρακάτω σκίτσο του LED που αναβοσβήνει στο NodeMCU ασύρματα χρησιμοποιώντας το Arduino IDE και βεβαιωθείτε ότι ο υπολογιστής και το ESP σας είναι συνδεδεμένα στο ίδιο δίκτυο Wi-Fi και το ESP τροφοδοτείται από κάποια πηγή τροφοδοσίας.
Αφού ανεβάσετε με επιτυχία τον κωδικό, το LED στο NodeMCU ESP8266 θα αρχίσει να αναβοσβήνει κάθε 1 δευτερόλεπτο. Μπορείτε επίσης να ορίσετε το όνομα κεντρικού υπολογιστή και τον κωδικό πρόσβασης στο σκίτσο για ασφάλεια κατά τη μεταφόρτωση υλικολογισμικού στο ESP.