Sommario:

Come creare il tuo gateway WIFI per connettere Arduino alla rete IP?: 11 passaggi (con immagini)
Come creare il tuo gateway WIFI per connettere Arduino alla rete IP?: 11 passaggi (con immagini)

Video: Come creare il tuo gateway WIFI per connettere Arduino alla rete IP?: 11 passaggi (con immagini)

Video: Come creare il tuo gateway WIFI per connettere Arduino alla rete IP?: 11 passaggi (con immagini)
Video: Come creare rete domestica...senza impazzire!! ✨ 2024, Dicembre
Anonim
Come creare il proprio gateway WIFI per connettere Arduino alla rete IP?
Come creare il proprio gateway WIFI per connettere Arduino alla rete IP?

Come tante persone pensi che Arduino sia un'ottima soluzione per fare domotica e robotica

Ma in termini di comunicazione, gli Arduino hanno solo collegamenti seriali.

Sto lavorando su un robot che deve essere connesso permanentemente con un server che esegue codice di intelligenza artificiale. Ho provato a utilizzare la rete RF come sono abituato a fare per la domotica ma non è abbastanza efficiente. Mentre il robot si muove non posso usare Ethernet Arduino Shield. Arduino Wifi Shield è costoso e mi sembra un vecchio design.

Avevo bisogno di qualcosa che potesse scambiare dati in modo molto semplice ed efficiente con un server.

Ecco perché ho deciso di progettare un gateway basato sul microcontrollore ESP8266 molto economico ed efficiente dal punto di vista energetico

Qui puoi trovare come costruire il componente elettronico e scaricare il software.

Ho usato questo gateway per la domotica e per la robotica.

Questo fa parte di un'infrastruttura di automazione domestica globale che puoi dare un'occhiata qui

Ho creato un'altra istruzione che utilizza uno scudo ESP8266 ed evita la saldatura

Forniture

Ho scritto un altro istruibile su questo argomento

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.

È più facile da usare con Arduino Mega che ha più di un UART (Arduino Mega per esempio) ma può funzionare anche con un UNO.

Passaggio 2: quali sono le funzioni principali?

Per lo più è una scatola nera che converte e invia i dati seriali al pacchetto UDP in entrambi i modi.

Dispone di 3 LED che indicano lo stato e il traffico del Gateway.

Fornisce un GPIO che può essere utilizzato da Arduino per attendere che il gateway sia connesso WIFI e IP.

Funziona in 3 diverse modalità impostate con gli interruttori:

  • Modalità gateway che è la modalità normale
  • Modalità di configurazione utilizzata per impostare i parametri
  • Modalità di debug che è per la modalità di debug

La maggior parte dei parametri può essere modificata in base alle proprie esigenze.

Passaggio 3: costruzione del materiale

Costruzione di materiale
Costruzione di materiale

In cima al tuo Arduino avrai bisogno

  • 1 x modulo ESP8266 - Scelgo il MOD-WIFI-ESP8266-DEV di Olimex che costa circa 5 euro ed è abbastanza facile da usare.
  • 1 x 5 V fonte di alimentazione
  • 1 x regolatore di potenza 3.3v - io uso LM1086
  • Condensatore 1 x 100 microfarad
  • 1 x modulo APG ULN2803 (può essere sostituito da 3 x transistor)
  • 8 x resistori (3 x 1K, 1 x 2K, 1 x 2,7k, 1x 3,3K, 1x 27K, 1x 33k)
  • 3 x LED (rosso, verde, blu)
  • 1 x PCB per tagliere
  • alcuni fili e connettori

Solo durante le fasi di costruzione, avrai bisogno

  • 1 x FTDI 3.3v per la configurazione
  • Saldatore e stagno

Prima di saldare è importante impostare tutti i componenti sulla breadboard e verificare che tutto sia a posto.

Passaggio 4: iniziamo con l'elettronica sulla breadboard

Cominciamo con l'elettronica sulla breadboard!
Cominciamo con l'elettronica sulla breadboard!

Il layout elettronico è disponibile in formato Fritzing

Puoi scaricarlo qui il passaggio 1:

github.com/cuillerj/Esp8266IPSerialGateway/blob/master/GatewayElectronicStep1.fzz

Basta fare come schema facendo attenzione alla tensione.

Ricorda che ESP8266 non supporta tensioni superiori a 3.3v. L'FTDI deve essere impostato su 3.3v.

Passaggio 5: andiamo al software

Andiamo al software!
Andiamo al software!

Iniziamo dal lato Gateway

Ho scritto il codice con Arduino IDE. Quindi hai bisogno che ESP8266 sia conosciuto come board dall'IDE. Seleziona la scheda appropriata con il menu Strumenti / schede.

Se non vedi nessun ESP266 nell'elenco significa che potresti dover installare ESP8266 Arduino Addon (puoi trovare qui la procedura).

Tutto il codice di cui hai bisogno è disponibile su GitHub. È ora di scaricarlo!

Il codice principale del Gateway è lì:

Oltre allo standard Arduino ed ESP8266 include il codice principale che richiede questi 2 include: LookFoString che viene utilizzato per manipolare le stringhe ed è lì:

ManageParamEeprom che viene utilizzato per leggere e memorizzare i parametri in Eeprom e c'è:

Una volta ottenuto tutto il codice, è il momento di caricarlo nell'ESP8266. Innanzitutto collega l'FTDI a una porta USB del tuo computer.

Ti suggerisco di controllare la connessione prima di provare a caricare.

  • Imposta il monitor seriale Arduino sulla nuova porta USB.
  • Imposta la velocità a 115200 sia cr nl (velocità predefinita per Olimex)
  • Accendere la breadboard (ESP8266 viene fornito con un software che si occupa dei comandi AT)
  • Invia "AT" con lo strumento seriale.
  • Devi ricevere "OK" in cambio.

In caso contrario, controlla la tua connessione e guarda le specifiche ESP8266.

Se hai "OK" sei pronto per caricare il codice

  • Spegnere la breadboard, attendere qualche secondo,
  • premere sul micro-interruttore nero dell'ESP8266. È normale che sul monitor seriale ci sia un po' di spazzatura.
  • Premi sull'IDE di caricamento come per un Arduino.
  • Al termine del caricamento, impostare la velocità seriale su 38400.

Vedrai qualcosa come nella foto.

Congratulazioni per aver caricato con successo il codice!

Passaggio 6: eseguiamo la configurazione

Facciamo la configurazione!
Facciamo la configurazione!

Il configGPIO deve essere impostato su 1 per entrare in modalità di configurazione

Per prima cosa scansiona il WIFI inserendo il comando: ScanWifi. Vedrai un elenco della rete rilevata.

  • Quindi imposta il tuo SSID inserendo "SSID1=yournetwork"
  • Quindi imposta la tua password digitando "PSW1=yourpassword"
  • Quindi inserisci "SSID=1" per definire la rete corrente
  • Inserisci "Riavvia" per connettere il gateway al tuo WIFI.
  • Puoi verificare di avere un IP inserendo "ShowWifi".
  • Il LED blu sarà acceso e il LED rosso lampeggerà.

È 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"

L'ultimo passaggio richiesto è impostare la porta di ascolto del server UDP inserendo "listenPort=xxxx".

Inserisci "ShowEeprom" per controllare cosa hai appena memorizzato in Eeprom

Ora collega il GPIO2 a terra per uscire dalla modalità di configurazione

Il tuo Gateway è pronto per funzionare

Ci sono altri comandi che potresti trovare nella documentazione.

Passaggio 7: facciamo il lato Arduino

Facciamo il lato Arduino!
Facciamo il lato Arduino!
Facciamo il lato Arduino!
Facciamo il lato Arduino!

Per prima cosa collega l'Arduino

Se hai un Mega sarà più facile iniziare con. Tuttavia puoi usare uno.

Per controllare il tuo lavoro, la cosa migliore è usare l'esempio.

Puoi scaricarlo lì:

Include il codice SerialNetwork che si trova qui:

Basta caricare il codice all'interno del tuo Arduino.

Il LED verde lampeggia ogni volta che Arduino invia dati.

Passaggio 8: facciamo il lato server

Facciamo il lato server!
Facciamo il lato server!
Facciamo il lato server!
Facciamo il lato server!

L'esempio del server è un programma Java che puoi scaricare qui:

Basta eseguirlo

Guarda la console Java.

Guarda il monitor Arduino.

Arduino invia 2 pacchetti diversi.

  • Il primo contiene lo stato dei pin digitali da 2 a 6.
  • Il secondo contiene 2 valori casuali, il livello di tensione di A0 in mV e il conteggio incrementale.

Il programma Java

  • stampare i dati ricevuti in formato esadecimale
  • rispondere al primo tipo di dati con un valore on/off casuale per accendere/spegnere il LED Arduino
  • rispondere al secondo tipo di dati con il conteggio ricevuto e un valore casuale.

Passaggio 9: è ora di fare un po' di saldatura

È ora di fare un po' di saldatura!
È ora di fare un po' di saldatura!
È ora di fare un po' di saldatura!
È ora di fare un po' di saldatura!
È ora di fare un po' di saldatura!
È ora di fare un po' di saldatura!

Funziona sulla breadboard!

È tempo di renderlo più robusto saldando le parti su un PCB

Oltre a quello che hai fatto con la breadboard, devi aggiungere 3 connettori.

  • C1 1 x pin uno che verrà utilizzato per entrare in modalità traccia di rete.
  • C2 3 x pin uno che verrà utilizzato per passare dalla modalità di esecuzione a quella di configurazione.
  • C3 6 x pin uno che verrà utilizzato per collegare il Gateway a un Arduino oa un FTDI.

C1 connesso a GPIO2 deve essere messo a terra manualmente se si desidera attivare le tracce di rete.

C2 collegato a GPIO 4 può essere impostato in 2 diverse posizioni. Uno impostato a massa per la modalità di funzionamento normale e uno impostato su 3.3v per l'accesso alla modalità di configurazione.

Imposta tutti i componenti sul PCB secondo lo schema e poi inizia a saldare per ottenere il prodotto finale!

Passaggio 10: facciamo il test finale

Image
Image

Avvia il programma di prova Java.

Collega l'Arduino.

Accendere il gateway.

E guarda la console Java, il monitor Arduino, il LED Arduino e i LED Gateway.

Passaggio 11: puoi adattare questo design alle tue esigenze

Per quanto riguarda l'hardware

  • Se scegli un altro ESP8266 dovrai adattarti alle specifiche.
  • Se scegli un altro regolatore da 3,3 V, deve fornire oltre 500 mA e dovrai adattare il condensatore.
  • È possibile modificare le resistenze LED per regolare la luminosità.
  • Puoi sopprimere tutti i LED ma ti consiglio di tenere acceso almeno il rosso.
  • Puoi sostituire l'ULN2803 con 3 transistor (o meno se scegli di non tenere i 3 LED).
  • Ho fatto dei test, ma lì deve funzionare con schede Arduino 3.3v. Basta collegare Tx Rx al connettore 3.3v.

Per quanto riguarda la configurazione

  • È possibile memorizzare 2 SSID diversi e passare
  • Puoi modificare il GPIO utilizzato

Per quanto riguarda il software

Consigliato: