ESP8266 e comandi AT

Ciao a tutti, purtroppo dovete sopportarmi perche' e' la prima volta che sto cercando nel limite del possibile capire come funzionano questi dispositivi, e sono sicuro che molti di voi hanno gia' affrontato il problema. Il mio ultimo problema attuale riguarda l'aggiornamento del firmware.

Dopo aver appurato che tipo di flash monta il modulo che ho sotto esame, il firmware piu' recente che ho trovato in rete e' il 0.9.5.2, il quale ovviamente e' l'unico attuale a poter essere inserito in una flash da 4Mbit, almeno cosi dice il loro tool per flashare.

Questo firmware purtroppo ha troppe limitazioni, come ad esempio impostare il gateway e la subnet mask che non sono riuscito in nessun modo a trovare nulla su internet che spieghi il problema.

Di conseguenza ho voluto forzare l'aggiornamento e dopo aver scaricato una versione attuale, e dopo aver impostato i vari indirizzi e attuato qualche cambiamento, ottengo questi risultati:

AT+GMR
AT version:1.4.0.0(May 5 2017 16:10:59)
SDK version:2.1.0(116b762)
compile time:May 5 2017 16:37:48
OK

Fin qui tutto ok.
Al momento in cui modifico indirizzo ip statico, gateway e subnet mask, finche' resta tutto in funzione, nessuna pecca. Appena resetto ritornano i valori di default.

Qualcuno saprebbe dirmi se ha avuto lo stesso problema e come si risolve?

Ringrazio anticipatamente

Pasquale

... forse non lo hai notato, ma ti segnalo che in Megatopic c'è un thread di oltre 170 pagine interamente dedicato al ESP8266.

Nella prima pagina troverai una serie di link a guide e tutorials.

Guglielmo

Ti ringrazio della segnalazione. Purtroppo i problemi che si presentano nella maggior parte dei casi non sono risolvibili tramite tutorial e guide. In ogni caso ho risolto questo problema caricando il boot_v1.4(b1).bin e settando gli indirizzi del esp_init_data_default.bin e del blank.bin rispettivamente a 0x7C000 e 0x7E000.

Pasquale

Non che non ho voglia di leggere, perche' ormai ho assimilato tutti i comandi AT e i modi di funzionamento, non spiegati nel dettaglio in nessun manuale d'uso ma da apprendere solo con centinaia di prove. Purtroppo c'e' ancora qualcosa che non torna.

Perche' non memorizza nella flash l'indirizzo IP statico?

Questo problema purtroppo non permette la riconnessione automatica in caso di disconnessione per qualsiasi motivo.

Possibile che tutti questi problemi sono solo io ad averli?

AT+CIPSTA_DEF="192.168.1.190","192.168.1.1","255.255.255.0"


OK
AT+CIPSTA_DEF?

+CIPSTA_DEF:ip:"192.168.1.190"
+CIPSTA_DEF:gateway:"192.168.1.1"
+CIPSTA_DEF:netmask:"255.255.255.0"

OK

AT+CWLAP

+CWLAP:(3,"FASTWEB-1-C4iFkxh8scb1",-89,"a0:4f:d4:6e:db:0a",11,142,0)
+CWLAP:(4,"TP-LINK_423E62",-41,"a3:fe:23:56:12:ef",11,110,0)

OK
AT+CWJAP="TP-LINK_423E62","XZWERSA123"

WIFI CONNECTED
WIFI GOT IP

OK
AT+CWQAP


OK
WIFI DISCONNECT
AT+RST


OK
16 
tail 4
chksum 0x89
load 0oot version : 1.4(b1)
  SPI Speed      : 40MHz
  SPI Mode       : QIO
  SPI Flash Size & Map: 32Mbit(1024KB+1024KB)
jump to run user1 @ 1000

rlǃ;dğ⸮cd⸮c⸮c⸮⸮n⸮ng⸮웜d⸮l$⸮⸮⸮d⸮s⸮⸮|rl⸮o⸮

ready


AT+CIPSTA_DEF?

+CIPSTA_DEF:ip:"84.80.45.76"
+CIPSTA_DEF:gateway:"84.80.45.1"
+CIPSTA_DEF:netmask:"255.255.255.0"

Scusa, ma perché dovrebbe? Il firmware AT è pensato per far pilotare il modulo da qualcosa di esterno (ad esempio un Arduino Uno), per cui è completamente stateless e perde la configurazione ad ogni riavvio. Se deve essere configurato sempre allo stesso modo, chi lo pilota deve mandargli ogni volta gli stessi comandi.

Non e' come dici tu. Il modulo esp8266 e' progettato per funzionare senza nessun altra periferica di contorno. In quel caso, se voglio usare i piedini liberi del modulo per pilotare rele' o acquisire dati dall'esterno, non c'e' nessun microcontrollore che andra' a reimpostare i parametri di configurazione.
I parametri di configurazione vanno impostati solo 1 volta, e deve mantenerle in memoria, flash o eeprom che sia. Di fatto ho trovato un firmware piu' vecchiotto che funziona egregiamente e sono riuscito a fargli mantenere la configurazione in memoria anche dopo averlo spento e riacceso.
Sono riuscito anche a trasmettere dati via wifi dal browser del pc usando il protocollo http, e quindi da qui a fare un programmino di test che comunica direttamente via TCP e' un gioco da ragazzi, domani lo faccio.

La trasmissione funziona da dio:

+IPD,0,374:GET /prove+tecniche+di+trasmissione HTTP/1.1
Host: 192.168.1.190
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Language: it-IT,it;q=0.8, keep-alive
Upgrade-Insecure-Requests: 1

Adesso e' sorto un'altro problema di cui non riesco a venirne a capo. Non riesco a settare il DNS e di conseguenza non riesco a mandare il modulo su internet. In rete locale tutto ok perche' non ha bisogno di DNS. Il firmware che non mi da problemi al momento e' la versione 0.9.5.2, e considerando che dispongo solo del modulo ESP-07, non sono in grado di fare altre prove, almeno finche' non mi arriva tutto il materiale che ho ordinato.

Ma tu vedi un po' che passatempo. Per togliermi una piccola curiosita' sta andando a finire che devo imparare ad avemaria tutto quello che c'e' da sapere su questo coso piu' tutti i bug esistenti e i modi per aggirarli. Non e' che sia tanto sorpreso, ma sinceramente mi sta facendo perdere troppo tempo, anche perche' cio' che viene spiegato nei vai tutorial e' generico, e quello che si incontra nella realta' e' ben diverso.

Grazie comunque del contributo
Pasquale

pascal69:
Adesso e' sorto un'altro problema di cui non riesco a venirne a capo. Non riesco a settare il DNS e di conseguenza non riesco a mandare il modulo su internet.

Prova a guardare questo. Non l'ho provato pero, io uso ddclient sulla raspberry.

Sono d'accordissimo che il modulo può essere usato da solo, ma non con il firmware AT. Comunque se hai risolto, meglio così.

doppiozero purtroppo al momento non posso usare librerie, mi serve settare il DNS tramite comandi AT.

SukkoPera d'accordo che il modulo non si puo' usare da solo utilizzando il firmware AT. Il firmware AT in questo momento lo sto utilizzando solo per fare qualche test e cercare di capire fin dove si puo' arrivare, null'altro.