WiFi Shield con ESP8266 - futurashop.it · basate su un convertitore sigma-delta a PWM. ... al fi...

Preview:

Citation preview

1

MANUALE D’USO FT1192M

WiFi Shield con ESP8266 (cod. FT1192M)

Lo shield è basato sull’integrato ESP8266, affinchè possa funzionare inmodo auto-nomoall’internodiunareteWi-Fi.Infattil’ESP8266contienenonsolo lostadioRF, ma anche un microcontrollorepienamente programmabile ed unregistro cui fanno capo degli I/O,oltreabusdicomunicazionecomel’SPIe l’I²C.Questosignificacheilcomponentepuòdasolo imple-mentarelacomunicazioneinWiFi;inoltre,lapossibilitàdifareseguireal chip un programma, permette lagestionedialcunipin(GPIO,busvari)alfinedirealizzareunsistemachepossainterfacciarsiconperifericheesternedivariogenereogestireingressieuscite.All’internodel chipESP8266 troviamounmi-crocontrollorea32bitcompletodiROM,RAMeSRAMperprogrammaedati;ilchipdisponedilineediI/Odigitaliedingressianalogici,oltrechediportedi comunicazionecome I²C,SPIeUART. Le porte di comunicazione possonofunzionare da slave inmodo da interfacciarememorieesternealmoduloedampliarneilfun-zionamento. Le linee digitali disponibili sonosedici,configurabilicomeingressiouscite,tut-teconresistenzadipull-upeconlapossibilitàdi generare un interrupt.Sonodisponibilianchealcunelineediingressoediuscitaanalogichebasatesuunconvertitoresigma-deltaaPWM.Ilchipèstatoprogettatoperfunzionareadunatensionedi3,3Vconunmassimoammissibiledi 3,6V, gli ingressi digitali dispongono di unapposito circuito (overvoltage protection) perproteggere l’integrato da tensioni in ingressosuperioria6V.Supporta tutti i protocolli di cifratura piùmoderni:WEP (RC4), CCMP (CBC-MAC,counting mode), TKIP (MIC, RC4) o WAPI(SMS4), WEP (RC4), CRC, WPA, WPA2 eWPS.Nella Tabella 1 vieneriportatoilfunzionamen-

WiFi Shield con ESP8266 Lo shield è basato sull’integrato ESP8266, affinchè possa funzionare inmodo auto-nomoall’internodiunareteWi-Fi.Infattil’ESP8266contienenonsolo lostadioRF, ma anche un microcontrollore

gestionedialcunipin(GPIO,busvari)alfinedirealizzareunsistemachepossainterfacciarsiconperifericheesternedivario

GPIO INPUT OUTPUT PWM

GPIO0 sì no noGPIO2 sì no no

GPIO12 sì sì sìGPIO13 sì sì sìGPIO14 sì sì noGPIO15 sì sì sì

Tabella 1 - Funzione dei pin del chipESP8266.

todeisingolipin.Leapplicazionicuiilcompo-nenteèdestinatosonohomeautomation, retimesh,wireless industriale,babymonitor, tele-camerediretewireless,retidisensori,elettro-nica indossabile, dispositivi di localizzazionewireless location-aware devices, security IDtagecc.Le caratteristiche e le funzioni implementatesono:• compatibilità802.11b/g/n;• WiFiDirect(P2P),soft-AP;• supportostackTCP/IP;• TRswitch,balun,LNA,amplificatoreRFeaccoppiamentoallareteintegrati;

• PLLegestoredell’alimentazioneintegrati;

2

FT1192M MANUALE D’USO

Schema elettrico

• potenzaintrasmissionein802.11bdi+19,5dBm;

• sensoretermicointegrato;• supportoperantennadiversity;• CPUa32bit;• SDIO2.0,SPI,UART;• STBC,1x1MIMO,2x1MIMO;• A-MPDU,A-MSDU;• solo2msperconnessioneetrasferimentodipacchettidati;

• correnteassorbita in statodi offminoredi10µA;

• consumo in standby minore di 1 mW(DTIM3).

L’ESP8266nasceperfornirelaconnettivitàWiFi

indispositivimobilioindossabilialimentatiabat-teria,implementamodalitàabassoconsumodienergiachesono:active mode, sleep mode e deep sleep mode, ognunadellequali prevedel’attivazionediuncertonumerodiperiferiche.Nella sleep mode il modulo radio è spentomentre rimangonoattivi il timere ilwatchdogel’assorbimentoèdisoli12µA;inquestamo-dalitàèpossibileprogrammareiltimerinternoaffinchéattiviilmoduloradioaintervalliregolariperinviareoriceveredati.All’occorrenza è possibile attivare il moduloradioeabilitareletrasmissioni,tramitesegna-li dall’esterno. Da software è anche possibileridurrelapotenzadiemissioneeridurreicon-

3

MANUALE D’USO FT1192M

sumiinapplicazioniincuisonorichiestecomu-nicazioni a brevi distanze come in dispositiviindossabili. La lineaCHIP_PDdisponibile sulconnettoreesternopermettediportareilmodu-lonellostatodideepsleepmodeconunassor-bimentodicorrentequasizero.L’assorbimento di corrente durante l’activemode raggiunge unmassimo di 215mA allamassima potenza di trasmissione con proto-collo802.11ba11Mbpsescendea145mAconprotocollo802.11ga54Mbps(divienesoli60mAperl’inviodiunpacchettodi1.024byteconpotenza inantennadi -65dBm).Esistono

vari moduli WiFi basati sull’ESP8266, che sidistinguono per form-factor; in questo shieldprevediamo l’ESP03,maèpossibilemontarvianchel’ESP01.

Montaggio connettori e jumper.Lo shield viene fornito già assemblato. Le uni-chepartidamontaresonoijumpereiconnettori.Saldare i6 jumpera2vie incorrispondenzadiD9-D1-D0eD8-D1-D0eiljumpera3vieincor-rispondenzadiD10-D4come indicatosulPCB.Saldarepoi ilmoduloESPe iconnettoristripa10,8,6vienelleposizionicorrispondenti.Peril

[piano di MONTAGGIO]

R1: 10 kohm (0805)R2: 330 ohm (0805)R3÷R5: 10 kohm (0805)C1, C2: 220 µF 6,3 VL elettrolitico (Ø6mm)C3÷C5:100 nF ceramico (0805)C4, C5: 100 nF ceramico (0805)C6: C6: 22 µF 6,3 VL elettrolitico (Ø4mm)U1: TC1262-3.3VDBU2: 74HC4050DU3: ESP03 RST: Microswitch

Elenco Componenti:PROG: MicroswitchSDA: Connettore micro SD-CardLD1: LED verde (0805) Varie: - Strip maschio 2 vie - Strip maschio 3 vie (5 pz.)- Jumper (4 pz.)- Strip maschio 9 vie - Strip Maschio/Femmina 3 vie (2 pz.)- Strip Maschio/Femmina 6 vie- Strip Maschio/Femmina 8 vie (2 pz.)- Strip Maschio/Femmina 10 vie (1 pz.)- Circuito stampato S1192

4

FT1192M MANUALE D’USO

connettorediArduinoprocederecomeindicatodiseguito:inserireorailconnettore3+3viesuipinICSPdiArduino.Posizionare lo shield sopra laboardArduinofacendoinmodochesi inseriscaperfettamentenelconnettoreICSP;aquestopun-tosaldareipindelconnettore.

Utilizzo praticoLa gestione del chip ESP8266 avviene consemplici comandi AT da inviare serialmente;anchel’invioelaricezionedeidatiavvienese-rialmente. Occorre però porre attenzione allaversionedelmodulo in possesso, in quanto iprimi moduli commercializzati con firmwareversione 080 comunicavano alla velocità di115kbps,mentrequellipiùrecenti(confirmwa-re versione 09xx) funzionano a 9.600 bps.Lapossibilitàdi comunicareaunavelocitàdi9.600bpspermettedigestire ilmodulocon laseriale software, facilmente implementabile

conl’appositalibreriadisponibilenell’IDEdiAr-duino, lasciando libera la seriale hardware dicomunicare con il PC, permettendo così unafacilefunzionediDebug.Per questi primi esempi faremo in modo dipoter comunicare con il chip ESP diretta-mente dall’applicativo Serial Monitor diArdu-ino, lasciando inutilizzato il microcontrolloreATMEL328dellascheda.CaricaresuArduinounoscketchchenonusila seriale, Blink.ino vabenissimo,eimpostareijumperinmodocheilmodulopossacomunica-reconilPC(riga3dellaTabella 2).AprireSerialMonitordiArduinoed impostareunacomunicazionea9.600bpsattivandosiailfinelineacheilritornocarrello(siaNLcheCR)quindiinviarelastringaATedattendeterispo-sta;setuttoèaposto ilmodulorispondecon“OK”.Questoprimoinviononfaassolutamentenullamapermettedicapireseilmoduloèatti-

COMUNICAZIONE DI ESP8266 JUMPER

seriale software pin 8 e 9 di Arduino ESPTX=D8 e ESPRX=D9UART di Arduino ESPTX=D0 e ESPRX=D1

Comunicazione con PC tramite convertitore USB/seriale di Arduino ESPTX=D1 e ESPRX=D0

Tabella 2 - Disposizione dei jumper per la comunicazione.

Jumpera3vie

jumpera2viejumpera2vie

connettoreperArduino3+3vie

connettorestripa10viepassante

connettorestripa8vie

connettorestripa8viemaschio

connettorestripa6vie

connettorestripa8vie

5

MANUALE D’USO FT1192M

voefunzionante;all’accensioneilmoduloinviacomunquelastringa“ready...”.Inviando la stringaAT+RST si esegue un re-setsoftwaredeldispositivo,ilqualerisponderàcon lastringa“OK”seguitadalnomedel fab-bricanteedalcunidatiinternialchip.LastringaAT+GMRpermettediconoscerelaversionedelfirmware installato (Fig. 4).Conquestaconfi-gurazioneilmoduloESP8266potràcomunica-reconqualsiasiapplicativodelPCcomePro-cessingoqualsiasimonitorseriale.PossiamosemprepiùprendereconfidenzaconilmoduloprovandoaconnetterciallareteWi-Fidicasa;ilcomandoAT+CWMODE=1permettedi impostare l’accessoadun router,mentre ilcomandoAT+CWJAP=”nomerete”,”password”nepermette l’accesso.Per saperese la con-nessioneè riuscitapossiamochiederealmo-

dulolostatodellaconnessioneconilcomandoAT+CWJAP?,mentreperconoscerel’indirizzoIPassegnatodalrouterilcomandoèilseguen-te:AT+CIFSR.Nonappenaconnessiallarete,èpossibilete-starealcunefunzionalitàdelmodulofacendoloadesempiofunzionaredaServerneiconfrontidelPC;per farequestoènecessarioavviareun semplicissimo client sulPCutilizzandoadesempiounsoftwareportabledinomeSocket-Test,unaspeciedimonitorserialemaperretiethernet.Invieremoinsequenzaicomandi:

AT+CWJAP=”nomerete”,”password”AT+CIPSTART=”TCP”,”192.168.1.128”,9999AT+CIPSEND=4

inviareunastringadi4carattericomeadesem-

PIN FUNZIONE PIN ARDUINO

SD_CS SD chip select D4 o D10SD_MOSI SD MOSI D11SD_MISO SD MISO D12SD_CLK SD clock D13ESPTX ESP-8266 linea TX D0 (RX0) o D1 (TX1) o D8ESPRX ESP-8266 linea RX D0 (RX0) o D1 (TX1) o D9ESPPD ESP-8266 chip select (power down control) 3V3 o D7

Tabella 3 - Collegamento hardware dello shield.

Serial Monitor per connessione alla rete Wi-Fi di casa.

Serial Monitor per il test come client.

6

FT1192M MANUALE D’USO

pio“ciao”disabilitandol’inviodelfinelineaedilritornocarrello.Laricezionediunastringadalserversaràse-gnalatadallastringa“+IPD”seguitadalnumerodicaratteriricevutiequindiiltestoricevuto.Neivarilistatidisponibili,troveretesempreunaprima parte relativa alla modalità di comuni-cazioneconilmoduloESPedallamodalitàdi debug, infatti inquestiprimiesempièsempremoltocomodoprevedereunamodalitàpervi-sionareidatiintransitodalmodulo.Collegando

il jumper ESPTX alla lineaD8 eESPRXallalineaD9saràpossibilegestireilmoduloutiliz-zandounaserialesoftware, lasciandoliberoilmoduloUARTdell’ATmega328di comunicareconilPCperscopididebugeprogrammazio-ne;questamodalitàfunzionasoloconimodu-li ESP che comunicanoa 9.600bps,modalitàchecomunquepresentaisuoilimitiqualorasicomincinoagestireflussidati importanti con-tenentioltreuncentinaiodicaratteri,comeadesempio avviene con la gestione di pagineweb.Tuttigliesempipropostidevonoessereperso-nalizzatiintroducendoilnomedellavostrareteWi-Fie lapasswordnei rispettivicampiSSIDePASS.Èstataprevista,oltreallaclassicaapplicazio-ne comeWeb Server, anche un’applicazionecomeWebClient,perdimostrarelafacilitàconlaqualepossonoessere richieste informazio-niaisiti internet.Gliunicidatidaforniresonol’indirizzo del server ed il nome della paginaallaqualeaccedere;nel listatoscaricabiledalnostro sito trovate (come commenti) diversiesempi di impostazioni che abbiamo verifica-

Fig. 3 - Installazione nuovo firmware.

Fig. 4 - Serial Monitor delle comunicazioni con ESP.

7

MANUALE D’USO FT1192M

to personalmente, tra i quali l’interrogazionedelserverdiGoogleoppure la letturadeidatimeteodalserveropenweathermap.Èpossibileconoscerelecondizionimeteointerrogandolapiùvicinastazionemeteosenzalanecessitàdiutilizzarealcunsensore.Esisteanche lapos-sibilità di richiedere le previsioni meteo per iprossimigiorni;l’unicodatodainserireèilcodi-cedellacittàdicuisivoglionoidatiedèreperi-bileaquestoindirizzo:http://openweathermap.org/help/city_list.txt. Similmente, è possibileinterrogareilserverdiYahooperconoscereladatael’oraattuale.Negli esempi che proponiamo è stata utiliz-zata lasintassiclassicahtmlcheècompostadatresezioni:request(rigadirichiesta),body(corpodelmessaggio)eheader (informazioni

aggiuntive).Lasezionerequestasuavoltasicomponedi trecampi: il primoè ilmetododiaccesso e può essere di tipoGET (recupero

Server con SccketTest.

Web server con ESP8266.

8

FT1192M MANUALE D’USO

informazioni),POST(invioinformazioni),HEA-DER(comeGET,maricevesolol’intestazionedellapagina); ilsecondoèl’URI(UniformRe-source Identifier) cioè l’indirizzo della paginacuisivuoleaccedereeilterzoèlaversionedelprotocollo(nelnostrocasoHTTP/1.1).La sezione body contiene semplicemente larichiestaveraepropria,mentrelasezionehea-dercontienenelnostrocasol’header“HOST:”.

Ecco che ad esempio la richiesta delle con-dizionimeteo può essere fatta inviando la ri-chiesta: “GET /data/2.5/weather?id=3164699HTTP/1.1HOST:api.openweathermap.org”Larichiestadeveessereinviatadopoche,ov-viamente,cisaremoconnessialserverconl’i-struzione:“AT+CIPSTART=\”TCP\”,\””DEST_HOST”\”,”DEST_PORT”\r\n”.Tuttigliesempisonoidoneiconmoduliaventi

Fig. 5 - Test SD

Fig. 6 - Test scrittura/lettura su SD.

9

MANUALE D’USO FT1192M

firmwareversione09.02,cheèlapiùstabileedesente da bug;attualmentenonesisteancoraunaversionedefinitivadelfirmwareedinretesipossonotrovareversionianchepiùrecentimaancoratuttedatestare.Ècomunquepossibileinstallareunaversionedifferentedelfirmwareconunasempliceproceduracheoradescrive-

remo.Tra ifile trovereteunacartelladinomeFirmware,checontieneuneseguibiledinomeESP8266_fl asher.exe, utilizzato per caricareunnuovofirmwaresulmodulo;abbiamomes-soadisposizioneancheilfirmwarediversione09.02(Fig. 3).Unavoltaavviato ilsoftware (non richiede in-

10

FT1192M MANUALE D’USO

Fig. 7 - Report relativo allo sketch.

stallazione) è sufficiente specificare la portaCOM utilizzata per la comunicazione con ilmoduloedaprire il file .bin,persaperequaleseriale utilizzare potete usare le informazionifornitedall’IDEdiArduinoquandoèconnessalaschedaArduino.Ponete ilmodulo nellamodalità di comunica-zioneconilPCedabilitatelamodalitàdibootmode del modulo ponendo la lineaGPIO0 amassa, premendo e mantenendo premuto ilpulsantePROG,dopodichériavviareilmoduloponendoperunattimolalineaCHPDalivellobassotramite ilpulsanteRST.Dopoilriavvio,il modulo si pone in modalità di boot mode,pronto a ricevere il nuovo firmware, cliccatequindi sul pulsante Download per attivare ilcaricamento.Appena avviato il download delfirmware, potete rilasciare il pulsante PROGe attendere la conclusione dell’operazione,che richiede in tuttoalcuniminuti.Utilizzate ilcomandoAT+GMRperverificarese ilmodulo

funziona correttamente e quale versione delfirmwarerisultainstallata.LadisponibilitàdiunaSDpersalvaredeidaticipermettedirealizzareuninteressantedatalog-ger chedisponedella funzionalità di accessoallareteInternetperreperireinformazioniutili.Nelcasodiundataloggerundatosicuramen-te importante è la data e l’ora in cui avvieneilsalvataggiodeidati,funzionedisolitosvoltadaunRTC(RealTimeClock)interfacciatoconArduino. Disponendo di un accesso ad Inter-net,èsempliceinterrogareunserverNTPperconosceredataeoraprecisisenzabisognodieseguirealcunaimpostazioneiniziale.Unapri-masempliceprovaperverificaresetutto fun-zionacorrettamenteconsistenell’inserirenelloslot una SD (micro SD per la precisione) edeseguirelosketchcardInfo.inodisponibilene-gliesempidisistema;assicuratevicheiljumperSDCSsianellaposizioneD4 (Fig. 5).Potetevedere nelle immagini pubblicate la risposta

11

MANUALE D’USO FT1192M

L’articolocompletodelprogettoèstatopubblicatosu:ElettronicaInn.200

Fig. 8Contenuto del file di log dello sketch.

visualizzata suSerialMonitor relativa ad unaSDHCcat4da8GBformattataFAT32utilizzataperlenostreprove.Conl’esempioReadWrite.inopoteteverificarese le funzioni di lettura funzionano corretta-mente(Fig. 6).Vediamooracomesalvareilvaloredellatem-peraturaambientemisuratatramiteunsempli-cissimointegratocomel’LM35.LosketchperlafunzionedidataloggersichiamaESP8266_DataLogNTP.ino.Pertestarequestoprogram-ma è necessario, per prima cosa, inserire ilnomeelapassworddellavostrareteWi-FineicampiSSIDePASS.IlsensoreditemperaturaandràalimentatodaArduinotramiteipinGNDe+5Vmentrelasuauscitavaconnessaall’in-gresso analogicoAN0. Lamodalità di defaultprevista consiste nel far comunicare ilmicro-controlloreATmega328conilmoduloWi-Fitra-miteunaserialesoftwareedilasciarelaserialehardware per la funzione di debug.Nel casovogliategestire ilmoduloWi-Fi con la serialehardwareèsufficienteporre i jumper inmodocheisegnaliESPTXeESPRXsianoconnessirispettivamenteaD0eD1.Leseguentirighedicodicevengonoutilizzatenellosketchperco-struirelastringacheverràscrittanellaSDcard:

StringdataString=getDateString();dataString+=““;dataString+=getTimeString();dataString+=“AN0=”;dataString+=String(analogRead(A0));

Questastringapotràesseremodificatasecon-donecessitàaggiungendoomenoaltrivaloriealtriseparatori.Abbiamoprevistocheilmodulorimangaaccesosoloperilbrevelassoditemponecessarioaconnettersialla retee ricevere idatidalserverNTP,pertuttoilrestodeltempotraunlogedilsuccessivoilmoduloèportatonellostatodipower-down,graziealsegnaledelpinD7checomandailpinCH_PDdell’integra-toEPS8266.NellaSDvi ritrovereteunfiledi nomeDATA-LOG.TXT contenente i valori acquisiti, comevisibile nellaFig. 8.Questo sketch è compa-tibile conmoduli in cuiè installato il firmwareversione9.02e9.03comequellomontatonelloshield.

12

FT1192M MANUALE D’USO

A tutti i residenti nell’Unione EuropeaImportanti informazioni ambientali relative a questo prodotto

Questosimboloriportatosulprodottoosull’imballaggio,indicacheèvietatosmaltireilprodottonell’ambientealterminedelsuociclovitaleinquantopuòesserenocivoperl’ambientestesso.Nonsmaltireilprodotto(olepile,seutilizzate)comerifiutourbanoindifferenziato;dovrebbeesseresmaltitodaun’impresaspecializzatanelriciclaggio.Perinformazionipiùdettagliatecircailriciclaggiodiquestoprodotto,contattarel’ufficio

comunale,ilserviziolocaledismaltimentorifiutioppureilnegoziopressoilqualeèstatoeffettuatol’acquisto.

Aggiornamento: 23/10/2018

Distribuitoda:FUTURA GROUP SRL Via Adige, 11 - 21013 Gallarate (VA) Tel. 0331-799775 Fax. 0331-792287web site: www.futurashop.it supporto tecnico: www.futurashop.it/Assistenza-Tecnica

Recommended