«

»

Mag 25

Stampa Articolo

ESP8266 arduino comandi AT

Qualche ordine fa ho acquistato dei moduli ESP8266 da usare con arduino per qualche interessante progetto wifi a basso consumo e costo.

ESP8266 WiFi Serial Transceiver Module

L’ESP8266 è un modulo WiFi molto economico, meno di 10 euro, che ti offre la possibilità di essere connesso facilmente ad un micro controllore, come arduino, mediante 2 pin seriali Tx ed Rx ed interagire con lo sketch mediante comandi AT.

Prima di avventurarmi in progetti con un componente nuovo eseguo sempre qualche test semplice, come quello che ti ripropongo, e nel quale oltre a verificare la facilità di utilizzo del componente eseguo anche un piccolo test funzionale per comprendere l’ambito nel quale posso impiegarlo e con quali limiti / rischi.

Caratteristiche dell’ESP8266

Cercando in internet ho trovato alcuni link che descrivono le caratteristiche di questo componente:

  • GitHub ho trovato una wiki interessante in cui sono riportati versioni, formati e pin presenti sui differenti modelli di ESP8266 che puoi trovare in commercio;
  • ESP8266 Community Forum raccoglie tantissima documentazione ed esempi di utilizzo
  • Iteadstudio ha pubblicato una guida completa ai comandi AT.

Questo solo per citare alcuni dei link in cui puoi trovare informazioni.

ESP8266 caracteristics

I comandi AT

Giusto per accennare ai comandi AT parto dalla definizione presa su wikipedia:

“La maggior parte dei modem fonici utilizza i comandi AT Hayes, uno specifico insieme di comandi originalmente sviluppato per il modem Hayes Smartmodem da 300 baud.

La stringa di inizializzazione consiste di una serie di comandi che prepara il modem per la comunicazione, impostando caratteristiche come il tipo di connessione, i tempi di attesa, la rilevazione delsegnale di occupato eccetera. Nei modelli di modem più recenti l’inizializzazione viene gestita da programmi con una qualche interfaccia grafica, in modo che l’utente non debba digitare questi comandi e neanche conoscerne l’esistenza.”

Per il mio test ho utilizzato alcuni dei comandi AT disponibili e supportati dall’ESP8266 prendendo come riferimento i comandi riportati in uno dei link suggeriti al paragrafo precedente.

Colleghiamo l’ESP 8266 ad arduino

il collegamento del modulo è molto semplice e puoi applicarlo sia alla versione uno del modulo sia alla versione 2 che differiscono per la presenza, o assenza, dei pin CH_PD,RST, GPIO0 e GPIO2 e per l’interfaccia di comunicazione seriale in quanto nella versione 1 ( sinistra ) l’interfaccia è di tipo RX/Tx nella versione 2 ( destra ) l’interfaccia è di tipo U0Rx/U0Tx ossia ( UART0 ):

ESP8266 connection pinout

io ho realizzato uno schema di connessione diretta ai pin 0 ed 1 di arduino in modo da utilizzare quest’ultimo come semplice passacarte verso l’ESP8266:

ESP8266 schema

 

Upload sketch to arduino

lo sketch che ho utilizzato è il più semplice di tutti, lo sketch vuoto:

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}

la sua funzione è semplicemente permettere ad arduino di non far nulla e non interferire con la comunicazione seriale che transita direttamente al modulo.

Il primo test dell’ESP8266

Per il primo test devi utilizzare, come detto, i comandi AT in modo da comprendere quali operazioni potrai fare con il tuo ESP8266 direttamente connesso ad Arduino.

Inizia con aprire il monitor seriale dell’IDE, dopo aver collegato arduino al computer ed al modulo ESP8266 come descritto sopra.

Il monitor seriale devi configurarlo in modo che ad ogni invio di stringa seriale aggiunga al termine sia il carattere di fine riga sia quello di ritorno a capo, come in figura:

ESP8266 Serial Monitor Settings

inoltre è necessario che la velocità di comunicazione ( baud ) sia la medesima tra il modulo ed il monitor seriale.

Le velocità possibili per questo modulo sono 3: 9600, 57600 e 115200, ancora non mi è chiarissimo come distinguere quale velocità vada impostata per ciascun modello, posso dirti che dopo 2 prove la terza è quella che mi ha dato esito positivo e quindi ho impostato la comunicazione a 115200:

ESP8266 Serial Monitor Settings baud

trovata la giusta impostazione di comunicazione, in termini di baud, puoi inviare un reset al modulo con il comando AT+RST:

ESP8266 AT+RST result

a cui seguono una serie di informazioni restituite direttamente sul monitor seriale.

Puoi interrogare il modulo per farti restituire alcune informazioni quali la versione del firmware ( AT+GMR ):

ESP8266 AT+GMR firmware version

e successivamente ho chiesto al modulo di impostare la modalità operativa:

  • 1 Sta ( Station – CLient )
  • 2 AP ( Access Point )
  • 3 Both ( Entrambe )

usando il comando AT+CWMODE?, che permette sia di eseguire richieste di questo tipo sia di impostare la modalità desiderata, ho richiesto di visualizzarmi la modalità impostata:

ESP8266 AT+CWMODEora sia che la modallità in cui sta operando è Client ( 1 ) puoi passare a verificare quali reti WiFi ci sono nei paraggi e sono captate dal modulo, per farlo usi il comando AT+CWLAP:

ESP8266 AT+CWLAP scan wifi network

e scopri sia le reti disponibili sia i Mac Address delle interfacce che espongono le reti wifi.

Ora puoi chiedere al tuo modulo di eseguire la Join alla rete wifi:

ESP8266 AT+CWJAP join Access Point

con il comando AT+CWJAP che accetta come primo parametro l’SSID e come secondo parametro la password di accesso.

Infine per verificare che la join sia avvenuta correttamente ho chiesto al modulo di restituirmi l’Ip ricevuto dal router con il comando AT+CIFSR e poi ho confrontato il risultato, che vedi nella schermata precedente, con quanto presente sul router:

ESP8266 on router

Buona sperimentazione !!!

 

Permalink link a questo articolo: http://www.mauroalfieri.it/elettronica/esp8266-arduino-comandi-at.html

162 comments

1 ping

Vai al modulo dei commenti

  1. davide

    Ciao,
    anche io sto facendo prove con questo modulo.
    Quello che volevo chiederti è: come hai collegato tu il modulo ad arduino, così facendo non lo danneggi?
    Siccome il modulo si alimenta a 3V3 i livelli su TX e RX dovrebbero essere a 3V3 giusto?
    Però i pin di arduino non escono a 5V?
    Non servirebbe un traslatore di livelli per sicurezza?

    Grazie

    ciao
    davide

    1. Mauro Alfieri

      Ciao Davide,
      osservazione corretta il modulo ESP8266 base prevede una connessione RX/TX a 3,3v ( vedi versione uno del modulo ).
      Quella che ho utilizzato io è la versione due ( immagine a destra ) in cui i pin RX e Tx sono di tipo U0RX/U0TX ( UART0 ) che da wikipedia ( http://it.wikipedia.org/wiki/UART ) è a supporto delle interfacce RS-232 che a loro volta ( http://it.wikipedia.org/wiki/EIA_RS-232 ) risultano in grado di supportare tensioni da -15v a -3v e da 3v a 15v.

      Aggiungerò questa precisazione anche nell’articolo, grazie per aver posto la domanda.

      1. davide

        scusami non era sfoggita questa differenza..
        Grazie a te per il tuo lavoro, che trovo sempre molto utile e interessante.

        Ho visto che si possono programmare con il linguaggio “LUA” questi moduli; parlerai anche di questo, nei prossimi articoli?

      2. lesto

        assolutamente no, prego prova pure ad applicare il voltaggio a 12v che esce dalla tua seriale hardware del pc e vedi che bella frittura che fai.

        La rs232 prevede sì voltaggi a -+5v, MA esiste la VARIANTE TTL (5v) e LVTTL (3V).

        I pin ESP NON sono 5v tolerant e chiuque segua questa guida dannegga (anche se non in modo immediato) il proprio chip.

        1. Mauro Alfieri

          Ciao Lesto,
          hai ragione, infatti in qualche commento ho segnalato la necessità di utilizzare uno shift-level.

          1. Antonio

            Scusatemi ma a questo punto non ho più le idee chiare: posso collegare una ver. 2 del modulo direttamente a RX/TX di Arduino? Mauro, come devo collegarli quindi? Grazie in anticipo.

          2. Mauro Alfieri

            Ciao Antonio,
            purtroppo sembra dipendere dalla versione della board. Ti consiglio sempre un level shifter da 5v a 3,3v e viceversa su TX ed Rx

  2. Alessandro

    Ciao mauro, ho già fatto esperimenti su questo modulo usando il linguaggio LUA, tuttavia non riesco a mandarlo in sleep mode. (tra l’altro ho dovuto fare una saldatura tra il RST e la massa, richiesta altrimenti non si potrebbe mandarlo in sleep).

    Se dovessi affacciarti al problema, gradirei saperlo, magari ci salti fuori tu!

    Ciao, grazie.

    1. Mauro Alfieri

      Ciao Alessandro,
      non mi sono ancora dedicato alla modalità sleep .. se mi capiterà di doverla utilizzare ne publicherò di certo un articolo.

  3. bernardo

    ciao mauro!
    ho da poco acquistato questo modulino con l’intento di accendere qualche led da remoto, magari con un qualsiasi smartphone o pc ma non riesco ancora a trovare qualche guida adatta, potresti aiutarmi??

    ti ringrazio!!

    1. Mauro Alfieri

      Ciao Bernardo,
      lo sto studiando anche io in questi giorni, se studi anche tu magari ci confrontiamo quando avrò pronto un progetto o lo avrai terminato tu.

      1. bernardo

        d’accordo! 😉

  4. Guido

    Ciao Mauro,
    non so se questo è il posto giusto per porti questa domanda comunque mi spiego. Vorrei connettere arduino ad internet tramite Wifi col metodo più economico possibile (quindi ho escluso la wifi shield). Come posso fare?
    Grazie

    1. Mauro Alfieri

      Ciao Guido,
      ad oggi l’unico componente economico, inteso in termini di costo del componente stesso, che conosco in ambito WiFi è proprio l’ESP8266.
      Posta la domanda nel modo in cui l’hai formulata potrebbe non essere la risposta giusta. Dovresti essere più specifico su cosa desideri realizzare.

      1. Guido

        Grazie mille per la risposta. Devo leggere dati da alcuni sensori e accendere vari led a seconda dei valori acquisiti utilizzando un’app android. ho acquistato ESP8266 Olimex ed è arrivato oggi ma ho dei problemi con la programmazione di questo perché non ho il cavo FTDI.

        ……..it/gp/product/B00SRRS5NM?psc=1&redirect=true&ref_=oh_aui_detailpage_o00_s00#productDetails

        ………it/gp/product/B00R04ICDG/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1

        Hai qualche suggerimento?

        1. Mauro Alfieri

          Ciao Guido,
          non è consentito incollare link a siti generalisti e di vendita on-line che non mantengano costanti i loro prodotti.
          Purtroppo non conosco e non ho mai provato i componenti che stai utilizzando.
          Se è solo un problema di cavo FTDI puoi usare Arduino come interfaccia, come descritto in questo articolo ed in tanti altri sul web

  5. Andrea

    Buongiorno Mauro,
    solo da poco mi sono avvicinato ed appassionato al mondo di Arduino e per motivi economici volevo acquistare un Arduino Uno Rev. 3 ed una scheda ESP8266. In merito al collegamento del modulo ESP8266 ad arduino ho letto di tutto e di più ma non ho ancora le idee chiare. Vorrei realizzare il collegamento diretto da te proposto senza complicazioni ulteriori dovute all’uso di diodi, resistenze, regolatori di tensione, alimentatori esterni, ecc e pertanto avrei delle domande da porti:
    1) Puoi postarci per favore un’immagine del tuo modulo Wi-Fi per comprendere bene la versione due dello stesso;
    2) Il collegamento diretto dell’ESP8266 versione 2, come da te illustrato nella parte alta di questa pagina, continua a funzionare senza problemi? nonostante le incompatibilità di tensione [3.5V (ESP) – 5V (Arduino)] e l’esosa richiesta di energia da parte dell’ESP (215mA), come evidenziato da molti utenti e soprattutto dalla documentazione tecnica del produttore. In particolare ho letto che alimentando l’ESP solo con Arduino 3.3V si possono verificare delle instabilità di funzionamento del Wi-Fi legate alla scarsa alimentazione di Arduino (solo 50mA).

    Certo di una cortese risposta
    Ringrazio anticipatamente ed auguro buon lavoro.
    Andrea Petrelli

    1. Mauro Alfieri

      Ciao Andrea,
      l’immagine del mio modulo è esattamente quella mostrata nella prima immagine dell’articolo.
      Premetto che io ho utilizzato ancora poco il modulo ESP8266 e per poco tempo per cui i dati vanno considerati alla luce di questa informazione;
      Il modulo è stato connesso solo il tempo necessario ad eseguire qualche esperimento, 10/15min, per cui non si è danneggiato l’arduino; se avessi necessità di utilizzare l’ESP8266 per maggior tempo predisporrei un regolatore separato o l’uso di una ila esterna a 3,3v

      Discorso differente è la tensione TX Rx leggi nei commenti precedenti il discorso U0Tx U0Rx di cui la mia versione del modulo è dotata.

  6. Andrea Petrelli

    Ciao Mauro,
    Grazie per la cortese risposta.
    Scusami se ritorno sulla domanda precedente ma credo che l’immagine a cui tu ti riferisci corrisponde all’ESP versione uno , infatti ti invito a notare che nella parte Inferire destra dell’antenna mancano dei componenti, forse dei led, che invece sono presenti nello scema rosso e nero riportato più in basso.
    Sull’ESP è possibile leggere le sigle U0Tx U0Rx, in modo da individuare la versione due?
    Ci puoi fornire le sigle presenti sui suoi componenti in modo da identificare correttamente l’ESP versione due?
    Ringrazio cordialmente
    Andrea

    1. Mauro Alfieri

      Ciao Andrea,
      l’immagine l’ho presa direttamente dal sito da cui ho acquistato la mia, immaginavo corrispondesse al prodotto acquistato.
      Trovi il link al sito di acquisto, subito sotto l’immagine, puoi acquistare il tuo modulo da loro citando il mio articolo.
      Dai contati U0Tx e U0Rx puoi solo recuperare le informazioni sulla versione del firmware, come descritto nell’articolo.
      In generale un buon motodo empirico per capire se il tuo modulo è ver1 o ver2 è non collegare il pin CH_PD e collegarti via seriale: la ver1 funziona, la ver2 no.

  7. pasquale

    ciao mauro ma posso programmarlo con arduino e poi staccarlo e farlo funzionare come antenna access point usarlo come prolunga per il wifi?

    1. Mauro Alfieri

      Ciao Pasquale,
      senza arduino dovresti trovare un altro micro controllore con interfaccia seriale.

  8. Davide

    ciao Mauro,
    ti espongo il mio problema:
    sto utilizzando anche io i modulini ESP8266 e ho modificato il firmware per farlo lavorare in nodemcu.
    Ho caricato correttamente il firmware, ma se prova a eseguire comandi o a caricare un file *.lua, non riesco perchè mi da errore di TIMEOUT (il software espolore intendo)
    Per caso è capitato anche a te?

    grazie

    ciao
    davide

    1. Mauro Alfieri

      Ciao Davide,
      non ho ancora provato nessuna delle cose che mi hai descritto.
      Non so se ritoccherò il firmware alla luce di quanto mi scrivi 🙂

      1. davide

        ciao Mauro,
        però se non carichi il firmware che ti dicevo io, ti perdi delle funzionalità intressanti del modulo come per esempio la possibilità di settarlo master I2C mettendo i 2 pin come SDA e SCL.
        Ti spiego cosa voglio fare:
        -collego il modulino wi-fi ad arduino in i2c e setto il modulino come “master reader” e arduino come “slave writer”
        -ad arduino collego vari sensori
        -tramite il modulino wi-fi interrogo in i2c arduino e mi faccio dare i valori dei vari sensori
        -invio tali valori in wi-fi a raspberry il quale tramite il cms “emoncms” analizza i dati e crea statistiche/grafici

        che ne dici? secondo te può funzionare la cosa?

        ciao
        davide

        1. Mauro Alfieri

          Ciao Davide,
          probabilmente il firmware che hai caricato ti da molte interessanti potenzialità.
          Ciò che non farei è scomodare un Wifi per un ambiente limitato e nel quale dei trasmettitori XBee o semplici RF potrebbero bastare.

          1. Davide

            Ciao Mauro,
            quello che dici è vero però è anche vero che un modulino wi-fi costa molto meno di un modulo XBee; per quanto riguarda il modulo RF sono un po dubbioso sulle velocità di trasferimento dati che riesci ad avere e sulla affidabilità della trasmissione.
            Ti aggiorno che ho trovato anche il modo per tornare al firmware che ti permette di utilizzare i comandi AT con il modulino WI-FI. Cosa stai provando a fare con questi modulini? secondo me con il firmware di default presente su questi modulini, sei un po limitato con quello che puoi fare 🙂

            Ciao
            Davide

          2. Mauro Alfieri

            Ciao Davide,
            valuterò, ho sempre in mente tanti progetti e a volte avvio un progetto, poi mi dedico ad altro, poi mi dedico ad altro, poi mi dedico ad altro, poi mi dedico ad altro ed magari torno al primo..
            Per adesso sono in fase di test e sperimentazione con questi moduli.

  9. Davide

    Ciao Mauro,
    se vuoi quando ho finito il mio progetto, ti posso scrivere un documento di quello che hai fatto e magari lo pubblichi sul tuo sito :); a me farebbe piacere.
    Anche a me piacerebbe creare un sito/blog o pagina facebook dove mettere dei tutorial semplici su arduino, raspberry e elettronica in generale, dopo tutti lavoro nel settore da 15 anni circa e qualcosina l’ho imparata.
    Tu cosa mi consigli di fare? da dove partire e cosa creare?se un sito, un blog da wordpress o una pagina facebook? come visibilità iniziale secondo me andrebbe bene anche facebook, tu che dici?

    Ciao
    davide

    1. Mauro Alfieri

      Ciao Davide,
      a me farebbe piacere pubblicare i tuoi esperimenti e con alcuni altri appassionati con la tua stessa voglia abbiamo deciso di pubblicare gli articoli sul questo blog ma con credenziali da autore.
      Il vantaggio è stato reciproco: io ho beneficiato di alcuni articoli e spunti interessanti da offrire ai miei visitatori ed al contempo ciascuno ha ricevuto in cambio:
      – la visibilità di cui il blog già gode sui motori di ricerca
      – uno spazio a disposizione in cui scrivere e ritrovare i propri articoli, leggere i commenti e rispondere agli appassionati
      – la tranquillità di poter scriver quello che desideravano e quando
      – nessun costo di hosting/housing annuale

      Io ho anche aiutato qualcuno dal punto di vista editoriale all’inizio su sua richiesta.
      Se ti va possiamo adottare la medesima formula, conto di poter offrire questa opportunità sempre a più appassionati ed insieme contribuire alla diffusione della nostra passione.

      Se non ti interessa io ti consiglio un blog wordpress, del resto io ho scelto WP, all’inizio la visibilità è poca ma successivamente, dopo qualche centinaio di articoli, trarrai più soddisfazione che da una pagina FB.

      1. davide

        Ciao Mauro,
        ti ringrazio per l’opportunità che mi dai; al momento è presto per dirti ti passo tutto un mio progetto finito perchè ne ho ancora di strada per finirlo, però la cosa mi interessa molto (mi è sempre interessato il divulgare idee).
        Se decido di fare un blog in wordpress per esempio, pubblicando qualche cosa anche sul tuo sito, posso come dici tu aumentare al visibilità del mio blog.
        Chiariamoci io lo faccio senza “scopo di lucro”, ma solo come passione e soddisfazione personale.
        Te lo dico sinceramente, il tuo è uno dei pochi blog che parlano di arduino in modo semplice e portano a termine un progetto, perchè in giro ci sono molti siti che fanno solo accenni alle cose e in modo confusionario.
        Per il momento ti ringrazio per la possibilità che potresti darmi, spero di riuscire a fare un tutorial il più semplice possibile 🙂
        Saresti interessato anche a dei tutorial di teoria o di nuove tecnologie?

        Grazie per la tua disponibilità. Se dovessi avere bisogno di consigli o un tuo parere su un tutorial che realizzo posso tranquillamente inviarti un email? spero che non mi fai pagare la tua consulenza :)?

        Ciao
        Davide

        1. Mauro Alfieri

          Ciao Davide,
          comprendo e condivido le tue idee.
          In merito alla condivisione di articoli purché non ci siano duplicati io sono sempre disponibile a pubblicare i tuoi tutorial.
          Su tutorial di teoria, mandami pure qualche esempio via email così li valutiamo e ci confrontiamo.

          Se non chiedi un progetto su commissione, i consigli non si pagano 🙂

  10. andrea

    Ma sei proprio sicuro che i PIN seriali della scheda tengano 5v?
    Io dalle specifiche tecniche: http://bbs.espressif.com/download/file.php?id=439 non vedo niente che indichi che possano tollerare piu’ di 3.0~3.6V.

    1. Mauro Alfieri

      Ciao Andrea,
      il chip ESP8266 probabilmente no, ma io ho usato, come vedi in questo articolo, un modello di scheda che ha anche altri componenti e che da specifica funziona in UART Tx ed Rx.
      In generale posso dirti di averla utilizzata senza problemi con il mio arduino per l’esperimento che vedi descritto.

  11. Andrea

    Ciao hai per caso provato a fare un web server? perchè io ho provato in tutti i modi ma non riesco ho provato anche ad aggiornare l’esp ma niente da fare

    1. Mauro Alfieri

      Ciao Andrea,
      mi sembra pretenzioso un webserver usando un arduino ed un ESP8266.
      Se intendi realizzare una pagina statica che risponda al tuo Pc/Smartphone è un progetto che intendo realizzare ma per adesso sto ancora studiando le componenti da utilizzare.

  12. Luca

    Salve, sono riuscito a fare tutto… ma quando provo a pingarlo… ho un ping spaventoso

    1500,650…sempre sopra i 600 comunque …. e a volte vado in timeout da richiesta scaduta.

    Cosa può essere?

    Grazie mille

    1. Mauro Alfieri

      Ciao Luca,
      dovresti fare qualche test di rete più approfondito per comprendere se il problema possa dipendere dalla comunicazione tra il computer ed il router, tra l’ESP8266 e il router o se si tratti di pacchetti persi per un cattivo routing.

  13. Prax

    Ciao Mauro.
    Confermo che l’ESP8266 non può essere usato direttamente collegato all’Arduino, il modulo deve essere usato con i livelli logici a 3.3V (Seriale) e anche l’alimentazione 3.3V dell’arduino non è sufficiente.
    Ho notato un altro problema sul tuo schema, hai collegato l’U0RXD del modulo con RX dell’arduino e U0TXD con TX.
    Ovviamente per funzionare devi collegare U0RXD con TX e U0TXD con RX, sicuramente nelle prove lo avevi collegato in modo corretto altrimenti non avrebbe funzionato. Avrai avuto una svista mentre lo disegnavi con fritzing.

    L’articolo è uno dei migliori in lingua italiana. Complimenti, bel sito.

    1. Mauro Alfieri

      Ciao Prax,
      grazie per la correzione sul circuito è stata una svista.
      Corretto 🙂

    2. Domenico Giacinti

      Era giusto come collegato in precedenza… La dicitura RX su arduino indica i dati ricevuti dalla USB, quindi va collegato all’URXD del modulo, e di conseguenza il TX di arduino all’UTXD del modulo. Talvolta è necessario guardare gli schemi elettrici oltre che la serigrafia su PCB.

      1. Mauro Alfieri

        Grazie Domenico

  14. BITMANRC

    Ho acquistato ESP8266-01 da pochi giorni, ho scoperto che è un ai-thinker,
    collegando come consigli nello schema in alto, nel caricare i programmino mi da errori, se scollego il piedino CH_PD, allora mi fa caricare. quindi dopo caricato il programma, con o senza collegamento del piedino CH_PD, effettuo i comandi AT+…. ma nessuna risposta.
    cosa ne dici?

    ecco gli errori con CH_PD collegato

    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x93
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x93
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x93
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x93
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x93

    e cosi via sino a 10.-……

    1. Mauro Alfieri

      Ciao Bitmanrc,
      penso tu non abbia idea di come funzioni arduino e come utilizzarlo in modalità di semplice programmatore/interfaccia USB-Seriale.
      Trovi alcuni tutorial sul blog in cui ho descritto come fare.
      Lo sketch devi caricalo senza il modulo connesso, va bene anche solo disconnettere il CH_PD in quanto in questa modalità il modulo ESP8266 non funziona.
      Successivamente colleghi il modulo ed usi il monitor seriale per inviare i comandi AT senza caricare nuovamente lo sketch.

  15. Bernardo

    Ciao Mauro,
    Volevo sapere se conosci qualche guida per poter dare dei comandi 0,1 sulle uscite digitali che dispone arduino da una pagina web o da app di terze parti come blynk.

    Grazie!

    1. Mauro Alfieri

      Ciao Bernardo,
      sto provando a realizzare dei progetti con questo modulo, ti consiglio di cercare “web server ESP8266” ci sono molti esempi nel web.
      Non mi sento di consigliartene nessuno in particolare xché li sto valutando ancora.

  16. Mattia

    Ciao!
    Sto cercando di comunicare con il mio ESP8266 attraverso la scheda Arduino usata come convertitore USB-seriale. Ho fleshato il codice vuoto, poi ho collegato in pin RX e TX rispettivamente agli TX e RX dell’arduino e (come letto anche da altri blog) ho collegato il pin RESET a GND, (invece di staccare fisicamente l’atmega, dato che ho la versione SMD). Tuttavia, provando anche diversi baud rate non riesco a comunicare con l’ESP (il modulo è funzionante perché utilizzando SoftwareSerial risponde). Noto anche che il led TX dell’arduino si illumina molto debolmente. Secondo te quale potrebbe essere il problema?

    1. Mauro Alfieri

      Ciao Mattia,
      nel mio schema non c’è il reset connesso a massa, mi sorge il dubbio che crei qualche corto circuito che spiegherebbe la debole accensione del led di arduino.
      Se con la SoftwareSerial funziona, proseguirei con la comunicazione/programmazione mediante SoftwareSerial, come mai vuoi cambiare questa modalità?

      1. Mattia

        Non ho continuato ad utilizzare la SoftwareSerial perché la lunghezza del buffer è di 64byte, troppo corta per poter leggere correttamente i messaggi dell’ESP8266.

        Grazie comunque della risposta, ho googlato un po’ in giro e ho trovato un approccio molto interessante su http://www.arduinesp.com

        1. Mauro Alfieri

          Ciao Mattia,
          comprendo il limite dei 64byte. Interessante link lo consulterò certamente.

    2. MIchael

      Sul datasheet dell’esp8266(https://nurdspace.nl/images/e/e0/ESP8266_Specifications_English.pdf) a pag.10 si può notare come il modulo abbia picchi di assorbimento fino a 215mA. Probabilmente il problema di Mattia è dato da questo.

      @Mattia: quale soluzione hai trovato al limite del buffer di 64byte? ho cercato sul sito che hai linkato ma non ho trovato riferimenti…

      Michael

      1. Mauro Alfieri

        Ciao Michael,
        lascio visibile il tuo commento in modo che Mattia possa risponderti.

  17. BITMANRC

    Arduino+ESP8266, per ricevere e trasmettere, come in questo codice, cosa ha che non va ?
    inviando questo comando da htl 192.168.1.102/?Comando=33
    non mi va… cosa è che nn funziona.
    ps: per invio in GET è perfetto

    [[ codice rimosso in automatico ]]

    1. Mauro Alfieri

      Ciao Bitmanrc,
      come avrai letto in fondo ad ogni articolo: è vietato incollare codici nei commenti. Il codice viene automaticamente rimosso dai commenti.
      Leggendo il tuo commento non comprendo cosa mi chiedi, se provi a descrivermi cosa accade provo ad aiutarti.

      1. BITMANRC

        ho un arduino mega
        adesso lo sto usando a inviare e ricevere dati tramite Ethernet,
        diciamo una domotica o cosa simile.
        pigiando il pulsante arduino invia tramite Ethernet una stringa ad una pagina XXXX.ASP
        con il comando GET… blablabla…..
        fin qui tutto ok
        adesso vorrei inviare e ricevere tramite ESP8266, quindi collegato alla rete wifi di casa e di conseguenza ad internet,
        sto usando un programma creato da
        https://petestechprojects.wordpress.com/2014/12/10/mini-server-on-arduino-esp8266/
        con questo aiuto riesco a ricevere dati da una pagina html o asp, insomma qualcosa che si colleghi all’indirizzo arduino+esp.
        la cosa che non riesco a fare, che arduino invii da solo in autonomia la stringa del tipo

        GET /ARDUINO.asp?Azione=22&Comando=CTRL&ArduinoIP=192,168,1,33

        quindi inviando questa stringa, la pagina che la riceve, memorizza tutto su un mysql.

        Temperatura, Pulsanti premuti per casa, ecc. vengono memorizza in mysql, al fine di avere un storico, facendo si che arduino invii il comando da solo per ogni evento verificato,
        inoltre dopo 120 secondi invia in automatico un comandi per aggiornare l’IP di casa, cosi la pagina ASP che utilizzo puà avere e collegarsi ad un IP valido e soprattutto l’IP mio…
        Grazie (Spero di essermi spiegato :-()

        1. Mauro Alfieri

          Ciao BITMANRC,
          arduino lavora per cicli ( loop() ) per cui non dovresti aver difficoltà a inserire un contatore che arrivato al valore desiderato scateni l’evento di invio.
          Ci sono numerosi esempi online.

          1. BITMANRC

            non riesco a farlo, diciamo che in modalità ethernet, vado alla grande, ma con ESP8266, nulla da fare

            potresti indicarmi una parte dello steck da inserire in quel programma che ho linkato?
            Grazie

          2. Mauro Alfieri

            Ciao Bitmanrc,
            purtroppo non correggo o aggiungo parti a sketch che non scrivo in quanto non sono così bravo da capire cosa fa l tuo sketch senza provarlo e provarlo è impossibile per questioni di tempo.
            Posso solo suggerirti di ragionare su come fare e consultare quanti più tutorial possibili per comprendere cosa fare.

  18. BITMANRC

    ok grazie

  19. marco

    un chiarimento: alcuni autori dicono che non conviene alimentare da arduino perche’ assorbe piu’ di 200mA e l’ingresso dei segnali deve essere di 3.3V, come mai non hai preso alcuna precauzione ? ti ringrazio in anticipo per i chiarimenti. ciao

    1. Mauro Alfieri

      Ciao Marco,
      sono due considerazioni differenti:
      1. alimentazione sui 3,3v che su arduino uno eroga, da scheda tecnica ufficiale, 50mA ed il dispositivo ne assorbe fino a 200mA
      2. segnali a 3,3v sui pin dell’ESP8266 per Tx ed Rx e 5v su Arduino

      In generale per un test, come ho fatto io, puoi tranquillamente sorvolare perché nessun componente ne è danneggiato.
      Su un funzionamento prolungato è bene predisporre una alimentazione esterna a 3,3v per il punto 1 ed un adattatore di segnale per Tx ed Rx.

      In particolare per il punto 2, ho già risposto in altri commenti, che dipende anche dall’Hw su cui il componente è inserito in quanto il mio dispositivo ESP8266 è montato su una basetta ( versione 2 ) i cui ingressi Tx/Rx sono di tipo UART che supporta segnali a 5v.

  20. Joseph

    Ciao Mauro,

    per semplificare al massimo il sistema, il mio intento è quello di accendere/spegnere un led tramite arduino, utilizzando il modulo ESP8266. Per evitare il problema del voltaggio ho acquistato due moduli “Modulo ESP-01 ESP8266 WiFi Transceiver Module Arduino, PIC New version 8Mb FLASH” e l’adattatore “ADP-01 Adattatore per ESP-01 ESP8266 Breadboard Adapter Level Converter 3.3V- 5V”. Attualmente, per i test, utilizzo Arduino UNO e ESP8266 in trasmissione, mentre in ricezione utilizzo ESP2866 e Arduino Mega. Ho letto tutta la parte relativa al funzionamento dell’ESP8266 e sono riuscito a far dialogare i due moduli in Wi-Fi, uno come server e l’altro come client. Ma coma faccio ad accendere il led su arduino mega, mandando il segnale da arduino uno? Ho già provato ad utilizzare le classiche funzioni di scrittura/lettura seriale, ma non funziona. Non so se ho reso l’idea del problema.

    Avresti qualche forum dove si spiega come far comunicare due schede arduino tramite questi moduli wireless?

    Grazie

    1. Mauro Alfieri

      Ciao Joseph,
      purtroppo non ho link da suggerirti.
      Tuttavia se sei riuscito a far comunicare i due moduli sai già utilizzare i comandi AT ed il passaggio a controllare i led passa da questa strada.

  21. Paolo

    Ciao Mauro, sono nuovo nel mondo Arduino quindi ti chiedo scusa per la mia incompetenza

    Ho collegato l’ESP8266 all’Arduino come hai mostrato in figura, detto questo sembra andare si accende vedo la rete wifi ma non riesco a inviargli comandi da monitor seriale, cioè al momento che gli invio dei comandi rimane bianco il monitor seriale!

    Magari sto sbagliando qualcosa ma non capisco cosa:

    I collegamenti dovrebbero essere giusti, il circuito è molto semplice poi ti ripeto si accende, il modulo funziona, invece per comunicare carico lo sketch con il modulo staccato e apro il monitor seriale, riattacco il modulo e provo a inviare il comando AT+RST e non va, rimane bianco non mi restituisce niente!

    Non so più cosa fare! Probabilmente la mia poca conoscenza di Arduino non mi aiuta, secondo me sto sbagliando qualcosa di veramente stupido!

    grazie per la disponibilità e per il tutorial!

    1. Mauro Alfieri

      Ciao Paolo,
      da quello che scrivi sembra che i comandi non arrivino al modulo, come fai a dire che vedi la rete WiFi?
      riesci ad eseguire lo scan dei SSID WiFi ?

      1. Paolo

        Mi sono espresso male forse, con il termine funziona intendevo che il modulo si accende e se eseguo lo scan da un dispositivo tipo da un cellulare trovò la rete!
        Il problema e a monte, non riesco proprio a configurarlo!

        1. michele

          anche io ho lo stesso problema, uso esp8266 01 con adattatore adp-01. il cell mi rileva la rete wifi(e indirizzo ip) ma non riesco a far comunicarlo con arduino Leonardo. nè cambiando baund o porta usb o tr e rx. niente

          1. Mauro Alfieri

            Ciao Michele,
            arduino leonardo ha due interfacce seriali, trovi la descrizione sulla pagina ufficiale arduino.cc
            Io ti consiglio di utilizzarne una per comunicare con il PC ed una per l’ESP8266 senza ricorrere alla SoftwareSerial che con la Leonardo complica le cose.

        2. Mauro Alfieri

          Ciao Paolo,
          potresti avere un problema di baud rate differente tra il tuo modulo e quello impostato su arduino, dovrai fare un po di test cercando di comprendere quale sia l’impostazione giusta per il tuo modulo.

  22. Nicola

    Buongiorno,
    ho in mio possesso il modulo in oggetto e volevo provarlo ma ho alcuni dubbi:
    1) Il modulo funziona a 3,3 V quindi in tutti i progetti che ho visto su internet viene attaccato direttamente ad Arduino sui 3,3V. Tutti però riconoscono che il modulo in questione ha picchi di assorbimento di corrente di 320mA mentre sappiamo che Arduino sul pin 3,3V al massimo arriva a 150mA.
    Tutti infatti consigliano di alimentarlo esternamente, ma nessuno fornisce una soluzione pratica su come farlo. La mia domanda dunque è questa: avendo a disposizione 2 normali pile AA da 1,5 Volt (o 3 ricaricabili da 1,2V) messe in serie a formare 3V (o 3,6V)
    possiamo alimentare ugualmente il modulo wi-fi in oggetto? Dai datasheet del modulo leggo infatti che accetta in ingresso un range tra 1.7V e 3.6V).

    2) Alimentando separatamente Arduino e separatamente il modulo Wifi vale il concetto di massa comune per cui il Gnd del modulo Wifi e il terminale negativo delle pile in serie devono essere attaccati entrambi il pin Gnd di Arduino ?

    Grazie

    Nicola

  23. Luca

    Ciao, ho un problema abbastanza strano. Ho collegato tutto come hai scritto nell’articolo, e con un analizzatore wifi vedo che il modulo crea la rete, senza che io faccio niente.

    Il problema e’ che non riesco a inviargli nulla. Sui 9600 baud ottengo caratteri strani, anche senza scrivere nulla, e stessa cosa sui 57600. Sui 115200 invece rimane tutto bianco, anche se la barra di scorrimento aumenta, quindi puo anche essere che invii qualcosa.

    Ho due ESP8266 e 4 arduino uno, ho provato tutte le combinaizioni, cambiato i cavi. Niente da fare.

    Hai qualche idea?
    Grazie

    1. Mauro Alfieri

      Ciao Luca,
      hai provato velocità di connessione seriale differenti, magari i tuoi moduli usano un baud rate differente.

      1. Luca

        Ciao Mauro, si ho provato tutte le velocità ma ottengo sempre gli stessi risultati.

        Luca

        1. Mauro Alfieri

          Potrebbe essere danneggiato l’ESP8266 o mancargli il Fw.
          In entrambi i casi ti consiglio di approfondire sui siti dedicati a questo integrato come eseguire il ripristino del Fw o come verificare eventuali malfunzionamenti elettronici.

  24. MARCO

    CIAO MAURO, io quando metto at+cwmode? mi esce sempre 2, come faccio a cambiarlo?

    1. Mauro Alfieri

      Ciao Marco,
      è scritto due righe sopra nella stessa immagine in cui mostro il comando.
      Se vuoi approfondire i comandi fai riferimento al manuale di cui ho messo il link.

  25. vale

    Ciao Mauro,
    Ho un problema col mio modulo ESP8266. Se carico uno sketch vuoto, come tu hai spiegato, e successivamente invio comandi AT, il modulo risponde senza problemi. Quando invece carico uno sketch per usare il modulo come server inviando i comandi dal web, non funziona. Ho provato a scrivere diversi sketch e usare alcuni trovati su internet, ma nessuno va.

    1. Mauro Alfieri

      Ciao Vale,
      per gli sketch che hai trovato in internet devi chiedere ai rispettivi autori.
      Potrebbero esserci delle peculiarità che io ignoro.
      Io posso risponderti solo sui miei articoli e sketch.

  26. zoomx

    Mauro, non ti seccare, ma sarebbe meglio che modificassi lo schema elettrico in alto poiché non potrà mai funzionare. Arduino sulla linea a 3.3V fornisce solamente 50mA assolutamente insufficienti. Inoltre i pin dell’ESP8266 non gradiscono affatto i 5V e oltre a malfunzionamenti alla lunga si rischia di bruciare il piedino RX.
    Magari sostituiscilo con quello allegato al primo post di questo thread.
    https://forum.arduino.cc/index.php?topic=265682.0
    oppure ci sono altri schemi con traslatori di livello più sofisticati.

    1. Mauro Alfieri

      Grazie Zoomx,
      lascio il tuo commento per chi volesse approfondire l’argomento.

  27. Gabriele

    Ciao Mauro, sono Gabriele (quello della mano robotica con XBee).
    Un ragazzo mi ha chiesto se al posto del modulo XBee fosse possibile utilizzare questo ESP-01 (con ESP8266). Ti ripropongo il problema: utilizzando questo modulo dovrei inviare 5 segnali analogici letti dagli analog input dell’Arduino trasmittente ad un Arduino ricevente, nel più breve tempo possibile (15ms anche per permettere il movimento dei servomotori).
    Utilizzando il modulo XBee è piuttosto semplice perchè basta usare “Serial.write(…)” e “Serial.read(…)”, inoltre il modulo XBee è preconfigurato e non ha nemmeno bisogno di essere programmato via PC se si vuole usarlo subito.
    Con questo ESP la situazione è simile o c’è del codice da aggiungere? Perché ho notato che questo usa proprio il WiFi, ma il collegamento è simile a quello dell’XBee.
    Grazie per la pazienza Mauro!

    1. Mauro Alfieri

      Ciao Gabriele,
      felice di leggere un tuo intervento sul blog.
      Si gli ESP8266 sono dei moduli WiFi e come tali il codice è più complesso in quanto il serial.write puoi comunque inviarlo ma devi farlo usando i comandi AT ed un protocollo TCP. La complessità sale ma potrebbe essere una bella sfida per te e per far evolvere il tuo progetto.

      Qualche osservazione:
      1. coinvolgi il ragazzo che ti ha posto l’esigenza per lavorare insieme, così che non debba fare tutto tu;
      2. considera che la latenza del WiFi potrebbe compromettere i tempi di risposta;
      3. sicuramente un vantaggio del WiFi è puoi concentrarti solo sulla mano e controllarla da Pc o in futuro da un’app.

  28. nino

    vedo che l’ argomento interessa tanto …mi chiedevo come fare per connettere un esp8266 a progetti arduino gia testati in modo da effettuare l’ upload di sketch da remoto tramite wifi

    1. Mauro Alfieri

      Ciao Nino,
      non ho mai provato questa possibilità e non sono certo sia possibile.

  29. Paolo

    Ciao Mauro , sto cercando di trovare il giusto settaggio del monitor seriale ma solo a 19200 baud al comando AT+RST mi restituisce questo messaggio ” i� ” (senza apici). negli altri settaggi niente.
    Ciao e grazie.

    1. Mauro Alfieri

      Ciao Paolo,
      è un po’ basso 19200 e il risultato, lo vedi anche tu, non è leggibile.
      Prova a usare un interfaccia USB Seriale per connetterti al modulo.

  30. lorenzo

    ciao, sto facendo un progetto e uso vari sensori ad esempio temperatura, pressione; e tramite il modulo wifi volevo ricevere i dati su palmare. come si fa a configurare l’esp 8266 come acess piont sempre con i comandi AT?

    1. Mauro Alfieri

      Ciao Lorenzo,
      nella pagina di definizione dei comandi AT dovrebbe essere riportata la specifica per realizzare quello che desideri.

  31. Andrea

    Ciao Mauro io ho un:
    esp01
    Anduino Leonardo oppure arduino Due
    Smartphone Android

    quello che io vorrei fare è una comunicazione seriale tra il mio android e l’esp01 (l’ho fatta tempo fa con hC-05 però è un bluetooth), l’esp lo volevo collegare possibilmente sul mio arduino (così ho la possibilità di avere più pin a mia disposizione) e leggere l’RX proveniente dal modulo

    Con il bluetooth che avevo ho impostato un rx e tx sull’arduino e collegato i corrispettivi rx e tx dell’hc05
    dopo di ché mi collegavo con il mio telefono sul modulo hc05 e il gioco era fatto, scrivevo su un serial monitor scaricato per android e poi mi compariva sul pc

    Non so quale sia il migliore AT o NODEMCU io preferirei usare l’AT così posso collegare l’esp01 con arduino ed avere più pin a disposizione

    Spero di essere stato chiaro

    1. Mauro Alfieri

      Ciao Andrea,
      la descrizione di cosa vuoi fare è chiara, non ho compreso cosa mi chiedi.

      1. Andrea

        non so come scrivere il codice ; non so cosa caricare sull’esp e cosa su arduino

        1. Mauro Alfieri

          Ciao Andrea,
          posso solo suggerirti di studiare i miei esempi, la documentazione on-line sull’ESP8266 e imparare a scrivere quello che ti occorre.
          Diversamente non saprei come aiutarti.

          1. Andrea

            Non riesco a trovare i tuoi esempi
            Ho un’altra domanda anche. è possibile comunicare in wifi tramite due esp01?

          2. Mauro Alfieri

            Ciao Andrea,
            è tutto scritto in questo articolo, non ricordo di aver scritto molto su questo componente. Il web è ricco di esperimenti da seguire.
            Per la seconda domanda: la comunicazione WiFi degli ESP8266 è standard Tcp/Udp base poi devi decidere tu come usarla.

  32. Giovanni

    ciao Mauro ti volevo chiedere se è possibile assegnare un indirizzo IP statico am modulo ESP8266

    1. Mauro Alfieri

      Ciao Giovanni,
      si è possibile farlo, con i comandi AT puoi fare quello che desideri.

  33. Tommaso

    Ciao, non riesco a collegare il mio Arduino mega all’Esp 8266, ho collegato come sta nell’articolo, però non riesco a farlo comunicare, non dà segni di vita, chi mi può dare una mano?

    1. Mauro Alfieri

      Ciao Tommaso,
      hai verificato i collegamenti Tx ed Rx ? devono essere invertiti tra genuino ed esp8266.
      Un altro consiglio è di controllare/modificare la velocità di comunicazione che potrebbe essere anche di 115200.

  34. Fabio

    Ciao Mauro, ho acquistato dalla Cina un modulo Esp8266 es01 versione 2 come il tuo nell’immagine a destra ho caricato nell’arduino lo sketch vuoto come suggerisci tu , ho parametrizzato il monitor seriale provando le tre velocità di comunicazione , ma qualsiasi comando AT io invio non ho risposta dal modulo i collegamenti vanno bene che cosa può essere? Problema di software interno al modulo?grazie

    1. Mauro Alfieri

      Ciao Fabio,
      se i collegamenti sei sicuro siano corretti prova a variare la velocità di comunicazione, a volte è differente dalla mia.
      Se neppure così funziona potrebbe essere difettoso il componente o da aggiornare il firmware dell’ESP8266, trovi dei tutorial sul web.

  35. Fabio

    Ciao Mauro,
    Innanzitutto grazie per la tua risposta, ti chiedo ancora una cosa io ho dedotto che il modulo sia una versione 2 grazie alla foto da te pubblicata ma non c’è un metodo sicuro per saperlo? Poiché i pin RX e TX io li ho collegati direttamente all’ Arduino senza alcun partitore. Grazie

    1. Mauro Alfieri

      Ciao Fabio,
      la certezza la puoi avere dal produttore/venditore che deve rilasciarti la documentazione per utilizzarla.
      Ricorda che Tx dell’ESP8266 va su Rx di arduino e viceversa.
      Se devi usarla a lungo, e non solo per un test ti consiglio anche uno shiftlevel da 5v a 3,3v o il classico partitore di resistenze

  36. Massimiliano

    Ciao Fabio.
    Sono finalmente riuscito a far funzionare il mio ESP8266 collegato con un Arduino Mega e si connette alla perfezione sul mio Access Point.
    Ho bisogno di memorizzare tramite una variabile string l’indirizzo IP dato dal DHCP (dell’access point) e che visualizzo tramite il comando AT+CIFSR sul serial Monitor.
    Chiedo scusa in anticipo per la mia ignoranza…ma se poi postarmi qualche esempio o indicarmi qualche link in merito.

    Ringrazio in anticipo

    Massimiliano

    1. Mauro Alfieri

      Ciao Massimiliano,
      il valore di risposta AT+CIFSR è in realtà una stringa seriale in risposta alla tua chiamata.
      Puoi inviare il comando via seriale e metterti in ascolto usando un ciclo while che memorizzi il valore in una stringa.

      Se non sai come fare puoi prendere ad esempio uno qualsiasi degli esempi sulla comunicazione seriale e comprendere, leggendoli, come adattarti il codice.
      Purtroppo non conosco risorse on-line da consigliarti su cui si affronti del codice già pronto come serve a te.

  37. Andrea

    Salve Mauro

    , io sto letteralmente impazzendo per trovare uno sketch o esempi per il modulo Esp8266.

    vorrei leggere l’aoutput di un file php sul mio sito ( un contatore visite) per poi visualizzare le visite su un display I2C seriale.

    per il discorso display nessun problema ma non riesco a partire con la scheda wifi. di sicuro devo fare un GET o readfile ma non so da dove iniziare. tra l’altro vedendo alcuni esempio utilizzano librerie che non trovo in rete .

    Lei potrebbe darmi qualche dritta gentilmente ??

    grazie

    1. Mauro Alfieri

      Ciao Andrea,
      hai provato con il nodeMCU ha un firmware che supporta già molte implementazioni utili.

  38. Andrea Corgiatini

    Ciao Mauro. Ho un modulo esp8266-01. Il problema è il seguente: ho il led blu acceso, la wifi è vista ad esempio dal mio cellulare, ma il modulo non accetta più nessun comando AT. Se lo sconnetto e riconnetto nulla cambia. Tale comportamento si è attivato successivamente ad aver inviato un comando di AT+RST.
    Uso Arduino come interfaccia. Fino a quando avevo il solo led rosso acceso, il modulo rispondeva ai comandi AT. Come mai? Come faccio a sbloccarlo?

    Grazie per tua risposta

    1. Mauro Alfieri

      Ciao Andrea,
      il led blu acceso mi lascia pensare che il modulo sia in modalità di programmazione firmware, tuttavia i moduli di questo tipo non hanno sempre gli stessi colori dei led per indicare le modalità per cui dovrai indagare meglio sullo stato del dispositivo facendoti aiutare dal datasheet del produttore.

  39. MAURIZIO

    buongiorno,
    si potrebbe usare come modem wifi per connessioni internet ,collegandolo alla porta usb con il convertitore adattatore “USB to RS232 Serial TTL” ?

    grazie
    Maurizio

    1. Mauro Alfieri

      Ciao Maurizio,
      intendi usarlo come UsbKey WiFi?
      Non l’ho mai visto utilizzare in questo nodo.

      1. MAURIZIO

        Ciao Mauro,
        si, intendevo un uso come UsbKey,volevo collegare la scheda ,direttamente al dipolo di una antenna direttiva.

        1. Mauro Alfieri

          Ciao Maurizio,
          confermo di non averla mai vista utilizzare in questo modo, non escudo sia possibile con un apposito firmware.

  40. Alex

    ciao ! è possibile utilizzare piu moduli per diversificare il segnale di impulso radio?

    1. Mauro Alfieri

      Ciao Alex,
      intendi per andare su canali differenti del WiFi ?

  41. Giosuè

    Ciao Mauro, ho acquistato il modulo esp8266 in modo da poter accendere i led da remoto ma la mia intenzione non era quella di programmare il modulo bensì quella di ricevere un dato(stringa, bit o altro) da un dispositivo e farlo interpretare da arduino per fargli poi svolgere le azioni che gli programmo. E possibile che arduino e esp8266 non possono proprio comunicare? C’è un metodo che non conosco o un sito che dovrei guardare?GRAZIE UN ANTICIPO

    1. Mauro Alfieri

      Ciao Giosuè,
      arduino ed ESP8266 possono comunicare via seriale, io ti consiglio l’uso della SoftwareSerial per simulare la comunicazione seriale su pin differenti dal Tx ed Rx classici di arduino.
      Nel mio blog trovi molte info in merito a questo metodo di comunicazione.

  42. Alessandro

    Ciao e complimenti x il lavoro svolto…
    io vorrei usare due moduli esp8266 per comunicare esclusivamente
    tra due arduini senza passare x nessun modem/router wifi
    è possibile ?
    Grazie
    Saluti

    1. Mauro Alfieri

      Ciao Alessandro,
      si è possibile creando una rete ad-hoc con uno dei due ESP8266 e connettendo il secondo all’SSID generato dal primo.
      Se ti occorrono delucidazioni sulle reti puoi leggere qualche manuale di networking e WiFi che è molto dettagliato sull’argomento.

  43. leonardo marche

    Buona sera Mauro,
    ho fatto la programmazione dell’ESP8266 Spakfun tramite IDE( e scheda ) arduino utilizzando i piedini 10 e 11 come tx/rx ( via software serial).
    Tutto perfetto, ho configurato il modulo come STA , configurato ssid/pw ecc. si connette e gli viene dato il suo IP dal DHCP del router di casa.
    Il modulo dalla fabbrica mi e’ arrivato a 115200 baud, tramite AT+CIOBAUD l’ho impostato a 9600 ( per diversi motivi, piu’ avanto potro’ usare velocita’ maggiori).
    Cosa e’ successo : faccio un bel AT+RST e tanti saluti. Il modulo si rimette a 115200 baud ( stessa cosa se spengo e riaccendo il tutto).
    La cortesia che Le chiedo e’ suggerirmi come mettere in memoria non volatile i dati di programmazione del modulo ESP8266.
    La ringrazio anticipatamente per la risposta che vorra’ darmi.
    Un cordiale saluto.
    L. Marche
    Milano

    1. Mauro Alfieri

      Ciao Leonardo,
      il comando AT+RST mi sembra faccia proprio il reset alla configurazione iniziale.
      In merito alla perdita di configurazione in mancanza di alimentazione non ricordo che accada by design, hai verificato in internet se esistono tutorial in cui correggono tale comportamento?

      1. leonardo marche

        Buona sera Mauro.
        innanzitutto grazie per la risposta. prima si disturbare te ho passato sere a girare su internet per cercare info ma non ho trovato nulla di utile. Quello che piu’ e’ “strano” e’ che un reset ( o anche una banalissima mancanza momentanea di alimentazione) ripristina TUTTI i parametri iniziali , quindi si perde anche le configurazione wifi( ssid,pw, ma anche la sceltatra STA o AP del sistema , cose fondamentali!!). A mia memoria nei modem esiste, appunto per evitare questi casini, l’istruzione AT&W che mette in memoria non volatile quanto scritto dai comandi AT. ma nel set di istruzioni offerte non c’e’ nulla di simile.
        Mi sembra davvero assurdo che si perda la configurazione per questi motivi.
        Se qualcuno nel “blog” ha soluzioni , esperienze simili od opposte in merito , ‘ ovviamente e’ il benvenuto.
        Per quanto riguarda il tuo interessamento, ribadendo il mio grazie, ti chiedo se puoi perdere ancora qualche minuto per vedere se ti viene un ” colpo di genio” per superare l’ostacolo. questa cosa mi sta bloccando tutto l’attuale lavoro.
        Grazie ancora e una buona serata.
        Leonardo.

        1. Mauro Alfieri

          Ciao Leonardo,
          hai provato ad aggiornare il firmware del modulo? In alternativa hai provato altri moduli ESP8266, potrebbe essere un malfunzionamento del tuo componente.
          Se mi viene in mente altro ti scrivo.

          1. leonardo marche

            Buon giorno Mauro, risolto l’enigma.
            ho ordinato altri due moduli identici,utilizzato le stesse procedure di programmazione e tutto ok ( spegnendo il modulo non si perdono i parametri).
            rimesso su quello originale , allo spegimento la configurazione wi-fi si perde.
            morale…. modulino “difettoso”.
            meglio cosi’ , almeno tutto si e’ ricondotto a una cosa logica e comprensibile.
            grazie ancora per la collaborazione e la pazienza.
            L.M.

          2. Mauro Alfieri

            Ottimo Leonardo.

  44. Emanuele

    Ciao Mauro, complimenti per l’articolo, vorrei sapere se potresti aiutarmi. Ieri ho seguito la tua guida e il modulo funzionava perfettamente, oggi invece quando do il comando AT+CIFSR per visualizzare l’indirizzo ip l’indirizzo è scorretto e mostra sempre lo stesso ip a prescindere dalla rete wifi a cui è connesso. Spero in una tua risposta, grazie tante.
    P.S.
    Il mio modulo (uguale a quello che usi tu) funziona solo se inverto i pin tx e rx rispetto a come sono indicati nella tua guida.

    1. Mauro Alfieri

      Ciao Emanuele,
      sei certo che la connessone stia avvenendo correttamente alla rete wifi?
      Hai accesso al router per verificare che IP ha assegnato al tuo modulo?
      Se le connessioni sono invertite probabilmente il modulo è apparentemente identico al mio ma possiede dei cablaggi differenti.
      I produttori sono tanti e potrebbero aver eseguito l’inversione sul pcb.

  45. Paolo

    Ciao Mauro,
    sul mio iPad c’è una App che trasmette via WiFi delle stinghe NMEA ad es. all’ IP 191.168.10.15:10110 con modalità UDP. Se mi collego con il mio PC posso facilmente acquisirle. Vorrei farle leggere da Arduino tramite l’ ESP8266 per poterle poi elaborare per un mio progetto. Mi interessa particolarmente la bussola.
    I comandi AT possono essere dati con uno sketch Arduino o devo per forza passare dal Monitor Seriale?
    Non rieso a trovare esempi di lettura tramite comandi AT (AT+IPD?)
    Puoi farmi tu un esempio?
    Grazie
    Paolo

    1. Mauro Alfieri

      Ciao Paolo,
      si i comandi AT puoi anche inviarli con il Serial.println( …. ) attedendo i tempi di risposta ed analizzandoti i dai ricevuti per il tuo progetto.
      In merito ad un esempio non ho in progetto a breve di farne.
      Qualora pubblicassi degli articoli in merito ti avviso.

  46. Danilo

    Ciao mauro e da tempo che seguo le tue guide e volevo ringraziarti per quello che fai….

    avrei solo una domanda come posso per fare una richiesta http quando si eccita un sensore pir collegato ad una scheda arduino mega ???

    1. Mauro Alfieri

      Ciao Danilo,
      con quale shield vuoi eseguirlo ?

      1. Danilo

        Con arduino mega e esp8266

        1. Mauro Alfieri

          Ciao Danilo,
          dovrai farlo usando i comandi AT, anche se non ho mai scritto articoli in merito, dovrai provare a scrivere il codice sia lato Arduino Mega sia lato ESP

  47. Federico

    Ciao mauro, vorrei chiederti un consiglio. Ho letto grossomodo tutti i commenti e ho compreso le problematiche di questo modulo:
    1. Esp8266 richiede 200mA ma arduino ne eroga solo 50 dalla porta a 3.3V
    2. Se non ho mal capito necessità anche di un convertitore per quanto riguarda le interfacce seriali di comunicazione? Potresti spiegarmi meglio questo problema?
    Infine vorrei chiederti come potrei bypassare questi problemi in modo facile, economico e veloce in base alla tua esperienza. Il mio obiettivo è effettuare una lettura da remoto dei dati rilevati da arduino, magari mediante la creazione di un piccolo sito.

    1. Mauro Alfieri

      Ciao Federico,
      il primi problema non esiste, riguarda l’alimentazione e non i pin.
      Il secondo vul dire che ti serve un level shifter che di solito io acquisto da robotics-3d e ti adatta dai 5v i segnali ai 3,3v che ti servono.

  48. Matteo

    Salve,
    seguo sempre i suoi tutorial e li trovo tra i migliori nel web per chiarezza e semplicità.
    Vorrei una piccola informazione,
    ha pubblicato sul suo sito altri tutorial con questa scheda o conosce siti attendibili dove potrei imparare ad utilizzarla in una maniera più approfondita?(Es: web server per controllo da internet di una scheda arduino)
    Grazie mille e complimenti per il sito!

    1. Mauro Alfieri

      Ciao Matteo,
      per verificare se nel sito ci sono altri tutorial in merito ad un argomento puoi eseguire una semplice ricerca.
      Ci sono nel Web tanti siti che parlano della ESP8266 e sono a mio avviso tutti attendibili se sai comprendere di cosa parlano e come lo trattano.
      In merito a quanto scritto tra parentesi: ESP8266 non è arduino.

  49. Simone

    Ciao Mauro.
    Ho appena terminato un progetto con arduino per gestire la funzione di alba, giorno,tramonto tramite un rtc esterno di un anno intero di programma con sd esterna! MI sono divertito.
    Dunque ne sto facendo un altro.
    Avevo visto questo modulo, mi chiedo, la connessione wifi deve passare direttamente da un router/modem oppure può stabilirsi tra telefono e dispositivo?
    Perche nell’ultimo caso sarebbe veramente interessante come approccio per sviluppare applicazioni su smartphone.

    1. Mauro Alfieri

      Ciao Simone,
      il modulo ESP8266 puó generare una rete WiFi a cui connetterti con il cellulare.

  50. Vincenzo

    Ciao Mauro, innanzi tutto grazie per la guida: conosco un minimo arduino ma sono un neofita dell’esp8266. Dopo ore e ore di ricerche, test etc. utilizzando la configurazione di cui sopra sono riuscito a comunicare con l’ESP tramite monitor seriale (utilizzando i vari comandi AT).
    Ad un certo punto per ridurre la velocità di comunicazione dell’esp a 9600 (per poter utilizzare softwareSerial con Arduino) ho usato il comando “ AT+UART_DEF=9600,8,1,0,0 ” ma come risposta ho ottenuto un errore, allora ho provato il comando “ AT+IPR=9600” (anche questo trovato in un tutorial) e da li si è rotto tutto: riavviando l’esp il led blu è rimasto acceso in maniera fissa. “Googolando” ho visto che l’unica cosa da fare è “flashare” il modulo ricaricando da capo il firmware. Per farla breve ho effettuato l’operazione più volte utilizzando diverse versioni di firmware (quelle con i comandi “AT”, quella NodeMCU) ma non sono più riuscito a riportare il modulo allo stato iniziale. Devo precisare che l’operazione di caricamento del firmware va a buon fine (durante il caricamento il led blu dell’esp8266 lampeggia e i software utilizzati per l’upload del firmware non mi danno errore): hai qualche suggerimento su quale possa essere il prossimo step o cosa posso provare?
    Grazie mille e ancora complimenti.

    1. Mauro Alfieri

      Ciao Vincenzo,
      premetto che non mi è mai capitato quello che descrivi ma penso dipenda dal fw installato sul chip ESP8266.
      Hai cercato nel sito esp8266 dot com ? Mi sembra di aver letto tempo fa che esistono diversi firmware e che solo alcuni di questi accettano il comando “AT+UART_DEF=9600,8,1,0,0” ma on ho mai letto del comando “AT+IPR” non so cosa faccia.

      1. Vincenzo

        Grazie per la celerità della risposta e per i tuoi suggerimenti. Non entro nel dettaglio ma ho fatto altri test senza successo. A questo punto punto per essere sicuro di “uploadare” il firmware in maniera corretta sull’ESP8266 incriminato e per escludere problemi di tensione o qualunque tipo di “disturbo” ho ordinato l’adattatore USB FT232RL FTDI (dovrebbe arrivare in settimana). A quel punto riproverò e se la cosa va a buon fine ti farò sapere!

        1. Mauro Alfieri

          Ottimo Vincenzo.
          Se vorrai condividere la tua esperienza i un articolo, i test ed il successo ottenuto il blog è a tua disposizione.
          Leggi nella sezione “collabora al blog” come inviare un articolo e sarò lieto di pubblicarlo a tuo nome.

  51. Ruben

    Ciao Mauro
    sono un appassionato di elettronica ma non un ‘guru’. Ultimamente mi sto divertendo con i microcontrollori tipo ‘Picaxe’.
    Secondo te questo modulo nato per ‘Arduino’ potrei usarlo con altro controllore?
    Grazie

    1. Mauro Alfieri

      Ciao Rube, l’ESP8266 non è nato per arduino.

  52. Benito

    Ciao mauro! Ho provato a collegare il mio modulo wifi ad arduino, seguendo quanto hai espresso precedentemente, ma nel monitor seriale non mi compare nulla! Ho fatto tutto e non capisco quale sia il problema:(

    1. Mauro Alfieri

      Ciao Benito,
      controlla bene i collegamenti e prova velocità differenti potrebbe essere impostato su valori diversi dai miei.

  53. Fabrizio

    Ciao Mauro
    Complimenti per il sito e i temi trattati.
    Ho una domanda su ESP8266. Sai se é possibile rimuovere i messaggi di boot provenienti dalla seriale quando si avvia esp8266?

    In pratica é comune che all’avvio la esp invii dei messaggi di debug a un baudrate che può essere 115200 o 78400. Questa cosa può essere piuttosto fastidiosa, soprattutto se si desidera usare esp8266 standalone.

    La mia board é un dev kit nodemcu.
    Ho provato a flashare dei bin del firmware AT e anche l’ultima release del nodemcu ma niente. Sembra che si trovi nella ROM.
    Saluti

    1. Mauro Alfieri

      Ciao Fabrizio,
      domanda interessante .. non ho mai provato o letto nulla in merito.
      Se fossero nella ROM dubito possano essere rimossi.
      Nel boot del firmware hai verificato che non ci sia qualche istruzione, che possa essere rimossa, che esegue l’invio di queste info?

  54. andrei

    salve uongiorno ho fatto l’esperimento vorrei aggiungere la pasword al nuovo wifi che si genera

    1. Mauro Alfieri

      Ciao Andrei, nei comandi AT dovrebbe essere prevista questa possibilità.

  55. Nicola

    Ciao Mauro, avrei bisogno di un tuo aiuto, ho provato a collegare attentamente l’arduino al l’esp8266 ma non riesco a vedere nulla nel monitor seriale, o provato anche d abbassare la velocità ma nulla, riesco a rillevare la sua rete wifi che genera e mi collego ma non riesco a programmarlo, mi potresti aiutare? grazie nicola

    1. Mauro Alfieri

      Ciao Nicola,
      il fatto che generi una rete potrebbe dipendere da una programmazione ed un firmware esistente, solitamente questo non inibisce la comunicazione seriale, tuttavia la certezza la puoi avere solo dal produttore e fornitore che sa dirti se ha pre-caricato qualche firmware specifico e a che velocità puoi comunicare con il chip.

  56. alessio

    sto seguendo la tua guida usando un level shifter ma non riesco a farlo funzionare, collegando il vcc al pin LV dello shifter neanche si accende, collegandolo direttamente ai 3.3v del nano si ma non riesco a comunicarci 🙁
    chissa dove sbaglio, ho provatto tutti i baud

    1. Mauro Alfieri

      Ciao Alessio,
      non so che tipo di level shifter tu stia usando, l’unico che ho provato io è quello della Sparkfun e devi fare molta attenzione alle tensioni che utilizzi per l’alimentazione, le vuole entrambe per funzionare.
      Se vuoi un consiglio, cerca in questo blog come si fa un partitore di resistenze e calcolane uno da applicare al pin Tx di arduino verso il pin Rx del ESP8266-01, è la soluzione alternativa che io utilizzo più spesso.

      1. alessio

        Grazie Mauro era un problema di alimentazione del modulo esp8266, alimentando con l’alimentatore un arduino uno riesco a comunicarci… ora devo capire come scrivere i dati del sensore sul database 😀

        1. Mauro Alfieri

          Ottimo Alessio !!!

  57. Roberto

    Ciao Mauro,
    è possibile che in tutte le pubblicazioni (comprese le tue) trovi sempre il modulo ESP8266-01 connesso con TX-RX E RX-TX ad Arduino, mentre io riesco a “caricare” sketch SOLO con RX-RX e TX-TX anche con diversi Arduino e diversi ESP8266-01 ?
    Eppure ho controllato bene le connessioni.
    Reset +3.3v
    CH_PD +3.3v
    GPIO0 GND
    RX -> RX di Arduino ??? Perchè funziona solo così?
    TX -> TX di Arduino ??? Perchè funziona solo così?
    Ho provato CON e SENZA convertitore di livetti 5v-3.3v
    Grazie

    1. Mauro Alfieri

      Ciao Roberto,
      la comunicazione seriale avviene SOLO invertendo TX ed RX tra i due device, motivo per cui trovi concordi tutti gli articoli su internet.
      Su Arduino Uno originale, o genuino Uno originale, Rx corrisponde al pin 0 e Tx al pin 1 e devono essere rispettivamente connessi ai pin Tx dell’ESP8266-01 e Rx dell’ESP8266-01 o qualsiasi altro modello di ESP8266

  58. Roberto

    Mauro, ho capito leggendo i tantissimi commenti del tuo Blog.
    Il pin 0 riporta 0 -> RX e 1 -> TX. Quindi è corretto ESP8266 RX su 0 di Arduino e TX su 1 di Arduino.
    Ho letto male la serigrafia. Ovviamente è il contrario di quello che appare sul mio modello di Arduino.
    Ho capito bene ?
    Grazie comunque per l’attenzione
    Roberto

    1. Mauro Alfieri

      Ciao Roberto,
      vedi commento precedente.

  59. natale

    complimenti, ottimo tutorial

    1. Mauro Alfieri

      Grazie Natale,
      mi fa piacere ti piaccia e ti sia utile.

  1. usb serial converter 3,3v - Mauro Alfieri Elettronica Domotica Robotica Elettronica

    […] Per programmare i micro controllori a 3,3v tipo ESP8266 ho in passato usato l’arduino uno ( leggi: esp8266 arduino comandi at ). […]

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Puoi usare i seguenti tag ed attributi HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>