Mundarija:

ESP8266 va ESP32 uchun Python -ni ishga tushirish: 6 qadam
ESP8266 va ESP32 uchun Python -ni ishga tushirish: 6 qadam

Video: ESP8266 va ESP32 uchun Python -ni ishga tushirish: 6 qadam

Video: ESP8266 va ESP32 uchun Python -ni ishga tushirish: 6 qadam
Video: Lesson 72: Obstacle detection using Laser Transmitter and receiver | Arduino Step By Step Course 2024, Iyul
Anonim
ESP8266 va ESP32 uchun Python bilan ishlashni boshlash
ESP8266 va ESP32 uchun Python bilan ishlashni boshlash

Baza maydoni

ESP8266 va uning katta akasi ESP32-bu to'liq TCP/IP to'plami va mikro-nazorat qilish imkoniyatiga ega arzon Wi-Fi mikrochiplari. ESP8266 chipi ishlab chiqaruvchilar hamjamiyatining e'tiboriga birinchi marta 2014 yilda kelgan. O'shandan beri past narx (<5 AQSh dollari), uning Wi-Fi qobiliyati, 1 yoki 4 MB hajmli flesh-xotira va turli xil ishlab chiqish. taxtalar, ESP chipini WiFi va IoT DIY loyihalari uchun eng mashhur mikro-kontrollerlardan biriga aylantirdi.

MicroPython - bu Python standart kutubxonasining kichik qismini o'z ichiga olgan va mikrokontrolderlarda ishlash uchun optimallashtirilgan, tobora ommalashib borayotgan Python dasturlash tilining sodda va samarali qo'llanilishi.

Bu ikkalasining kombinatsiyasi yangi boshlanuvchilar uchun ham, ilg'or foydalanuvchilar uchun ham DIY loyihalari uchun juda qiziqarli variant.

MiPy-ESP loyihasi

2015 yilda ESP8266 bilan birinchi loyihalarim ketma-ket ulanish orqali chip AT buyruqlarini bajarish uchun Arudions yordamida ESP-01 chipidan boshlandi. Shundan so'ng, keyingi yillarda men ESP8266 uchun chiplarni C ++ tilida dasturlash uchun Arduino yadrosini qo'lladim. Bu juda yaxshi ishlaydi, lekin Python ixlosmandlari uchun Python 3 ning MicroPython dasturini kashf qilishim ajoyib yangilik bo'ldi.

MiPy-ESP loyihasi-bu ESP-oilaviy mikro-kontrollerlarda Python IoT-ning to'liq to'plamlari uchun MicroPython-ni qo'llaydigan moslashuvchan tizim.

Bu tizim LeGarage Texnik Qo'mitasi dasturiy ta'minotni ishlab chiquvchilar guruhi (LG-TC-SWDT-01) tomonidan ishlab chiqilgan bo'lib, bizning mikrokontrollerlar uchun o'rnatilgan C ++ kodini almashtirishga qaratilgan.

Loyiha kabi asosiy xususiyatlarni taqdim etadi

  • Tarmoqqa ulanish tartibi
  • Chip kirish nuqtasi veb -serveri (wifi -ga ulanish va ma'lumot kiritish -chiqarish uchun chip veb -sahifalarini taqdim etish uchun)
  • MQTT funktsiyalari
  • Jurnalga kirish/disk raskadrovka
  • Mikrokontroller hodisalarini rejalashtirish
  • Uskuna kiritish -chiqarish tartibi

Bitta asosiy ixcham kodli skript (main.py) bilan, hammasi global konfiguratsiyaga ega (config.py).

Bu mictocontroller kodi Wi -Fi tarmog'i va MQTT brokerlariga chipli ulanishlarni mustahkam saqlash bilan ishlaydi. Har xil uskuna uchun mavjud MicroPython modullari tizimga osongina qo'shilishi mumkin.

MiPy-ESP tizimi ESP-oilaviy mikro-kontrollerlar ishtirokidagi barcha sevimli mashg'ulot elektronika IoT loyihalarimizning asosiga aylandi. U NodeMCU, Wemos va Lolin kabi bir nechta ESP-oilaviy taxtalarda sinovdan o'tgan.

Quyidagi qo'llanma MiPy-ESP tizimidan foydalangan holda ESP-oilaviy mikrokontrolderlar va MicroPython bilan ishlashni boshlash uchun qo'llanma.

1 -qadam: Wemos D1 Mini ESP8266 kartasi

Wemos D1 Mini ESP8266 kartasi
Wemos D1 Mini ESP8266 kartasi
Wemos D1 Mini ESP8266 kartasi
Wemos D1 Mini ESP8266 kartasi
Wemos D1 Mini ESP8266 kartasi
Wemos D1 Mini ESP8266 kartasi
Wemos D1 Mini ESP8266 kartasi
Wemos D1 Mini ESP8266 kartasi

MiPy-ESP tizimi ESP8266 asosidagi ko'p mikrokontrollerlar bilan ishlaydi.

Wemos D1 mini ishlab chiqish platasi ESP-8266EX chipiga asoslangan. 2,5 x 3,5 sm hajmli, 4MB flesh -xotira, 11 ta raqamli kirish/chiqish pinlari, barcha pinlar uzilishni qo'llab -quvvatlaydi, PWM, I2C, SPI, ketma -ket va 3 analogli maksimal analogli 1 analogli kirish, 5V quvvat bilan ishlashi mumkin, Micro USB ulanishi mavjud va u non paneliga mos keladi. Arzon narx va uning kichik o'lchamlari uni eng sevimli ESP taxtasiga aylantirdi.

Bundan tashqari, doskaning D1 mini pro versiyasida tashqi antennani ulash imkoniyati mavjud bo'lib, ulanish diapazonini sezilarli darajada oshiradi (+100 m diapazon). Bunga qo'shimcha ravishda, taxtada, xuddi shunday ixcham o'lchamli, qutidan tashqari kengaytirish kengashlari mavjud.

2 -qadam: ESP chipida MicroPython -ga tayyorgarlik

ESP chipida MicroPython -ga tayyorgarlik
ESP chipida MicroPython -ga tayyorgarlik

Bu birinchi qadamda, siz

  • ESP kartasini USB orqali kompyuteringizga ulang
  • Chipni o'chirish uchun Esptool dasturini o'rnating
  • Chip xotirasini o'chirish
  • MicroPython dasturiy ta'minoti bilan chipni yondiring
  • Chip bilan buyruq satrining o'zaro ta'sirini yoqish uchun Rshell -ni o'rnating
  • Mpy-cross-ni o'rnating (.py fayllarini ikkilikka yig'ish uchun)

O'rnatilgan USB-ketma-ket portga ega bo'lgan USB-platalar orqali kompyuterni kompyuterga ulash UART-ni shaxsiy kompyuteringizga taqdim etadi va bu ishni boshlashning eng oson variantidir. USB ulanmagan platalar uchun tashqi dunyoga ulangan miltillash uchun GPIO pinlarini ulash uchun USB -dan seriyali FTDI modulidan foydalanish mumkin, lekin bu darslikda ko'rsatilmagan.

MiPy-ESP kodidan foydalanadigan MicroPython uchun chip fleshkasining minimal talabi 1MB. Bundan tashqari, 512kB hajmli taxtalar uchun maxsus tuzilma mavjud, lekin u MiPy-ESP ga bog'liq bo'lgan fayl tizimini qo'llab-quvvatlamaydi.

USB kabelidan foydalanganda, taxta kompyuterga ulangan paytda quvvat oladi. Bu shuningdek, ketma -ket ulanish orqali dasturlash va disk raskadrovka qilish imkonini beradi. Loyiha kodi yuklangach va sizning loyihangiz joylashtirilsa, tashqi quvvat plataning quvvat manbaiga ulanadi.

Esptool dasturi haqida ma'lumotni Esptool GitHub omboridan topishingiz mumkin. Agar siz Windows/Linux/OSX (MAC) dan foydalanmoqchi bo'lsangiz, yuqoridagi havola ham buni o'z ichiga oladi. Python to'plami tomonidan o'rnatilishi mumkin

pip esptool -ni o'rnating

Linux foydalanuvchilari uchun Esptool paketlari Debian va Ubuntu uchun saqlanadi va ular bilan ham o'rnatilishi mumkin

sudo apt o'rnatish esptool

Esptool -dan foydalanib, siz ESP flesh -xotirasini buyruq yordamida o'chirib tashlaysiz

esptool.py --port /dev /ttyUSB0 erase_flash

MicroPython dasturiy ta'minoti MicroPython veb -saytidan yuklab olish mumkin bo'lgan.bin faylida joylashgan.

Repo -ning joriy loyiha ustaxonasi sinovdan o'tkazildi va Micropython v.1.12 bilan ishlaydi. MiPY-ESP tizimida muvaffaqiyatga erishish uchun ushbu havoladan "esp8266-20191220-v1.12.bin" faylini yuklab oling va dasturiy ta'minotni chipga buyruq bilan yozing:

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

Rshell to'plami chipda o'rnatilgan MicroPython muhiti bilan buyruq satrining o'zaro ta'sirini ta'minlaydi. Buni ushbu havolada topish mumkin. Rshell-bu kompyuterda ishlaydigan va MicroPython-ning xom-REPL-dan foydalanadigan oddiy qobiq bo'lib, fayl tizimi ma'lumotlarini olish va MicroPython fayl tizimiga fayllarni nusxalash uchun python parchalarini yuboradi. REPL Read Evaluate Print Loop degan ma'noni anglatadi va siz ESP8266 orqali kirishingiz mumkin bo'lgan interaktiv MicroPython buyrug'iga berilgan nom. REPL -dan foydalanish - bu kodni sinab ko'rish va buyruqlarni bajarishning eng oson yo'li. Rshell -ni buyruq bilan o'rnating:

sudo pip rshell -ni o'rnating

MicroPython mpy-cross kompilyatorini o'rnatish chip fayl tizimiga yuklangan ascii.py fayllari bilan qo'llanilishi mumkin. MicroPython shuningdek, oldindan tuzilgan kodni saqlaydigan va oddiy.py moduli kabi import qilinadigan ikkilik konteynerli fayl formati bo'lgan.mpy fayllari kontseptsiyasini belgilaydi.. Py fayllarini.mpy -ga kompilyatsiya qilish, sizning operatsion kodingiz uchun ko'proq RAM xotirasi bo'ladi va bu MiPy -ESP asosining asosiy moduliga ega bo'lishi uchun kerak.

MiPy-ESP kodini joylashtirish uchun, mpy-cross MicroPython o'zaro kompilyatori.py skriptlarini chip yuklashdan oldin.mpy ga yig'adi. Mpy-cross paketini ushbu havoladagi ko'rsatmalarga muvofiq o'rnating. Shu bilan bir qatorda, mpy-cross buyrug'i Python pip buyrug'i bilan o'rnatilishi yoki GitHub-dan MicroPython omborini klonlasangiz, mpy-cross papka yo'lidan ishga tushirilishi mumkin.

Sizda MicroPython va birinchi MiPy-ESP loyihasini yaratishni boshlash uchun barcha kerakli vositalar o'rnatilgan

3-qadam: MiPy-ESP bilan ishlashni boshlash

MiPy-ESP bilan ishlashni boshlash
MiPy-ESP bilan ishlashni boshlash

Bu bosqichda siz

MyPy-ESP tizimini yuklab oling

MiPy-ESP tizimini yuklab olish MiPy-ESP loyihasini GitHub-da ushbu kod omborida topish mumkin. GitHub -dan siz fayllar omborining tuzilishini yuklab olishingiz yoki kompyuteringizga klonlashingiz mumkin

git klon

Kompyuteringizda kod ombori o'rnatilgan bo'lsa, endi sizda ESP IoT-dan tashqari loyihani yaratish uchun kerak bo'lgan barcha kod modullari mavjud. Keyingi bosqichda asboblar qutisi haqida batafsil ma'lumot.

4-qadam: MiPy-ESP Framework arxitekturasi

MiPy-ESP Framework arxitekturasi
MiPy-ESP Framework arxitekturasi

Bu bosqichda siz

MiPy-ESP kodli ish oqimi haqida bilib oling

MiPy-ESP kodli arxitektura

Barcha Python ramka modullari MiPY-ESP kod omborining /src papkasida joylashgan. Src/core papkasida har bir loyihaga kiradigan asosiy modullar mavjud. Src/drayverlar papkasida chipga ulanadigan turli xil uskunalar uchun modullar tanlovi mavjud. Src/utilities papkasida sizning loyihangizga qo'shilishi mumkin bo'lgan ixtiyoriy yordamchi modullar mavjud.

Main.py va config.py fayllari src/ papkasida joylashgan. Bu sizning loyihangizni yaratish uchun tahrir qilinadigan asosiy fayllar:

config.py:

Bu fayl sizning loyihangiz uchun global konfiguratsiya fayli. U har xil sozlamalarga ega, ularning hammasi faylda tavsiflovchi izohlar bilan.

main.py:

Bu mikro-kontroller kodi uchun asosiy skript. U ramkada ilovaga xos kodni o'z ichiga oladi. Chipni yuklashda main.py config.py faylidan berilgan kirishlari bo'lgan barcha loyihaga bog'liq modullarni ishga tushiradi va import qiladi. Yuqoridagi sxemada main.py skriptining joylashuvi ko'rsatilgan.

Yuqoridagi rasmda main.py ish jarayoni tasvirlangan:

  1. Yuklashdan so'ng, kod chipni Wi-Fi tarmog'iga ulashga harakat qiladi. Oldin qo'llanilgan tarmoqlar va ularning parollari (chipda shifrlangan) flesh-xotirada saqlanadi. Tarmoq SSID-lari va ularning parollari wifi.json faylida {"formatida ko'rsatilishi mumkin. SSID1 ":" Parol "," SSID ":" Parol2 "}. Bu faylda berilgan tarmoqlar saqlanadi, parollar shifrlanadi va yuklash paytida fayl o'chiriladi.
  2. Agar hech qanday tarmoqlar topilmasa, kod kirish nuqtasi (AP) veb -serverini o'rnatadi, chip serverining SSID va parolini config.py faylida o'rnatiladi. SSID-ga kirganingizda, chipni Wi-Fi-ga kirish uchun veb-sahifa 192.168.4.1-da ko'rsatiladi, aniqlangan tarmoqlar menyuda ko'rsatiladi yoki SSID-ni Wi-Fi parol bilan birga qo'lda (yashirin tarmoqlar) kiritish mumkin.. Chip Wi-Fi-ga muvaffaqiyatli ulanganda, AP-server o'chadi va main.py kodi keyingi bosqichlarga o'tadi.
  3. Main.py -ni sozlash bo'limida,

    • vazifalar va qayta qo'ng'iroqlar uchun funktsiyalar (va hokazo. MQTT qayta qo'ng'iroqlar) va muntazam hodisalar aniqlanadi.
    • Ishlaydigan funktsiyalar uchun har xil vaqtli vazifalar belgilanadi.
    • MQTT broker mijozi o'rnatildi
  4. Keyin kod asosiy mikro-kontroller tsikliga o'tadi.

    • tarmoq va MQTT broker ulanishlarini doimiy tekshirish,
    • MQTT obunalari,
    • apparat kiritish/chiqarish
    • va rejalashtirilgan ishlar.
    • Tarmoq yoki MQTT broker aloqasi yo'qolganda, kod qayta o'rnatishga harakat qiladi.

5 -qadam: Loyiha kodini tayyorlash

Loyiha kodini tayyorlash
Loyiha kodini tayyorlash
Loyiha kodini tayyorlash
Loyiha kodini tayyorlash

Bu bosqichda siz

  • MiPy-ESP omborining fayl tuzilishi haqida bilib oling
  • chip yuklash uchun loyiha kodini tayyorlang

Yuqoridagi rasmda ombor papkasining tuzilishi tasvirlangan va ramkaning joriy modullari keltirilgan. Sizning loyihangiz src/ papkasidagi bosqichlardan iborat. Core MiPy-ESP ramka modullari src/core-da, ixtiyoriy yordamchi modullar src/kommunal va apparat modullari src/drayverlarda joylashgan.

Ko'p mavjud MicroPython apparat kutubxonalari drayverlarga/ papkaga hech qanday o'zgartirishlarsiz kirishi mumkin. Hozirgi barcha drayverlar MiPy-ESP tizimi bilan sinovdan o'tgan. Yordamchi dasturlar/ papkadagi modullarga kelsak, ular hayotga qaytganda ko'proq qo'shiladi.

Loyiha kodining bosqichi Sizning loyihangizga xos kod src/ papkaga joylashtirilishi kerak. Siz tahrir qilishingiz mumkin bo'lgan main.py va config.py fayllari allaqachon mavjud. Shuningdek, src/utilities va src/drayverlardan src/ga kerakli loyiha yordam dasturlarini nusxalash.

Agar siz chipga ma'lum Wi-Fi tarmoqlari va parollarini kiritmoqchi bo'lsangiz, wifi.json faylini src/ga qo'shing.

/ Src da.py fayllarini kompilyatsiya qilish, asosiy modullarni kompilyatsiya qilish va yig'ilgan fayllarni build / nomli yangi papkaga o'tkazish orqali berilgan fayllarni chipga o'tishga tayyorlash uchun qo'llash mumkin.

qurmoq

Qurilishdagi fayllar chip fayl tizimiga yuklashga tayyor. Odatiy bo'lib, main.py va config.py o'rnatilgan chiplarni tekshirish uchun ularga oson kirish uchun ikkilik tuzilmaydi. Buyruq:

tozalang

Qurilish/ papka va uning tarkibini o'chiradi.

6 -qadam: Kodni mikrokontrollerga yig'ish va yuklash

Kodni mikrokontrollerga tuzish va yuklash
Kodni mikrokontrollerga tuzish va yuklash
Kodni mikrokontrollerga tuzish va yuklash
Kodni mikrokontrollerga tuzish va yuklash

Bu bo'limda siz

  • tayyorlangan fayllarni build/ oxirgi qismiga yuklang
  • ishga tushirish kodini ishga tushiring va kuzatib boring

Rshell yordamida qurilish/ fayllarni yuklash

Rshell yordamida /build katalogidagi barcha fayllarni ESP chipiga yuklang. USB -ga ulangan mikrokontroller bilan Rshell -ni buyruq bilan ishga tushirish/ papkadan ishga tushiring

rshell -p /dev /ttyUSB0

Keyin chip fayllarini (agar mavjud bo'lsa) tekshiring

ls /pyboard

Chipdagi barcha fayllarni o'chirish mumkin

rm /doska /*.

Loyihadagi barcha fayllarni chipga nusxalash:

cp *. * /pyboard

Keyin buyruq bilan interaktiv Python terminalini ishga tushiring

javob berish

Endi siz Python buyruqlarini chaqirishingiz yoki modullarni import qilishingiz va MiPy-ESP logger modulidan chipning ketma-ket chiqishini kuzatishingiz mumkin.

Qayta tiklash tugmachasini bosib yoki buyruq satridan chipni qayta ishga tushiring

asosiy import

yoki

import mashinasi

undan keyin

machine.reset ()

Loyiha konfiguratsiya faylidagi kirish/disk raskadrovka sozlamalariga qarab, repl endi ketma -ket ulanish orqali ESP chipidan tuzatish xabarlarini ko'rsatadi.

Umid qilamanki, bu sizni boshlashingiz kerak.

Tavsiya: