- MicroPython nedir?
- Neden NodeMCU için MicroPython?
- ESP8266 (NodeMCU) nedir?
- Kullanılan Donanım
- ESP8266 için MicroPython Donanım Yazılımını Yükleme
- PuTTY ile NodeMCU ile iletişim kurmak
- Ampy kullanarak Python Tabanlı LED Yanıp Sönme Kodu Yükleme
- ESP8266'da MicroPython: DHT22 ile Sıcaklık ve Nem Alma
ESP8266 gibi Wi-Fi özellikli mikro denetleyicileri programlamakla ilgilenen yeni başlayanlar için ESP-IDF programlama ortamını veya Arduino IDE'yi anlamak göz korkutucu bir görev olabilir, C ve C ++ dillerinin şifreli sözdizimi daha fazla bilgisayar bilimi bilgisi gerektirir. neden bu diller yeni başlayanlar için her zaman uygun değildir, bu nedenle bu makalede, MicroPython ile bir ESP8266 kurmayı ve programlamayı öğreneceğiz ve son olarak, en sevdiğimiz DHT22 sıcaklık ve nem sensöründen sıcaklık ve nem verilerini alacağız. Daha önce ESP32'nin Micro Python ile nasıl programlanacağına dair bir öğretici de hazırladık, ilgileniyorsanız bunu da kontrol edebilirsiniz.
MicroPython nedir?
MicroPython, mikro denetleyiciler ve gömülü sistemlerle çalışmak üzere tasarlanmış python'un doğranmış bir sürümü olduğunu söyleyebiliriz. MicroPython'un sözdizimi ve kodlama süreci python'a benzer. Dolayısıyla, python'u zaten biliyorsanız, MicroPython kullanarak kodunuzu nasıl yazacağınızı zaten biliyorsunuzdur. Bir Python hayranıysanız bu makaleye göz atabilirsiniz.
MicroPython, Birleşik Krallık'ta, Damion Jones liderliğindeki bir ekip tarafından geliştirildi ve geri döndüklerinde bir Kickstarter başlattılar; burada aygıt yazılımı çalıştıran belirli bir geliştirme kartı seti başlattılar, bu da MicroPython'u çalıştırmanıza olanak tanıyor. bellenim artık bu makalede öğreneceğiniz ESP8266 üzerinde çalışacak şekilde taşındı.
Neden NodeMCU için MicroPython?
Python, bugüne kadar en yaygın kullanılan ve öğrenmesi kolay programlama dillerinden biridir. Böylece, MicroPython'un tanıtılmasıyla, donanım tabanlı mikrodenetleyicilerin programlanması çok kolaylaştı. Daha önce hiç bir mikro denetleyici programlamadıysanız ve programlamayı öğrenmeye başlamak istiyorsanız, MicroPython iyi bir başlangıçtır.
MicroPython, Python standart kitaplıklarının soyulmuş bir sürümünü kullanır, bu nedenle tüm standart kitaplıklar kullanılamaz. Ancak, MicroPython, donanımla arabirim oluşturmak için basit ve kullanımı kolay modüller içerir; bu, MicroPython'un yardımıyla, bir GPIO kaydında okumak ve yazmak çok daha kolay hale geldi.
MicroPython'un nihai amacı, programlama mikro denetleyicilerini olabildiğince basit hale getirmektir, böylece herkes tarafından kullanılabilir. MicroPython kütüphaneleri içe aktarmak ve kod yazmak kolaylaştığında, aşağıda gösterilen kod NodeMCU kartının yerleşik LED'ini yanıp sönen basit bir örnektir, kodu yazıdan sonra detaylı olarak tartışacağız.
makineden içe aktarmadan Zaman içe aktarma uyku LED'inden Pin = Doğru iken Pin (2, Pin.OUT): LED.value (LED.value () değil) uyku (0.5)
ESP8266 (NodeMCU) nedir?
ESP8266, Nesnelerin İnterneti (IoT) ile ilgili uygulamalar için tasarlanmış düşük maliyetli bir Wi-Fi modülüdür.
Genel amaçlı giriş ve çıkış pinleri (GPIO'lar) ile birlikte gelir ve ayrıca SPI, I2C, UART ve daha fazlası gibi yaygın olarak kullanılan çeşitli protokolleri destekler. Ancak, bu mikro denetleyicinin en harika özelliği, yerleşik Wi-Fi'ye sahip olmasıdır. Bununla, herhangi bir 2,4 GHz Wi-Fi'ye çok kolay bir şekilde bağlanabiliriz.
Şimdi temel bilgiler, size gerekli donanımı ve ESP8266 IC'ye MicroPython yükleme sürecini göstereceğimiz pratik kısma geçebileceğimizin dışında kaldı.
Kullanılan Donanım
Kullanılan Malzemelerin Listesi
- 1 x Hamur Tahtası
- 1 adet ESP8266 (NodeMCU)
- 1 x DHT22 (Sıcaklık ve Nem Sensörü)
- 1 x 3mm LED (Işık Yayan Diyot)
- 1 x 1K Direnç
- 5 x Jumper Tel
ESP8266 için MicroPython Donanım Yazılımını Yükleme
Bu makalede, MicroPython sabit yazılımını ESP8266'ya yüklemenin iki yolu vardır. İkisinden de bahsedeceğiz ama önce indirmemiz gerekiyor.
ESP8266 için MicroPython Donanım Yazılımını İndirme:
NodeMCU (ESP8266) kartını bilgisayarımıza bağlamadan önce, MicroPython'un en son sürümünü indirmemiz gerekiyor, bundan sonra donanım yazılımını NodeMCU'ya yükleyebiliriz, resmi Micropython indirme sayfasından indirebilirsiniz.
MicroPython Donanım Yazılımını ESP8266'ya Kurmak:
Ürün yazılımını ESP8266'ya kurmadan önce, USB'den Seri Dönüştürücü için doğru sürücüye sahip olduğumuzdan emin olmalıyız, NodeMCU kartının çoğu bir CP2102 USB - UART dönüştürücü IC kullanır, bu yüzden indirip yüklememiz gerekir. CP2102 USB - UART dönüştürücü için sürücü, Sürücü indirilip kurulduktan sonra, ESP8266'daki bellenimi okumak ve yazmak için yapılan python tabanlı bir araç olan esptool'u indirmemiz gerekir.
Python'u edinmenin en kolay yolu Microsoft Mağazasıdır, oradan Python'un bir kopyasını indirip yüklemeniz gerekir. Python kurulduktan sonra, esptool'u kurmak için pip3 install esptool komutunu kullanabiliriz. İşlem aşağıdaki resimdeki gibi görünecektir.
Kurulduktan sonra, esptool'a komut terminalinden erişip erişmediğinizi kontrol edin.
Bunu yapmak için, esptool.py version komutunu çalıştırın, aşağıdaki resim gibi bir pencere görürseniz, Windows PC'nize esptool'u başarıyla yüklediniz.
Ve komut penceresinden esptool'a erişmede sorun yaşıyorsanız, tam yükleme yolunu Windows ortam değişkenine eklemeyi deneyin.
NodeMCU Kartı için Ayrılan PORT'u Bulma:
Şimdi, NodeMCU panosu için ayrılmış bağlantı noktasını bulmamız gerekiyor, bunu yapmak için sadece cihaz yöneticisi pencerenize gidin ve NodeMCU panosuyla ilişkili bağlantı noktasını bulabileceğinizi genişletirseniz Bağlantı Noktaları adlı bir seçeneği arayın. Bize göre aşağıda gösterilen resme benziyor.
ESP8266'nın Flash Belleğini Silme:
Şimdi ilişkili COM portunu bulduk, NodeMCU modülünü onun flash belleğini silerek hazırlayabiliriz. Bunu yapmak için aşağıdaki komut kullanılır, esptool.py --port COM6 erase_flash . İşlem aşağıdaki resimdeki gibi görünecektir.
Bellenim Kurulumu:
Aşağıdaki komutu çalıştırmak, MicroPython ikilisini NodeMCU kartına kuracak, bu ikili bir kez kurulduktan sonra python programlarımızı yüklememize ve Oku Değerlendir ve Yazdır döngüsü ile iletişim kurmamıza izin verecektir.
esptool.py --port COM6 --baud 460800 write_flash --flash_size = algılama 0 esp8266-20200911-v1.13.bin
İşlem aşağıdaki resme benzeyecek,
Lütfen kurulum sırasında ikili dosyanın masaüstümde olduğunu ve bu nedenle Masaüstüme bir cd aldığımı ve komutu çalıştırdığımı unutmayın.
Şimdi bitti, kartla iletişim kurma ve bazı LED'leri yakma zamanı.
PuTTY ile NodeMCU ile iletişim kurmak
Şimdi PuTTY, PuTTY kullanarak ilk Hello World programımıza başlayalım, bunu yapmak için bağlantı türünü Seri olarak ayarlamalıyız, sonra Seri hattı (bizim durumumuzda COM6) ve son olarak Hızı 115200 baud olarak ayarladık..
Her şey doğru yapılırsa aşağıdaki resme benzer bir pencere açılacaktır ve kodumuzu içine kolayca yazabiliriz, genellikle bir iPython terminali gibi çalışır. Ayrıca, sadece iki basit satırdan oluşan ilk merhaba dünya programımızı çalıştırdık ve baskı ifademizi koyduktan sonra cevabımızı aldık.
Ampy kullanarak Python Tabanlı LED Yanıp Sönme Kodu Yükleme
MicroPython'a PuTTY terminalinin yardımıyla erişmek, ESP modülüyle iletişim kurmanın iyi bir yoludur, ancak kodu yüklemenin bir başka kolay yolu da Adafruit Ampy aracı aracılığıyla ampy'yi kurmaktır, sadece basit bir pip3 kurulumu adafruit çalıştırabiliriz. ampy komutu ve bilgisayarımıza ampy kuracaktır. İşlem aşağıdaki resimdeki gibi görünecektir.
Şimdi buna sahip olduğunuzda, bağlı olduğumuz seri port hakkındaki bilgilerimize hala ihtiyacımız var. Bizim durumumuzda COM6'dır. Şimdi sadece LED Blink kodumuzu MicroPython ile yazmamız gerekiyor, bunun için resmi micro python web sitesinde verilen kılavuzu kullandık
Kılavuz yardımı ile aşağıdaki kod yapılır.
makineden içe aktarmadan Zaman içe aktarma uyku LED'inden Pin = Doğru iken Pin (2, Pin.OUT): LED.value (LED.value () değil) uyku (0.5)
Kod çok basit. İlk olarak Pin kitaplığını makineden içe aktarıyoruz. Pin sınıfı. Daha sonra, bir gecikme fonksiyonu yapmak için kullanılan zaman kitaplığını içe aktarmamız gerekiyor. Ardından, çıkış olarak Pin2'yi (ESP12E modülüne bağlı yerleşik LED) ayarladık. Ardından, LED'i 500ms gecikmeyle açıp kapattığımız bir süre döngüsü kurarız.
Kodu NodeMCU'ya bu şekilde yüklersiniz. Bunu yapmak için aşağıdaki ampy komutunu çalıştırmanız gerekir, ampy --port COM6 main.py'yi koy
Program düzeltilirse, aşağıda gösterildiği gibi yanıp sönen bir LED göreceksiniz.
Not: Kodu yüklerken, mevcut istem konumumu Masaüstüm olarak ayarladım, bu nedenle main.py dosyası için tam bir yol belirtmeme gerek kalmadı, eğer durum bu değilse, ana yolunuzun tam yolunu belirtmeniz gerekir..py dosyası.
Ardından, sıcaklık ve nem verilerimizi DHT22 Sensöründen almaya devam ediyoruz.
ESP8266'da MicroPython: DHT22 ile Sıcaklık ve Nem Alma
DHT22'nin NodeMCU ile arayüzlenmesi için şematik:
Bu proje için tam devre şeması aşağıda bulunabilir. Bu devreyi oluşturmak için fritzing kullandım.
Gördüğünüz gibi devre çok basittir ve jumper kabloları kullanılarak bir devre tahtası üzerine kolayca kurulabilir. Devrenin tamamı, NodeMCU üzerindeki mikro USB bağlantı noktası kullanılarak çalıştırılabilir. Donanım kurulumum aşağıda gösterilmektedir.
Kod:
Bir MicroPython kullanarak bir DHT22 veya DHT11 sensöründen sıcaklık ve nem verilerini almak çok kolaydır, çünkü daha önce kurduğumuz MicroPython ürün yazılımı yerleşik bir DHT kitaplığıyla birlikte gelir.
1. Kodumuza DHT kitaplığını ve pin kitaplığını makine sınıfından içe aktararak başlarız.
dht'yi makineden içe aktar Pinden içe aktar
2. Daha sonra, sensörümüzü taktığımız pime başvuran bir DHT nesnesi oluşturuyoruz.
sensör = dht.DHT22 (Pim (14))
3. Son olarak, sensör değerini ölçmek için aşağıdaki üç komutu kullanmalıyız.
sensor.measure () sensor.temperature () sensor.humidity ()
Son kod için, onu bir while döngüsüne koyarız ve kodumuzun sonunu gösteren değerleri yazdırırız. Ayrıca, DHT22 sensörünün herhangi bir veriyi okuyabilmesi için 2 saniyeye ihtiyacı vardır, bu yüzden 2 saniyelik bir gecikme eklememiz gerekir.
makineden içe aktarmalı Pin zamandan içe aktar uyku ithal dht dht22 = dht.DHT22 (Pin (14)) iken True: try: sleep (2) dht22.measure () temp = dht22.temperature () hum = dht22.humidity () print ('Sıcaklık:% 3.2f C'% sıcaklık) print ('Nem:% 3.2f %%'% hum) hariç OSError as e: print ('DHT22 sensöründen veri okunamadı.')
Kodlamayı bitirdiğimizde ampy komutu yardımıyla kodu yükleyebiliriz.
ampy --port COM6 main.py'yi koy
Kodu başarıyla uyguladıktan sonra, herhangi bir seri monitörde sıcaklık ve nem değerlerini izleyebilirsiniz. Macun kullandım ve aşağıda gördüğünüz gibi COM5 üzerinden sıcaklık ve nem değerlerini alabildim.
Umarım makaleyi beğenmişsinizdir ve faydalı bir şeyler öğrenmişsinizdir. Herhangi bir sorunuz varsa, bunları aşağıdaki yorum bölümünde bırakabilir veya diğer teknik sorularınızı göndermek için forumlarımızı kullanabilirsiniz.