Sommario:
- Forniture
- Passaggio 1: come funziona?
- Passaggio 2: quali sono le funzioni principali?
- Passaggio 3: costruzione del materiale
- Passaggio 4: scarica il codice del gateway
- Passaggio 5: eseguiamo la configurazione del gateway
- Passaggio 6: scarica l'esempio di codice Arduino
- Passaggio 7: facciamo il lato server
- Passaggio 8: andare oltre
Video: Gateway UDP/IP seriale per Arduino basato su ESP8266 Shield: 8 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
Ho già pubblicato nel 2016 questo tutorial "Come creare il tuo gateway Wifi per connettere il tuo Arduino alla rete IP". Dato che ho apportato alcuni miglioramenti al codice e sto ancora utilizzando questa soluzione.
Tuttavia ora ci sono alcuni shield ESP8266 che consentono di fare lo stesso senza saldare finché non si utilizzano schede Micro o Nano.
Questa istruzione spiegherà come utilizzare questi scudi ESP82 come gateway UDP/IP seriale.
Questo fa parte di un'infrastruttura di automazione domestica globale che puoi dare un'occhiata qui
Maggiori informazioni sullo scudo con questo istruibile
Forniture
1 Arduino Mega (il migliore è avere almeno 1 Mega per lo sviluppo e 1 Uno per la fase di esecuzione)
1 Rokoo ESP8266 ESP-12E UART WIFI Convertitore
1 FTDI 3.3v
2 fili della breadboard
Passaggio 1: come funziona?
Il gateway è basato su un modulo ESP8266
Questo modulo è connesso da un lato con il collegamento seriale dall'altro alla rete IP con il Wifi.
Funziona come una scatola nera. I pacchetti dati provenienti dal collegamento seriale vengono inviati ad una porta IP/Udp e viceversa.
Devi solo impostare la tua configurazione (IP, WIFI…) una volta che accendi il Gateway per la prima volta.
Può trasferire sia dati ASCII grezzi che dati binari (no HTTP, JSON…)
È progettato per connettere oggetti con software home made server che richiedono trasferimenti veloci e frequenti di brevi pacchetti di dati.
Passaggio 2: quali sono le funzioni principali?
Per lo più è una scatola nera che converte i dati seriali in pacchetti UDP in entrambi i modi.
Ma il gateway può agire anche da solo inviando informazioni interne al server e ricevendo alcuni comandi dal server.
Arduino può inviare e ricevere messaggi verso/da un server connesso su Internet semplicemente stampando/leggendo un collegamento seriale. Non è necessario che lo sviluppatore Arduino si preoccupi del protocollo IP.
Inoltre fornisce un GPIO che può essere utilizzato da Arduino per verificare che il Gateway sia correttamente connesso al WIFI e il Gateway può cambiare automaticamente tra 2 SSID diversi in caso di guasto
Il gateway ha 2 diverse modalità di esecuzione che vengono selezionate impostando un GPIO
Impostando GPIO a terra e il gateway entra in modalità di configurazione.
Impostando GPIO free e il gateway entra in modalità di esecuzione del gateway.
Inoltre, la configurazione UDP/IP del gateway può essere modificata in remoto
Passaggio 3: costruzione del materiale
Servono pochissime cose
1 ESP8266 Shield - Ho trovato questo modulo scheda di estensione WiFi Shield seriale UNO R3 ESP8266 a meno di 9€
1 UNO che è il target Arduino target
1 Mega che è lo strumento di sviluppo arduino (puoi farne a meno ma è abbastanza difficile da debuggare)
1 FTDI 3.3/5v per lo sviluppo
Alcuni fili
Passaggio 4: scarica il codice del gateway
Durante questo passaggio l'Arduino viene utilizzato solo per alimentare (con USB o un'altra fonte di alimentazione) lo shield ESP8266
Collegare ESP8266 GPIO4 a terra (per accedere alla modalità di configurazione)
Fare attenzione a impostare l'FTDI su 3.3v come richiesto dallo shield
Collegare l'FTDI allo shield (da RX a TX)
Imposta l'interruttore di protezione su 1:off 2:off 3:on 4:on
Collega il lato USB dell'FTDI al tuo computer
Ripristinare lo scudo con il pulsante ESP-RST
Scarica il codice Gateway lì su GitHub
Apri Arduino IDE
- Seleziona la porta del monitor FTDI
- Apri il monitor seriale IDE - Imposta la velocità su 38400
- Selezionare la scheda del modulo ES8266 generica
- Aggiorna il firmware dello scudo con il codice gateway
Imposta l'interruttore 3:spento 4:spento
Apri il monitor seriale IDE
Ripristinare lo scudo con il pulsante ESP-RST
Devi vedere i messaggi sul monitor che iniziano con "Inizializzazione EEPROM" "Inizializzazione completata"….
È ora di fare la configurazione
Passaggio 5: eseguiamo la configurazione del gateway
Quando si scarica il codice gateway per la prima volta, l'Eeprom ESP8266 verrà inizializzato con i valori predefiniti. Vedrai questo tipo di messaggi "imposta parametro: x dimensione: yy"
Puoi trovare questi valori all'interno della definizione del codice di paramValue. Ovviamente puoi modificare questi valori predefiniti prima di scaricare il codice, ma puoi anche impostare la configurazione tramite comando in un secondo momento. Questo è meglio se prevedi di avere più gateway e di mantenere solo una versione del codice.
Utilizzare la porta seriale del monitor per inviare il comando (impostato su NL e CR).
Poiché l'SSID non è attualmente definito, attendi "Impossibile connettersi al secondossid riprova: 5"
Quindi verrà avviata automaticamente una scansione del WIFI
È il momento di impostare i tuoi SSID con i seguenti comandi:
- SSID1=tuascelta1
- PSW1=yourpsw1
- SSID2=tuascelta2
- PSW2=tuopsw2
- SSID=1 (per scegliere con quale SSID iniziare)
- Riavvia Wifi
Dopo pochi secondi è possibile verificare la connessione con il comando "ShowWifi". Devi vedere l'indirizzo IP che il gateway ha ottenuto dal tuo server DNS. Se è il caso è ora di andare oltre
È ora di definire l'indirizzo del tuo server IP inserendo i 4 sottoindirizzi (server che eseguirà il codice di test Java). Ad esempio:
- "IP1=192"
- "IP2=168"
- "IP3=1"
- "IP4=10"
Inviando un comando vuoto vedrai tutti i comandi supportati che potrai utilizzare in seguito per soddisfare le tue esigenze. Tutti i valori dei parametri sono memorizzati in Eeprom e necessitano di un riavvio per essere presi in considerazione.
Rimuovere il cavo di configurazione
Lo scudo ora funziona come gateway
Passaggio 6: scarica l'esempio di codice Arduino
Per prima cosa scarica il codice Arduino principale lì su GitHub
Quindi scarica il codice Arduino questa definizione di comandi e questo codice di collegamento seriale nelle tue librerie
Quindi apri il codice principale con un nuovo IDE Arduino
Impostare lo shield Switch 1 e 2 off per liberare il collegamento seriale Arduino 0 per la connessione USB
Ripristina lo scudo
Collegare i cavi FTDI al Mega Serial 2 (TX FTDI a RX Mega e così via)
Avvia un nuovo Arduino IDE (o uno strumento TTY), collega l'FTDI Usb e inizia a monitorare il collegamento seriale
Carica il codice Arduino all'interno del Mega
Accendi lo shield Switch 1 e 2 per connettere il collegamento seriale Arduino 0
Ripristina lo scudo
Devi vedere questo messaggio "avvia stampa USB" sul monitor
Passaggio 7: facciamo il lato server
L'esempio del server è un programma Java che puoi scaricare qui su GitHub
Basta eseguirlo e guardare la console Java e guardare il monitor FTDI
Vedrai scambi di dati tra server e Arduino
Passaggio 8: andare oltre
Questo esempio di codice Arduino si basa su una parte del framework della mia infrastruttura di automazione domestica.
Se sei interessato a questa infrastruttura, fammi sapere. Pubblicherò le fonti.
Se vuoi solo usare il gateway puoi semplificare il codice Arduino.
Dopo aver sviluppato e testato il tuo codice su un Arduino Mega, puoi facilmente sostituirlo con uno Uno!
Inoltre puoi collegare un cavo tra Arduino GPIO 7 e ESP8266 GPIO 5 se vuoi che il tuo Arduino controlli la connessione Wifi
Consigliato:
Telecomando IR automatico basato su Arduino basato sulla temperatura: 7 passaggi
Telecomando IR automatico basato su Arduino basato sulla temperatura: Ehi, come va, ragazzi! Akarsh qui da CETech. Stanco di svegliarti nel bel mezzo di un sonno profondo solo perché la temperatura della tua stanza è troppo bassa o troppo alta a causa del tuo stupido condizionatore. Allora questo progetto è per te. In questo progetto, faremo il nostro
Modifica Arduino ASCD 8x 18650 Caricabatterie/scaricatore intelligente per seriale hardware ESP8266: 4 passaggi
Modifica Arduino ASCD 8x 18650 Caricabatterie / scaricatore intelligente per seriale hardware ESP8266: su PCB versione 2.0 e successive, l'adattatore Arduino ESP8266 ha i pin sbagliati in cui non è possibile utilizzare (comunicare) con ESP8266 per la comunicazione wireless con il portale della batteria Vortex It.Questa modifica collega l'adattatore Arduino ESP8266 a Har
Generatore musicale basato sulle condizioni meteorologiche (generatore MIDI basato su ESP8266): 4 passaggi (con immagini)
Generatore di musica basato sul tempo (Generatore MIDI basato su ESP8266): Ciao, oggi spiegherò come creare il tuo piccolo generatore di musica basato sul tempo. È basato su un ESP8266, che è un po' come un Arduino, e risponde alla temperatura, alla pioggia e l'intensità della luce. Non aspettarti che produca intere canzoni o programmi di accordi
SmartMirror basato sul Web che utilizza la comunicazione seriale: 6 passaggi
SmartMirror basato sul Web che utilizza la comunicazione seriale: questo istruibile viene consegnato con tutto il codice pronto per l'uso. Lo sviluppo è stato molto complicato ma una volta impostato è davvero facile da personalizzare. Dai un'occhiata e divertiti;)
Servo controller seriale basato su Arduino: 6 passaggi
Servo controller seriale basato su Arduino: questo è un semplice controller seriale per più servi basati su Arduino. (anche il mio primo istruibile :)) La maggior parte del lavoro in questo è venuto dal far parlare il software con l'arduino e creare un protocollo per il passaggio dei dati. Come f