Debug remoto via WiFi di un Arduino con DT-06
Abbiamo già affrontato l’argomento della programmazione remota senza fili tramite Bluetooth di un Arduino UNO nel nostro precedente articolo intitolato “Arduino Programmazione remota/wireless“, tuttavia, grazie al feedback e alle domande dei nostri lettori, abbiamo deciso di approfondire ulteriormente questo argomento, esplorando le possibilità che la connettività WiFi offre.
Molti di voi hanno apprezzato il nostro articolo sulla connessione remota di un Arduino UNO all’interno del congelatore :P, che forniva una guida dettagliata su come trasmettere uno sketch ad un Arduino utilizzando moduli Bluetooth HC-05. Siamo lieti di avervi assistito nella realizzazione dei vostri progetti, ma ora stiamo affrontando una nuova sfida: come possiamo estendere la portata di queste connessioni wireless da solo pochi metri a una distanza limitata solo dalla vostra copertura WiFi?
In questo articolo, esploreremo le soluzioni disponibili sul mercato e le alternative ai moduli HC-05. Scopriremo come ottenere una connessione wireless più potente e affidabile per i vostri progetti Arduino. Quindi, se siete pronti a immergervi più a fondo nel mondo della programmazione remota tramite WiFi, continuate a leggere ed esplorate le vostre opzioni.
Nel panorama in continua evoluzione dell’IoT (Internet delle Cose) e dei sistemi embedded, la capacità di programmare e fare il debug di microcontrollori a distanza tramite WiFi è diventata a dir poco rivoluzionaria. Questo articolo completo vi guiderà attraverso i passaggi essenziali per flashare il firmware ESP-LINK sul vostro modulo ESP, sbloccando il pieno potenziale del debug seriale remoto. Come già detto, approfondiremo le complessità tecniche e forniremo approfondimenti sui dispositivi coinvolti e sul vasto potenziale che queste capacità sbloccano. Quindi, imbarchiamoci in questo viaggio alla scoperta.
Modulo WiFi
Prima di addentrarci nei dettagli tecnici del flashing del firmware e dell’impostazione del debug remoto, prendiamoci un momento per guardare i dispositivi al cuore di questo articolo:
ESP8285 (DT-06)
Il TTL-WiFi DT-06 è progettato e sviluppato sulla base del modulo WiFi ESP-M2 della Shenzhen Doctors of Intelligence & Technology Co., Ltd. Può realizzare la trasmissione trasparente dei dati al cloud in tempo reale, insieme al controllo a basso consumo e agli indicatori di stato.
Il vero valore è la dimensione compatta e il basso consumo, molto adattabile a molte situazioni. Viene fornito con un firmware proprietario che offre un set limitato di funzionalità, quindi per prima cosa, lo esaminiamo (e carichiamo l’ultima versione senza bug), ma successivamente, aggiorniamo quel modulo con ESP-LINK, una potente soluzione software.
Ecco il dispositivo DT-06
Potete trovare maggiori informazioni nell’articolo relativo “DOIT DT-06: pinout ad alta risoluzione e specifiche”.
DT-06 verifica e carica l’ultimo firmware DOIT
Quando ho acquistato il DT-06, è arrivato con un firmware vecchio con alcuni bug. Ho iniziato a cercare e aggiornare il firmware nel forum del sito DOIT. Ho trovato l’ultima versione, ma il firmware con integrazione home kit e altre funzionalità del firmware si trova su Baidu Drive, e non posso scaricarlo.
Invece, l’ultimo firmware DOIT è scaricabile da qui.
Flash con l’ultimo firmware DOIT
Ecco il convertitore USB a TTL USB to TTL CH340G - USB to TTL FT232RL
- Prima di tutto, scarica il firmware DOIT e decomprimilo.
- Scarica lo Strumento di Download Flash da Espressif.
- Collega il DT-06 a un USB FTDI così:
Oppure con un’alimentazione esterna così:
L’unica notazione è che l’Rx del FTDI è collegato al Tx del DT-06 e il Tx al Rx.
- Ora avvia lo Strumento di Download Flash e apri il file del firmware, l’indirizzo di inizio scrittura è
0x0
.
- Metti il DT-06 in modalità download seguendo questi passaggi:
- Tieni premuto il pulsante Boot;
- Premi e rilascia il pulsante Reset;
- Rilascia il pulsante Boot.
- Clicca su ERASE.
- Clicca sul pulsante di avvio.
- Riavvia il dispositivo.
Configura il DT-06 con il software originale
Prima di tutto, andiamo a verificare le potenzialità del firmware originale del DT-06. È una buona scelta se avete bisogno solo del debugger seriale per comunicare tramite WiFi con il dispositivo.
Il dispositivo si avvia in modalità AP. Se controllate sulla rete WiFi, trovate una con un nome come Doit_WiFi_XXXXXX
. Potete connettervi a quella e poi andare all’indirizzo 192.168.4.1
.
Per la prima configurazione, uso il telefono senza toccare il mio PC.
Nella prima schermata, aggiungo il mio SSID e la password, poi riavvio il dispositivo e mi riconnetto in modalità AP.
Quando ora entro, posso vedere il mio SSID memorizzato, se andate al menu AVANZATE
, potete vedere l’IP dato dal server DHCP.
Per semplificare i passaggi successivi, consiglio di impostare un IP statico, andate su AVANZATE -> MODULO -> WiFi
.
E ricordatevi di salvare le modifiche.
Collegamento dell’Arduino per il debug remoto
Prima di tutto, caricate uno sketch semplice su Arduino. Ecco un esempio:
/*
Esempio semplice per testare il debug remoto tramite WiFi
Renzo Mischianti <www.mischianti.org>
*/
// la funzione setup viene eseguita una volta quando premi reset o alimenti la scheda
void setup() {
Serial.begin(115200);
while (!Serial) { delay(100); }
Serial.println("Inizio di tutto");
// inizializza il pin digitale LED_BUILTIN come output.
pinMode(LED_BUILTIN, OUTPUT);
}
// la funzione loop viene eseguita più e più volte all'infinito
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // accendi il LED (HIGH è il livello di tensione)
Serial.println("LED_BUILTIN, HIGH");
delay(1000); // attendi un secondo
digitalWrite(LED_BUILTIN, LOW); // spegni il LED portando la tensione a LOW
Serial.println("LED_BUILTIN, LOW");
delay(1000); // attendi un secondo
}
Come potete vedere, uso 115200 come baud rate seriale, e imposteremo lo stesso valore sull’interfaccia web del DT-06. Nell’interfaccia Web, andate su MODULO -> SERIALE
.
Ora il microcontrollore è pronto, possiamo procedere al cablaggio del DT-06.
Potete vedere che l’Rx del DT-06 è collegato al Tx di Arduino e viceversa per il Tx del DT-06 e Rx di Arduino.
Il DT-06 ha una logica a 3.3v, quindi quando lo connettete all’Arduino UNO per operazioni prolungate, è meglio mettere un convertitore di logica o un semplice partitore di tensione così.
Il partitore di tensione è spiegato nell’articolo “Partitore di tensione: calcolatrice e applicazione” con la relativa calcolatrice.
Potete vedere che ho aggiunto il partitore solo alla linea dal Tx di Arduino e Rx di DT-06 perché questa è l’unica linea che funziona (da Arduino) a 5v, per il viceversa, Arduino ha sufficiente sensibilità per leggere a livello logico di 3.3v.
Creare una porta COM virtuale
Ora, abbiamo un’interfaccia che comunica tramite WiFi con il nostro dispositivo, ma come ci connettiamo? Un sistema versatile e bellissimo è generare una porta COM virtuale.
Uno dei programmi più usati è “HW VSP3 – Virtual Serial Port”, potete scaricarlo da questa pagina, scaricate quello singolo perché il multi è un prodotto a pagamento.
Dopo aver scaricato, installatelo.
Cliccate sul pulsante Login
e scrivete admin come password.
È necessario recuperare tutti i parametri dall’interfaccia web esp8285.
In questo caso, il porto che vi interessa è il 9000, e ottenete l’IP dalla schermata precedente (se avete impostato l’IP statico, è meglio).
Nella scheda Porta Seriale Virtuale, scegliete il numero della porta COM, inserite l’indirizzo IP e il porto 9000. Dopo di che, cliccate sul pulsante Crea COM
.
Aspettate un momento, e se va tutto bene nel Gestore Dispositivi, potete trovare la vostra nuova Porta.
Ora, se connettiamo il nostro IDE Arduino alla porta seriale COM 25, possiamo trasmettere e ricevere il seriale tramite WiFi.
Grazie
- Arduino Programmazione remota/wireless
- BMP280, DHT11 and DHT22, DHT12, Dallas Temperature ds18b20, Thermistor
- Scheda di programmazione ATtiny (ArduinoUNO come ISP)
- Inviare email con esp8266 e Arduino (Libreria v1.x)
- Come usare la scheda SD con esp8266 e Arduino
- Ebyte LoRa E32 per Arduino, esp32 o esp8266 : WOR (wake on radio) del microcontrollore e uno shield per Arduino
- Gestire file JSON con Arduino, esp32 ed esp8266
- Come interfacciare Arduino, esp8266 o esp32 alla seriale RS-485
- Inviare email con allegati (libreria v2.x): Arduino Ethernet
- WebSocket
- Arduino AVR: binario compilato (.hex) da riga di comando o strumenti grafici
- Arduino: memoria SPI flash esterna veloce
- Accelerometro GY-291 ADXL345 i2c spi con interrupt per esp32, esp8266, stm32 e Arduino
- i2c Arduino: come creare una rete, parametri e scanner di indirizzi
- Magnetometro GY-273 QMC5883L clone HMC5883L per Arduino, esp8266 e esp32
- Debug remoto via WiFi di un Arduino con DT-06
- Programmare Arduino UNO da remoto via WiFi con il firmware ESP-Link su DT-06
- Introduzione alla Programmazione Remota dell’Arduino UNO r3 tramite WiFi con l’ESP8266
Ciao Renzo, seguito tutta la procedura, sembra funzionare ma il tipo di dispositivo viene creato come Virtual serial port e non tra le porte COM-LPT, quindi arduino ide non la vede
Ciao Vincenzo,
prova a reinstallare il software, in genere non da problemi.
Ciao Renzo