Πώς να ξεκινήσετε με το FreeRTOS και το ESP8266

Πρόσφατα, αγόρασα ένα NodeMCU από την AliExpress για περίπου 4 $. Ο λόγος που το έκανα ήταν να μάθω τι έχει να κάνει με το ESP8266.

Το NodeMCU είναι μια πλατφόρμα IoT ανοιχτού κώδικα. Περιλαμβάνει υλικολογισμικό που τρέχει στο ESP8266 Wi-Fi SoC από την Espressif Systems και υλικό που βασίζεται στη μονάδα ESP-12.

Σε σύγκριση με το Arduino UNO, το ESP8266 μου το χτυπά εντελώς από το πάρκο όταν πρόκειται για ισχύ και τιμή CPU.

Το ESP8266 είναι 500% γρηγορότερο και 82% φθηνότερο από το Arduino. Το ESP8266 διαθέτει επίσης συνδεσιμότητα WiFi.

Ήμουν πολύ έκπληκτος όταν επισκέφτηκα την ιστοσελίδα Espressif για το ESP8266. Υπάρχουν πολλά έγγραφα και πόροι που μπορείτε να χρησιμοποιήσετε. Για παράδειγμα, υπάρχει μια εφαρμογή Android που λέει στο ESP8266 να συνδεθεί στο WiFi σας. Η εφαρμογή στέλνει το SSID και τον κωδικό πρόσβασης ως πακέτα, το ESP8266 τους ρουθουνίζει και στη συνέχεια συνδέεται με το WiFi σας. Αυτό ονομάζεται SmartConfig, και εφευρέθηκε από την Texas Instruments.

Σε αυτό το άρθρο, θα σας καθοδηγήσω για να ρυθμίσετε και να εκτελέσετε το παράδειγμα Smart Config από το Espressif RTOS SDK.

Εδώ είναι τα πράγματα που θα χρειαστείτε:

  • Ένας σύγχρονος υπολογιστής.
  • Πίνακας NodeMCU με ESP12-E
  • VirtualBox (//www.virtualbox.org/wiki/Downloads)
  • Ubuntu Server LTS (//www.ubuntu.com/download/server)

Διαμόρφωση VirtualBox για ανάπτυξη

  1. Κατεβάστε το VirtualBox και εγκαταστήστε τον Ubuntu Server. Αυτό πρέπει να είναι εύκολο να γίνει, αλλά αν δεν ξέρετε πώς, το Google ή ρίξτε μια ματιά σε αυτόν τον γραφικό οδηγό βήμα προς βήμα. Η εγκατάσταση ενός λειτουργικού συστήματος είναι μια καλή ικανότητα να έχετε. (Συμβουλή: Όταν το VirtualBox σας ζητά να επιλέξετε το δίσκο, κάντε τον δυναμικά εκχωρημένο και τουλάχιστον 50 GB σε μέγεθος. Αυτό θα σας εξοικονομήσει μερικούς πονοκεφάλους πιο κάτω.)
  2. Βεβαιωθείτε ότι μπορείτε να αποκτήσετε πρόσβαση στο Διαδίκτυο μέσα από την εικονική μηχανή και να διαμορφώσετε τον διακομιστή DNS:

Για να διαμορφώσετε τον διακομιστή DNS, ρίξτε μια ματιά σε αυτό το παράδειγμα.

Παράδειγμα: dns-nameservers 8.8.8.8 8.8.4.4Εάν μπορείτε να κάνετε ping στο Google, τότε μπορείτε να πάτε!

3. (Προαιρετικό) Εγκαταστήστε το διακομιστή OpenSSH και Samba. Αυτό θα κάνει τη ζωή σας πολύ πιο εύκολη.

4. (Προαιρετικό) Ενεργοποίηση προώθησης θύρας. Για να κάνετε SSH απευθείας στην εικονική μηχανή σας, πρέπει να ενεργοποιήσετε την προώθηση θύρας. Για παράδειγμα, για να αντιστοιχίσετε τη θύρα 2222 στον υπολογιστή σας στη θύρα 22 της εικονικής σας μηχανής .

Εάν έχετε ενεργοποιήσει την προώθηση θύρας, μπορείτε τώρα να SSH στην εικονική σας μηχανή από τον κεντρικό υπολογιστή σας όπως στο παρακάτω σχήμα.

Σημείωση: Εάν χρησιμοποιείτε Windows, χρειάζεστε Putty για SSH στην εικονική μηχανή.

5. Συνδέστε το NodeMCU και εκτελέστε την ακόλουθη εντολή:

tail -f /var/log/kern.log

Αυτό θα σας αποκαλύψει ότι η συσκευή έχει αναγνωριστεί ως / dev / ttyUSB0. Εάν δεν συμβεί τίποτα, τότε πρέπει να προσθέσετε το USB στην εικονική μηχανή. Αφού προσθέσετε το USB, αποσυνδέστε και συνδέστε ξανά τη συσκευή σας.

Εάν έχετε φτάσει σε αυτό το σημείο και όλα λειτουργούν, συγχαρητήρια ! Τώρα είστε έτοιμοι να μεταγλωττίσετε το SDK και να εκτελέσετε το παράδειγμα SmartConfig. Μπορείτε ακόμη και να μου πυροβολήσετε ένα tweet στο //twitter.com/metonymyqt

Σύνταξη του SDK και αναβοσβήνει ο πίνακας

  1. Εγκαταστήστε τα απαιτούμενα πακέτα (όπως παρακάτω). Αυτές οι πληροφορίες είναι επίσης διαθέσιμες στο readme.md του SDK.
sudo apt-get install make unrar-free autoconf automake libtool gcc g++ gperf flex bison texinfo gawk ncurses-dev libexpat-dev python-dev python python-serial sed git unzip bash help2man wget bzip2 libtool-bin

2. Δημιουργήστε έναν νέο φάκελο και πλοηγηθείτε σε αυτόν: mkdir Development && cd Development

3. Κλωνοποιήστε το Open SDK: //github.com/pfalcon/esp-open-sdk

git clone --recursive //github.com/pfalcon/esp-open-sdk.git

3. Εκτελέστε το make: make

Προειδοποίηση: Αυτό το βήμα θα διαρκέσει λίγο, οπότε παρακαλώ να είστε υπομονετικοί. Στην εικονική μου μηχανή ολοκληρώθηκε μετά από 50 λεπτά. Στη δική σας μπορεί να χρειαστεί περισσότερο ή λιγότερο, αλλά προτού εκτελέσετε, βεβαιωθείτε ότι είστε συνδεδεμένοι στο Διαδίκτυο και ότι το DNS έχει ρυθμιστεί σωστά . Ο καλύτερος τρόπος για να το ελέγξετε είναι να εκτελέσετε ένα ping στο Google ή σε κάποιον άλλο ιστότοπο εάν το Google είναι αποκλεισμένο στην περιοχή σας.

Εάν το ping σας είναι επιτυχές, μπορείτε να ελαχιστοποιήσετε τα παράθυρα και να παρακολουθήσετε ένα επεισόδιο της αγαπημένης σας τηλεοπτικής εκπομπής. Επιστρέψτε μετά από περίπου 40 λεπτά (αλλά βεβαιωθείτε ότι ο υπολογιστής σας δεν κοιμάται).

Μετά την επιτυχή κατασκευή του SDK, θα δείτε ένα μήνυμα που σας λέει να βάζετε κάτι στη διαδρομή σας. Για να το κάνετε αυτό, εκτελέστε τα εξής:

echo 'export PATH=/home/denis/Development/esp-open-sdk/xtensa-lx106-elf/bin:$PATH' >> ~/.profile

Η εντολή θα προσαρτήσει τη συμβολοσειρά στο αρχείο ~ / .profile . Τώρα εκτελέστε την ακόλουθη εντολή:

xtensa-lx106-elf-gcc --version

Εάν η εντολή εκτελεστεί με επιτυχία, τότε μπορείτε να πάτε!

4. Δοκιμάστε τη σανίδα σας

Συνδέστε NodeMCU σας και τρέξτε lsusb για να βεβαιωθείτε ότι η συσκευή σας είναι συνδεδεμένη. Μετά από αυτό, εκτελέστε το esptool.py chip_id . Θα πρέπει τώρα να δείτε το αναγνωριστικό chip του πίνακα.

5. Κλώνος ESP8266_RTOS_SDK

git clone //github.com/espressif/ESP8266_RTOS_SDK.git

6. Εξαγάγετε τη διαδρομή SDK και τη διαδρομή SDK / BIN χρησιμοποιώντας τις παρακάτω εντολές.

echo 'export SDK_PATH=/home/denis/Development/ESP8266_RTOS_SDK' >> ~/.profile
echo 'export BIN_PATH=/home/denis/Development/ESP8266_RTOS_SDK/bin' >> ~/.profile

7. Συντάξτε το παράδειγμα SmartConfig

cd /home/denis/Development/ESP8266_RTOS_SDK/examples/smart_config/
chmod +x ./gen_misc.sh
./gen_misc.sh

Τώρα αποδεχτείτε τις προεπιλεγμένες τιμές έως ότου σας ζητηθεί SPI_SIZE_MAP. Εδώ επιλέγετε 4 επειδή το NodeMCU έχει μέγεθος φλας 32Mbit και αυτό μεταφράζεται σε 4MB. Μπορείτε επίσης να επιλέξετε SPI_SPEED 3 = 80Mhz

Θα δείτε κάτι τέτοιο:

!!!SDK_PATH: /home/denis/Development/ESP8266_RTOS_SDKBIN_PATH: /home/denis/Development/ESP8266_RTOS_SDK/bin
No boot needed.Generate eagle.flash.bin and eagle.irom0text.bin successully in BIN_PATHeagle.flash.bin — — — →0x00000eagle.irom0text.bin — →0x20000!!!

8. Αναβοσβήνετε την πλακέτα

cd $BIN_PATH
esptool.py erase_flash
esptool.py write_flash 0x00000 $BIN_PATH/eagle.flash.bin 0x20000 $BIN_PATH/eagle.irom0text.bin 0x3FC000 $BIN_PATH/esp_init_data_default.bin

Τώρα, εάν επαναφέρετε την πλακέτα, δεν θα πρέπει να αναβοσβήνει το LED.

9. Χρησιμοποιήστε την εφαρμογή τηλεφώνου

  • Εφαρμογή Android
  • Εφαρμογή iPhone

Ανοίξτε την Εφαρμογή, βεβαιωθείτε ότι είστε συνδεδεμένοι σε WiFi AP, εισαγάγετε τον κωδικό πρόσβασής σας και πατήστε επιβεβαίωση. Μετά από λίγα δευτερόλεπτα, το ESP8266 θα πρέπει να συνδεθεί στο AP σας. Αυτό είναι. Συγχαρητήρια για το τέλος!

Εάν θέλετε να αναπτύξετε περισσότερα χρησιμοποιώντας το ESP8266-RTOS-SDK, επισκεφθείτε τους επίσημους ιστότοπους. Θα βρείτε πολλούς πόρους και τεκμηρίωση εκεί. Επίσης, ρίξτε μια ματιά στα άλλα παραδείγματα που βρίσκονται στο φάκελο SDK.

Ευχαριστώ πολύ για το χρόνο που το διαβάζετε. Αν θέλετε να επικοινωνήσετε μαζί μου, μπορείτε να το κάνετε στο Twitter: MetonymyQT

Πόροι

  • Επισκόπηση ESP8266
  • Πόροι ESP8266
  • Ιστοσελίδα του FreeRTOS