- Apa itu MicroPython?
- Mengapa MicroPython untuk NodeMCU?
- Apa itu ESP8266 (NodeMCU)?
- Perkakasan Yang Digunakan
- Memasang Firmware MicroPython untuk ESP8266
- Berkomunikasi dengan NodeMCU dengan PuTTY
- Memuat naik Kod Blink LED Berasaskan Python menggunakan Ampy
- MicroPython pada ESP8266: Mendapatkan Suhu dan Kelembapan dengan DHT22
Bagi pemula yang berminat untuk memprogram mikrokontroler berkemampuan Wi-Fi seperti ESP8266, memahami persekitaran pengaturcaraan ESP-IDF atau Arduino IDE boleh menjadi tugas yang menakutkan, sintaksis bahasa C dan C ++ memerlukan lebih banyak pengetahuan mengenai sains komputer yang mana mengapa bahasa tersebut tidak selalu sesuai untuk pemula, jadi dalam artikel ini, kita akan belajar mengatur dan memprogramkan ESP8266 dengan MicroPython, dan akhirnya, kita akan mendapat data suhu dan kelembapan dari sensor suhu dan kelembapan DHT22 kegemaran kita. Sebelumnya kami juga telah membuat tutorial tentang cara memprogram ESP32 dengan Micro Python, anda juga dapat melihatnya jika berminat.
Apa itu MicroPython?
Kita boleh mengatakan MicroPython adalah versi python yang dicincang, yang direka untuk berfungsi dengan pengawal mikro dan sistem tertanam. Proses sintaks dan pengekodan MicroPython menyerupai python. Oleh itu, jika anda sudah mengetahui python, anda sudah tahu menulis kod anda menggunakan MicroPython. Sekiranya anda peminat Python anda boleh menyemak artikel ini.
MicroPython dikembangkan di UK, oleh ketua pasukan oleh Damion jones, dan mereka melancarkan Kickstarter ketika kembali, di mana mereka melancarkan sekumpulan papan pengembangan tertentu yang akan menjalankan firmware, yang membolehkan anda menjalankan MicroPython di atasnya, bahawa firmware kini telah dibawa untuk dijalankan pada ESP8266, yang dalam artikel ini anda akan pelajari.
Mengapa MicroPython untuk NodeMCU?
Python adalah salah satu bahasa pengaturcaraan yang paling banyak digunakan dan mudah dipelajari sehingga kini. Oleh itu, dengan pengenalan MicroPython, pengaturcaraan mikrokontroler berasaskan perkakasan menjadi sangat mudah. Sekiranya anda belum pernah memprogram mikrokontroler sebelumnya dan ingin mula belajar memprogram, MicroPython adalah permulaan yang baik.
MicroPython menggunakan versi perpustakaan standard Python yang dilucutkan, jadi semua pustaka standard tidak tersedia. Tetapi, MicroPython merangkumi modul yang mudah dan senang digunakan untuk berinteraksi dengan perkakasan yang bermaksud dengan bantuan MicroPython, membaca dan menulis ke daftar GPIO menjadi lebih mudah.
Objektif utama MicroPython adalah membuat pengawal mikro pengaturcaraan semudah mungkin, jadi ia dapat digunakan oleh siapa saja. Dengan MicroPython mengimport perpustakaan dan menulis kod menjadi mudah, kod yang ditunjukkan di bawah adalah contoh mudah yang mengedipkan LED papan papan NodeMCU, kami akan membincangkan kod tersebut secara terperinci selepas artikel.
dari mesin import Pin dari waktu import import LED = Pin (2, Pin.OUT) sementara True: LED.value (not LED.value ()) sleep (0.5)
Apa itu ESP8266 (NodeMCU)?
ESP8266 adalah modul Wi-Fi kos rendah, yang direka untuk aplikasi berkaitan Internet of Things (IoT).
Ia dilengkapi dengan pin input dan output tujuan umum (GPIO) dan ia juga menyokong pelbagai protokol yang biasa digunakan seperti SPI, I2C, UART, dan banyak lagi. Tetapi, ciri terkawal mikrokontroler ini ialah ia mempunyai Wi-Fi terbina dalam. Dengan itu, kita dapat menyambung ke mana-mana Wi-Fi 2.4GHz dengan mudah.
Sekarang asas-asasnya tidak dapat digunakan untuk beralih ke bahagian praktikal di mana kami akan menunjukkan kepada anda perkakasan yang diperlukan, dan proses pemasangan MicroPython pada ESP8266 IC.
Perkakasan Yang Digunakan
Senarai Bahan Yang Digunakan
- 1 x Papan Roti
- 1 x ESP8266 (NodeMCU)
- 1 x DHT22 (Sensor Suhu & Kelembapan)
- LED 1 x 3mm (Diod Pemancar Cahaya)
- Perintang 1 x 1K
- 5 x Jumper Wire
Memasang Firmware MicroPython untuk ESP8266
Terdapat dua cara untuk memasang firmware MicroPython ke ESP8266 dalam artikel ini. Kami akan membincangkan kedua-duanya, tetapi pertama, kami perlu memuat turunnya.
Memuat turun Firmware MicroPython untuk ESP8266:
Sebelum kita menyambungkan papan NodeMCU (ESP8266) ke PC kita, kita perlu memuat turun versi terbaru MicroPython setelah itu kita dapat memasang firmware di NodeMCU, anda boleh memuat turunnya dari halaman muat turun Micropython rasmi
Memasang Firmware MicroPython pada ESP8266:
Sebelum kita dapat memasang firmware ke ESP8266, kita perlu memastikan bahawa kita mempunyai pemacu yang betul untuk Penukar Serial USB ke, kebanyakan papan NodeMCU menggunakan IC penukar USB ke UART CP2102 dan itulah sebabnya kita perlu memuat turun dan memasang pemacu untuk penukar CP2102 USB ke UART, Setelah pemacu dimuat turun dan dipasang, kita perlu memuat turun esptool, yang merupakan alat berasaskan python yang dibuat untuk membaca dan menulis firmware pada ESP8266.
Cara termudah untuk mendapatkan Python adalah melalui Microsoft Store, dari sana anda perlu memuat turun dan memasang salinan Python. Setelah Python dipasang, kita dapat menggunakan perintah esptool install pip3 untuk memasang esptool. Prosesnya akan kelihatan seperti gambar di bawah.
Setelah dipasang, periksa untuk melihat sama ada anda mengakses esptool dari terminal arahan.
Untuk melakukannya, jalankan perintah, versi esptool.py jika anda mendapat tetingkap seperti gambar di bawah, anda berjaya memasang esptool pada PC Windows anda.
Dan jika anda menghadapi masalah untuk mengakses esptool dari tetingkap arahan, cuba tambahkan jalan pemasangan penuh ke pemboleh ubah persekitaran tingkap.
Mencari PORT yang diperuntukkan untuk NodeMCU Board:
Sekarang kita perlu mencari port yang diperuntukkan untuk papan NodeMCU, untuk melakukannya hanya masuk ke tetingkap pengurus peranti anda dan cari pilihan yang disebut Pelabuhan jika anda mengembangkan bahawa anda dapat mengetahui port yang berkaitan dengan papan NodeMCU. Bagi kami, ia seperti gambar yang ditunjukkan di bawah.
Memadamkan Memori Kilat ESP8266:
Sekarang kita telah mengetahui port COM bersekutu, kita dapat menyiapkan modul NodeMCU dengan menghapus memori kilat dari itu. Untuk melakukannya, perintah berikut digunakan, esptool.py --port COM6 erase_flash . Prosesnya akan kelihatan seperti gambar di bawah.
Memasang Firmware:
Menjalankan arahan berikut akan memasang binari MicroPython ke papan NodeMCU, setelah dipasang binari ini akan membolehkan kita memuat naik program python kita dan berkomunikasi dengan gelung Baca Evaluate dan Print
esptool.py --port COM6 --baud 460800 write_flash --flash_size = mengesan 0 esp8266-20200911-v1.13.bin
Prosesnya akan sama seperti gambar di bawah,
Harap maklum bahawa pada masa pemasangan, binari ada di desktop saya jadi saya mempunyai cd ke Desktop saya dan jalankan perintah.
Sekarang sudah selesai, sudah waktunya untuk berkomunikasi dengan papan dan sekelip mata LED.
Berkomunikasi dengan NodeMCU dengan PuTTY
Sekarang mari kita mulakan program Hello World pertama kita dengan menggunakan PuTTY, PuTTY untuk melakukannya, kita perlu menetapkan jenis sambungan sebagai Serial, seterusnya kita menetapkan garis Serial (dalam hal ini COM6), dan akhirnya, kita menetapkan Speed ke 115200 baud.
Sekiranya semuanya dilakukan dengan betul, tetingkap yang serupa dengan gambar di bawah akan muncul, dan kita dapat menuliskan kod kita dengan mudah, ia biasanya berfungsi seperti terminal iPython. Juga, kami telah menjalankan program hello world pertama kami yang hanya dua baris mudah, dan setelah kami memberikan pernyataan cetak kami, kami mendapat sambutan.
Memuat naik Kod Blink LED Berasaskan Python menggunakan Ampy
Mengakses MicroPython dengan bantuan terminal PuTTY adalah cara yang baik untuk berkomunikasi dengan modul ESP, tetapi cara lain yang mudah adalah dengan memuat naik kodnya adalah melalui alat Adafruit Ampy, untuk memasang ampy, kita hanya boleh menjalankan pipaf pemasangan adafruit- perintah ampy dan ia akan memasang ampy pada PC kita. Prosesnya akan kelihatan seperti gambar di bawah.
Setelah anda memilikinya, kami masih memerlukan maklumat kami mengenai port bersiri yang kami sambungkan. Dalam kes kami, ia adalah COM6. Sekarang kita hanya perlu menulis kod LED Blink kami dengan MicroPython, untuk itu, kami telah menggunakan panduan yang disediakan di laman web mikro python rasmi
Dengan bantuan panduan, kod berikut dibuat.
dari mesin import Pin dari waktu import import LED = Pin (2, Pin.OUT) sementara True: LED.value (not LED.value ()) sleep (0.5)
Kodnya sangat mudah. Pertama, kami mengimport perpustakaan Pin dari mesin. Kelas pin. Seterusnya, kita perlu mengimport perpustakaan waktu, yang digunakan untuk membuat fungsi penundaan. Seterusnya, kami menetapkan Pin2 (yang merupakan LED onboard yang terpasang pada modul ESP12E) sebagai output. Seterusnya, kami menyediakan gelung sementara di mana kami menghidupkan dan mematikan LED dengan kelewatan 500ms.
Begitulah cara anda memuat naik kod ke NodeMCU. Untuk melakukan itu, anda perlu menjalankan perintah ampy berikut, ampy --port COM6 let main.py
Sekiranya program dilaksanakan dengan betul, anda akan melihat LED berkelip seperti gambar di bawah.
Catatan: Semasa memuat naik kod, saya menetapkan lokasi permintaan semasa saya ke Desktop saya, jadi saya tidak perlu menentukan jalan penuh untuk fail main.py jika itu tidak berlaku kerana anda perlu menentukan jalan penuh untuk utama anda fail.py.
Seterusnya, kami terus mendapatkan data suhu dan kelembapan dari Sensor DHT22.
MicroPython pada ESP8266: Mendapatkan Suhu dan Kelembapan dengan DHT22
Skema untuk menghubungkan DHT22 dengan NodeMCU:
Gambarajah litar lengkap untuk projek ini boleh didapati di bawah. Saya telah menggunakan fritzing untuk membuat litar ini.
Seperti yang anda lihat, litarnya sangat mudah dan boleh dibina dengan mudah di atas papan roti menggunakan wayar jumper. Litar lengkap dapat dihidupkan menggunakan port mikro-USB di NodeMCU. Penyediaan perkakasan saya ditunjukkan di bawah.
Kod:
Sangat mudah untuk mendapatkan data suhu dan kelembapan dari sensor DHT22 atau DHT11 menggunakan MicroPython kerana firmware MicroPython yang kami pasang lebih awal dilengkapi dengan perpustakaan DHT terbina dalam.
1. Kami memulakan kod kami dengan mengimport perpustakaan DHT dan pustaka pin dari kelas mesin.
import dht dari Pin import mesin
2. Seterusnya, kami membuat objek DHT yang merujuk pada pin, di mana kami memasang sensor kami.
sensor = dht.DHT22 (Pin (14))
3. Akhirnya, untuk mengukur nilai sensor, kita harus menggunakan tiga perintah berikut.
sensor.measure () sensor. suhu () sensor. kelembapan ()
Untuk kod terakhir, kami memasukkannya dalam beberapa saat dengan dan mencetak nilai yang menandakan akhir kod kami. Juga, sensor DHT22 memerlukan 2 saat sebelum dapat membaca data apa pun jadi kita perlu menambahkan kelewatan 2 saat.
dari mesin import Pin dari masa import impor tidur dht dht22 = dht.DHT22 (Pin (14)) sementara Betul: cuba: tidur (2) dht22. ukuran () temp = dht22.temperature () hum = dht22.humidity () print ('Suhu:% 3.2f C'% temp) cetakan ('Kelembapan:% 3.2f %%'% hum) kecuali Kesalahan OS sebagai e: cetak ('Gagal membaca data dari sensor DHT22.')
Setelah selesai membuat pengekodan, kita boleh memuat naik kod dengan bantuan perintah ampy.
ampy --port COM6 let main.py
Setelah berjaya melaksanakan kod, anda dapat memantau nilai suhu dan kelembapan pada monitor bersiri mana pun. Saya telah menggunakan dempul dan seperti yang anda lihat di bawah, saya dapat menerima nilai suhu dan kelembapan pada COM5.
Semoga anda menikmati artikel itu dan mempelajari sesuatu yang berguna. Sekiranya anda mempunyai pertanyaan, anda boleh meninggalkannya di bahagian komen di bawah atau menggunakan forum kami untuk menghantar soalan teknikal lain.