- Apa itu MicroPython?
- Mengapa MicroPython untuk NodeMCU?
- Apa itu ESP8266 (NodeMCU)?
- Perangkat Keras yang Digunakan
- Menginstal Firmware MicroPython untuk ESP8266
- Berkomunikasi dengan NodeMCU dengan PuTTY
- Mengunggah Kode Kedip LED Berbasis Python menggunakan Ampy
- MicroPython di ESP8266: Mendapatkan Suhu dan Kelembaban dengan DHT22
Untuk pemula yang tertarik dalam pemrograman mikrokontroler berkemampuan Wi-Fi seperti ESP8266, memahami lingkungan pemrograman ESP-IDF atau Arduino IDE bisa menjadi tugas yang menakutkan, sintaks samar bahasa C dan C ++ membutuhkan lebih banyak pengetahuan tentang ilmu komputer yang mengapa bahasa tersebut tidak selalu ramah untuk pemula, maka pada artikel ini, kita akan belajar mengatur dan memprogram ESP8266 dengan MicroPython, dan terakhir, kita akan mendapatkan data suhu dan kelembaban dari sensor suhu dan kelembaban DHT22 favorit kita. Sebelumnya kami juga telah membuat tutorial tentang cara memprogram ESP32 dengan Micro Python, Anda juga dapat memeriksanya jika tertarik.
Apa itu MicroPython?
Kita dapat mengatakan MicroPython adalah versi python yang dipotong dadu, dirancang untuk bekerja dengan mikrokontroler dan sistem tertanam. Sintaks dan proses pengkodean MicroPython menyerupai python. Jadi, jika Anda sudah tahu python, Anda sudah tahu cara menulis kode Anda menggunakan MicroPython. Jika Anda adalah penggemar Python, Anda dapat memeriksa artikel ini.
MicroPython dikembangkan di Inggris, oleh tim yang dipimpin oleh Damion jones, dan mereka meluncurkan Kickstarter beberapa waktu lalu, di mana mereka meluncurkan satu set papan pengembangan tertentu yang akan menjalankan firmware, yang memungkinkan Anda untuk menjalankan MicroPython di atasnya, itu Firmware sekarang telah di-porting untuk dijalankan di ESP8266, yang akan Anda pelajari di artikel ini.
Mengapa MicroPython untuk NodeMCU?
Python adalah salah satu bahasa pemrograman yang paling banyak digunakan dan mudah dipelajari hingga saat ini. Jadi, dengan diperkenalkannya MicroPython, pemrograman mikrokontroler berbasis perangkat keras menjadi sangat mudah. Jika Anda belum pernah memprogram mikrokontroler sebelumnya dan ingin mulai belajar membuat program, MicroPython adalah permulaan yang baik.
MicroPython menggunakan versi pustaka standar Python yang dilucuti, jadi semua pustaka standar tidak tersedia. Tapi, MicroPython memang menyertakan modul sederhana dan mudah digunakan untuk berinteraksi dengan perangkat keras yang berarti dengan bantuan MicroPython, membaca dan menulis ke register GPIO menjadi jauh lebih mudah.
Tujuan akhir dari MicroPython adalah membuat pemrograman mikrokontroler sesederhana mungkin, sehingga dapat digunakan oleh siapa saja. Dengan pustaka impor MicroPython dan penulisan kode menjadi mudah, kode yang ditunjukkan di bawah ini adalah contoh sederhana yang mengedipkan LED onboard dari papan NodeMCU, kita akan membahas kode secara detail setelah artikel.
dari mesin impor Pin dari waktu impor tidur LED = Pin (2, Pin.OUT) sementara Benar: LED.value (bukan LED.value ()) sleep (0,5)
Apa itu ESP8266 (NodeMCU)?
ESP8266 adalah modul Wi-Fi berbiaya rendah, dirancang untuk aplikasi terkait Internet of Things (IoT).
Muncul dengan pin input dan output tujuan umum (GPIO) dan juga mendukung berbagai protokol yang umum digunakan seperti SPI, I2C, UART, dan banyak lagi. Tapi, fitur paling keren dari mikrokontroler ini adalah ia memiliki Wi-Fi built-in. Dengan itu, kita dapat terhubung ke Wi-Fi 2.4GHz dengan sangat mudah.
Sekarang dasar-dasarnya sudah keluar dari jalan kita dapat beralih ke bagian praktis di mana kami akan menunjukkan kepada Anda perangkat keras yang diperlukan, dan proses menginstal MicroPython pada IC ESP8266.
Perangkat Keras yang Digunakan
Daftar Bahan yang Digunakan
- 1 x Papan tempat memotong roti
- 1 x ESP8266 (NodeMCU)
- 1 x DHT22 (Sensor Suhu & Kelembaban)
- 1 x 3mm LED (Light Emitting Diode)
- 1 x 1K Resistor
- 5 x Kawat Jumper
Menginstal Firmware MicroPython untuk ESP8266
Ada dua cara untuk menginstal firmware MicroPython ke ESP8266 di artikel ini. Kami akan berbicara tentang keduanya, tetapi pertama-tama, kami perlu mendownloadnya.
Mengunduh Firmware MicroPython untuk ESP8266:
Sebelum kita menghubungkan board NodeMCU (ESP8266) ke PC kita, kita perlu mengunduh MicroPython versi terbaru setelah itu kita dapat menginstal firmware di NodeMCU, Anda dapat mengunduhnya dari halaman unduhan resmi Micropython
Menginstal Firmware MicroPython di ESP8266:
Sebelum kita dapat menginstal firmware ke ESP8266, kita perlu memastikan bahwa kita memiliki drive yang tepat untuk Konverter USB ke Serial, sebagian besar papan NodeMCU menggunakan IC konverter USB ke UART CP2102, itulah sebabnya kita perlu mengunduh dan menginstal driver untuk konverter USB ke UART CP2102, Setelah drive diunduh dan diinstal, kita perlu mengunduh esptool, yang merupakan alat berbasis python yang dibuat untuk membaca dan menulis firmware pada ESP8266.
Cara termudah untuk mendapatkan Python adalah melalui Microsoft Store, dari sana Anda perlu mengunduh dan menginstal salinan Python. Setelah Python diinstal, kita dapat menggunakan perintah pip3 install esptool untuk menginstal esptool. Prosesnya akan terlihat seperti gambar di bawah ini.
Setelah terinstal, periksa untuk melihat apakah Anda mengakses esptool dari terminal perintah.
Untuk melakukannya, cukup jalankan perintah, esptool.py version jika Anda mendapatkan jendela seperti gambar di bawah ini, Anda telah berhasil menginstal esptool di PC Windows Anda.
Dan jika Anda mengalami masalah saat mengakses esptool dari jendela perintah, coba tambahkan jalur instalasi lengkap ke variabel lingkungan windows.
Menemukan PORT yang Dialokasikan untuk Papan NodeMCU:
Sekarang kita perlu mencari port yang dialokasikan untuk papan NodeMCU, untuk melakukannya cukup masuk ke jendela pengelola perangkat Anda dan cari opsi yang disebut Port jika Anda memperluas sehingga Anda dapat mengetahui port yang terkait dengan papan NodeMCU. Bagi kami, ini terlihat seperti gambar di bawah ini.
Menghapus Memori Flash ESP8266:
Sekarang kita telah menemukan port COM associate, kita dapat menyiapkan modul NodeMCU dengan menghapus memori flashnya. Untuk melakukannya, perintah berikut digunakan, esptool.py --port COM6 erase_flash . Prosesnya akan terlihat seperti gambar di bawah ini.
Menginstal Firmware:
Menjalankan perintah berikut akan menginstal biner MicroPython ke papan NodeMCU, setelah menginstal biner ini akan memungkinkan kita untuk mengunggah program python dan berkomunikasi dengan loop Baca Evaluasi dan Cetak .
esptool.py --port COM6 --baud 460800 write_flash --flash_size = mendeteksi 0 esp8266-20200911-v1.13.bin
Prosesnya akan terlihat seperti gambar di bawah ini,
Harap dicatat bahwa pada saat instalasi, biner ada di desktop saya jadi saya memiliki cd ke Desktop saya dan menjalankan perintah.
Sekarang selesai, waktunya untuk berkomunikasi dengan papan dan mengedipkan beberapa LED.
Berkomunikasi dengan NodeMCU dengan PuTTY
Sekarang mari kita mulai program Hello World pertama kita dengan menggunakan PuTTY, PuTTY untuk melakukannya kita perlu mengatur jenis koneksi sebagai Serial, selanjutnya kita mengatur garis Serial (Dalam kasus kita COM6), dan terakhir, kita mengatur Kecepatan ke 115200 baud.
Jika semuanya dilakukan dengan benar, sebuah jendela yang mirip dengan gambar di bawah akan muncul, dan kita dapat dengan mudah menulis kode kita ke dalamnya, biasanya bekerja seperti terminal iPython. Juga, kami telah menjalankan program hello world pertama kami yang hanya terdiri dari dua baris sederhana, dan setelah kami meletakkan pernyataan cetak kami, kami mendapat tanggapan kami.
Mengunggah Kode Kedip LED Berbasis 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 mengunggah kode adalah melalui alat Adafruit Ampy, untuk menginstal ampy, kita cukup menjalankan pip3 sederhana menginstal adafruit- perintah ampy dan itu akan menginstal ampy pada PC kita. Prosesnya akan terlihat seperti gambar di bawah ini.
Sekarang setelah Anda memiliki ini, kami masih membutuhkan informasi kami tentang port serial tempat kami terhubung. Dalam kasus kami, ini adalah COM6. Sekarang kita tinggal menulis kode LED Blink kita dengan MicroPython, untuk itu kita telah menggunakan panduan yang disediakan di situs resmi micro python.
Dengan bantuan panduan, kode berikut dibuat.
dari mesin impor Pin dari waktu impor tidur LED = Pin (2, Pin.OUT) sementara Benar: LED.value (bukan LED.value ()) sleep (0,5)
Kodenya sangat sederhana. Pertama, kami mengimpor pustaka Pin dari mesin. Pin kelas. Selanjutnya, kita perlu mengimpor pustaka waktu, yang digunakan untuk membuat fungsi penundaan. Selanjutnya, kami menetapkan Pin2 (yang merupakan LED onboard yang terpasang ke modul ESP12E) sebagai output. Selanjutnya, kami menyiapkan loop sementara di mana kami menghidupkan dan mematikan LED dengan penundaan 500ms.
Begitulah cara Anda mengunggah kode ke NodeMCU. Untuk melakukan itu, Anda perlu menjalankan perintah ampy berikut, ampy --port COM6 letakkan main.py
Jika program yang dijalankan diperbaiki, Anda akan melihat LED berkedip seperti yang ditunjukkan di bawah ini.
Catatan: Saat mengunggah kode, saya menetapkan lokasi prompt saya saat ini ke Desktop saya, jadi saya tidak perlu menentukan jalur lengkap untuk file main.py jika itu tidak terjadi karena Anda perlu menentukan jalur lengkap untuk utama Anda file.py.
Selanjutnya, kita melanjutkan untuk mendapatkan data suhu dan kelembaban dari Sensor DHT22.
MicroPython di ESP8266: Mendapatkan Suhu dan Kelembaban dengan DHT22
Skema untuk menghubungkan DHT22 dengan NodeMCU:
Diagram sirkuit lengkap untuk proyek ini dapat ditemukan di bawah. Saya telah menggunakan fritzing untuk membuat sirkuit ini.
Seperti yang Anda lihat, rangkaian ini sangat sederhana dan dapat dengan mudah dibangun di atas papan tempat memotong roti menggunakan kabel jumper. Sirkuit lengkap dapat diberi daya menggunakan port micro-USB di NodeMCU. Pengaturan perangkat keras saya ditunjukkan di bawah ini.
Kode:
Sangat mudah untuk mendapatkan data suhu dan kelembaban dari sensor DHT22 atau DHT11 menggunakan MicroPython karena firmware MicroPython yang kami instal sebelumnya dilengkapi dengan pustaka DHT bawaan.
1. Kami memulai kode kami dengan mengimpor pustaka DHT dan pustaka pin dari kelas mesin.
impor dht dari Pin impor mesin
2. Selanjutnya, kita buat objek DHT yang mengacu pada pin, tempat kita memasang sensor kita.
sensor = dht.DHT22 (Pin (14))
3. Terakhir, untuk mengukur nilai sensor, kita harus menggunakan tiga perintah berikut.
sensor.measure () sensor.temperature () sensor.humidity ()
Untuk kode terakhir, kami memasukkannya ke dalam loop sementara dan mencetak nilai yang menandai akhir kode kami. Selain itu, sensor DHT22 memerlukan waktu 2 detik sebelum dapat membaca data apa pun sehingga kami perlu menambahkan penundaan selama 2 detik.
dari mesin impor Pin dari impor waktu tidur impor dht dht22 = dht.DHT22 (Pin (14)) sedangkan True: coba: tidur (2) dht22.measure () temp = dht22.temperature () hum = dht22.humidity () print ('Temperature:% 3.2f C'% temp) print ('Humidity:% 3.2f %%'% hum) kecuali OSError as e: print ('Gagal membaca data dari sensor DHT22.')
Setelah kita selesai membuat kode, kita dapat mengunggah kode dengan bantuan perintah ampy.
ampy --port COM6 letakkan main.py
Setelah berhasil menjalankan kode, Anda dapat memantau nilai suhu dan kelembapan pada monitor serial 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 ini dan mempelajari sesuatu yang bermanfaat. Jika Anda memiliki pertanyaan, Anda dapat meninggalkannya di bagian komentar di bawah ini atau gunakan forum kami untuk memposting pertanyaan teknis lainnya.