Isi kandungan:

Bermula dengan Python untuk ESP8266 & ESP32: 6 Langkah
Bermula dengan Python untuk ESP8266 & ESP32: 6 Langkah

Video: Bermula dengan Python untuk ESP8266 & ESP32: 6 Langkah

Video: Bermula dengan Python untuk ESP8266 & ESP32: 6 Langkah
Video: Belajar MicroPython (ESP8266 / ESP32) | 6. PROGRAM MENYALAKAN LED DENGAN PUSH BUTTON 2024, Julai
Anonim
Bermula dengan Python untuk ESP8266 & ESP32
Bermula dengan Python untuk ESP8266 & ESP32

Bacground

ESP8266 dan adiknya ESP32 adalah mikrocip Wi-Fi kos rendah dengan timbunan TCP / IP penuh dan kemampuan pengawal mikro. Cip ESP8266 pertama kali mendapat perhatian komuniti pembuat pada tahun 2014. Sejak itu, harga rendah (<5 USD), kemampuan Wi-Fi, memori flash 1 atau 4 MB terpasang, dan pelbagai pengembangan yang tersedia papan, telah menjadikan cip ESP sebagai salah satu pengawal mikro yang paling popular untuk projek WiFi dan IoT DIY.

MicroPython adalah pelaksanaan yang ramping dan efisien dari bahasa pengaturcaraan Python yang semakin popular yang merangkumi sekumpulan kecil pustaka standard Python dan dioptimumkan untuk dijalankan pada mikrokontroler.

Kombinasi kedua-duanya adalah pilihan yang sangat menarik untuk projek DIY, baik untuk pemula dan pengguna yang lebih maju.

Projek MiPy-ESP

Kembali pada tahun 2015 projek pertama saya dengan ESP8266 bermula dengan cip ESP-01 menggunakan Arudions untuk menjalankan perintah cip AT melalui sambungan bersiri. Selepas itu, pada tahun-tahun berikutnya saya menggunakan teras Arduino untuk ESP8266 untuk memprogram cip dengan bahasa C ++. Ini berfungsi dengan baik, tetapi bagi peminat Python, penemuan saya mengenai pelaksanaan MicroPython Python 3 adalah berita baik.

Projek MiPy-ESP adalah kerangka fleksibel yang menerapkan MicroPython untuk projek Python IoT tumpukan penuh pada pengawal mikro keluarga ESP.

Rangka kerja ini dikembangkan oleh Pasukan Pembangun Perisian Jawatankuasa Teknikal LeGarage (LG-TC-SWDT-01) yang bertujuan untuk mengganti kod berdasarkan C ++ yang sudah ada untuk aplikasi mikrokontroler kami.

Projek ini menyediakan ciri-ciri asas seperti

  • Prosedur sambungan rangkaian
  • Pelayan web titik akses cip (untuk sambungan wifi dan penyediaan laman web cip untuk data I / O)
  • Fungsi MQTT
  • Pembalakan / penyahpepijatan
  • Penjadualan acara mikrokontroler
  • Rutin I / O perkakasan

Dengan satu skrip kod padat utama (main.py), semuanya dengan konfigurasi global (config.py).

Kod mikrokontroler ini dijalankan dengan penyelenggaraan sambungan cip yang kuat ke rangkaian WiFi dan broker MQTT. Modul MicroPython yang ada untuk pelbagai perkakasan dapat dengan mudah disatukan ke dalam sistem.

Rangka kerja MiPy-ESP telah menjadi tulang belakang semua projek IoT elektronik hobi kami yang melibatkan pengawal mikro keluarga ESP. Ia telah diuji pada beberapa papan keluarga ESP, seperti papan NodeMCU, Wemos dan Lolin.

Tutorial berikut adalah panduan untuk memulakan mikrokontroler keluarga ESP dan MicroPython menggunakan rangka 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

Rangka kerja MiPy-ESP berfungsi dengan kebanyakan mikrokontroler berasaskan ESP8266.

Papan pengembangan mini Wemos D1 berdasarkan cip ESP-8266EX. Pada jejak 2,5 x 3,5 cm, ia mempunyai memori kilat 4MB, 11 pin input / output digital, semua pin menyokong interrupt, input PWM, I2C, SPI, siri dan 1 analog dengan input maksimum 3.3V, dapat berjalan dengan daya 5V, mempunyai sambungan USB mikro dan serasi dengan papan roti. Harga yang rendah dan saiznya yang kecil menjadikannya papan ESP kegemaran saya.

Di samping itu, papan versi mini pro D1 dilengkapi dengan pilihan untuk menyambungkan antena luaran, meningkatkan jarak sambungan dengan ketara (jarak +100 m). Selain itu, papan ini juga dilengkapi dengan pelbagai jenis papan pemanjangan luar kotak dengan ukuran padat yang serupa.

Langkah 2: Bersedia untuk MicroPython pada ESP Chip

Bersedia untuk MicroPython pada ESP Chip
Bersedia untuk MicroPython pada ESP Chip

Pada langkah pertama ini, anda akan melakukannya

  • Sambungkan papan ESP melalui USB ke komputer anda
  • Pasang perisian Esptool untuk mem-flash cip
  • Padamkan memori cip
  • Kilat cip dengan firmware MicroPython
  • Pasang Rshell untuk membolehkan interaksi baris perintah dengan cip anda
  • Pasang mpy-cross (untuk penyusunan fail.py ke binari)

Menyambungkan papan ke komputer anda melalui USBBoards dengan port bersiri USB terbina dalam menjadikan UART tersedia untuk PC anda dan merupakan pilihan termudah untuk memulakan. Untuk papan tanpa sambungan USB, modul FTDI dengan USB ke siri boleh digunakan untuk menyambungkan pin GPIO untuk penyambungan kilat yang disambungkan ke dunia luar, tetapi ini tidak diliputi dalam tutorial ini.

Untuk MicroPython menggunakan kod MiPy-ESP, syarat minimum untuk saiz kilat cip adalah 1MB. Terdapat juga binaan khas untuk papan dengan 512kB, tetapi ini tidak menyokong sistem fail, yang bergantung pada MiPy-ESP.

Semasa menggunakan kabel USB, papan akan dikuasakan oleh komputer anda semasa disambungkan. Ini juga membolehkan pengaturcaraan dan penyahpepijatan melalui sambungan bersiri. Apabila kod projek dimuat naik dan projek anda dikerahkan, kuasa luaran digunakan di atas pin bekalan kuasa papan.

Memasang Esptool Maklumat mengenai perisian Esptool boleh didapati di repositori Esptool GitHub. Sekiranya anda ingin menggunakan Windows / Linux / OSX (MAC), pautan di atas juga merangkumi itu. Pakej Python boleh dipasang oleh

pip pasang esptool

Untuk pengguna Linux, pakej untuk Esptool dijaga untuk Debian dan Ubuntu, dan juga dapat dipasang dengan

sudo apt pasangkan esptool

Memadamkan memori kilat ESP Dengan menggunakan Esptool, anda kemudian memadamkan memori kilat ESP dengan arahan

esptool.py --port / dev / ttyUSB0 erase_flash

Memuat turun firmware MicroPyton Firmware MicroPython terdapat dalam fail.bin yang boleh dimuat turun dari laman web MicroPython.

Cawangan induk projek semasa repo telah diuji dan beroperasi dengan Micropython v.1.12. Untuk memastikan kejayaan dengan rangka kerja MiPY-ESP, muat turun fail 'esp8266-20191220-v1.12.bin' dari pautan ini dan tulis firmware ke cip dengan arahan:

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

Memasang RshellPakej Rshell membolehkan interaksi baris perintah dengan persekitaran MicroPython anda dipasang pada cip. Ia boleh didapati di pautan ini. Rshell adalah shell sederhana yang berjalan di host dan menggunakan MicroPython raw-REPL untuk menghantar potongan python ke papan py untuk mendapatkan maklumat sistem fail, dan menyalin fail ke dan dari sistem fail MicroPython. REPL adalah singkatan dari Read Evaluate Print Loop, dan merupakan nama yang diberikan kepada permintaan MicroPython interaktif yang boleh anda akses pada ESP8266. Menggunakan REPL adalah cara termudah untuk menguji kod anda dan menjalankan perintah. Pasang Rshell dengan arahan:

sudo pip pasang rshell

Memasang mpy-cross compiler MicroPython boleh digunakan dengan fail ascii.py yang dimuat naik ke sistem fail cip. MicroPython juga mentakrifkan konsep fail.mpy yang merupakan format fail kontena binari yang menyimpan kod yang dikompilasi, dan yang boleh diimport seperti modul.py biasa. Dengan menyusun fail.py ke.mpy, lebih banyak memori RAM akan tersedia untuk kod yang anda jalankan - dan ini diperlukan untuk memiliki modul teras rangka kerja MiPy-ESP yang berfungsi.

Untuk penyebaran kod MiPy-ESP, penyusun silang MicroPython mpy-cross menyusun skrip.py ke.mpy sebelum muat naik cip. Pasang pakej cross-mpy mengikut arahan dalam pautan ini. Sebagai alternatif, perintah mpy-cross boleh dipasang dengan perintah Python pip atau jalankan dari jalur folder mpy-cross jika anda mengklon repositori MicroPython dari GitHub di sini.

Anda kini telah memasang MicroPython dan semua alat yang diperlukan untuk memulakan dengan membina projek MiPy-ESP pertama anda

Langkah 3: Bermula dengan MiPy-ESP

Bermula dengan MiPy-ESP
Bermula dengan MiPy-ESP

Dalam langkah ini anda akan

Muat turun kerangka MyPy-ESP

Memuat turun rangka kerja MiPy-ESP Projek MiPy-ESP boleh didapati di GitHub di repositori kod ini. Dari GitHub anda boleh memuat turun struktur fail repositori, atau mengklonnya ke komputer anda dengan

git klon

Dengan repositori kod terpasang di komputer anda, anda kini mempunyai semua modul kod yang anda perlukan untuk membina projek ESP IoT yang luar biasa. Maklumat lebih lanjut mengenai kotak alat pada langkah seterusnya.

Langkah 4: Senibina Rangka Kerja MiPy-ESP

Senibina Rangka Kerja MiPy-ESP
Senibina Rangka Kerja MiPy-ESP

Dalam langkah ini anda akan

belajar mengenai aliran kerja kod MiPy-ESP

Senibina kod MiPy-ESP

Semua modul rangka Python terdapat dalam folder / src repositori kod MiPY-ESP. Folder src / core mengandungi modul teras yang masuk ke dalam setiap projek. Folder src / driver mempunyai pilihan modul untuk pelbagai perkakasan untuk disambungkan ke cip anda. Folder src / utiliti mengandungi modul utiliti pilihan untuk disertakan dalam projek anda.

Fail main.py dan config.py terdapat di src / folder. Ini adalah fail utama untuk diedit untuk membina projek anda:

config.py:

Fail ini adalah fail konfigurasi global untuk projek anda. Ini mempunyai pelbagai tetapan, semuanya dengan komen deskriptif dalam fail.

main.py:

Ini adalah skrip utama untuk gelung kod pengawal mikro. Ini mengandungi kod khusus aplikasi dalam kerangka. Setelah chip boot, main.py berjalan dan mengimport semua modul yang bergantung pada projek dengan input yang diberikan dari file config.py. Carta alir di atas menunjukkan susun atur skrip main.py.

Gambar di atas menerangkan aliran kerja main.py:

  1. Semasa boot, kod tersebut cuba menyambungkan cip ke rangkaian Wi-Fi Rangkaian yang telah digunakan sebelum ini dan kata laluan mereka (dienkripsi pada cip) disimpan dalam memori kilat. SSID rangkaian dan kata laluannya dapat disediakan dalam fail wifi.json dalam format {" SSID1 ":" Kata Laluan "," SSID ":" Kata Laluan2 "}. Rangkaian yang diberikan dalam fail ini disimpan, kata laluan dienkripsi, dan fail tersebut dihapus semasa boot.
  2. Sekiranya tidak ada yang tahu bahawa rangkaian dijumpai, kod tersebut menyediakan pelayan web titik akses (AP) SSID pelayan cip dan kata laluan ditetapkan dalam fail config.py. Dengan log masuk ke SSID cip, halaman web untuk log masuk cip ke Wi-Fi dilayan di 192.168.4.1. Rangkaian yang dijelaskan ditunjukkan dalam menu, atau SSID dapat dimasukkan secara manual (rangkaian tersembunyi) bersama dengan kata laluan Wi-Fi. Setelah berjaya menyambungkan cip ke Wi-Fi, pelayan AP dimatikan dan kod main.py meneruskan ke langkah seterusnya.
  3. Di bahagian Persediaan main.py,

    • fungsi untuk pekerjaan dan panggilan balik (dll. panggilan balik MQTT) dan acara biasa ditentukan.
    • Tugas berjangka berbeza untuk menjalankan fungsi ditetapkan.
    • Pelanggan broker MQTT ditubuhkan
  4. Kod kemudian masuk ke gelung pengawal mikro utama,

    • memeriksa rangkaian dan rangkaian broker MQTT secara berterusan,
    • Langganan MQTT,
    • perkakasan I / O
    • dan pekerjaan berjadual.
    • Setelah sambungan rangkaian atau broker MQTT terputus, kod tersebut cuba dibuat semula.

Langkah 5: Menyiapkan Kod Projek Anda

Menyiapkan Kod Projek Anda
Menyiapkan Kod Projek Anda
Menyiapkan Kod Projek Anda
Menyiapkan Kod Projek Anda

Dalam langkah ini anda akan

  • belajar mengenai struktur fail repositori MiPy-ESP
  • sediakan kod projek anda untuk muat naik cip

Struktur folder repositoriRajah di atas menerangkan struktur folder repositori dan menyenaraikan modul kerangka semasa. Projek anda berperingkat dalam src / folder. Modul kerangka Core MiPy-ESP berada di src / core, modul utiliti pilihan di src / utiliti dan modul perkakasan di src / driver.

Sebilangan besar perpustakaan perkakasan MicroPython yang tersedia boleh masuk ke pemacu / folder tanpa sebarang pengubahsuaian. Semua pemacu yang ada diuji dengan rangka kerja MiPy-ESP. Mengenai modul dalam utiliti / folder, lebih banyak akan ditambahkan ketika mereka hidup.

Tahap kod projek Kod khusus projek anda harus diletakkan di folder src /. Sudah ada, terdapat fail main.py dan config.py yang boleh anda edit. Salin juga utiliti projek yang dikehendaki dari src / utiliti dan src / driver ke src /.

Sekiranya anda ingin menyediakan rangkaian dan kata laluan Wi-Fi yang diketahui ke cip, tambahkan fail wifi.json ke src /.

Menyusun dan mempersiapkan untuk memuat naikMasfile yang disediakan dapat digunakan untuk menyiapkan fail untuk dipindahkan ke cip dengan menyusun fail.py di / src, menyusun modul inti dan memindahkan fail yang disusun ke folder baru bernama build / oleh perintah

membuat binaan

Fail dalam binaan siap dimuat naik ke sistem fail cip. Secara lalai, main.py dan config.py tidak dikompilasi ke binari, untuk mengaksesnya dengan mudah untuk pemeriksaan cip yang digunakan. Arahan:

buat bersih

Memadamkan binaan / folder dan kandungannya.

Langkah 6: Menyusun dan Memuat Naik Kod ke Pengawal Mikro

Menyusun dan Memuat Naik Kod ke Pengawal Mikro
Menyusun dan Memuat Naik Kod ke Pengawal Mikro
Menyusun dan Memuat Naik Kod ke Pengawal Mikro
Menyusun dan Memuat Naik Kod ke Pengawal Mikro

Di bahagian ini anda akan

  • muat naik fail yang telah siap di bina / dari bahagian terakhir
  • mulakan dan pantau kod yang sedang berjalan

Memuat naik binaan / fail dengan Rshell

Muat naik semua fail dalam direktori / bina ke cip ESP menggunakan Rshell. Dengan mikrokontroler disambungkan ke USB, dari build / folder mulakan Rshell dengan perintah

rshell -p / dev / ttyUSB0

Kemudian periksa fail cip (jika ada) dengan

ls / papan papan

Semua fail pada cip boleh dihapuskan oleh

rm /pyboard/*.*

Salin semua fail projek dalam binaan / ke cip:

cp *. * / papan papan

Kemudian mulakan terminal Python interaktif dengan arahan

pengganti

Anda kini boleh memanggil perintah Python atau mengimport modul dan memantau output siri cip dari modul logger MiPy-ESP.

Mulakan semula cip dengan menekan butang set semula, atau dari baris arahan oleh

import utama

atau

mesin import

dan kemudian

mesin.set semula ()

Bergantung pada tetapan log / debug anda dalam fail konfigurasi projek, pengganti sekarang akan menunjukkan mesej debug dari cip ESP melalui sambungan bersiri.

Ini semoga anda dapat memulakannya.

Disyorkan: