Daftar Isi:

Memulai Dengan Python untuk ESP8266 & ESP32: 6 Langkah
Memulai Dengan Python untuk ESP8266 & ESP32: 6 Langkah

Video: Memulai Dengan Python untuk ESP8266 & ESP32: 6 Langkah

Video: Memulai Dengan Python untuk ESP8266 & ESP32: 6 Langkah
Video: Getting started with esptool for ESP8266 & ESP32 2024, Juli
Anonim
Memulai Dengan Python untuk ESP8266 & ESP32
Memulai Dengan Python untuk ESP8266 & ESP32

Latar belakang

ESP8266 dan adiknya ESP32 adalah mikrochip Wi-Fi berbiaya rendah dengan tumpukan TCP/IP penuh dan kemampuan pengontrol mikro. Chip ESP8266 pertama kali menjadi perhatian komunitas pembuat pada tahun 2014. Sejak itu, harga rendah (<5 USD), kemampuan Wi-Fi-nya, memori flash internal 1 atau 4 MB, dan berbagai pengembangan yang tersedia papan, telah menjadikan chip ESP salah satu pengontrol mikro paling populer untuk proyek WiFi dan IoT DIY.

MicroPython adalah implementasi yang ramping dan efisien dari bahasa pemrograman Python yang semakin populer yang mencakup sebagian kecil dari pustaka standar Python dan dioptimalkan untuk berjalan di mikrokontroler.

Kombinasi keduanya adalah opsi yang sangat menarik untuk proyek DIY, baik untuk pemula maupun pengguna yang lebih mahir.

Proyek MiPy-ESP

Kembali pada tahun 2015 proyek pertama saya dengan ESP8266 dimulai dengan chip ESP-01 menggunakan Arudions untuk menjalankan perintah chip AT melalui koneksi serial. Setelah itu, selama beberapa tahun berikutnya saya menerapkan inti Arduino untuk ESP8266 untuk memprogram chip dengan bahasa C++. Ini berfungsi dengan baik, tetapi untuk penggemar Python, penemuan saya tentang implementasi MicroPython dari Python 3 adalah berita bagus.

Proyek MiPy-ESP adalah kerangka kerja fleksibel yang menerapkan MicroPython untuk proyek IoT Python tumpukan penuh pada pengontrol mikro keluarga ESP.

Kerangka kerja ini dikembangkan oleh Tim Pengembang Perangkat Lunak Komite Teknis LeGarage (LG-TC-SWDT-01) yang bertujuan untuk menggantikan kode berbasis C++ yang sudah ada untuk aplikasi mikrokontroler kami.

Proyek ini menyediakan fitur dasar seperti

  • Prosedur koneksi jaringan
  • Server web titik akses chip (untuk koneksi wifi dan penyajian halaman web chip untuk I/O data)
  • fungsi MQTT
  • Masuk/debug
  • Penjadwalan acara mikrokontroler
  • Rutinitas I/O perangkat keras

Dengan satu skrip kode ringkas utama (main.py), semuanya dengan konfigurasi global (config.py).

Kode mictocontroller ini berjalan dengan pemeliharaan koneksi chip yang kuat ke jaringan WiFi dan broker MQTT. Modul MicroPython yang ada untuk berbagai perangkat keras dapat dengan mudah diintegrasikan ke dalam sistem.

Kerangka kerja MiPy-ESP telah menjadi tulang punggung semua proyek IoT elektronik hobi kami yang melibatkan mikrokontroler keluarga ESP. Ini telah diuji pada beberapa papan keluarga ESP, seperti papan NodeMCU, Wemos dan Lolin.

Tutorial berikut adalah panduan tentang cara memulai mikrokontroler keluarga ESP dan MicroPython menggunakan kerangka kerja MiPy-ESP.

Langkah 1: Papan Wemos D1 Mini ESP8266

Papan Wemos D1 Mini ESP8266
Papan Wemos D1 Mini ESP8266
Papan Wemos D1 Mini ESP8266
Papan Wemos D1 Mini ESP8266
Papan Wemos D1 Mini ESP8266
Papan Wemos D1 Mini ESP8266
Papan Wemos D1 Mini ESP8266
Papan Wemos D1 Mini ESP8266

Kerangka kerja MiPy-ESP bekerja dengan sebagian besar mikrokontroler berbasis ESP8266.

Papan pengembangan mini Wemos D1 didasarkan pada chip ESP-8266EX. Pada tapak 2,5 x 3,5 cm, ia memiliki memori flash 4MB, 11 pin input/output digital, semua pin mendukung interupsi, PWM, I2C, SPI, serial dan 1 input analog dengan input maksimum 3.3V, dapat berjalan dengan daya 5V, memiliki koneksi micro USB dan kompatibel dengan papan tempat memotong roti. Harganya yang murah dan ukurannya yang kecil menjadikannya papan ESP favorit saya.

Selain itu, board versi D1 mini pro dilengkapi dengan opsi untuk menghubungkan antena eksternal, meningkatkan jangkauan koneksi secara signifikan (rentang +100 m). Selain itu, papan ini juga dilengkapi dengan berbagai papan papan ekstensi out-of-the-box dengan ukuran kompak yang serupa.

Langkah 2: Bersiap untuk MicroPython di Chip ESP

Bersiap untuk MicroPython di Chip ESP
Bersiap untuk MicroPython di Chip ESP

Pada langkah pertama ini, Anda akan

  • Hubungkan papan ESP melalui USB ke komputer Anda
  • Instal perangkat lunak Esptool untuk mem-flash chip
  • Hapus memori chip
  • Flash chip dengan firmware MicroPython
  • Instal Rshell untuk mengaktifkan interaksi baris perintah dengan chip Anda
  • Instal mpy-cross (untuk kompilasi file.py ke biner)

Menghubungkan board ke komputer Anda melalui USBBoards dengan port serial USB internal membuat UART tersedia untuk PC Anda dan merupakan pilihan termudah untuk memulai. Untuk papan tanpa koneksi USB, modul FTDI dengan USB ke serial dapat digunakan untuk menghubungkan pin GPIO untuk flashing yang terhubung ke dunia luar, tetapi ini tidak tercakup dalam tutorial ini.

Untuk MicroPython yang menggunakan kode MiPy-ESP, persyaratan minimum untuk ukuran flash chip adalah 1MB. Ada juga build khusus untuk papan dengan 512kB, tetapi ini tidak memiliki dukungan untuk sistem file, yang bergantung pada MiPy-ESP.

Saat menggunakan kabel USB, papan akan diberdayakan oleh komputer Anda saat terhubung. Ini juga memungkinkan untuk pemrograman dan debugging melalui koneksi serial. Saat kode proyek diunggah dan proyek Anda disebarkan, daya eksternal diterapkan melalui pin catu daya papan.

Menginstal EsptoolInformasi tentang perangkat lunak Esptool dapat ditemukan di repositori Esptool GitHub. Jika Anda ingin menggunakan Windows/Linux/OSX(MAC), tautan di atas juga mencakup itu. Paket Python dapat diinstal oleh

pip install esptool

Untuk pengguna Linux, paket untuk Esptool dipertahankan untuk Debian dan Ubuntu, dan juga dapat diinstal dengan

sudo apt install esptool

Menghapus memori flash ESP Dengan menggunakan Esptool, Anda kemudian menghapus memori flash ESP dengan perintah

esptool.py --port /dev/ttyUSB0 erase_flash

Mengunduh firmware MicroPytonFirmware MicroPython berada dalam file.bin yang dapat diunduh dari situs web MicroPython.

Cabang master proyek saat ini dari repo telah diuji dan beroperasi dengan Micropython v.1.12. Untuk memastikan keberhasilan dengan kerangka kerja MiPY-ESP, unduh file 'esp8266-20191220-v1.12.bin' dari tautan ini dan tulis firmware ke chip dengan perintah:

esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect 0 esp8266-20191220-v1.12.bin

Menginstal RshellPaket Rshell memungkinkan interaksi baris perintah dengan lingkungan MicroPython Anda yang diinstal pada chip. Itu dapat ditemukan di tautan ini. Rshell adalah shell sederhana yang berjalan pada host dan menggunakan REPL mentah MicroPython untuk mengirim potongan python ke pyboard untuk mendapatkan informasi sistem file, dan untuk menyalin file ke dan dari sistem file MicroPython. REPL adalah singkatan dari Read Evaluate Print Loop, dan merupakan nama yang diberikan untuk prompt MicroPython interaktif yang dapat Anda akses di ESP8266. Menggunakan REPL sejauh ini merupakan cara termudah untuk menguji kode Anda dan menjalankan perintah. Instal Rshell dengan perintah:

sudo pip install rshell

Menginstal kompiler mpy-cross MicroPython dapat diterapkan dengan file.py ascii yang diunggah ke sistem file chip. MicroPython juga mendefinisikan konsep file.mpy yang merupakan format file wadah biner yang menyimpan kode yang telah dikompilasi, dan yang dapat diimpor seperti modul.py normal. Dengan mengompilasi file.py ke.mpy, lebih banyak memori RAM akan tersedia untuk kode Anda yang sedang berjalan - dan ini diperlukan untuk memiliki modul inti yang berfungsi dari kerangka kerja MiPy-ESP.

Untuk penerapan kode MiPy-ESP, kompiler lintas MicroPython mpy-cross mengkompilasi skrip.py ke.mpy sebelum pengunggahan chip. Instal paket mpy-cross dengan instruksi di tautan ini. Atau, perintah mpy-cross dapat diinstal dengan perintah pip Python atau dijalankan dari jalur folder mpy-cross jika Anda mengkloning repositori MicroPython dari GitHub di sini.

Anda sekarang memiliki MicroPython dan semua alat yang diperlukan untuk memulai membangun proyek MiPy-ESP pertama Anda

Langkah 3: Memulai Dengan MiPy-ESP

Memulai Dengan MiPy-ESP
Memulai Dengan MiPy-ESP

Dalam langkah ini Anda akan

Unduh kerangka kerja MyPy-ESP

Mengunduh kerangka kerja MiPy-ESPProyek MiPy-ESP dapat ditemukan di GitHub dalam repositori kode ini. Dari GitHub Anda dapat mengunduh struktur file repositori, atau mengkloningnya ke komputer Anda dengan

git clone

Dengan repositori kode yang terinstal di komputer Anda, Anda sekarang memiliki semua modul kode yang Anda butuhkan untuk membangun proyek ESP IoT yang siap pakai. Detail lebih lanjut tentang kotak alat di langkah berikutnya.

Langkah 4: Arsitektur Kerangka MiPy-ESP

Arsitektur Kerangka MiPy-ESP
Arsitektur Kerangka MiPy-ESP

Dalam langkah ini Anda akan

pelajari tentang alur kerja kode MiPy-ESP

Arsitektur kode MiPy-ESP

Semua modul kerangka kerja Python ditemukan di folder /src dari repositori kode MiPY-ESP. Folder src/core berisi modul inti yang masuk ke setiap proyek. Folder src/drivers memiliki pilihan modul untuk berbagai perangkat keras yang akan dihubungkan ke chip Anda. Folder src/utilities berisi modul utilitas opsional untuk disertakan dalam proyek Anda.

File main.py dan config.py ditemukan di folder src/. Ini adalah file utama yang harus diedit untuk membangun proyek Anda:

config.py:

File ini adalah file konfigurasi global untuk proyek Anda. Ini memiliki berbagai pengaturan, semua dengan komentar deskriptif dalam file.

main.py:

Ini adalah skrip utama untuk loop kode mikrokontroler. Ini berisi kode khusus aplikasi dalam kerangka kerja. Saat chip boot, main.py menjalankan dan mengimpor semua modul yang bergantung pada proyek dengan input yang diberikan dari file config.py. Flowchart di atas menunjukkan tata letak skrip main.py.

Gambar di atas menjelaskan alur kerja main.py:

  1. Saat boot, kode mencoba untuk menghubungkan chip ke jaringan Wi-Fi Jaringan yang diterapkan sebelumnya dan kata sandinya (dienkripsi pada chip) disimpan dalam memori flash. SSID jaringan dan kata sandinya dapat disediakan dalam file wifi.json dengan format {" SSID1":"Kata Sandi", "SSID":"Kata Sandi2"}. Jaringan yang diberikan dalam file ini disimpan, kata sandi dienkripsi, dan file dihapus saat boot.
  2. Jika tidak ada jaringan yang sudah diketahui ditemukan, kode menyiapkan server web titik akses (AP)Server chip AP SSID dan kata sandi diatur dalam file config.py. Dengan masuk ke SSID chip, halaman web untuk masuk chip ke Wi-Fi disajikan di 192.168.4.1. Jaringan yang terdeteksi ditampilkan dalam menu, atau SSID dapat dimasukkan secara manual (jaringan tersembunyi) bersama dengan kata sandi Wi-Fi. Setelah koneksi chip berhasil ke Wi-Fi, server AP dimatikan dan kode main.py melanjutkan ke langkah berikutnya.
  3. Di bagian Pengaturan main.py,

    • fungsi untuk pekerjaan dan panggilan balik (panggilan balik MQTT dll.) dan acara reguler ditentukan.
    • Pekerjaan berjangka waktu berbeda untuk menjalankan fungsi diatur.
    • Klien broker MQTT didirikan
  4. Kode kemudian masuk ke loop mikrokontroler utama,

    • terus menerus memeriksa jaringan dan koneksi broker MQTT,
    • langganan MQTT,
    • I/O perangkat keras
    • dan pekerjaan terjadwal.
    • Setelah jaringan atau koneksi broker MQTT hilang, kode akan mencoba membangun kembali.

Langkah 5: Mempersiapkan Kode Proyek Anda

Mempersiapkan Kode Proyek Anda
Mempersiapkan Kode Proyek Anda
Mempersiapkan Kode Proyek Anda
Mempersiapkan Kode Proyek Anda

Dalam langkah ini Anda akan

  • pelajari tentang struktur file repositori MiPy-ESP
  • siapkan kode proyek Anda untuk pengunggahan chip

Struktur folder repositori Gambar di atas menjelaskan struktur folder repositori dan mencantumkan modul kerangka kerja saat ini. Proyek Anda adalah tahapan di folder src/. Modul kerangka kerja inti MiPy-ESP berada di src/core, modul utilitas opsional di src/utilitas dan modul perangkat keras di src/driver.

Sebagian besar perpustakaan perangkat keras MicroPython yang tersedia dapat masuk ke folder driver/ tanpa modifikasi apa pun. Semua driver yang ada diuji dengan kerangka kerja MiPy-ESP. Mengenai modul di folder utilitas/, lebih banyak akan ditambahkan saat mereka menjadi hidup.

Pementasan kode proyekKode khusus proyek Anda harus ditempatkan di folder src/. Sudah ada file main.py dan config.py yang bisa Anda edit. Salin juga utilitas proyek yang diinginkan dari src/utilities dan src/drivers ke src/.

Jika Anda ingin menyediakan jaringan Wi-Fi dan kata sandi yang diketahui ke chip, tambahkan file wifi.json ke src/.

Kompilasi dan persiapan untuk pengunggahan Makefile yang disediakan dapat diterapkan untuk menyiapkan file untuk ditransfer ke chip dengan mengkompilasi file.py di /src, mengkompilasi modul inti dan mentransfer file yang dikompilasi ke folder baru bernama build/ dengan perintah

membuat bangunan

File dalam build siap diunggah ke sistem file chip. Secara default, main.py dan config.py tidak dikompilasi ke biner, agar mudah mengaksesnya untuk pemeriksaan chip yang digunakan. Perintah:

bersihkan

Menghapus folder build/ dan isinya.

Langkah 6: Kompilasi dan Unggah Kode ke Mikrokontroler

Kompilasi dan Upload Kode ke Mikrokontroler
Kompilasi dan Upload Kode ke Mikrokontroler
Kompilasi dan Upload Kode ke Mikrokontroler
Kompilasi dan Upload Kode ke Mikrokontroler

Di bagian ini Anda akan

  • unggah file yang disiapkan di build/ dari bagian terakhir
  • mulai dan pantau kode yang sedang berjalan

Mengunggah build/ file dengan Rshell

Unggah semua file di direktori /build ke chip ESP menggunakan Rshell. Dengan mikrokontroler yang terhubung ke USB, dari folder build/ mulai Rshell dengan perintah

rshell -p /dev/ttyUSB0

Kemudian periksa file chip (jika ada) dengan

ls /pyboard

Semua file dalam chip dapat dihapus dengan

rm /pyboard/*.*

Salin semua file proyek di build/ ke chip:

cp *.* /pyboard

Kemudian mulai terminal Python interaktif dengan perintah

membalas

Anda sekarang dapat menjalankan perintah Python atau mengimpor modul dan memantau output serial chip dari modul logger MiPy-ESP.

Mulai ulang chip dengan menekan tombol reset, atau dari baris perintah dengan

impor utama

atau

mesin impor

lalu

mesin.reset()

Bergantung pada pengaturan logging/debug Anda di file konfigurasi proyek, repl sekarang akan menampilkan pesan debug dari chip ESP melalui koneksi serial.

Semoga ini bisa membantu Anda memulai.

Direkomendasikan: