Sommario:
- Passaggio 1: parti
- Passaggio 2: assemblaggio dell'hardware
- Passaggio 3: cablaggio
- Passaggio 4: installazione di MicroPython
- Passaggio 5: configurazione della rete
- Passaggio 6: installazione del programma principale
- Passaggio 7: miglioramenti futuri
Video: MicroPython IoT Rover basato su WEMOS D1 (ESP-8266EX): 7 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
** 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
- 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
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
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
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
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:
Lora Gateway basato su MicroPython ESP32: 10 passaggi (con immagini)
Lora Gateway Basato su MicroPython ESP32: Lora è stata molto popolare negli ultimi anni. Il modulo di comunicazione wireless che utilizza questa tecnologia è generalmente economico (utilizzando lo spettro libero), di piccole dimensioni, efficiente dal punto di vista energetico e ha una lunga distanza di comunicazione ed è principalmente utilizzato per la comunicazione reciproca
Telecomando IR automatico basato su Arduino basato sulla temperatura: 7 passaggi
Telecomando IR automatico basato su Arduino basato sulla temperatura: Ehi, come va, ragazzi! Akarsh qui da CETech. Stanco di svegliarti nel bel mezzo di un sonno profondo solo perché la temperatura della tua stanza è troppo bassa o troppo alta a causa del tuo stupido condizionatore. Allora questo progetto è per te. In questo progetto, faremo il nostro
Generatore musicale basato sulle condizioni meteorologiche (generatore MIDI basato su ESP8266): 4 passaggi (con immagini)
Generatore di musica basato sul tempo (Generatore MIDI basato su ESP8266): Ciao, oggi spiegherò come creare il tuo piccolo generatore di musica basato sul tempo. È basato su un ESP8266, che è un po' come un Arduino, e risponde alla temperatura, alla pioggia e l'intensità della luce. Non aspettarti che produca intere canzoni o programmi di accordi
Iniziare con Esp 8266 Esp-01 con Arduino IDE - Installazione di schede Esp in Arduino Ide e programmazione di Esp: 4 passaggi
Iniziare con Esp 8266 Esp-01 con Arduino IDE | Installazione di schede Esp in Arduino Ide e programmazione Esp: in questo tutorial impareremo come installare le schede esp8266 in Arduino IDE e come programmare esp-01 e caricare il codice in esso. Poiché le schede esp sono così popolari, ho pensato di raddrizzare un istruibile per questo e la maggior parte delle persone affrontano problemi
Come eseguire il flashing del firmware MicroPython su uno smart switch Sonoff basato su ESP8266: 3 passaggi (con immagini)
Come eseguire il flashing del firmware MicroPython su uno smart switch Sonoff basato su ESP8266: cos'è Sonoff? Sonoff è una linea di dispositivi per Smart Home sviluppata da ITEAD. Uno dei dispositivi più flessibili ed economici di quella linea sono Sonoff Basic e Sonoff Dual. Questi sono switch abilitati Wi-Fi basati su un ottimo chip, ESP8266. mentre