Isi kandungan:

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: MicroPython IoT Rover Based on WeMos D1 (ESP-8266EX) 2024, Julai
Anonim
Image
Image
MicroPython IoT Rover Berdasarkan WEMOS D1 (ESP-8266EX)
MicroPython IoT Rover Berdasarkan WEMOS D1 (ESP-8266EX)

** Kemas kini: Saya menyiarkan video baru untuk v2 dengan tombak **

Saya menganjurkan bengkel Robotik untuk anak-anak kecil dan saya selalu mencari platform ekonomi untuk membina projek menarik. Walaupun klon Arduino murah, ia menggunakan bahasa C / C ++ yang tidak biasa dilakukan oleh anak-anak. Juga, ia tidak mempunyai WiFi bawaan yang mustahak untuk projek IoT. Sebaliknya, sementara Raspberry Pi memiliki WIFI dan anak-anak dapat memprogramnya menggunakan Python, ia masih merupakan platform yang mahal untuk hanya mengawal beberapa port GPIO untuk menghidupkan dan mematikan peranti. Saya memerlukan sesuatu di antara yang mempunyai kemampuan WIFI dan Python. Nampaknya saya mendapat jawapan dalam MicroPython ke papan berasaskan ESP8266 yang murah.

Apa itu Micropython?

Menurut laman webnya, MicroPython adalah pelaksanaan bahasa pengaturcaraan Python 3 yang ramping dan cekap yang merangkumi subkumpulan kecil pustaka standard Python dan dioptimumkan untuk dijalankan pada mikrokontroler dan dalam lingkungan yang terbatas (seperti ESP8266). Ini pada dasarnya Python IDE pada cip. Satu faedah utama ialah anda dapat membuat kod dan mengubahnya dengan cepat menggunakan klien penyemak imbas web yang disebut Webrepl. (Cuba lakukan itu di Arduino.) Anda juga dapat melihat data sensor secara real-time di Webrepl dan bukannya bergantung pada log data atau skrin LED di Arduino.

Apa itu ESP8266?

Pendek kata, anggap ia sebagai Arduino dengan kemampuan rangkaian terbina dalam. Anda boleh menggunakan Arduino IDE untuk memprogram papan ESP8266 di C / C ++ atau anda boleh mem-flashnya dengan NodeMCU atau MicroPython. Dalam projek ini, saya akan memasang MicroPython ke papan ESP8266.

Saya memutuskan untuk mendapatkan WEMOS D1 berdasarkan ESP8266-12EX untuk projek mudah ini di mana saya akan menavigasi kereta 2WD menggunakan penyemak imbas web. Terdapat papan lain yang direka untuk MicroPython tetapi saya mahukan sesuatu yang murah yang boleh saya buang jika ia tidak memenuhi kriteria saya. Seperti yang dijangkakan, ia memenuhi semua keperluan saya dan kemungkinan besar saya akan memasukkan WeMos dan Micropython ke dalam projek masa depan.

Langkah 1: Bahagian

Bahagian
Bahagian
Bahagian
Bahagian
Bahagian
Bahagian
Bahagian
Bahagian
  • Wemos D1 atau papan berasaskan ESP8266
  • Perisai motor (Saya menggunakan L293D murah dari AliExpress)
  • Pemegang bateri untuk 4 x AA dan 9V (bateri 4 x AA untuk motor dan 9V untuk papan Wemos)
  • Casis kereta 2WD
  • Kabel Dupont

Mungkin memerlukan besi pematerian, pemutar skru dan pistol gam untuk menyatukan semuanya.

Langkah 2: Pemasangan Perkakasan

Pemasangan Perkakasan
Pemasangan Perkakasan
Pemasangan Perkakasan
Pemasangan Perkakasan
Pemasangan Perkakasan
Pemasangan Perkakasan

Pertama, pasangkan casis mengikut arahan.

Kemudian, panaskan komponen lain seperti yang ditunjukkan.

Kabel motor harus disolder ke terminal motor dan menggunakan gam panas untuk menguatkan sendi terminal.

Memasang suis kecil ke pemegang bateri 4AA. Ini akan menghidupkan / mematikan kuasa ke pelindung motor.

Langkah 3: Pendawaian

Pendawaian
Pendawaian
Pendawaian
Pendawaian
Pendawaian
Pendawaian

Ikuti rajah pendawaian saya seperti yang ditunjukkan.

Wemos ke Perisai Motor:

D1 IN2

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

Perisai Motor ke Motor / Kuasa:

Terminal -> Motor Kiri

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

Langkah 4: Pemasangan MicroPython

Pertama, Wemos mempunyai cip siri / USB berdasarkan CH304G. Ini adalah cip yang sama dengan klon Arduino yang murah dan anda mesti memasang pemacu yang sesuai untuk Mac atau PC. Ikuti arahan di laman web ini untuk memasang pemacu.

Sambungkan Wemos ke komputer anda dan sahkan bahawa komputer anda dapat mengesan Wemos. Pada Mac, jalankan arahan berikut dan anda akan melihat peranti bernama /dev/tty.wchusbserial640.

$ ls -lt / dev / tty * | kepala

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

Sekiranya anda menggunakan PC, anda boleh menggunakan Instructable ini sebagai rujukan.

Seterusnya, anda perlu menyediakan Python 2 atau 3 di komputer anda kerana alat flash, esptool.py, berdasarkan Python. Walaupun panduan MicroPython mungkin menyatakan bahawa alat ini hanya berfungsi dengan Python 2.7, saya dapat menjalankannya di Python 3 tanpa masalah. Muat turun Python terkini dari https://www.python.org dan ikuti arahan pemasangan untuk PC atau Mac anda.

Terakhir, anda perlu memasang MicroPython di Wemos. Laman web MicroPython mempunyai tutorial yang sangat baik mengenai cara menyediakan MicroPython pada ESP8266. Cukup ikuti arahan pemasangan di Bermula dengan MicroPython pada ESP8266.

Berikut adalah arahan yang saya gunakan:

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

esptool.py v1.3 Menyambung…. Menjalankan Cesanta flasher stub… Menghapus denyar (ini mungkin memerlukan sedikit masa)… Erase mengambil masa 10.5 saat

$ 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 Menyambung…. Menjalankan Cesanta flasher stub… Flash paramet ditetapkan ke 0x0240 Menulis 589824 bait pada 0x0 dalam 50.8 saat (92.8 kbit / s)… Meninggalkan…

MicroPython kini dipasang di papan anda!

Langkah 5: Siapkan Rangkaian

Rangkaian Persediaan
Rangkaian Persediaan

Walaupun MicroPython kini dipasang di Wemos anda, ia belum disambungkan ke rangkaian anda. Anda perlu mengaktifkan rangkaian terlebih dahulu. Pada Mac, jalankan arahan SCREEN untuk memulakan sesi terminal bersiri ke Wemos.

$ skrin /dev/tty.wchusbserial640 115200

Apabila anda melihat skrin kosong, tekan RETURN untuk melihat arahan:

>>

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

Sekarang, mari aktifkan akses pelanggan web. Ketik "import webrepl_setup" untuk menjalankan program persediaan. Masukkan E untuk mengaktifkan WebREPL dan kemudian tetapkan kata laluan. But semula untuk mengaktifkan perubahan.

>> import webrepl_setup

Status permulaan automatik daemon WebREPL: dilumpuhkan Adakah anda mahu (E) mengaktifkan atau (D) dapat dijalankan semasa boot? (Garis kosong untuk berhenti)> E Untuk mengaktifkan WebREPL, anda mesti menetapkan kata laluan untuknya Kata laluan baru: xxxxx Sahkan kata laluan: xxxxx Perubahan akan diaktifkan selepas reboot Adakah anda mahu reboot sekarang? (y / n) y

Akhir sekali, muat turun klien Webrepl ke mesin anda. Ini adalah pilihan tetapi pelanggan dilengkapi dengan alat berguna lain yang mungkin anda mahu gunakan di kemudian hari. Sebagai contoh, webrepl_cli.py adalah perintah untuk menyalin fail ke Wemos dalam sintaks seperti scp. Gunakan git untuk memuat turun pelanggan. (Pasang alat git jika anda belum memilikinya.)

klon git

Buka penyemak imbas web anda dan pada bidang URL, masukkan lokasi lokasi fail klien webrepl yang anda muat turun seperti:

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

Ini mesti memaparkan klien webrepl pada penyemak imbas anda. Sebelum anda dapat menyambungnya, anda mesti menyambung ke WIFi Access Point terlebih dahulu. Sekiranya anda melihat WIFI yang tersedia untuk komputer anda, anda akan melihat rangkaian bermula dengan MicroPython-xxxx. Sambungkan ke rangkaian itu. (Amaran: Setelah anda menyambung ke rangkaian itu, anda akan kehilangan akses Internet.)

Kembali ke klien webrepl anda dan klik Connect. Ia harus meminta kata laluan. Masukkan kata laluan Wemos anda dan anda harus menyambung.

Selamat datang ke MicroPython!

Kata Laluan: WebREPL disambungkan >>>

Wemos anda masih berjalan dalam AccessPoint Mode. Walaupun ini baik-baik saja, saya lebih suka menjalankannya dalam Mode Station di mana ia menghubungkan ke WIFI rumah saya supaya komputer saya dapat mengaksesnya melalui WIFI rumah dan masih mempunyai akses Internet. Untuk melakukan itu, anda harus membuat fail bernama boot.py dengan konfigurasi rangkaian dan memuat naiknya ke Wemos.

Berikut adalah contoh boot.py. Tukar ssid dan kata laluan ke rangkaian WIFI rumah anda. Juga, saya ingin memberikannya IP statik 192.168.0.32. Tukarnya ke alamat IP WIFI rumah anda.

boot.py (anda boleh memuat turunnya dari bawah)

import gc

import webrepl def do_connect (): import network sta_if = network. WLAN (network. STA_IF) jika tidak sta_if.isconnected (): print ('connect 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 (' ',' ') sementara tidak sta_if.isconnected (): pass print (' network config: ', sta_if.ifconfig ()) do_connect () webrepl.start () gc.collect ()

Gunakan borang "Kirim Fail" klien Webrepl untuk menghantar fail boot.py ke Wemos anda. Tekan butang reset untuk but semula. Sekiranya anda masih tersambung melalui USB menggunakan arahan SCREEN, anda akan melihat:

menyambung ke rangkaian … konfigurasi rangkaian: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1') daemon WebREPL bermula pada ws: //192.168.4.1: 8266 Daemon WebREPL bermula pada ws: //192.168.0.32: 8266 Webrepl yang dimulakan dalam mod biasa tidak dapat membuka fail 'main.py' untuk membaca MicroPython v1.8.7-7-gb5a1a20a3 pada 2017-01-09; Modul ESP dengan Jenis ESP8266 "help ()" untuk maklumat lebih lanjut. >>>

Ini mengesahkan bahawa Wemos anda disambungkan ke WIFI rumah anda menggunakan ipaddress 192.168.0.32.

Anda boleh pingkan alamat IP tersebut untuk mengesahkan.

$ ping 192.168.0.32

PING 192.168.0.32 (192.168.0.32): 56 bait data

64 bait dari 192.168.0.32: icmp_seq = 0 ttl = 255 masa = 9.334 ms 64 bait dari 192.168.0.32: icmp_seq = 1 ttl = 255 masa = 11.071 ms..

Langkah 6: Pasang Program Utama

Pasang Program Utama
Pasang Program Utama
Pasang Program Utama
Pasang Program Utama

Terakhir, anda perlu memasang program utama yang akan terus berjalan di Wemos anda.

Kembali ke penyemak imbas web anda dan jalankan program klien webrepl. Tukar alamat ip ke alamat IP Wemos anda. Dalam kes saya, sekarang 192.168.0.32. Masukkan kata laluan Wemos anda dan anda kini harus disambungkan ke Wemos.

Mari muat naik program main.py yang dilampirkan. Muat turun fail yang dilampirkan ke komputer anda. Klik pada Pilih Fail untuk memilih main.py yang dimuat turun dan dan klik pada Hantar ke peranti.

Anda perlu menekan butang Rehat untuk memuatkan program main.py. Setelah menekan butang Reset, anda akan melihat:

menyambung ke rangkaian…

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

WebREPL daemon bermula pada ws: //192.168.4.1: 8266 WebREPL daemon bermula pada ws: //192.168.0.32: 8266 Memulakan webrepl dalam mod biasa Mendengarkan, sambungkan penyemak imbas anda ke…

Ini bermaksud program main.py anda diaktifkan dan disenaraikan ke port 80.

Untuk menguji, buka penyemak imbas web anda dan masukkan

Ini harus memaparkan skrin kawalan kereta seperti yang ditunjukkan dalam video. Sekiranya wayar anda disambungkan dengan betul, butang kawalan akan menghantar isyarat yang betul ke port GPIO anda untuk menggerakkan kereta.

Langkah 7: Penambahbaikan Masa Depan

Item yang perlu dilakukan berikut ada dalam senarai v2 saya:

  • Gunakan PWM untuk mengawal kelajuan motor
  • Meningkatkan antara muka web. Mungkin menggunakan kerangka aREST. Saya tidak percaya aREST lib tersedia di MicroPython pada masa ini jadi saya mungkin perlu menggodamnya.

Terima kasih kerana membaca Arahan ini. Ikuti saya di Facebook, Youtube, dan Instructables untuk lebih banyak projek pada masa akan datang.

Disyorkan: