Sommario:

MicroPython IoT Rover basato su WEMOS D1 (ESP-8266EX): 7 passaggi (con immagini)
MicroPython IoT Rover basato su WEMOS D1 (ESP-8266EX): 7 passaggi (con immagini)

Video: MicroPython IoT Rover basato su WEMOS D1 (ESP-8266EX): 7 passaggi (con immagini)

Video: MicroPython IoT Rover basato su WEMOS D1 (ESP-8266EX): 7 passaggi (con immagini)
Video: IOT Based Humidity, Temperature and Soil moisture Monitoring using ESP8266ex 2024, Novembre
Anonim
Image
Image
MicroPython IoT Rover basato su WEMOS D1 (ESP-8266EX)
MicroPython IoT Rover basato su WEMOS D1 (ESP-8266EX)

** Aggiornamento: ho pubblicato un nuovo video per v2 con una lancia **

Ospito laboratori di Robotica per ragazzi e sono sempre alla ricerca di piattaforme economiche per costruire progetti intriganti. Sebbene i cloni di Arduino siano economici, utilizza il linguaggio C/C++ con cui i bambini non hanno familiarità. Inoltre, non ha un WiFi integrato che è un must per i progetti IoT. D'altra parte, mentre Raspberry Pi ha il WIFI e i bambini possono programmarlo usando Python, è ancora una piattaforma costosa per controllare solo poche porte GPIO per accendere e spegnere i dispositivi. Ho bisogno di una via di mezzo che abbia funzionalità WIFI e Python. Sembra che ho trovato la mia risposta in MicroPython su una scheda economica basata su ESP8266.

Cos'è Micropython?

Secondo il suo sito Web, MicroPython è un'implementazione snella ed efficiente dei linguaggi di programmazione Python 3 che include un piccolo sottoinsieme della libreria standard Python ed è ottimizzato per l'esecuzione su microcontrollori e in ambienti vincolati (come ESP8266). È essenzialmente un IDE Python su un chip. Uno dei principali vantaggi è che puoi creare codice e modificarlo al volo utilizzando un client browser Web chiamato Webrepl. (Prova a farlo in Arduino.) Puoi anche vedere i dati del sensore in tempo reale su Webrepl invece di fare affidamento sulla registrazione dei dati o su uno schermo LED in Arduino.

Cos'è ESP8266?

In breve, pensalo come un Arduino con funzionalità di rete integrate. Puoi utilizzare l'IDE Arduino per programmare le schede ESP8266 in C/C++ oppure puoi eseguire il flashing con NodeMCU o MicroPython. In questo progetto, eseguirò il flashing di MicroPython su una scheda ESP8266.

Ho deciso di ottenere un WEMOS D1 basato su ESP8266-12EX per questo semplice progetto in cui navigherò su un'auto 2WD utilizzando un browser web. Ci sono altre schede progettate per MicroPython ma volevo qualcosa di economico che avrei potuto buttare via se non avesse soddisfatto i miei criteri. Come previsto, ha soddisfatto tutte le mie esigenze e molto probabilmente incorporerò WeMos e Micropython nei progetti futuri.

Passaggio 1: parti

Parti
Parti
Parti
Parti
Parti
Parti
Parti
Parti
  • Wemos D1 o qualsiasi scheda basata su ESP8266
  • Scudo motore (sto usando un L293D economico da AliExpress)
  • Portabatterie per 4 batterie AA e 9V (4 batterie AA sono per i motori e 9V sono per la scheda Wemos)
  • Telaio per auto 2WD
  • Cavi Dupont

Potrebbe essere necessario un saldatore, un cacciavite e una pistola per colla per mettere tutto insieme.

Passaggio 2: assemblaggio dell'hardware

Assemblaggio hardware
Assemblaggio hardware
Assemblaggio hardware
Assemblaggio hardware
Assemblaggio hardware
Assemblaggio hardware

Innanzitutto, assemblare il telaio secondo le istruzioni.

Quindi, incollare a caldo altri componenti come mostrato.

I cavi del motore devono essere saldati ai terminali del motore e utilizzare colla a caldo per rinforzare i giunti dei terminali.

Apposto un piccolo interruttore al supporto della batteria 4AA. Questo accenderà/spegnerà l'alimentazione allo scudo del motore.

Passaggio 3: cablaggio

Cablaggio
Cablaggio
Cablaggio
Cablaggio
Cablaggio
Cablaggio

Segui il mio schema elettrico come mostrato.

Da Wemos a Motor Shield:

D1 IN2

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

Schermo motore a motore/alimentazione:

Terminale A -> Motore sinistro

Terminale B -> Motore destro VCC -> Batteria (+) GND -> Batteria (-)

Passaggio 4: installazione di MicroPython

Innanzitutto, Wemos ha un chip seriale/USB basato su CH304G. Questo è lo stesso chip che si trova nei cloni Arduino economici e devi installare un driver appropriato per Mac o PC. Seguire le istruzioni su questo sito per installare il driver.

Collega Wemos al tuo computer e conferma che il tuo computer è in grado di rilevare Wemos. Su Mac, esegui il seguente comando e vedrai un dispositivo chiamato /dev/tty.wchusbserial640.

$ ls -lt /dev/tty* | testa

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

Se sei su PC, puoi usare questo Instructable come riferimento.

Successivamente, dovrai configurare Python 2 o 3 sul tuo computer poiché lo strumento flash, esptool.py, è basato su Python. Sebbene la guida MicroPython possa affermare che lo strumento funziona solo con Python 2.7, sono stato in grado di eseguirlo in Python 3 senza problemi. Scarica l'ultima versione di Python da https://www.python.org e segui le istruzioni di installazione per il tuo PC o Mac.

Infine, dovrai installare MicroPython su Wemos. Il sito MicroPython ha un eccellente tutorial su come configurare MicroPython su ESP8266. Basta seguire le istruzioni di installazione in Introduzione a MicroPython su ESP8266.

Di seguito sono riportati i comandi che ho usato:

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

esptool.py v1.3 Connessione…. Esecuzione di Cesanta flasher stub… Cancellazione del flash (potrebbe volerci un po' di tempo)… La cancellazione ha richiesto 10,5 secondi

$ 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 Connessione…. Esecuzione di Cesanta flasher stub… Flash parametri impostati su 0x0240 Ha scritto 589824 byte a 0x0 in 50,8 secondi (92,8 kbit/s)… In uscita…

MicroPython è ora installato sulla tua scheda!

Passaggio 5: configurazione della rete

Configurazione della rete
Configurazione della rete

Mentre MicroPython è ora installato sul tuo Wemos, non è ancora connesso alla tua rete. Dovrai prima abilitare la rete. Su Mac, esegui il comando SCREEN per avviare la sessione del terminale seriale su Wemos.

$ schermo /dev/tty.wchusbserial640 115200

Quando vedi una schermata vuota, premi INVIO per vedere un prompt:

>>

(Nota: per uscire, digita CTRL-A CTRL-)

Ora, abilitiamo l'accesso al client web. Digita "import webrepl_setup" per eseguire il programma di installazione. Immettere E per abilitare WebREPL e quindi impostare la password. Riavvia per attivare le modifiche.

>>import webrepl_setup

Stato di avvio automatico del demone WebREPL: disabilitato Vuoi (A)abilitare o (D)abilitarlo in esecuzione all'avvio? (Riga vuota per uscire) > E Per abilitare WebREPL, è necessario impostare la password Nuova password: xxxxx Conferma password: xxxxx Le modifiche verranno attivate dopo il riavvio Vuoi riavviare ora? (s/n) sì

Infine, scarica il client Webrepl sul tuo computer. Questo è facoltativo, ma il client viene fornito con altri strumenti utili che potresti voler utilizzare in seguito. Ad esempio, webrepl_cli.py è un comando per copiare file su Wemos con una sintassi simile a scp. Usa git per scaricare il client. (Installa lo strumento git se non lo hai ancora.)

git clone

Apri il tuo browser web e nel campo URL, inserisci la posizione del file del client webrepl scaricato come:

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

Questo dovrebbe visualizzare il client webrepl sul tuo browser. Prima di poterti connettere, devi prima connetterti al suo punto di accesso WiFi. Se guardi il WIFI disponibile per il tuo computer, vedrai che una rete inizia con MicroPython-xxxx. Connettiti a quella rete. (Attenzione: una volta connesso a quella rete, perderai l'accesso a Internet.)

Torna al tuo client webrepl e fai clic su Connetti. Dovrebbe richiedere la password. Inserisci la tua password Wemos e dovresti connetterti.

Benvenuto in MicroPython!

Password: WebREPL connesso >>>

Il tuo Wemos è ancora in esecuzione in modalità AccessPoint. Anche se questo è OK, preferisco che venga eseguito in modalità Station dove si connette al mio WIFI di casa in modo che il mio computer possa accedervi tramite il WIFI di casa e abbia ancora accesso a Internet. Per farlo, dovrai creare un file chiamato boot.py con la configurazione di rete e caricarlo su Wemos.

Ecco un esempio boot.py. Cambia ssid e password per la tua rete WIFI domestica. Inoltre, voglio dargli un IP statico di 192.168.0.32. Cambialo con l'indirizzo IP disponibile del Wi-Fi di casa.

boot.py (puoi scaricarlo da sotto)

import gc

import webrepl def do_connect(): import network sta_if = network. WLAN(network. STA_IF) if not sta_if.isconnected(): print('connessione alla rete…') 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()

Usa il modulo "Invia un file" del client Webrepl per inviare il tuo file boot.py al tuo Wemos. Premere il pulsante di ripristino per riavviare. Se sei ancora connesso tramite USB utilizzando il comando SCREEN, vedrai:

connessione alla rete… configurazione di rete: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1') Il demone WebREPL è stato avviato su ws://192.168.4.1:8266 Il demone WebREPL è stato avviato su ws://192.168.0.32:8266 Webrepl avviato in modalità normale non è stato in grado di aprire il file 'main.py' per leggere MicroPython v1.8.7-7-gb5a1a20a3 il 2017-01-09; Modulo ESP con ESP8266 Digitare "help()" per ulteriori informazioni. >>>

Ciò conferma che il tuo Wemos è connesso al Wi-Fi di casa utilizzando l'indirizzo IP di 192.168.0.32.

Puoi eseguire il ping di quell'indirizzo IP per convalidare.

$ ping 192.168.0.32

PING 192.168.0.32 (192.168.0.32): 56 byte di dati

64 byte da 192.168.0.32: icmp_seq=0 ttl=255 time=9.334 ms 64 byte da 192.168.0.32: icmp_seq=1 ttl=255 time=11.071 ms..

Passaggio 6: installazione del programma principale

Installa il programma principale
Installa il programma principale
Installa il programma principale
Installa il programma principale

Infine, dovrai installare il programma principale che continuerà a funzionare sul tuo Wemos.

Torna al tuo browser web ed esegui il programma client webrepl. Cambia l'indirizzo IP con l'indirizzo IP del tuo Wemos. Nel mio caso, ora è 192.168.0.32. Inserisci la tua password Wemos e ora dovresti essere connesso a Wemos.

Carichiamo il programma main.py allegato. Scarica il file allegato sul tuo computer. Fare clic su Scegli file per scegliere il main.py scaricato e fare clic su Inviato al dispositivo.

Dovrai premere il pulsante Rest per caricare il programma main.py. Dopo aver premuto il pulsante Ripristina, vedrai:

connessione alla rete…

configurazione di rete: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1')

Demone WebREPL avviato su ws://192.168.4.1:8266 Demone WebREPL avviato su ws://192.168.0.32:8266 Avviato webrepl in modalità normale Ascolto, collega il browser a …

Ciò significa che il tuo programma main.py è attivato ed è elencato sulla porta 80.

Per testare, apri il tuo browser web e inserisci

Questo dovrebbe visualizzare la schermata di controllo dell'auto come mostrato nel video. Se i cavi sono collegati correttamente, i pulsanti di controllo invieranno i segnali appropriati alle porte GPIO per spostare l'auto.

Passaggio 7: miglioramenti futuri

Le seguenti cose da fare sono nella mia lista v2:

  • Usa PWM per controllare la velocità del motore
  • Migliora l'interfaccia web. Forse usa il framework aREST. Non credo che aREST lib sia disponibile su MicroPython in questo momento, quindi potrei doverlo hackerare.

Grazie per aver letto questo Instructable. Seguimi su Facebook, Youtube e Instructables per altri progetti in futuro.

Consigliato: