ESP8266 ve ESP32 MicroPython Kurulumu
Bu yazımıda ESP8266 ve ESP32 MicroPython firmware kurulumuna ve kullanımına nasıl başlanacağına göz atacağız. MicroPython ve normal Python arasındaki farkları ve uPyCraft IDE kullanarak ESP tabanlı kartlarınızı MicroPython ile nasıl programlayacağınızı göstereceğiz. Bu yazıyı tamamladıktan sonra, MicroPython kullanarak LED yakma söndürme işlemini de öğrenmiş olacaksınız.
MicroPython Nedir?
MicroPython, mikrodenetleyiciler ve gömülü sistemler için hedeflenen Python 3’ün yeniden uygulamasıdır. MicroPython, normal Python ile çok benzer. Dolayısıyla, Python’da nasıl programlanacağını zaten biliyorsanız, MicroPython’da nasıl programlanacağını da bilirsiniz.
Python, MicroPython’a Karşı
Birkaç istisna dışında, Python’un dil özellikleri de MicroPython’da mevcuttur. Python ve MicroPython arasındaki en büyük fark, MicroPython’un kısıtlı koşullar altında çalışacak şekilde tasarlanmış olmasıdır.
Bu nedenle, MicroPython tam standart kitaplık ile birlikte gelmez. Python standart kitaplığının yalnızca küçük bir alt kümesini içerir. Ancak, düşük seviyeli donanıma erişmek için modüller içerir – bu, GPIO’lara kolayca erişebileceğiniz ve bunlarla etkileşime geçebileceğiniz kitaplıklar olduğu anlamına gelir.
Ek olarak, ESP8266 ve ESP32 gibi Wi-Fi özelliklerine sahip cihazlar, ağ bağlantılarını destekleyen modüller içerir.
Neden MicroPython?
Python, en yaygın kullanılan, basit ve öğrenmesi kolay programlama dillerinden biridir. Bu nedenle, MicroPython’un ortaya çıkışı, mikrodenetleyici programlamayı son derece kolay ve basit hale getiriyor. Daha önce herhangi bir mikrodenetleyici programlamadıysanız, MicroPython iyi bir başlangıç noktasıdır.
MicroPython’un amacı, mikrodenetleyici programlamayı mümkün olduğunca basit hale getirmektir, böylece herkes tarafından kullanılabilir. Şu anda MicroPython hobiciler, araştırmacılar, öğretmenler, eğitimciler ve hatta ticari ürünlerde kullanılmaktadır. ESP32 veya ESP8266’da LED’i yakıp söndürme kodu aşağıdaki kadar basittir:
from machine import Pin
from time import sleep
led = Pin(2, Pin.OUT)
while True:
led.value(not led.value())
sleep(0.5)
MicroPython’un harika bir özelliği, etkileşimli bir REPL (Okuma-Değerlendirme-Baskı Döngüsü – Read-Evaluate-Print Loop) ile birlikte gelmesidir. REPL, bir karta bağlanmanıza ve kodu derlemenize veya yüklemenize gerek kalmadan hızlı bir şekilde kod yürütmenize olanak tanır.
MicroPython’un Desteklediği Kartlar
- ESP32
- ESP8266
- PyBoard
- Micro:Bit
- Teensy 3.X
- WiPy – Pycom
- Adafruit Circuit Playground Express
- Diğer ESP32/ESP8266 tabanlı kartlar
Projelerimizde ESP32 ve ESP8266 kartları ile MicroPython kullanacağız.
ESP32, ESP8266’nın halefidir. Bu nedenle, şu anda MicroPython’da ESP32’den en iyi şekilde yararlanmak için tüm özellikler mevcut değildir – bu hala devam eden bir projedir. Ancak, çok kullanışlıdır ve onunla birçok proje yapabilirsiniz.
ESP32 ve ESP8266 kartları birbirine benzer ve onları MicroPython kullanarak programlamak arasında neredeyse hiçbir fark hissetmezsiniz. Bu, ESP8266 için yazdığınız her şeyin ESP32’de (esas olarak pin atamasını değiştirerek) hiçbir değişiklik veya minimum değişiklik olmadan çalışması gerektiği anlamına gelir.
uPyCraft IDE’yi Yükleme
Bu içeriğe devam etmeden önce, bilgisayarınıza uPyCraft IDE kurmalısınız. uPyCraft IDE‘yi kurmak için aşağıdaki öğreticilerden birine gidebilirsiniz:
Not: uPyCraft IDE’yi kurmakta veya kullanmakta sorun yaşıyorsanız, Thonny IDE kullanarak ESP32/ESP8266’nın nasıl programlanacağına dair alternatif bir kılavuz da oluşturduk.
MicroPython Firmware’i ESP32/ESP8266’ya Yazdırma(flash)
Diğer kartlardan farklı olarak, MicroPython varsayılan olarak ESP32 veya ESP8266’da flash’lanmaz. Kartlarınızı MicroPython ile programlamaya başlamak için yapmanız gereken ilk şey: MicroPython firmware’i yüklemek. Kartınızda MicroPython yazılımını yüklemek için sonraki adımları izleyin:
- MicroPython Firmare’i ESP32/ESP8266’ya Yazdırma (Flaşlama) – uPyCraft IDE ile
- MicroPython Firmare’i ESP32/ESP8266’ya Yazdırma (Flaşlama) – esptool.py ile
uPyCraft IDE’ye Başlarken
Bu bölümde, ESP32/ESP8266’yı MicroPython ile programlamaya başlayabilmeniz için uPyCraft IDE yazılımına genel bir bakış atacağız.
IDE, geliştirme, hata ayıklama ve kod yükleme sürecini kolaylaştıran araçlar içeren bir yazılımdır. ESP kartınızı MicroPython ile programlamanın birçok yolu vardır. uPyCraft IDE’yi seçtik çünkü kullanımı basit ve sezgiseldir ve ESP kartlarıyla harika çalışır.
Bu noktada, aşağıdaki adımları gerçekleştirdiğinizi varsayıyoruz:
- uPyCraft IDE yükleme
- ESP32/ESP8266, MicroPython firmware flashlama
Eğer bu adımları yapmadıysanız, üstteki başlıklardan ilgili adımları bulabilirsiniz.
uPyCraft IDE’ye Genel Bakış
uPyCraft IDE’yi açın, aşağıdaki gibi yeni bir pencere açılır:
uPyCraft IDE’nin her bir bölümüne daha yakından bakalım:
- Klasör ve dosyalar
- Editör
- MicroPython Shell/Terminal
- Araçlar
1. Klasör ve dosyalar
Bu bölümde birkaç klasör ve dosya gösterilmektedir. Cihaz klasörü, halihazırda ESP kartınızda saklanan dosyaları gösterir. ESP32 veya ESP8266’nızı seri olarak uPyCraft IDE’ye bağladıysanız, cihaz klasörünü genişlettiğinizde, depolanan tüm dosyalar burada gözükmelidir. Varsayılan olarak, yalnızca bir boot.py dosyanız olmalıdır. Ana kodunuzu çalıştırmak için bir main.py dosyası oluşturmanız önerilir.
- boot.py: Aygıt başladığında çalışır ve çeşitli yapılandırma seçeneklerini ayarlar;
- main.py: Bu, kodunuzu içeren ana komut dosyasıdır. boot.py‘den hemen sonra yürütülür.
sd klasörü, SD kartlarda depolanan dosyalara erişmek içindir – bu yalnızca PyBoard gibi bir SD kart yuvasıyla gelen kartlarla çalışır.
uPy_lib, yerleşik IDE kitaplık dosyalarını gösterir.
Son olarak, çalışma alanı dosyalarınızı kaydedeceğiniz bir dizindir. Bu dosyalar bilgisayarınızda sizin tanımladığınız bir dizine kaydedilir. Bu, tüm dosyalarınızı elinizin altında düzenli tutmak için özellikle kullanışlıdır.
uPycraft’ı ilk kez kullanırken, çalışma dizininizi seçmek için çalışma alanı klasörüne tıklayın. Çalışma alanı yolunuzu seçmeniz için yeni bir pencere açılır. Yeni bir klasör oluşturun veya çalışma dizininiz olarak mevcut bir klasörü seçin.
Ardından, dizini güncellemek için File > Reflush Directory‘ye gidin.
Not: Kullanıcı dizininizi değiştirmek için, Tools >InitConfig‘e gidin ve farklı bir yol seçmek için çalışma alanı dizini klasörüne tıklayın.
2. Editör
Editör bölümü, kodunuzu yazdığınız ve .py dosyalarınızı düzenlediğiniz yerdir. Birden fazla dosya açabilirsiniz. Editör her dosya için yeni bir sekme açacaktır.
3. MicroPython Shell/Terminal
MicroPython Shell’de, yeni dosya yüklemeye gerek kalmadan ESP kartınız tarafından anında yürütülecek komutları yazabilirsiniz. Terminal ayrıca yürütülmekte olan bir programın durumu hakkında bilgi sağlar, yükleme ile ilgili hataları, sözdizimi hatalarını, mesajları yazdırır, vb. gösterir.
4. Araçlar
En sağ tarafa yerleştirilen simgeler, görevleri hızlı bir şekilde gerçekleştirmenizi sağlar. Her buton aşağıdaki şekilde etiketlenmiştir:
New file: Editör’de yeni bir dosya oluşturur.
Open file: Bilgisayarınızdan bir dosya açar.
Save file: Dosyayı kaydeder.
Download and run: Kodu kartınıza yükler ve kodu çalıştırır.
Stop: Kodun yürütülmesini durdur – bu, tüm komut dosyalarının çalışmasını durdurmak için terminalde CRTL+C girmekle aynıdır.
Connect/Disconnect: Seri yoluyla kartınıza bağlanın veya bağlantısını kesin. Tools > Serial’de önce seri bağlantı noktasını seçmelisiniz.
Undo: kod Düzenleyicideki son değişikliği geri al;
Redo: kod Düzenleyicideki son değişikliği yineleyin;
Syntax check: kodunuzun sözdizimini denetler;
Clear: Kabuk/terminal penceresi mesajlarını temizleyin.
İlk Komut Dosyanızı Çalıştırma
ESP32/ESP8266 kartlarınızda dosya yazma ve kod yürütme sürecine aşina olmanız için, ESP32 veya ESP8266’nızın yerleşik LED’ini basitçe yakıp söndüren yeni bir komut dosyası yükleyeceğiz.
Kart ile iletişim kurulması
MicroPython yazılımını kartınıza yükledikten ve kartı bir USB kablosuyla bilgisayarınıza bağladıktan sonra, aşağıdaki adımları izleyin:
- Tools > Boards‘a gidin ve kullandığınız kartı seçin.
- Tools > Port’a gidin ve ESP’nizin bağlı olduğu com bağlantı noktasını seçin.
- Kartınızla seri iletişim kurmak için Connect butonuna basın.
>>> sembolleri, kartınızla başarılı bir bağlantıdan sonra terminal penceresinde görünmelidir. Çalışıp çalışmadığını test etmek için print komutunu yazabilirsiniz:
>>> print('Hello') Hello >>>
“Hello” mesajını yazdırmalıdır. Yalnızca bu mesajı görürseniz bu eğiticiye kaldığınız yerden devam edebilirsiniz. Aksi takdirde, kartınızla bir seri iletişim kurduğunuzdan veya MicroPython yazılımını kartınıza başarıyla yüklediğinizden emin olun.
Ana Sayfanızda main.py Dosyasını Oluşturma
Yeni bir dosya oluşturmak için “New file” düğmesine basın.
Dosyayı bilgisayarınıza kaydetmek için “Save file” düğmesine basın.
Yeni bir pencere açılır, dosyanızı main.py olarak adlandırın ve bilgisayarınıza kaydedin:
Bundan sonra, uPyCraft IDE’nizde (cihazınızdaki boot.py dosyası ve main.py dosyasıyla birlikte yeni bir sekme) aşağıdakini görmelisiniz:
Dosyayı ESP kartınıza yüklemek için “Download and run” düğmesine tıklayın:
Aygıt dizini artık main.py dosyasını yüklemelidir. ESP’niz main.py dosyasını depolar.
LED Yakıp Söndürme Kodunu Yükleme
Aşağıdaki kodu main.py dosyasındaki Editör’e kopyalayın:
from machine import Pin
from time import sleep
led = Pin(2, Pin.OUT)
while True:
led.value(not led.value())
sleep(0.5)
Herhangi bir komut dosyasının kartınızda çalışmasını durdurmak için “Stop” düğmesine basın:
Komut dosyasını ESP32 veya ESP8266’ya yüklemek için “Download and run” düğmesine tıklayın:
Terminal penceresinde “download ok” yazan bir mesaj görmelisiniz.
Kodun Test Edilmesi
Kartınıza yeni yüklenen komut dosyasını çalıştırmak için şu adımları izlemeniz gerekir:
“Stop” düğmesine basın
Kartınızı yeniden başlatmak ve komut dosyasını baştan çalıştırmak için yerleşik ESP32/ESP8266 EN (ENABLE) veya RST (RESET) düğmesine basın:
ESP32 kullanıyorsanız, EN/RST düğmesine basıldıktan sonra Terminal mesajlarınız aşağıdaki şekilde gösterildiği gibi görünmelidir:
ESP32 veya ESP8266 yerleşik LED’iniz her 500 milisaniyede bir yanıp sönmelidir.
Sorun Giderme İpuçları
uPyCraft IDE ile ortaya çıkan bazı genel sorunları ve hata mesajlarını keşfettik. Genellikle ESP’nizi yerleşik EN/RST düğmesiyle yeniden başlatmak sorununuzu çözer. Veya uPyCraft IDE “Durdur” düğmesine basarak ve istediğiniz eylemi tekrarlayarak sorunlardan kaçınabilirsiniz. İşinize yaramazsa, sonraki yaygın hataların çözümlerine bakabilirsiniz.
Hata #1: Aşağıdaki mesajı alıyorsanız:
>>>
Select Serial Port could not open port 'COM4': FileNotFoundError(2, 'The system cannot find the file specified.', None, 2)
Veya buna benzer eşdeğer bir mesaj:
>>>
could not open port 'COM4': PermissionError(13, 'A device attached to the system is not functioning.', None, 31)
ESP kartınızın kablosunu çekin ve tekrar takın. Ardından, Tools > Serial menüsünde doğru seri bağlantı noktasını seçip seçmediğinizi iki kez kontrol edin. Ardından, seri iletişim kurmak için “Connect/Disconnect” düğmesine tıklayın. Artık yeni bir komut dosyası yükleyebilmeli veya yeni kodu yeniden çalıştırabilmelisiniz.
Bu hata aynı zamanda seri bağlantı noktanızın başka bir programda (seri terminal veya Arduino IDE’de) kullanıldığı anlamına da gelebilir. ESP kartınızla seri iletişim kuruyor olabilecek tüm programları kapattığınızı iki kez kontrol edin. Ardından, ESP kartınızın kablosunu çekin ve tekrar takın. Son olarak, uPyCraft IDE’yi yeniden başlatın – Tools > Serial menüsünden seri bağlantı noktasını seçmeyi deneyin.
Hata #2: Yeni bir komut dosyası yüklenirken sorun oluştu.
>>>
already in download model,please wait.
Çalışan herhangi bir kodun durduğundan emin olmak için uPyCraft IDE’de “Stop” düğmesine (1 veya 2 kez) basın. Bundan sonra, yeni betiği ESP kartınıza yüklemek için “Download and run” düğmesine basın.
Hata #3: Yeni bir komut dosyası yükledikten sonra aşağıdaki mesajı görürseniz:
>>>
Ready to download this file,please wait!
...
download ok
os.listdir('.')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'os' isn't defined
Veya bu mesaj:
>>>
Ready to download this file,please wait!
...
download ok
os.listdir('.')
OSError: [Errno 98]
Bu, yeni dosyanın kartınıza başarıyla yüklendiği anlamına gelir. “download ok” mesajını yazdırdığını fark edebilirsiniz. Panonuzu yeniden başlatmak ve yeni yüklenen komut dosyasını baştan yeniden çalıştırmak için ESP yerleşik “EN/RST” düğmesine basın.
Hata #4: ESP kartınızı yeniden başlatma, yeni bir komut dosyası çalıştırma veya seri bağlantı noktasını açma sorunu:
>>>
Brownout detector was triggered
“Brownout detector was triggered” hata mesajı, bir tür donanım sorunu olduğu anlamına gelir. Genellikle aşağıdaki sorunlardan biriyle ilişkilidir:
- Düşük kaliteli USB kablosu;
- Uzun USB kablosu;
- Kusurlu lehim bağlantıları;
- Bilgisayar USB bağlantı noktası sorunları;
Farklı bir daha kısa USB kablosu (veri kabloları ile) deneyin, farklı bir bilgisayarın USB bağlantı noktasını deneyin veya harici güç kaynağına sahip bir USB hub’ı kullanın.
Hata #5: uPyCraft IDE’de ESP32/ESP8266 ile bir seri iletişim açmaya çalıştığımızda, bazen MicroPython bellenimini yeniden flaş etmemizi isteyen “Burn Firmware” penceresini açar.
Temel olarak, olanın bu olduğunu düşünüyoruz: kartınızda bir komut dosyası çalıştırırken, bazen o komut dosyasını çalıştırmak ve görevleri gerçekleştirmekle meşguldür. Bu nedenle, uPyCraft IDE ile seri iletişim kurmak için COM bağlantı noktasını birden çok kez açmayı denemeniz veya ESP’yi yeniden başlatmanız gerekir.
Wi-Fi, derin uyku kullanan bir komut dosyası çalıştırıyorsanız veya birden fazla görev yapıyorsanız, iletişimi kurmak için 3 veya 4 kez denemenizi öneririz. Yapamazsanız, ESP’yi MicroPython yazılımını ile yeniden flaş etmenizi öneriyoruz.
Yorum yapma özelliği, forum tarafından gelen istek sebebiyle kapatılmıştır. Lütfen tartışmalar ve sorularınız için topluluk forumumuza katılın.