İçindekiler:

ESP8266 ve ESP32 için Python'a Başlarken: 6 Adım
ESP8266 ve ESP32 için Python'a Başlarken: 6 Adım

Video: ESP8266 ve ESP32 için Python'a Başlarken: 6 Adım

Video: ESP8266 ve ESP32 için Python'a Başlarken: 6 Adım
Video: IEEE IZU CS | Python IOT Eğitimi | Nurettin Abacı | 1.Gün 2024, Kasım
Anonim
ESP8266 ve ESP32 için Python'a Başlarken
ESP8266 ve ESP32 için Python'a Başlarken

arka plan

ESP8266 ve küçük ağabeyi ESP32, tam TCP/IP yığını ve mikro denetleyici özelliğine sahip düşük maliyetli Wi-Fi mikroçipleridir. ESP8266 yongası, yapımcı topluluğunun dikkatini ilk kez 2014 yılında gördü. O zamandan beri, düşük fiyatı (<5 USD), Wi-Fi özelliği, 1 veya 4 MB dahili flash belleği ve çeşitli geliştirme seçenekleri ESP çipini WiFi ve IoT DIY projeleri için en popüler mikro denetleyicilerden biri haline getirdi.

MicroPython, Python standart kitaplığının küçük bir alt kümesini içeren ve mikrodenetleyiciler üzerinde çalışacak şekilde optimize edilmiş, giderek daha popüler hale gelen Python programlama dilinin yalın ve verimli bir uygulamasıdır.

Bu ikisinin kombinasyonu, hem yeni başlayanlar hem de daha ileri düzey kullanıcılar için DIY projeleri için çok ilginç bir seçenektir.

MiPy-ESP projesi

2015 yılında, ESP8266 ile ilk projelerim, seri bağlantı üzerinden çip AT komutlarını çalıştırmak için Arudions kullanan ESP-01 çipiyle başladı. Bundan sonra, sonraki yıllarda, çipleri C++ dili ile programlamak için ESP8266 için Arduino çekirdeğini uyguladım. Bu iyi çalışıyor, ancak Python meraklısı için Python 3'ün MicroPython uygulamasını keşfetmem harika bir haberdi.

MiPy-ESP projesi, ESP ailesi mikro denetleyicilerinde tam yığın Python IoT projeleri için MicroPython uygulayan esnek bir çerçevedir.

Çerçeve, LeGarage Teknik Komitesi Yazılım Geliştirme Ekibi (LG-TC-SWDT-01) tarafından, mikrodenetleyici uygulamalarımız için halihazırda kurulmuş olan C++ tabanlı kodu değiştirmeyi amaçlayan geliştirilmiştir.

Proje gibi temel özellikleri sağlar

  • Ağ bağlantı prosedürleri
  • Çip erişim noktası web sunucusu (wifi bağlantısı ve veri G/Ç için çip web sayfalarının sunulması için)
  • MQTT işlevleri
  • Günlüğe kaydetme/hata ayıklama
  • Mikrodenetleyici olay planlaması
  • Donanım G/Ç rutinleri

Tek bir ana kompakt kod komut dosyası (main.py), tümü genel yapılandırmaya (config.py) sahiptir.

Bu mikro denetleyici kodu, WiFi ağına ve MQTT aracılarına yapılan çip bağlantılarının sağlam bakımıyla çalışır. Çeşitli donanımlar için mevcut MicroPython modülleri sisteme kolayca entegre edilebilir.

MiPy-ESP çerçevesi, ESP ailesi mikro denetleyicilerini içeren tüm hobi elektroniği IoT projelerimizin bel kemiği haline geldi. NodeMCU, Wemos ve Lolin kartları gibi birçok ESP ailesi kartında test edilmiştir.

Aşağıdaki öğretici, MiPy-ESP çerçevesini kullanarak ESP ailesi mikro denetleyicileri ve MicroPython'a nasıl başlayacağınıza ilişkin bir kılavuzdur.

Adım 1: Wemos D1 Mini ESP8266 Anakartı

Wemos D1 Mini ESP8266 Anakartı
Wemos D1 Mini ESP8266 Anakartı
Wemos D1 Mini ESP8266 Anakartı
Wemos D1 Mini ESP8266 Anakartı
Wemos D1 Mini ESP8266 Anakartı
Wemos D1 Mini ESP8266 Anakartı
Wemos D1 Mini ESP8266 Anakartı
Wemos D1 Mini ESP8266 Anakartı

MiPy-ESP çerçevesi, çoğu ESP8266 tabanlı mikro denetleyiciyle çalışır.

Wemos D1 mini geliştirme kartı, ESP-8266EX çipine dayanmaktadır. 2,5 x 3,5 cm kaplama alanında 4MB flash bellek, 11 dijital giriş/çıkış pini, tüm pinler interrupt destekli, PWM, I2C, SPI, seri ve 3,3V maksimum girişli 1 analog giriş, 5V güç ile çalışabilme özelliğine sahiptir, mikro USB bağlantısına sahiptir ve breadboard uyumludur. Düşük fiyatı ve küçük boyutu, onu en sevdiğim ESP kartım yaptı.

Ek olarak, kartın D1 mini pro versiyonu, bağlantı aralığını önemli ölçüde artıran (+100 m aralığı) harici bir anten bağlama seçeneği ile birlikte gelir. Buna ek olarak, kart aynı zamanda benzer kompakt boyutlara sahip, kullanıma hazır çeşitli genişletme kartlarıyla birlikte gelir.

Adım 2: ESP Çipinde MicroPython için Hazırlanmak

ESP Çipinde MicroPython'a Hazırlanmak
ESP Çipinde MicroPython'a Hazırlanmak

Bu ilk adımda,

  • ESP kartını USB üzerinden bilgisayarınıza bağlayın
  • Çipin yanıp sönmesi için Esptool yazılımını yükleyin
  • Çip belleğini sil
  • Çipi MicroPython bellenimi ile flaşlayın
  • Çipinizle komut satırı etkileşimini etkinleştirmek için Rshell'i kurun
  • mpy-cross'u kurun (.py dosyalarının ikili dosyaya derlenmesi için)

Kartı, yerleşik bir USB seri bağlantı noktasına sahip USBBoard'lar aracılığıyla bilgisayarınıza bağlamak, UART'ı PC'niz için kullanılabilir hale getirir ve başlamak için en kolay seçenektir. USB bağlantısı olmayan kartlar için, dış dünyaya bağlı yanıp sönme için GPIO pinlerini bağlamak için USB'den seriye bir FTDI modülü kullanılabilir, ancak bu eğitimde ele alınmamıştır.

MiPy-ESP kodunu kullanan MicroPython için çip flash boyutu için minimum gereksinim 1 MB'dir. Ayrıca 512kB'lik kartlar için özel bir yapı vardır, ancak bunun MiPy-ESP'nin bağlı olduğu bir dosya sistemini desteklemez.

Bir USB kablosu kullanırken, kart bağlıyken bilgisayarınızdan güç alır. Bu aynı zamanda seri bağlantı üzerinden programlama ve hata ayıklamaya da izin verir. Proje kodu yüklenip projeniz konuşlandırıldığında, kartın güç kaynağı pinleri üzerinden harici güç uygulanır.

Esptool'u yükleme Esptool yazılımı hakkında bilgi Esptool GitHub deposunda bulunabilir. Windows/Linux/OSX(MAC) kullanmak istiyorsanız, yukarıdaki bağlantı bunu da kapsar. Python paketi tarafından kurulabilir

pip kurulum esptool

Linux kullanıcıları için, Esptool paketleri Debian ve Ubuntu için korunur ve ayrıca şunlarla da kurulabilir:

sudo apt esptool yükleyin

ESP flash belleğinin silinmesi Esptool'u kullanarak, ardından şu komutla ESP flash belleğini silebilirsiniz.

esptool.py --port /dev/ttyUSB0 delete_flash

MicroPyton üretici yazılımının indirilmesiMicroPython üretici yazılımı, MicroPython web sitesinden indirilebilen bir.bin dosyasında bulunur.

Repo'nun mevcut proje master dalı test edilmiştir ve Micropython v.1.12 ile çalışır durumdadır. MiPY-ESP çerçevesi ile başarıyı sağlamak için bu linkten 'esp8266-20191220-v1.12.bin' dosyasını indirin ve aşağıdaki komutla firmware'i chip'e yazın:

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

Rshell'i KurmaRshell paketi, çipte kurulu MicroPython ortamınızla komut satırı etkileşimi sağlar. Bu linkte bulunabilir. Rshell, ana bilgisayar üzerinde çalışan ve dosya sistemi bilgilerini almak ve MicroPython'un dosya sistemine ve dosya sisteminden dosya kopyalamak için python parçacıklarını pyboard'a göndermek için MicroPython'un raw-REPL'sini kullanan basit bir kabuktur. REPL, Read Evaluate Print Loop anlamına gelir ve ESP8266'da erişebileceğiniz etkileşimli MicroPython istemine verilen addır. REPL kullanmak, kodunuzu test etmenin ve komutları çalıştırmanın açık ara en kolay yoludur. Rshell'i şu komutla kurun:

sudo pip rshell'i kurun

mpy-cross derleyicisinin kurulumu MicroPython, çip dosya sistemine yüklenen ascii.py dosyaları ile uygulanabilir. MicroPython ayrıca önceden derlenmiş kodu tutan ve normal bir.py modülü gibi içe aktarılabilen ikili bir kapsayıcı dosya biçimi olan.mpy dosyaları kavramını da tanımlar..py dosyalarını.mpy olarak derleyerek, çalışan kodunuz için daha fazla RAM belleği mevcut olacaktır - ve bu, MiPy-ESP çerçevesinin işleyen bir çekirdek modülüne sahip olmak için gereklidir.

MiPy-ESP kod dağıtımı için, bir mpy-cross MicroPython çapraz derleyicisi, çip yüklemeden önce.py komut dosyalarını.mpy olarak derler. Bu bağlantıdaki talimatlara göre mpy-cross paketini kurun. Alternatif olarak, mpy-cross komutu Python pip komutu ile yüklenebilir veya buradan GitHub'dan MicroPython deposunu klonlarsanız mpy-cross klasör yolundan çalıştırılabilir.

Artık ilk MiPy-ESP projenizi oluşturmaya başlamak için MicroPython ve gerekli tüm araçlara sahipsiniz

3. Adım: MiPy-ESP'ye Başlarken

MiPy-ESP'ye Başlarken
MiPy-ESP'ye Başlarken

Bu adımda

MyPy-ESP çerçevesini indirin

MiPy-ESP çerçevesini indirmeMiPy-ESP projesi bu kod deposunda GitHub'da bulunabilir. GitHub'dan depo dosya yapısını indirebilir veya bilgisayarınıza kopyalayabilirsiniz.

git klonu

Bilgisayarınıza yüklenen kod deposuyla, artık kullanıma hazır bir ESP IoT projesi oluşturmak için ihtiyacınız olan tüm kod modüllerine sahipsiniz. Bir sonraki adımda araç kutusu hakkında daha fazla ayrıntı.

Adım 4: MiPy-ESP Çerçeve Mimarisi

MiPy-ESP Çerçeve Mimarisi
MiPy-ESP Çerçeve Mimarisi

Bu adımda

MiPy-ESP kod iş akışı hakkında bilgi edinin

MiPy-ESP kod mimarisi

Tüm Python çerçeve modülleri, MiPY-ESP kod deposunun /src klasöründe bulunur. src/core klasörü, her projeye giren çekirdek modülleri içerir. src/drivers klasörü, çipinize bağlanacak çeşitli donanımlar için bir dizi modül içerir. src/utilities klasörü, projenize dahil etmek için isteğe bağlı yardımcı program modülleri içerir.

main.py ve config.py dosyaları src/ klasöründe bulunur. Projenizi oluşturmak için düzenleyeceğiniz ana dosyalar şunlardır:

yapılandırma.py:

Bu dosya, projeniz için genel yapılandırma dosyasıdır. Hepsi dosyada açıklayıcı yorumlar içeren çeşitli ayarlara sahiptir.

ana.py:

Bu, mikro denetleyici kod döngüsü için ana komut dosyasıdır. Çerçevede uygulamaya özel kodu içerir. Yonga önyüklemesinin ardından main.py, projeye bağlı tüm modülleri config.py dosyasından verilen girdilerle çalıştırır ve içe aktarır. Yukarıdaki akış şeması, main.py betiğinin düzenini gösterir.

Yukarıdaki şekil, main.py'nin iş akışını açıklar:

  1. Önyükleme sırasında, kod çipi Wi-Fi ağına bağlamaya çalışırDaha önce uygulanmış ağlar ve bunların şifreleri (çip üzerinde şifrelenmiş) flash bellekte saklanır. Ağ SSID'leri ve şifreleri, {" biçimindeki wifi.json dosyasında sağlanabilir. SSID1":"Parola", "SSID":"Parola2"}. Bu dosyada verilen ağlar depolanır, parolalar şifrelenir ve önyükleme sırasında dosya silinir.
  2. Bilinen bir ağ bulunamazsa, kod bir erişim noktası (AP) web sunucusu kurar. Çip AP sunucusu SSID'si ve parolası config.py dosyasında ayarlanır. Çip SSID'sine giriş yaparak, çipin Wi-Fi'ye oturum açması için bir web sayfası 192.168.4.1'de sunulur. Algılanan ağlar bir menüde gösterilir veya SSID, Wi-Fi şifresi ile birlikte manuel olarak (gizli ağlar) girilebilir.. Çipin Wi-Fi'ye başarılı bir şekilde bağlanmasından sonra, AP sunucusu kapanır ve main.py kodu sonraki adımlarına geçer.
  3. main.py'nin Kurulum bölümünde,

    • işler ve geri aramalar (vb. MQTT geri aramaları) ve düzenli olaylar için işlevler tanımlanır.
    • Çalışan işlevler için farklı zamanlanmış işler ayarlanır.
    • MQTT broker istemcisi kuruldu
  4. Kod daha sonra ana mikro denetleyici döngüsüne girer,

    • ağ ve MQTT broker bağlantılarını sürekli kontrol etmek,
    • MQTT abonelikleri,
    • donanım G/Ç
    • ve planlanmış işler.
    • Ağ veya MQTT aracı bağlantısı kesildiğinde, kod yeniden kurmaya çalışır.

Adım 5: Proje Kodunuzu Hazırlama

Proje Kodunuzu Hazırlama
Proje Kodunuzu Hazırlama
Proje Kodunuzu Hazırlama
Proje Kodunuzu Hazırlama

Bu adımda

  • MiPy-ESP veri havuzu dosya yapısı hakkında bilgi edinin
  • proje kodunuzu chip yüklemesi için hazırlayın

Depo klasörü yapısı Yukarıdaki şekil, depo klasörü yapısını açıklar ve çerçevenin mevcut modüllerini listeler. Projeniz src/ klasöründeki aşamalardır. Core MiPy-ESP çerçeve modülleri src/core'da, isteğe bağlı yardımcı program modülleri src/utilities'de ve donanım modülleri src/drivers'da bulunur.

Mevcut MicroPython donanım kitaplıklarının çoğu, herhangi bir değişiklik yapılmadan sürücülere/klasöre gidebilir. Mevcut tüm sürücüler MiPy-ESP çerçevesi ile test edilir. Yardımcı programlar/klasördeki modüllerle ilgili olarak, hayata geçtiklerinde daha fazlası eklenecektir.

Proje kodunun aşamalandırılması Projeye özel kodunuz src/ klasörüne yerleştirilmelidir. Zaten orada, düzenleyebileceğiniz main.py ve config.py dosyaları var. Ayrıca istenen proje yardımcı programlarını src/utilities ve src/drivers'dan src/'ye kopyalayın.

Çipe bilinen Wi-Fi ağlarını ve parolaları sağlamak istiyorsanız, wifi.json dosyasını src/ dizinine ekleyin.

Derleme ve yükleme için hazırlama Sağlanan bir Makefile,.py dosyalarını /src'de derleyerek, çekirdek modülleri derleyerek ve derlenen dosyaları komutla build/ adlı yeni bir klasöre aktararak çipe aktarım için dosyaları hazırlamak için uygulanabilir.

inşa etmek

Derlemedeki dosyalar çip dosya sistemine yüklenmeye hazırdır. Varsayılan olarak main.py ve config.py, konuşlandırılmış yongaların incelenmesi için bunlara kolay erişim sağlamak amacıyla ikili dosyada derlenmez. Komuta:

temizlemek

Derleme/klasörü ve içeriğini siler.

Adım 6: Kodun Derlenmesi ve Mikrodenetleyiciye Yüklenmesi

Kodun Derlenmesi ve Mikrodenetleyiciye Yüklenmesi
Kodun Derlenmesi ve Mikrodenetleyiciye Yüklenmesi
Kodun Derlenmesi ve Mikrodenetleyiciye Yüklenmesi
Kodun Derlenmesi ve Mikrodenetleyiciye Yüklenmesi

Bu bölümde

  • hazırlanan dosyaları derlemede/son bölümden yükleyin
  • çalışan kodu başlat ve izle

Rshell ile derleme/dosya yükleme

/build dizinindeki tüm dosyaları Rshell kullanarak ESP çipine yükleyin. USB'ye bağlı mikrodenetleyici ile, build/klasöründen Rshell'i şu komutla başlatın

rshell -p /dev/ttyUSB0

Ardından çip dosyalarını (varsa) şu şekilde inceleyin:

ls /pyboard

Çipteki tüm dosyalar tarafından silinebilir

rm /pyboard/*.*

Tüm proje dosyalarını derlemede/ çipe kopyalayın:

cp *.* /pyboard

Ardından etkileşimli Python terminalini komutla başlatın

repl

Artık Python komutlarını çağırabilir veya modülleri içe aktarabilir ve MiPy-ESP kaydedici modülünden çip seri çıkışını izleyebilirsiniz.

Sıfırla düğmesine basarak veya komut satırından çipi yeniden başlatın.

ana ithalat

veya

ithalat makinesi

ve daha sonra

makine.sıfırlama()

Proje yapılandırma dosyasındaki günlük kaydı/hata ayıklama ayarlarınıza bağlı olarak, repl şimdi seri bağlantı üzerinden ESP yongasından hata ayıklama mesajlarını gösterecektir.

Bu umarım başlamanızı sağlamalıdır.

Önerilen: