Daftar Isi:

MicroPython IoT Rover Berdasarkan WEMOS D1 (ESP-8266EX): 7 Langkah (dengan Gambar)
MicroPython IoT Rover Berdasarkan WEMOS D1 (ESP-8266EX): 7 Langkah (dengan Gambar)

Video: MicroPython IoT Rover Berdasarkan WEMOS D1 (ESP-8266EX): 7 Langkah (dengan Gambar)

Video: MicroPython IoT Rover Berdasarkan WEMOS D1 (ESP-8266EX): 7 Langkah (dengan Gambar)
Video: Start Using Wemos D1 Mini NodeMCU WiFi ESP8266 module with Arduino 2024, Juli
Anonim
Image
Image
MicroPython IoT Rover Berdasarkan WEMOS D1 (ESP-8266EX)
MicroPython IoT Rover Berdasarkan WEMOS D1 (ESP-8266EX)

** Pembaruan: Saya memposting video baru untuk v2 dengan tombak **

Saya menyelenggarakan lokakarya Robotika untuk anak kecil dan saya selalu mencari platform yang ekonomis untuk membangun proyek yang menarik. Meskipun klon Arduino murah, ia menggunakan bahasa C/C++ yang tidak familiar bagi anak-anak. Selain itu, ia tidak memiliki WiFi bawaan yang merupakan keharusan untuk proyek IoT. Di sisi lain, sementara Raspberry Pi memiliki WIFI dan anak-anak dapat memprogramnya menggunakan Python, itu masih merupakan platform yang mahal untuk hanya mengontrol beberapa port GPIO untuk menghidupkan dan mematikan perangkat. Saya membutuhkan sesuatu di antaranya yang memiliki kemampuan WIFI dan Python. Tampaknya saya menemukan jawaban saya di MicroPython yang di-flash ke papan berbasis ESP8266 yang murah.

Apa itu Micropython?

Menurut situs webnya, MicroPython adalah implementasi yang ramping dan efisien dari bahasa pemrograman Python 3 yang mencakup sebagian kecil dari pustaka standar Python dan dioptimalkan untuk berjalan di mikrokontroler dan di lingkungan terbatas (seperti ESP8266). Ini pada dasarnya Python IDE pada sebuah chip. Salah satu manfaat utama adalah Anda dapat membuat kode dan mengubahnya dengan cepat menggunakan klien browser web yang disebut Webrepl. (Coba lakukan itu di Arduino.) Anda juga dapat melihat data sensor secara real-time di Webrepl alih-alih mengandalkan pencatatan data atau layar LED di Arduino.

Apa itu ESP8266?

Singkatnya, anggap saja sebagai Arduino dengan kemampuan jaringan built-in. Anda dapat menggunakan Arduino IDE untuk memprogram papan ESP8266 di C/C++ atau Anda dapat mem-flash-nya dengan NodeMCU atau MicroPython. Dalam proyek ini, saya akan mem-flash MicroPython ke papan ESP8266.

Saya memutuskan untuk mendapatkan WEMOS D1 yang didasarkan pada ESP8266-12EX untuk proyek sederhana ini di mana saya akan menavigasi mobil 2WD menggunakan browser web. Ada papan lain yang dirancang untuk MicroPython tetapi saya menginginkan sesuatu yang murah yang dapat saya buang jika tidak memenuhi kriteria saya. Seperti yang diharapkan, itu memenuhi semua persyaratan saya dan kemungkinan besar saya akan memasukkan WeMos dan Micropython ke dalam proyek masa depan.

Langkah 1: Bagian

Bagian
Bagian
Bagian
Bagian
Bagian
Bagian
Bagian
Bagian
  • Wemos D1 atau papan berbasis ESP8266 lainnya
  • Pelindung motor (saya menggunakan L293D murah dari AliExpress)
  • Dudukan baterai untuk 4 x AA dan 9V (baterai 4 x AA untuk motor dan 9V untuk papan Wemos)
  • Sasis mobil 2WD
  • Kabel Dupont

Mungkin perlu besi solder, obeng, dan lem untuk menyatukan semuanya.

Langkah 2: Perakitan Perangkat Keras

Perakitan Perangkat Keras
Perakitan Perangkat Keras
Perakitan Perangkat Keras
Perakitan Perangkat Keras
Perakitan Perangkat Keras
Perakitan Perangkat Keras

Pertama, rakit sasis sesuai dengan instruksi.

Kemudian, lem panas komponen lainnya seperti yang ditunjukkan.

Kabel motor harus disolder ke terminal motor dan menggunakan lem panas untuk memperkuat sambungan terminal.

Ditempelkan sakelar kecil ke dudukan baterai 4AA. Ini akan menghidupkan/mematikan daya ke pelindung motor.

Langkah 3: Pengkabelan

Pengkabelan
Pengkabelan
Pengkabelan
Pengkabelan
Pengkabelan
Pengkabelan

Ikuti diagram pengkabelan saya seperti yang ditunjukkan.

Wemos ke Perisai Motor:

D1 IN2

D2 IN1 D3 IN4 **lewati D4 D5 IN3 GND -> GND

Pelindung Motor ke Motor/Daya:

Terminal -> Motor Kiri

Terminal B -> VCC Motor Kanan -> Baterai (+) GND -> Baterai (-)

Langkah 4: Instalasi MicroPython

Pertama, Wemos memiliki chip serial/USB berbasis CH304G. Ini adalah chip yang sama yang ditemukan di klon Arduino murah dan Anda harus menginstal driver yang tepat untuk Mac atau PC. Ikuti petunjuk di situs ini untuk menginstal driver.

Hubungkan Wemos ke komputer Anda dan konfirmasikan bahwa komputer Anda dapat mendeteksi Wemos. Di Mac, jalankan perintah berikut dan Anda akan melihat perangkat bernama /dev/tty.wchusbserial640.

$ ls -lt /dev/tty* | kepala

crw-rw-rw- 1 root wheel 17, 4 Mar 2 23:31 /dev/tty.wchusbserial640

Jika Anda menggunakan PC, Anda dapat menggunakan Instruksi ini sebagai referensi.

Selanjutnya, Anda perlu mengatur Python 2 atau 3 di komputer Anda karena alat flash, esptool.py, didasarkan pada Python. Meskipun panduan MicroPython mungkin menyatakan bahwa alat ini hanya berfungsi dengan Python 2.7, saya dapat menjalankannya di Python 3 tanpa masalah. Unduh Python terbaru dari https://www.python.org dan ikuti petunjuk penginstalan untuk PC atau Mac Anda.

Terakhir, Anda perlu menginstal MicroPython di Wemos. Situs MicroPython memiliki tutorial yang sangat baik tentang cara mengatur MicroPython di ESP8266. Cukup ikuti petunjuk penginstalan di Memulai dengan MicroPython pada ESP8266.

Di bawah ini adalah perintah yang saya gunakan:

$ esptool.py --port /dev/tty.wchusbserial640 erase_flash

esptool.py v1.3 Menghubungkan…. Menjalankan rintisan flasher Cesanta… Menghapus flash (ini mungkin memakan waktu cukup lama)… Menghapus membutuhkan waktu 10,5 detik

$ esptool.py --port /dev/tty.wchusbserial640 write_flash -fm dio -fs 32m -ff 40m 0x00000 esp8266-20170108-v1.8.7.bin

esptool.py v1.3 Menghubungkan…. Menjalankan rintisan flasher Cesanta… Params flash disetel ke 0x0240 Menulis 589824 byte pada 0x0 dalam 50,8 detik (92,8 kbit/s)… Meninggalkan…

MicroPython sekarang terpasang di papan Anda!

Langkah 5: Siapkan Jaringan

Siapkan Jaringan
Siapkan Jaringan

Sementara MicroPython sekarang terinstal di Wemos Anda, itu belum terhubung ke jaringan Anda. Anda harus mengaktifkan jaringan terlebih dahulu. Di Mac, jalankan perintah SCREEN untuk memulai sesi terminal serial ke Wemos.

$ layar /dev/tty.wchusbserial640 115200

Saat Anda melihat layar kosong, tekan RETURN untuk melihat perintah:

>>

(Catatan: Untuk keluar, ketik CTRL-A CTRL-)

Sekarang, mari aktifkan akses klien web. Ketik "import webrepl_setup" untuk menjalankan program setup. Masukkan E untuk mengaktifkan WebREPL dan kemudian atur kata sandi. Reboot untuk mengaktifkan perubahan.

>>impor webrepl_setup

Status auto-start daemon WebREPL: dinonaktifkan Apakah Anda ingin (E)mengaktifkan atau (D)menonaktifkannya berjalan saat boot? (Baris kosong untuk keluar) > E Untuk mengaktifkan WebREPL, Anda harus mengatur kata sandinya Kata sandi baru: xxxxx Konfirmasi kata sandi: xxxxx Perubahan akan diaktifkan setelah reboot Apakah Anda ingin mem-boot ulang sekarang? (y/t) y

Terakhir, unduh klien Webrepl ke mesin Anda. Ini opsional tetapi klien dilengkapi dengan alat berguna lainnya yang mungkin ingin Anda gunakan nanti. Misalnya, webrepl_cli.py adalah perintah untuk menyalin file ke Wemos dalam sintaks seperti scp. Gunakan git untuk mengunduh klien. (Instal alat git jika Anda belum memilikinya.)

git clone

Buka browser web Anda dan pada kolom URL, masukkan lokasi lokasi file klien webrepl yang Anda unduh seperti:

file:///Users/xxxxx/wemos/webrepl/webrepl.html

Ini akan menampilkan klien webrepl di browser Anda. Sebelum Anda dapat menghubungkannya, Anda harus terlebih dahulu terhubung ke Titik Akses WiFi-nya. Jika Anda melihat WIFI yang tersedia untuk komputer Anda, Anda akan melihat jaringan dimulai dengan MicroPython-xxxx. Hubungkan ke jaringan itu. (Peringatan: Setelah Anda terhubung ke jaringan itu, Anda akan kehilangan akses Internet Anda.)

Kembali ke klien webrepl Anda dan klik Connect. Itu harus meminta kata sandi. Masukkan kata sandi Wemos Anda dan Anda harus terhubung.

Selamat datang di MicroPython!

Kata sandi: WebREPL terhubung >>>

Wemos Anda masih berjalan dalam Mode AccessPoint. Meskipun ini baik-baik saja, saya lebih suka menjalankannya dalam Mode Stasiun di mana ia terhubung ke WIFI rumah saya sehingga komputer saya dapat mengaksesnya melalui WIFI rumah dan masih memiliki akses Internet. Untuk melakukannya, Anda harus membuat file bernama boot.py dengan konfigurasi jaringan dan mengunggahnya ke Wemos.

Berikut ini adalah contoh boot.py. Ubah ssid dan kata sandi ke jaringan WIFI rumah Anda. Juga, saya ingin memberikan IP statis 192.168.0.32. Ubah ke alamat IP yang tersedia di WIFI rumah Anda.

boot.py (Anda dapat mengunduhnya dari bawah)

impor gc

import webrepl def do_connect(): import network sta_if = network. WLAN(network. STA_IF) if not sta_if.isconnected(): print('connecting to network…') sta_if.active(True) sta_if.ifconfig(('192.168. 0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1')) sta_if.connect('', '') while not sta_if.isconnected(): pass print('network config:', sta_if.ifconfig()) do_connect() webrepl.start() gc.collect()

Gunakan formulir "Kirim File" klien Webrepl untuk mengirim file boot.py Anda ke Wemos. Tekan tombol reset untuk mem-boot ulang. Jika Anda masih terhubung melalui USB menggunakan perintah SCREEN, Anda akan melihat:

menghubungkan ke jaringan… konfigurasi jaringan: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1') Daemon WebREPL dimulai pada ws://192.168.4.1:8266 Daemon WebREPL dimulai pada ws://192.168.0.32:8266 Memulai webrepl dalam mode normal tidak dapat membuka file 'main.py' untuk membaca MicroPython v1.8.7-7-gb5a1a20a3 pada 01-09-2017; Modul ESP dengan ESP8266 Ketik "help()" untuk informasi lebih lanjut. >>>

Ini memvalidasi bahwa Wemos Anda terhubung ke WIFI rumah Anda menggunakan alamat ipad 192.168.0.32.

Anda dapat melakukan ping ke alamat IP tersebut untuk memvalidasi.

$ping 192.168.0.32

PING 192.168.0.32 (192.168.0.32): 56 byte data

64 byte dari 192.168.0.32: icmp_seq=0 ttl=255 waktu=9.334 md 64 byte dari 192.168.0.32: icmp_seq=1 ttl=255 waktu=11.071 md..

Langkah 6: Instal Program Utama

Instal Program Utama
Instal Program Utama
Instal Program Utama
Instal Program Utama

Terakhir, Anda harus menginstal program utama yang akan terus berjalan di Wemos Anda.

Kembali ke browser web Anda dan jalankan program klien webrepl. Ubah alamat ip menjadi alamat IP Wemos Anda. Dalam kasus saya, sekarang 192.168.0.32. Masukkan kata sandi Wemos Anda dan Anda sekarang harus terhubung ke Wemos.

Mari kita upload program main.py terlampir. Unduh file terlampir ke komputer Anda. Klik Pilih File untuk memilih main.py yang diunduh dan dan klik Dikirim ke perangkat.

Anda harus menekan tombol Istirahat untuk memuat program main.py. Setelah menekan tombol Reset, Anda akan melihat:

menghubungkan ke jaringan…

konfigurasi jaringan: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1')

Daemon WebREPL dimulai pada ws://192.168.4.1:8266 Daemon WebREPL dimulai pada ws://192.168.0.32:8266 Memulai webrepl dalam mode normal Mendengarkan, hubungkan browser Anda ke …

Ini berarti program main.py Anda diaktifkan dan terdaftar ke port 80.

Untuk menguji, buka browser web Anda dan masukkan

Ini akan menampilkan layar kontrol mobil seperti yang ditunjukkan dalam video. Jika kabel Anda terhubung dengan benar, tombol kontrol akan mengirimkan sinyal yang tepat ke port GPIO Anda untuk memindahkan mobil.

Langkah 7: Perbaikan di Masa Depan

Item yang harus dilakukan berikut ada di daftar v2 saya:

  • Gunakan PWM untuk mengontrol kecepatan motor
  • Meningkatkan antarmuka web. Mungkin menggunakan kerangka kerja aREST. Saya tidak percaya aREST lib tersedia di MicroPython saat ini jadi saya mungkin harus meretasnya.

Terima kasih telah membaca Instruksi ini. Ikuti saya di Facebook, Youtube, dan Instructables untuk lebih banyak proyek di masa mendatang.

Direkomendasikan: