Indholdsfortegnelse:

Sådan laver du din egen WIFI -gateway til at forbinde din Arduino til IP -netværk?: 11 trin (med billeder)
Sådan laver du din egen WIFI -gateway til at forbinde din Arduino til IP -netværk?: 11 trin (med billeder)

Video: Sådan laver du din egen WIFI -gateway til at forbinde din Arduino til IP -netværk?: 11 trin (med billeder)

Video: Sådan laver du din egen WIFI -gateway til at forbinde din Arduino til IP -netværk?: 11 trin (med billeder)
Video: How to setup and use ESP32 Cam with Micro USB WiFi Camera 2024, November
Anonim
Sådan laver du din egen WIFI -gateway til at forbinde din Arduino til IP -netværk?
Sådan laver du din egen WIFI -gateway til at forbinde din Arduino til IP -netværk?

Som så mange mennesker tror du, at Arduino er en meget god løsning til hjemmeautomatisering og robot

Men med hensyn til kommunikation kommer Arduinos bare med serielle links.

Jeg arbejder på en robot, der skal være permanent forbundet med en server, der kører kunstig intelligens -kode. Jeg forsøgte at bruge RF -netværk, som jeg plejede at gøre for domotic, men det er ikke effektivt nok. Når robotten bevæger sig, kan jeg ikke bruge Ethernet Arduino Shield. Arduino Wifi Shield er dyre og forekommer mig at være gammelt design.

Jeg havde brug for noget, der kan udveksle data på en meget enkel og effektiv måde med en server.

Derfor besluttede jeg at designe en Gateway baseret på den meget billige og energieffektive ESP8266 mikrokontroller

Her kan du finde, hvordan du bygger den elektroniske komponent og downloader softwaren.

Jeg brugte denne gateway til hjemmeautomatisering og til robotik.

Dette tager del af en global infrastruktur til hjemmeautomatisering, du kan se her

Jeg lavede en anden instruerbar, der bruger et ESP8266 -skjold og undgår lodning

Forbrugsvarer

Jeg skrev en anden instruerbar om dette emne

Trin 1: Hvordan fungerer det?

Hvordan virker det ?
Hvordan virker det ?

Gateway er baseret på et ESP8266 -modul

Dette modul er forbundet fra den ene side med det serielle link fra den anden side til IP -netværket med Wifi.

Det fungerer som en sort boks. Datapakker, der kommer fra det serielle link, sendes til en IP/Udp -port og omvendt.

Du skal bare indstille din egen konfiguration (IP, WIFI …), første gang du tænder for Gateway.

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

Det er designet til at forbinde objekter med server hjemmelavede software, der kræver hurtige og hyppige overførsler af korte pakker med data.

Det er nemmest at bruge med Arduino Mega, der har mere end en UART (f.eks. Arduino Mega), men kan også køre med en UNO.

Trin 2: Hvad er hovedfunktionerne?

For det meste er det en sort boks, der konverterer og sender serielle data til UDP -pakken på begge måder.

Den har 3 LED'er, der angiver status og trafik for Gateway.

Det giver en GPIO, der kan bruges af Arduino til at vente på, at Gateway er WIFI og IP tilsluttet.

Det kører i 3 forskellige tilstande, der er indstillet med kontakter:

  • Gateway -tilstand, der er den normale tilstand
  • Konfigurationstilstand, der bruges til at indstille parametrene
  • Fejlfindingstilstand, der er til fejlretningstilstand

De fleste parametre kan ændres, så de passer til dine behov.

Trin 3: Byg af materiale

Bygget af materiale
Bygget af materiale

Oven på din Arduino får du brug for

  • 1 x ESP8266-modul-jeg vælger MOD-WIFI-ESP8266-DEV fra Olimex, der koster omkring 5 euro, som er ret let at bruge.
  • 1 x 5v strømkilde
  • 1 x 3.3v effektregulator - jeg bruger LM1086
  • 1 x 100 mikrofarad kondensator
  • 1 x ULN2803 APG -modul (kan erstattes af 3 x transistorer)
  • 8 x modstande (3 x 1K, 1 x 2K, 1 x 2.7k, 1x 3.3K, 1x 27K, 1x 33k)
  • 3 x LED (rød, grøn, blå)
  • 1 x Breadboard PCB
  • nogle ledninger og stik

Kun under byggetrinnene skal du bruge

  • 1 x FTDI 3.3v til konfigurationen
  • Loddejern og tin

Inden lodning er det vigtigt at opsætte alle komponenterne på brødbrættet og kontrollere, at alt er ok.

Trin 4: Lad os starte med elektronikken på brødbrættet

Lad os starte med elektronikken på brødbrættet!
Lad os starte med elektronikken på brødbrættet!

Det elektroniske layout er tilgængeligt i Fritzing -format

Du kan downloade det her trin 1:

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

Gør bare som skema ved at passe på spændingen.

Husk, at ESP8266 ikke understøtter spænding højere end 3.3v. FTDI skal indstilles til 3.3v.

Trin 5: Lad os gå til softwaren

Lad os gå til softwaren!
Lad os gå til softwaren!

Lad os starte med Gateway -siden

Jeg skrev koden med Arduino IDE. Så du har brug for ESP8266 for at blive kendt som board af IDE. Vælg det relevante bord med menuen Værktøjer / tavler.

Hvis du ikke kan se nogen ESP266 på listen, betyder det, at du muligvis skal installere ESP8266 Arduino Addon (du kan finde proceduren her).

Al den kode, du har brug for, er tilgængelig på GitHub. Det er tid til at downloade det!

Hovedkoden for Gateway er der:

Oven på standard Arduino og ESP8266 inkluderer hovedkoden behov disse 2 inkluderer: LookFoString, der bruges til at manipulere strenge og er der:

ManageParamEeprom, der bruges til at læse og gemme parametre i Eeprom ans er der:

Når du har fået al koden, er det tid til at uploade den til ESP8266. Først tilslut FTDI til en USB -port på din computer.

Jeg foreslår, at du tjekker forbindelsen, før du prøver at uploade.

  • Indstil Arduino seriel skærm til den nye USB -port.
  • Indstil hastigheden til 115200 begge cr nl (defaut -hastighed for Olimex)
  • Tænd for brødbrættet (ESP8266 leveres med software, der beskæftiger sig med AT -kommandoer)
  • Send "AT" med det serielle værktøj.
  • Du skal få "OK" til gengæld.

Hvis ikke, tjek din forbindelse, og se på dine ESP8266 -specifikationer.

Hvis du har "OK", er du klar til at uploade koden

  • Sluk for brødbrættet, vent et par sekunder,
  • tryk på den sorte mikroswith i ESP8266. Det er normalt at få noget skrald på den serielle skærm.
  • Tryk på upload IDE som for en Arduino.
  • Efter upload er indstillet seriel hastighed til 38400.

Du vil se noget som på billedet.

Tillykke med at du har uploadet koden!

Trin 6: Lad os lave konfigurationen

Lad os lave konfigurationen!
Lad os lave konfigurationen!

ConfigGPIO skal indstilles til 1 for at komme ind i konfigurationstilstand

Først scannes WIFI ved at indtaste kommandoen: ScanWifi. Du får vist en liste over det registrerede netværk.

  • Indstil derefter dit SSID ved at indtaste "SSID1 = ditnetværk"
  • Indstil derefter din adgangskode ved at indtaste "PSW1 = dit adgangskode"
  • Indtast derefter "SSID = 1" for at definere det aktuelle netværk
  • Indtast "Genstart" for at forbinde gatewayen til dit WIFI.
  • Du kan bekræfte, at du har en IP ved at indtaste "ShowWifi".
  • Den blå LED lyser, og den røde LED blinker.

Det er tid til at definere din IP -serveradresse ved at indtaste de 4 underadresser (server, der kører Java -testkoden). For eksempel:

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

Det sidste nødvendige trin er at indstille UDP -serverens lytteport ved at indtaste "listenPort = xxxx".

Indtast "ShowEeprom" for at kontrollere, hvad du lige har gemt i Eeprom

Tilslut nu GPIO2 til jorden for at forlade konfigurationstilstanden

Din Gateway er klar til at fungere

Der er nogle andre kommandoer, du kan finde i dokumentationen.

Trin 7: Lad os gøre Arduino -siden

Lad os gøre Arduino -siden!
Lad os gøre Arduino -siden!
Lad os gøre Arduino -siden!
Lad os gøre Arduino -siden!

Tilslut først Arduino

Hvis du har en Mega, vil det være lettest at starte med. Ikke desto mindre kan du bruge en Uno.

For at kontrollere dit arbejde er det bedst at bruge eksemplet.

Du kan downloade det der:

Den inkluderer SerialNetwork -kode, der er her:

Upload bare koden inde i din Arduino.

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

Trin 8: Lad os gøre serversiden

Lad os gøre serversiden!
Lad os gøre serversiden!
Lad os gøre serversiden!
Lad os gøre serversiden!

Servereksemplet er et Java -program, som du kan downloade her:

Bare kør det

Se på Java -konsollen.

Se på Arduino -skærmen.

Arduino sender 2 forskellige pakker.

  • Den første indeholder status for de digitale ben 2 til 6.
  • Den anden indeholder 2 tilfældige værdier, spændingsniveauet A0 i mV og inkrementeltælling.

Java -programmet

  • udskriv de modtagne data i hexadecimalt format
  • besvare den første slags data med en tilfældig tænd/sluk -værdi for at tænde/slukke Arduino LED
  • besvare den anden slags data med det modtagne antal og en tilfældig værdi.

Trin 9: Det er på tide at lave lodning

Det er på tide at lave lodning!
Det er på tide at lave lodning!
Det er på tide at lave noget lodning!
Det er på tide at lave noget lodning!
Det er på tide at lave lodning!
Det er på tide at lave lodning!

Det fungerer på brødbrættet!

Det er på tide at gøre det mere robust ved at lodde dele på et printkort

Ud over det, du gjorde med brødbrættet, skal du tilføje 3 stik.

  • C1 1 x pin one, der skal bruges til at komme ind i netværkssporingstilstand.
  • C2 3 x pins en, der skal bruges til at skifte mellem løb og konfigurationstilstand.
  • C3 6 x pins en, der bruges til at forbinde gatewayen enten til en Arduino eller en FTDI.

C1, der er forbundet til GPIO2, skal jordes manuelt, hvis du vil aktivere netværkssporene.

C2 tilsluttet GPIO 4 kan indstilles i 2 forskellige positioner. En der satte sig til jorden for den normale driftstilstand og en til 3.3v for at komme ind i konfigurationstilstand.

Indstil alle komponenterne på printet i henhold til diagrammet, og begynd derefter at lodde for at få det endelige produkt!

Trin 10: Lad os lave den sidste test

Image
Image

Start Java -testprogrammet.

Tilslut Arduino.

Tænd for gatewayen.

Og se på Java -konsollen, Arduino -skærmen, Arduino LED og Gateway LED'erne.

Trin 11: Du kan tilpasse dette design til dine egne krav

Med hensyn til hardware

  • Hvis du vælger en anden ESP8266, skal du tilpasse dig specifikationerne.
  • Hvis du vælger en anden 3.3v regulator, skal den levere over 500mA, og du bliver nødt til at tilpasse kondensatoren.
  • Du kan ændre LED -modstandene for at justere lysstyrken.
  • Du kan undertrykke al LED'en, men jeg anbefaler at holde mindst den røde tændt.
  • Du kan erstatte ULN2803 med 3 transistorer (eller mindre jeg vælger ikke at beholde de 3 LED).
  • Jeg testede, men der må det fungere med 3.3v Arduino boards. Tilslut bare Tx Rx til 3.3v -stikket.

Angående konfiguration

  • Du kan gemme 2 forskellige SSID og skifte
  • Du kan ændre den anvendte GPIO

Angående softwaren

Anbefalede: