Sommario:

Gateway UDP/IP seriale per Arduino basato su ESP8266 Shield: 8 passaggi
Gateway UDP/IP seriale per Arduino basato su ESP8266 Shield: 8 passaggi

Video: Gateway UDP/IP seriale per Arduino basato su ESP8266 Shield: 8 passaggi

Video: Gateway UDP/IP seriale per Arduino basato su ESP8266 Shield: 8 passaggi
Video: Transmit data using UART in ESP32 | ESP32 -ESP32 | Serial communication 2024, Dicembre
Anonim
Gateway UDP/IP seriale per Arduino basato su ESP8266 Shield
Gateway UDP/IP seriale per Arduino basato su ESP8266 Shield

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?

Come funziona ?
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

Costruzione di materiale
Costruzione di 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

Scarica il codice del gateway
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

Scarica l'esempio di codice Arduino
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

Andare oltre
Andare oltre
Andare oltre
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: