Sommario:
- Forniture
- Passaggio 1: come funziona?
- Passaggio 2: quali sono le funzioni principali?
- Passaggio 3: costruzione del materiale
- Passaggio 4: iniziamo con l'elettronica sulla breadboard
- Passaggio 5: andiamo al software
- Passaggio 6: eseguiamo la configurazione
- Passaggio 7: facciamo il lato Arduino
- Passaggio 8: facciamo il lato server
- Passaggio 9: è ora di fare un po' di saldatura
- Passaggio 10: facciamo il test finale
- Passaggio 11: puoi adattare questo design alle tue esigenze
Video: Come creare il tuo gateway WIFI per connettere Arduino alla rete IP?: 11 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:00
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?
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
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
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
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
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
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
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
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
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:
Come creare il tuo dispositivo per la visione notturna!: 5 passaggi (con immagini)
Come creare il tuo dispositivo per la visione notturna!: In questo progetto ti mostrerò come creare un dispositivo per la visione notturna. Consiste principalmente in una telecamera di sicurezza, un piccolo schermo e un PCB personalizzato che presenta LED IR e un driver LED. Dopo aver alimentato il dispositivo con un powerbank USB Type-C PD, puoi
Inverter collegato alla rete fai-da-te (non alimenta la rete) Alternativa UPS: 7 passaggi (con immagini)
Alternativa UPS con inverter collegato alla rete fai-da-te (non alimenta la rete): questo è un post di follow-up dal mio altro Instructable sulla creazione di un inverter collegato alla rete che non alimenta la rete, poiché ora è sempre possibile farlo in alcune aree come un progetto fai-da-te e alcuni luoghi non consentono di alimentare lì g
Come Creare il Tuo Caricabatterie USB per Auto per Qualsiasi iPod o Altri Dispositivi che Si Ricaricano tramite USB: 10 Passaggi (Illustrato)
Come creare il proprio caricatore per auto USB per qualsiasi iPod o altri dispositivi che si caricano tramite USB: crea un caricatore per auto USB per qualsiasi iPod o altro dispositivo che si carica tramite USB unendo un adattatore per auto che emette 5v e una presa USB femmina. La parte più importante di questo progetto è assicurarsi che l'output dell'adattatore per auto scelto sia quello
Techduino --Come creare il tuo Arduino Uno R3 fatto in casa--: 9 passaggi (con immagini)
Techduino ||Come creare il tuo Arduino Uno R3 fatto in casa||: Se sei come me, dopo aver ricevuto il mio Arduino ed eseguito una programmazione finale sul mio primo chip, volevo estrarlo dal mio Arduino Uno R3 e metterlo sul mio circuito. Ciò libererebbe anche il mio Arduino per progetti futuri. Dopo aver letto molti
Come ritrasmettere WIFI come rete personale, DAL TUO LAPTOP!: 4 passaggi
Come ritrasmettere WIFI come rete personale, DAL TUO LAPTOP!: In questo tutorial ti mostrerò come ritrasmettere WIFI dal tuo laptop come rete protetta da password. Avrai bisogno di un laptop con Windows 7, poiché il software richiede alcuni dei progressi di Windows 7 e usa un laptop più recente b