Mündəricat:

ESP8266 və ESP32 üçün Python ilə işə başlayın: 6 addım
ESP8266 və ESP32 üçün Python ilə işə başlayın: 6 addım

Video: ESP8266 və ESP32 üçün Python ilə işə başlayın: 6 addım

Video: ESP8266 və ESP32 üçün Python ilə işə başlayın: 6 addım
Video: Использование карты Micro SD и регистрация данных с Arduino | Пошаговый курс Arduino, урок 106 2024, Iyul
Anonim
ESP8266 və ESP32 üçün Python ilə işə başlayın
ESP8266 və ESP32 üçün Python ilə işə başlayın

Bacground

ESP8266 və kiçik qardaşı ESP32, tam TCP/IP yığını və mikro nəzarətçi qabiliyyəti olan aşağı qiymətli Wi-Fi mikroçipləridir. ESP8266 çipi ilk dəfə 2014-cü ildə istehsalçı ictimaiyyətinin diqqətinə çatdı. O vaxtdan bəri aşağı qiymət (<5 USD), Wi-Fi qabiliyyəti, 1 və ya 4 MB həcmli flash yaddaş və bir sıra mövcud inkişaf lövhələr, ESP çipini WiFi və IoT DIY layihələri üçün ən populyar mikro nəzarətçilərdən birinə çevirdi.

MicroPython, Python standart kitabxanasının kiçik bir alt hissəsini ehtiva edən və mikrokontrolörlərdə çalışmaq üçün optimallaşdırılmış getdikcə populyarlaşan Python proqramlaşdırma dilinin arıq və səmərəli bir tətbiqidir.

Bu ikisinin birləşməsi həm yeni başlayanlar, həm də daha inkişaf etmiş istifadəçilər üçün DIY layihələri üçün çox maraqlı bir seçimdir.

MiPy-ESP layihəsi

Hələ 2015-ci ildə ESP8266 ilə ilk layihələrim seriyalı əlaqə üzərində AT AT əmrlərini işlətmək üçün Arudions istifadə edərək ESP-01 çipi ilə başladı. Bundan sonra, sonrakı illərdə cipsi C ++ dili ilə proqramlaşdırmaq üçün ESP8266 üçün Arduino nüvəsini tətbiq etdim. Bu yaxşı işləyir, amma Python həvəskarı üçün Python 3 -ün MicroPython tətbiqini kəşf etməyim böyük xəbər oldu.

MiPy-ESP layihəsi, ESP ailəsinin mikro nəzarətçilərində tam yığılmış Python IoT layihələri üçün MicroPython tətbiq edən çevik bir çərçivədir.

Çərçivə, mikro nəzarətçi tətbiqlərimiz üçün artıq qurulmuş C ++ kodunu dəyişdirməyi hədəfləyən LeGarage Texniki Komitəsi Proqram təminatçıları qrupu (LG-TC-SWDT-01) tərəfindən hazırlanmışdır.

Layihə kimi əsas xüsusiyyətləri təmin edir

  • Şəbəkə bağlantısı prosedurları
  • Çip giriş nöqtəsi veb serveri (wifi bağlantısı və məlumat giriş/çıxış üçün çip veb səhifələrinin xidməti üçün)
  • MQTT funksiyaları
  • Giriş/ayıklama
  • Mikrokontrolör hadisələrinin planlaşdırılması
  • Avadanlıq I/O qaydaları

Bir əsas kompakt kod skripti ilə (main.py), hamısı qlobal konfiqurasiyaya malikdir (config.py).

Bu mictocontroller kodu, WiFi şəbəkəsinə və MQTT brokerlərinə çip əlaqələrinin möhkəm saxlanılması ilə işləyir. Müxtəlif avadanlıqlar üçün mövcud olan MicroPython modulları sistemə asanlıqla inteqrasiya edilə bilər.

MiPy-ESP çərçivəsi, ESP ailəsi mikro nəzarətçilərini əhatə edən bütün hobbi elektronika IoT layihələrimizin onurğasına çevrildi. NodeMCU, Wemos və Lolin lövhələri kimi bir neçə ESP ailəsi lövhələrində sınaqdan keçirilmişdir.

Aşağıdakı təlimat, MiPy-ESP çərçivəsini istifadə edərək ESP ailəsi mikrokontrolörləri və MicroPython ilə necə başlamağınız üçün bir bələdçidir.

Addım 1: Wemos D1 Mini ESP8266 lövhəsi

Wemos D1 Mini ESP8266 lövhəsi
Wemos D1 Mini ESP8266 lövhəsi
Wemos D1 Mini ESP8266 lövhəsi
Wemos D1 Mini ESP8266 lövhəsi
Wemos D1 Mini ESP8266 lövhəsi
Wemos D1 Mini ESP8266 lövhəsi
Wemos D1 Mini ESP8266 lövhəsi
Wemos D1 Mini ESP8266 lövhəsi

MiPy-ESP çərçivəsi əksər ESP8266 əsaslı mikro nəzarətçilərlə işləyir.

Wemos D1 mini inkişaf lövhəsi ESP-8266EX çipinə əsaslanır. 2,5 x 3,5 sm ölçüsündə 4MB flaş yaddaş, 11 rəqəmsal giriş/çıxış pininə malikdir, bütün pinlər kəsilməni dəstəkləyir, PWM, I2C, SPI, serial və 1 analog giriş, maksimum 3.3V giriş, 5V gücündə işləyə bilər, mikro USB bağlantısı var və çörək taxtasına uyğundur. Aşağı qiymət və kiçik ölçüsü onu ən sevdiyim ESP lövhəsinə çevirdi.

Əlavə olaraq, lövhənin D1 mini pro versiyası, xarici bir antenə qoşulma imkanı verir və əlaqə aralığını əhəmiyyətli dərəcədə artırır (+100 m aralığında). Buna əlavə olaraq, lövhə, eyni ölçüdə kompakt ölçülərə malik müxtəlif qutudan kənar genişləndirmə lövhələri ilə də gəlir.

Addım 2: ESP çipində MicroPython -a hazırlaşın

ESP Çipində MicroPython -a Hazırlaşmaq
ESP Çipində MicroPython -a Hazırlaşmaq

Bu ilk addımda edəcəksiniz

  • ESP lövhəsini USB vasitəsilə kompüterinizə qoşun
  • Çipin yanıb -sönməsi üçün Esptool proqramını quraşdırın
  • Çip yaddaşını silin
  • MicroPython firmware ilə çipi yandırın
  • Çipinizlə əmr satırının qarşılıqlı əlaqəsini təmin etmək üçün Rshell -i quraşdırın
  • Mpy-cross qurun (.py fayllarını ikili fayllara yığmaq üçün)

Lövhəni kompüterə USBBoards vasitəsi ilə quraşdırılmış USB-serial portu ilə bağlamaq UART-ı kompüterinizə təqdim edir və işə başlamaq üçün ən asan seçimdir. USB bağlantısı olmayan lövhələr üçün, xarici dünyaya bağlı olaraq yanıb sönmək üçün GPIO sancaqlarını bağlamaq üçün USB -dən seriala qədər olan bir FTDI modulu istifadə edilə bilər, lakin bu dərslikdə bu barədə danışılmır.

MiPy-ESP kodunu istifadə edən MicroPython üçün çip flaş ölçüsü üçün minimum tələb 1MB-dir. 512kB olan lövhələr üçün xüsusi bir quruluş da var, lakin bunun MiPy-ESP-dən asılı olduğu bir fayl sistemi üçün heç bir dəstəyi yoxdur.

USB kabeli istifadə edərkən, lövhə qoşulduqda kompüterinizdən güc alır. Bu da serial bağlantısı üzərində proqramlaşdırma və ayıklama imkanı verir. Layihə kodu yükləndikdə və layihəniz yerləşdirildikdə, lövhənin enerji təchizatı pinləri üzərində xarici güc tətbiq olunur.

Esptool proqramı haqqında məlumatı Esptool GitHub deposunda tapa bilərsiniz. Windows/Linux/OSX (MAC) istifadə etmək istəyirsinizsə, yuxarıdakı link də bunu əhatə edir. Python paketi tərəfindən quraşdırıla bilər

pip esptool qurun

Linux istifadəçiləri üçün Esptool paketləri Debian və Ubuntu üçün saxlanılır və bununla da quraşdırıla bilər

sudo apt quraşdırma esptool

Esptool istifadə edərək, ESP flash yaddaşını əmrlə silirsiniz

esptool.py --port /dev /ttyUSB0 erase_flash

MicroPython firmware -in yüklənməsi MicroPython firmware, MicroPython veb saytından yüklənə bilən.bin faylında yerləşir.

Reponun cari layihə master şöbəsi sınaqdan keçirildi və Micropython v.1.12 ilə işləyir. MiPY-ESP çərçivəsi ilə uğur qazanmaq üçün bu linkdən 'esp8266-20191220-v1.12.bin' faylını yükləyin və firmware-ni çipə əmrlə yazın:

esptool.py --port /dev /ttyUSB0 --baud 460800 write_flash --flash_size = algılama 0 esp8266-20191220-v1.12.bin

Rshell paketi, çipdə quraşdırılmış MicroPython mühitinizlə komanda xətti qarşılıqlı əlaqəsini təmin edir. Bu linkdə tapa bilərsiniz. Rshell, ev sahibi üzərində işləyən və fayl sistemi məlumatlarını əldə etmək və MicroPython fayl sisteminə faylları kopyalamaq üçün python parçalarını pyboarda göndərmək üçün MicroPython-un raw-REPL-dən istifadə edən sadə bir qabıqdır. REPL, Read Evaluate Print Loop deməkdir və ESP8266 -da əldə edə biləcəyiniz interaktiv MicroPython istəyinə verilən addır. REPL -dən istifadə etmək, kodunuzu sınamaq və əmrləri yerinə yetirmək üçün ən asan yoldur. Komanda ilə Rshell qurun:

sudo pip rshell qurun

Mpy-cross tərtibçisi MicroPython-un quraşdırılması, çip fayl sisteminə yüklənmiş ascii.py faylları ilə tətbiq oluna bilər. MicroPython, əvvəlcədən tərtib edilmiş kodu saxlayan və normal bir.py modulu kimi idxal edilə bilən ikili konteyner fayl formatı olan.mpy faylları anlayışını da təyin edir.. Py fayllarını.mpy olaraq tərtib edərək, işləyən kodunuz üçün daha çox RAM yaddaşı mövcud olacaq və bu, MiPy -ESP çərçivəsinin işləyən əsas moduluna sahib olmaq üçün lazımdır.

MiPy-ESP kodunun yerləşdirilməsi üçün, mpy-cross MicroPython cross kompilyatoru, çip yükləməzdən əvvəl.py skriptlərini.mpy üçün tərtib edir. Mpy-cross paketini bu linkdəki təlimatlara uyğun olaraq quraşdırın. Alternativ olaraq, mpy-cross əmri Python pip əmri ilə quraşdırıla bilər və ya GitHub-dan MicroPython deposunu klonlaşdırsanız, mpy-cross qovluq yolundan işləyə bilər.

İndi MicroPython və ilk MiPy-ESP layihənizi qurmağa başlamaq üçün lazım olan bütün vasitələriniz var

Addım 3: MiPy-ESP ilə işə başlayın

MiPy-ESP ilə işə başlayın
MiPy-ESP ilə işə başlayın

Bu addımda edəcəksən

MyPy-ESP çərçivəsini yükləyin

MiPy-ESP çərçivəsini yükləmək MiPy-ESP layihəsini bu kod deposunda GitHub-da tapa bilərsiniz. GitHub -dan depo fayl quruluşunu yükləyə və ya kompüterinizə klonlaya bilərsiniz

git klonu

Kompüterinizdə quraşdırılmış kod anbarı ilə, hazır ESP IoT layihəsi qurmaq üçün lazım olan bütün kod modullarına sahibsiniz. Növbəti addımda alət qutusu haqqında daha çox məlumat.

Addım 4: MiPy-ESP Çərçivə Memarlığı

MiPy-ESP Çərçivə Memarlığı
MiPy-ESP Çərçivə Memarlığı

Bu addımda edəcəksən

MiPy-ESP kod iş axını haqqında məlumat əldə edin

MiPy-ESP kod arxitekturası

Bütün Python çərçivə modulları MiPY-ESP kod anbarının /src qovluğunda yerləşir. Src/core qovluğunda hər bir layihəyə daxil olan əsas modullar var. Src/drivers qovluğunda çipinizə qoşulmaq üçün müxtəlif qurğular üçün bir sıra modullar var. Src/kommunal qovluğu, layihənizə daxil etmək üçün əlavə kommunal modullarını ehtiva edir.

Main.py və config.py faylları src/ qovluğunda tapılır. Layihənizi qurmaq üçün redaktə ediləcək əsas sənədlər bunlardır:

config.py:

Bu fayl layihəniz üçün qlobal konfiqurasiya faylıdır. Fərqli parametrləri var, hamısı faylda təsviri şərhlərlə.

main.py:

Bu mikro nəzarətçi kod döngəsinin əsas skriptidir. Çərçivədə tətbiqə xüsusi kodu ehtiva edir. Çip açıldıqdan sonra main.py, layihəyə bağlı olan bütün modulları config.py faylından verilən girişləri ilə idxal edir. Yuxarıdakı sxemdə main.py skriptinin düzeni göstərilir.

Yuxarıdakı şəkil main.py işini təsvir edir:

  1. Yükləndikdə kod çipi Wi-Fi şəbəkəsinə bağlamağa cəhd edir Əvvəllər tətbiq olunan şəbəkələr və onların şifrələri (çipdə şifrələnmiş) flash yaddaşda saxlanılır. Şəbəkə SSID-ləri və onların parolları wifi.json formatında faylla təmin edilə bilər {" SSID1 ":" Şifrə "," SSID ":" Şifrə2 "}. Bu faylda verilən şəbəkələr saxlanılır, şifrələr şifrələnir və açılış zamanı fayl silinir.
  2. Heç bir şəbəkə tapılmadığı təqdirdə, kod bir giriş nöqtəsi (AP) veb serveri qurur Çip AP server SSID və parol config.py faylında qurulur. SSID çipinə daxil olaraq, 192.168.4.1 ünvanında çipin Wi-Fi-ya daxil olması üçün bir veb səhifəsi açılır. Müəyyən edilmiş şəbəkələr bir menyuda göstərilir və ya SSID Wi-Fi şifrəsi ilə birlikdə əllə (gizli şəbəkələr) daxil edilə bilər.. Çipin Wi-Fi-ya uğurla qoşulmasından sonra AP serveri bağlanır və main.py kodu növbəti addımlarına davam edir.
  3. Main.py -nin Quraşdırma bölməsində,

    • iş və geri çağırma funksiyaları (və s. MQTT zəngləri) və müntəzəm hadisələr müəyyən edilir.
    • İşləyən funksiyalar üçün fərqli zamanlı işlər təyin olunur.
    • MQTT broker müştərisi qurulur
  4. Kod daha sonra əsas mikro nəzarətçi döngəsinə daxil olur,

    • şəbəkə və MQTT broker əlaqələrini daim yoxlamaq,
    • MQTT abunəlikləri,
    • hardware I/O
    • və planlaşdırılan işlər.
    • Şəbəkə və ya MQTT broker bağlantısı itirildikdə, kod yenidən qurulmağa çalışır.

Addım 5: Layihə Kodunuzun Hazırlanması

Layihə Kodunuzun Hazırlanması
Layihə Kodunuzun Hazırlanması
Layihə Kodunuzun Hazırlanması
Layihə Kodunuzun Hazırlanması

Bu addımda edəcəksən

  • MiPy-ESP depo fayl quruluşu haqqında məlumat əldə edin
  • çip yükləmək üçün layihə kodunuzu hazırlayın

Yuxarıdakı rəqəm, depo qovluq quruluşunu təsvir edir və çərçivənin cari modullarını sadalayır. Layihəniz src/ qovluqdakı mərhələlərdir. Core MiPy-ESP çərçivə modulları src/core-da, src/kommunalda əlavə yardımçı modullarda və src/sürücülərdə hardware modullarında yerləşir.

Əksər mövcud MicroPython aparat kitabxanaları heç bir dəyişiklik etmədən sürücülərə/ qovluğa daxil ola bilər. Bütün mövcud sürücülər MiPy-ESP çərçivəsi ilə sınaqdan keçirilir. Kommunal/ qovluqdakı modullarla əlaqədar olaraq, canlandıqca daha çox şey əlavə olunacaq.

Layihə kodunuzun mərhələləndirilməsi Layihənizin xüsusi kodu src/ qovluğuna yerləşdirilməlidir. Redaktə edə biləcəyiniz main.py və config.py faylları artıq mövcuddur. Həmçinin src/utilities və src/drivers -dən src/-ə istədiyiniz layihə proqramlarını kopyalayın.

Çipə məlum Wi-Fi şəbəkələri və şifrələr vermək istəsəniz, wifi.json faylını src/-ə əlavə edin.

Təqdim olunan Makefile, / src -də.py faylları tərtib etmək, əsas modulları tərtib etmək və tərtib edilmiş faylları build / command adlı yeni bir qovluğa köçürməklə faylları çipə köçürmək üçün hazırlamaq üçün tətbiq oluna bilər.

qurmaq

Quruluşdakı fayllar çip fayl sisteminə yüklənməyə hazırdır. Varsayılan olaraq, main.py və config.py, yerləşdirilən fişlərin yoxlanılması üçün onlara asanlıqla daxil olmaq üçün ikili olaraq tərtib edilmir. Komanda:

təmizləmək

Quruluşu/ qovluğu və məzmununu silir.

Addım 6: Kodun Mikrokontrolörə tərtib edilməsi və Yüklənməsi

Kodun Mikrokontrolörə tərtib edilməsi və yüklənməsi
Kodun Mikrokontrolörə tərtib edilməsi və yüklənməsi
Kodun Mikrokontrolörə tərtib edilməsi və yüklənməsi
Kodun Mikrokontrolörə tərtib edilməsi və yüklənməsi

Bu bölmədə edəcəksiniz

  • hazırladığınız sənədləri son hissədən qurmağa/ yükləyin
  • işləyən kodu işə salın və izləyin

Rshell ilə quruluş/ fayllar yüklənir

Rshell istifadə edərək /inşa qovluğundakı bütün faylları ESP çipinə yükləyin. USB -yə qoşulmuş mikro nəzarətçi ilə, qurma/ qovluqdan Rshell əmrini başladın

rshell -p /dev /ttyUSB0

Sonra çip fayllarını (əgər varsa) yoxlayın

ls /pyboard

Çipdəki bütün fayllar tərəfindən silinə bilər

rm /lövhə/*.*

Quruluşdakı bütün layihə fayllarını çipə kopyalayın:

cp *. * /pyboard

Sonra əmrlə interaktiv Python terminalını işə salın

cavab

İndi Python əmrlərini çağıra və ya modulları idxal edə və MiPy-ESP logger modulundan çipin seriyalı çıxışını izləyə bilərsiniz.

Sıfırlama düyməsini basaraq və ya əmr satırından çipi yenidən başladın

əsas idxal

və ya

idxal maşını

daha sonra

machine.reset ()

Layihə konfiqurasiya sənədindəki giriş/ayıklama parametrlərinizdən asılı olaraq, repl indi ESP çipindən serial bağlantısı üzərindən ayıklama mesajlarını göstərəcək.

İnşallah bu işə başlamalısınız.

Tövsiyə: