Innholdsfortegnelse:

Hvordan lage din egen WIFI -gateway for å koble Arduino til IP -nettverk?: 11 trinn (med bilder)
Hvordan lage din egen WIFI -gateway for å koble Arduino til IP -nettverk?: 11 trinn (med bilder)

Video: Hvordan lage din egen WIFI -gateway for å koble Arduino til IP -nettverk?: 11 trinn (med bilder)

Video: Hvordan lage din egen WIFI -gateway for å koble Arduino til IP -nettverk?: 11 trinn (med bilder)
Video: How to use ESP32 WiFi and Bluetooth with Arduino IDE full details with examples and code 2024, Desember
Anonim
Hvordan lage din egen WIFI -gateway for å koble Arduino til IP -nettverk?
Hvordan lage din egen WIFI -gateway for å koble Arduino til IP -nettverk?

Som så mange mennesker tror du Arduino er en veldig god løsning for å gjøre hjemmeautomatisering og robotikk

Men når det gjelder kommunikasjon, kommer Arduinos bare med serielle lenker.

Jeg jobber med en robot som må være permanent koblet til en server som kjører kunstig intelligenskode. Jeg prøvde å bruke RF -nettverk som jeg pleide å gjøre for domotic, men det er ikke effektivt nok. Når roboten beveger seg, kan jeg ikke bruke Ethernet Arduino Shield. Arduino Wifi Shield er dyrt og synes for meg å være gammelt design.

Jeg trengte noe som kan utveksle data på en veldig enkel og effektiv måte med en server.

Derfor bestemte jeg meg for å designe en Gateway basert på den veldig billige og energieffektive ESP8266 mikrokontrolleren

Her kan du finne ut hvordan du bygger den elektroniske komponenten og laster ned programvaren.

Jeg brukte denne porten for hjemmeautomatisering og for robotikk.

Dette tar del av en global infrastruktur for hjemmeautomatisering du kan se her

Jeg laget en annen instruerbar som bruker et ESP8266 -skjold og unngår lodding

Rekvisita

Jeg skrev en annen instruerbar om dette emnet

Trinn 1: Hvordan fungerer det?

Hvordan virker det ?
Hvordan virker det ?

Gateway er basert på en ESP8266 -modul

Denne modulen er koblet fra den ene siden med den serielle lenken fra den andre siden til IP -nettverket med Wifi.

Det fungerer som en svart boks. Datapakker som kommer fra den serielle lenken blir sendt til en IP/Udp -port og omvendt.

Du må bare angi din egen konfigurasjon (IP, WIFI …) en gang første gang du slår på Gateway.

Den kan overføre enten rå ASCII og binære data (ingen HTTP, JSON …)

Den er designet for å koble objekter til hjemmelagde serverprogrammer som krever raske og hyppige overføringer av korte datapakker.

Det er lettest å bruke med Arduino Mega som har mer enn en UART (for eksempel Arduino Mega), men kan også kjøres med en UNO.

Trinn 2: Hva er hovedfunksjonene?

Stort sett er det en svart boks som konverterer og sender serielle data til UDP -pakken på begge måter.

Den har 3 lysdioder som indikerer status og trafikk for Gateway.

Den gir en GPIO som kan brukes av Arduino til å vente på at Gateway er WIFI og IP tilkoblet.

Den kjører i 3 forskjellige moduser som er satt med brytere:

  • Gateway -modus som er normalmodus
  • Konfigurasjonsmodus som brukes til å angi parametrene
  • Feilsøkingsmodus som er for feilsøkingsmodus

De fleste parametrene kan endres for å passe dine behov.

Trinn 3: Bygg av materiale

Bygget av materiale
Bygget av materiale

På toppen av din Arduino trenger du

  • 1 x ESP8266-modul-Jeg velger MOD-WIFI-ESP8266-DEV fra Olimex som koster rundt 5 euro som er ganske enkel å bruke.
  • 1 x 5v strømkilde
  • 1 x 3.3v effektregulator - jeg bruker LM1086
  • 1 x 100 mikrofarad kondensator
  • 1 x ULN2803 APG -modul (kan erstattes av 3 x transistorer)
  • 8 x motstander (3 x 1K, 1 x 2K, 1 x 2.7k, 1x 3.3K, 1x 27K, 1x 33k)
  • 3 x LED (rød, grønn, blå)
  • 1 x Breadboard PCB
  • noen ledninger og kontakter

Bare under byggetrinnene trenger du

  • 1 x FTDI 3.3v for konfigurasjonen
  • Loddejern og tinn

Før lodding er det viktig å sette opp alle komponentene på brødbrettet og kontrollere at alt er ok.

Trinn 4: La oss begynne med elektronikken på brødbrettet

La oss starte med elektronikken på brødbrettet!
La oss starte med elektronikken på brødbrettet!

Det elektroniske oppsettet er tilgjengelig i Fritzing -format

Du kan laste den ned her trinn 1:

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

Bare gjør som skjemaet ved å passe på spenningen.

Husk at ESP8266 ikke støtter spenning høyere enn 3.3v. FTDI må settes til 3.3v.

Trinn 5: La oss gå til programvaren

La oss gå til programvaren!
La oss gå til programvaren!

La oss starte med Gateway -siden

Jeg skrev koden med Arduino IDE. Så du trenger ESP8266 for å bli kjent som bord av IDE. Velg det passende brettet med Verktøy / tavler -menyen.

Hvis du ikke ser noen ESP266 på listen, betyr det at du kanskje må installere ESP8266 Arduino Addon (du finner prosedyren her).

All koden du trenger er tilgjengelig på GitHub. Det er på tide å laste den ned!

Hovedkoden til Gateway er der:

I tillegg til standard Arduino og ESP8266 inkluderer hovedkoden trenger disse 2 inkluderer: LookFoString som brukes til å manipulere strenger og er der:

ManageParamEeprom som brukes til å lese og lagre parametere i Eeprom ans er der:

Når du har fått all koden, er det på tide å laste den opp til ESP8266. Først koble FTDI til en USB -port på datamaskinen.

Jeg foreslår at du sjekker tilkoblingen før du prøver å laste opp.

  • Sett Arduino seriell skjerm til den nye USB -porten.
  • Sett hastigheten til 115200 både cr nl (defaut -hastighet for Olimex)
  • Slå på brødbrettet (ESP8266 kommer med programvare som omhandler AT -kommandoer)
  • Send "AT" med det serielle verktøyet.
  • Du må få "OK" tilbake.

Hvis ikke, sjekk tilkoblingen og se på ESP8266 -spesifikasjonene.

Hvis du har "OK" er du klar til å laste opp koden

  • Slå av brødbrettet, vent noen sekunder,
  • trykk på den svarte mikrosveien til ESP8266. Det er normalt å få litt søppel på den serielle skjermen.
  • Trykk på opplastings -IDE som for en Arduino.
  • Etter at opplastingen er fullført, sett seriehastigheten til 38400.

Du vil se noe som på bildet.

Gratulerer med at du har lastet opp koden!

Trinn 6: La oss gjøre konfigurasjonen

La oss gjøre konfigurasjonen!
La oss gjøre konfigurasjonen!

ConfigGPIO må settes til 1 for å gå inn i konfigurasjonsmodus

Først skanner du WIFI ved å skrive inn kommandoen: ScanWifi. Du vil se en liste over det oppdagede nettverket.

  • Still deretter inn SSID ved å skrive inn "SSID1 = ditt nettverk"
  • Angi deretter passordet ditt ved å skrive "PSW1 = ditt passord"
  • Skriv deretter inn "SSID = 1" for å definere gjeldende nettverk
  • Skriv inn "Start på nytt" for å koble gatewayen til WIFI -en.
  • Du kan bekrefte at du har en IP ved å skrive inn "ShowWifi".
  • Den blå lysdioden lyser og den røde lysdioden blinker.

Det er på tide å definere IP -serveradressen din ved å skrive inn de fire underadressene (serveren som skal kjøre Java -testkoden). For eksempel:

  • "IP1 = 192"
  • "IP2 = 168"
  • "IP3 = 1"
  • "IP4 = 10"

Det siste nødvendige trinnet er å angi UDP -serverens lytteport ved å angi "listenPort = xxxx".

Skriv inn "ShowEeprom" for å sjekke hva du nettopp lagret i Eeprom

Koble nå GPIO2 til bakken for å forlate konfigurasjonsmodusen

Din Gateway er klar til å fungere

Det er noen andre kommandoer du kan finne i dokumentasjonen.

Trinn 7: La oss gjøre Arduino -siden

La oss gjøre Arduino -siden!
La oss gjøre Arduino -siden!
La oss gjøre Arduino -siden!
La oss gjøre Arduino -siden!

Koble først Arduino

Hvis du har en Mega, vil det være lettest å begynne med. Likevel kan du bruke en Uno.

For å sjekke arbeidet ditt er det best å bruke eksemplet.

Du kan laste den ned der:

Den inkluderer SerialNetwork -kode som er her:

Bare last opp koden inne i Arduino.

Den grønne LED -en blinker hver gang Arduino sender data.

Trinn 8: La oss gjøre serversiden

La oss gjøre serversiden!
La oss gjøre serversiden!
La oss gjøre serversiden!
La oss gjøre serversiden!

Servereksemplet er et Java -program som du kan laste ned her:

Bare kjør den

Se på Java -konsollen.

Se på Arduino -skjermen.

Arduino sender 2 forskjellige pakker.

  • Den første inneholder statusen til de digitale pinnene 2 til 6.
  • Den andre inneholder 2 tilfeldige verdier, spenningsnivået på A0 i mV og trinnvis antall.

Java -programmet

  • skrive ut mottatte data i heksadesimalt format
  • svar på den første typen data med en tilfeldig på/av -verdi for å sette på/av Arduino LED
  • svare på den andre typen data med mottatt antall og en tilfeldig verdi.

Trinn 9: Det er på tide å gjøre litt lodding

Det er på tide å gjøre litt lodding!
Det er på tide å gjøre litt lodding!
Det er på tide å gjøre litt lodding!
Det er på tide å gjøre litt lodding!
Det er på tide å gjøre litt lodding!
Det er på tide å gjøre litt lodding!

Det fungerer på brødbrettet!

Det er på tide å gjøre den mer robust ved å lodde deler på en PCB

På toppen av det du gjorde med brødbrettet, må du legge til 3 kontakter.

  • C1 1 x pin one som skal brukes for å gå inn i nettverkssporingsmodus.
  • C2 3 x pinner en som skal brukes til å veksle mellom drifts- og konfigurasjonsmodus.
  • C3 6 x pins en som skal brukes til å koble Gateway til enten en Arduino eller en FTDI.

C1 koblet til GPIO2 må jordes manuelt hvis du vil aktivere nettverkssporene.

C2 koblet til GPIO 4 kan settes i 2 forskjellige posisjoner. En som satt til bakken for normal driftsmodus og en til 3.3v for å gå inn i konfigurasjonsmodus.

Sett alle komponentene på kretskortet i henhold til diagrammet, og start deretter med lodding for å få det endelige produktet!

Trinn 10: La oss gjøre den siste testen

Image
Image

Start Java -testprogrammet.

Koble til Arduino.

Strøm på Gateway.

Og se på Java -konsollen, Arduino -skjermen, Arduino -LED -en og Gateway -lysdiodene.

Trinn 11: Du kan tilpasse dette designet til dine egne krav

Når det gjelder maskinvaren

  • Hvis du velger en annen ESP8266, må du tilpasse deg spesifikasjonene.
  • Hvis du velger en annen 3.3v regulator må den levere over 500mA, og du må tilpasse kondensatoren.
  • Du kan endre LED -motstandene for å justere lysstyrken.
  • Du kan undertrykke alle lysdiodene, men jeg anbefaler å beholde minst den røde på.
  • Du kan erstatte ULN2803 med 3 transistorer (eller mindre du velger å ikke beholde de 3 LED -ene).
  • Jeg testet, men det må fungere med 3.3v Arduino -plater. Bare koble Tx Rx til 3.3v -kontakten.

Når det gjelder konfigurasjon

  • Du kan lagre 2 forskjellige SSID og bytte
  • Du kan endre GPIO som brukes

Når det gjelder programvaren

Anbefalt: