Il WeMos D1 Mini è un buon candidato per il mio progetto di natale insieme alla MKR1000.
Negli ultimi articoli avrai letto della realizzazione in corso di un albero di natale neopixel lasercut che ho iniziato a realizzare la scorsa settimana in vista delle prossime feste.
Una domanda che ti sarai posto leggendo del progetto e vedendo la struttura, probabilmente è: Quale microcontrollore utilizzerei per u progetto come questo?
Scelta del microcontrollore
la scelta del microcontrollore WiMos D1 Mini deriva dall’analisi delle esigenze:
- le dimensioni ridotte che consentano di nascondere l’elettronica lungo la spitale;
- la possibilità di essere programmato con l’IDE arduino;
- l’alimentazione mediante una batteria LiPo di dimensioni sufficientemente piccole da poter essere anch’essa posizionata lungo la spirale;
- un pin in grado di controllare i NeoPixel
- una connessione Wifi in modo da poter implementare la connessione con smartphone e tablet realizzando “Web Christmas tree” ed anche il “Christmas tree 2.0”
La scelta è ricaduta su due prodotti:
- Arduino/Genuino mkr1000
- WeMos D1 mini ( basato su ESP8266 )
Entrambe in mio possesso ed entrambe adatte allo scopo.
La WeMos D1 mini, l’amico Marco B., mi aveva invogliato a provarla già in passato.
La MKR1000 è, a mio avviso, una ottima scheda IoT nel panorama Arduino.
Inizio descrivedo la WeMos D1 mini avendo già in passato dedicato alcuni articoli alla MKR1000.
Specifiche WeMos D1 mini
Prima di utilizzare una scheda il mio approccio, che consiglio, è di visitare il sito del produttore e raccogliere tutte le informazioni che possono essere utili sia alla parte progettuale sia al conseguente utilizzo.
Nel sito del produttore puoi trovare le specifiche della scheda:
da cui deduci che la massima tensione sui pin è di 3,3v ( 3,2v sul pin di input analogico ) e che hai a disposizione 4M di Flash per il tuo sketch. Nel sito WeMos D1 Mini trovi anche la configurazione dei pin:
in cui l’informazione più importante è data dalla relazione tra il pin ( prima colonna ) e l’ESP8266 Pin ( terza colonna )
Nota inoltre che il BUILTIN_LED è connesso al GPIO2 che viene rimappato sul pin D4 su cui è presente una resistenza di Pull-up da 10Kohm.
e se è vero che a volte una immagine vale più di 1000 parole ecco il pinout:
in cui sono riportate le medesime info della tabella ma in forma di più rapida consultazione.
Nell’immagine pinout WeMos D1 mini nota l’integrato subito a ridosso del connettore micro-usb che svolge la funzione di interfaccia USB to UART e si tratta del CH340.
CH340 USB to UART
La conversione da USB a UART ( Seriale ) necessaria ad interfacciarti al chip ESP8266 di cui WeMos D1 mini è dotato è affidata al CH340.
La scelta è dettata certamente dal costo di questo chip decisamente meno costoso dell’Atmega32U4 usato da Arduino/Genuino e che non necessita di firmware da parte del produttore.
In compenso necessita di driver lato computer per essere riconosciuto correttamente dal computer come interfaccia seriale.
Sul sito del produttore, nella sezione download, trovi i driver da installare: download driver CH340
WeMos D1 mini con IDE Arduino
Puoi programmare il WeMos D1 mini con l’IDE Arduino 1.6.9 o superiore installandola tra le schede.
Ecco i link al tutorial, presente sul sito ufficiale, su come installare l’estensione per la programmazione delle board della famiglia WeMos.
10 commenti
2 ping
Vai al modulo dei commenti
Mauro,
come hai trovato la Wemos rispetto alla NodeMcu?
Ho fatto varie realizzazione con NodeMCU (Esp 12-E), non in Lua ma con Arduino IDE, ma adesso stavo facendo un pensierino sulla Wemos D1 mini pro.
Grazie.
Autore
Ciao Antonio,
nei limitati test che ho potuto eseguire su entrambe mi sembrano entrambe molto valide. Il chip è il medesimo per cui le potenzialità sw sono simili.
I pin a disposizione sono inferiori sulla WeMos che tuttavia presenta un form factor molto contenuto.
salve , sto cercando di usare un wemos d1 mini (v2.2), ma quando cerco di caricare il codice con arduino mi viene fuori il seguente errore:
“warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed
error: espcomm_upload_mem failed”
ho provato a cambiare velocità e gli altri parametri ma non si riesce a programmare.
se apro il monitor seriale e schiaccio il tasto reset (a 115.000) vedo che il wemos risponde, quindi non è bruciato. ho provato con un altro wemos e funziona perfettamente. mi potrebbe aiutare?
Autore
Ciao Michele,
leggendo l’errore sembra che ci sia una difficoltà di sync tra la tua seriale e la Wemos.
Puoi provare due strade usando il Blink come esempio di sketch per la velocità e semplicità di compilazione:
Prima: tieni premuto il pulsante di reset della WeMod ed avvia la compilazione dello sketch, al momento in cui l’IDE scrive che sta trasferendo lascia il reset;
Seconda: fai doppio click ( double tap ) sul pulsante reset ed avvia immediatamente il trasferimento del Blink.
Entrambe le procedure richiedono manualità e coordinamento perché la tempistica è fondamentale. Se passa troppo tempo ( 1 secondo è già troppo ) tra il rilascio del reset e l’avvio del trasferimento la procedura fallisce.
Tutte le procedure devi provarle a velocità differenti, non solo a 115200.
niente , ho provato in ambedue i modi e anche a 9600! ma non cambia nulla.
direi che è bruciato se non ci fosse il discorso che aprendo la seriale e dando il reset il wemos reagisce normalmente come l’altro…
Autore
Ciao Michele,
se hai provato con tutte le opzioni e velocità e un po’ di volte per prendere la manualità che ti serve … non so cosa altro suggerirti.
Ho provato il Wemos D1 con DHT11 e funziona benissimo anche con Blynk con il quale ricevo i dati a distanza.
Ho provato ad inserirvi anche il sensore BMP180 e qui niente da fare. Tutta una serie di errori per librerie non trovate, che poi ho ovviato.
Da ultimo questo errore che è al di là della mia comprensione:
C:\Documents and Settings\mio\Dati applicazioni\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266/WString.h:164:90: error: declaration of C function ‘StringSumHelper& operator+(const StringSumHelper&, unsigned char)’ conflicts with
friend StringSumHelper & operator +(const StringSumHelper &lhs, unsigned char num);
Cosa si può fare? Lei che illustra così i suoi progetti potrebbe presentare un progetto in questo senso.
Grazie
Renzo Giurini
Autore
Ciao Renzo,
sei certo che la libreria che stai usando sia valida per la scheda WeMos? Probabilmente devi cercare una libreria compatibile.
E quella ricavata da https://github.com/wemos/Arduino_D1.
Tutte le indicazioni mi riportano a questa libreria
Autore
Ciao Renzo,
hai scritto all’autore segnalando il problema?
[…] di tutto ho eseguito il test su di una scheda WeMos e la WeMos WifiManager che all’accensione verifica la presenza, nel raggio di […]
[…] allungando la shield di 1cm circa per consentire loro di fuoriuscire dalle dimensioni di una WeMos qualora decidessi di aggiungere al tuo progetto IoT un display […]