İçindekiler:
- Adım 1: Wemos D1 Mini ESP8266 Anakartı
- Adım 2: ESP Çipinde MicroPython için Hazırlanmak
- 3. Adım: MiPy-ESP'ye Başlarken
- Adım 4: MiPy-ESP Çerçeve Mimarisi
- Adım 5: Proje Kodunuzu Hazırlama
- Adım 6: Kodun Derlenmesi ve Mikrodenetleyiciye Yüklenmesi
Video: ESP8266 ve ESP32 için Python'a Başlarken: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
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ı
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
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
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
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:
- Ö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.
- 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.
-
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
-
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
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
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:
I2C Sensör Arayüzü ile Başlarken? - MMA8451'inizi ESP32 Kullanarak Arayüz: 8 Adım
I2C Sensör Arayüzü ile Başlarken? - MMA8451'inizi ESP32'leri Kullanarak Arayüz: Bu eğitimde, denetleyici (Arduino, ESP32, ESP8266, ESP12 NodeMCU) ile çalışan I2C cihazının (İvmeölçer) nasıl başlatılacağı, bağlanacağı ve elde edileceği hakkında her şeyi öğreneceksiniz
ESP32 CAM'e Başlarken - Wifi Üzerinden ESP CAM Kullanarak Video Akışı - ESP32 Güvenlik Kamerası Projesi: 8 Adım
ESP32 CAM'e Başlarken | Wifi Üzerinden ESP CAM Kullanarak Video Akışı | ESP32 Güvenlik Kamera Projesi: Bugün bu yeni ESP32 CAM kartını nasıl kullanacağımızı ve nasıl kodlayıp güvenlik kamerası olarak kullanabileceğimizi ve wifi üzerinden video akışı elde edebileceğimizi öğreneceğiz
ESP32'ye Başlarken - Arduino IDE'de ESP32 Kartlarının Kurulması - ESP32 Yanıp Sönme Kodu: 3 Adım
ESP32'ye Başlarken | Arduino IDE'de ESP32 Kartlarının Kurulması | ESP32 Yanıp Sönme Kodu: Bu talimatta, esp32 ile çalışmaya nasıl başlayacağımızı ve esp32 kartlarının Arduino IDE'ye nasıl kurulacağını göreceğiz ve esp 32'yi arduino ide kullanarak yanıp sönme kodunu çalıştıracak şekilde programlayacağız
Ultrasonik Sensörler için 3.3V Modu (ESP32/ESP8266, Particle Photon, vb. üzerinde 3.3V Logic için HC-SR04'ü hazırlayın): 4 Adım
Ultrasonik Sensörler için 3.3V Modu (ESP32/ESP8266, Particle Photon, vb. üzerinde 3.3V Logic için HC-SR04'ü hazırlayın): TL;DR: Sensörde, Echo pinine giden izi kesin, ardından bir voltaj bölücü (Yankı izi -> 2.7kΩ -> Yankı pimi -> 4.7kΩ -> GND). Düzenleme: ESP8266'nın aslında GPIO'da 5V toleranslı olup olmadığı konusunda bazı tartışmalar oldu
HyperDuino için MBlock Tarayıcı Tabanlı Kodlamaya Başlarken: 3 Adım
HyperDuino için MBlock Tarayıcı Tabanlı Kodlamaya Başlarken: HyperDuino ile mBlock web tabanlı öğreticiye hoş geldiniz. Bu size mBlock'u nasıl kuracağınızı ve kodunuzu HyperDuino'nuza nasıl yükleyeceğinizi gösterecek. Bu aynı zamanda akıllı bir araba için temel bir kodun nasıl oluşturulacağını da gösterecektir. Başlamak için hemen atlayalım