Innholdsfortegnelse:

Seriell UDP/IP -gateway for Arduino Basert på ESP8266 Shield: 8 trinn
Seriell UDP/IP -gateway for Arduino Basert på ESP8266 Shield: 8 trinn

Video: Seriell UDP/IP -gateway for Arduino Basert på ESP8266 Shield: 8 trinn

Video: Seriell UDP/IP -gateway for Arduino Basert på ESP8266 Shield: 8 trinn
Video: [SOURCE CODE] Send data using Ethernet UDP Arduino C# WinForm 2010 2024, Juli
Anonim
Seriell UDP/IP -gateway for Arduino Basert på ESP8266 Shield
Seriell UDP/IP -gateway for Arduino Basert på ESP8266 Shield

Jeg publiserte allerede i 2016 denne instruksjonsfulle "Hvordan lage din egen Wifi -gateway for å koble Arduino til IP -nettverk". Siden jeg gjorde noen kodeforbedringer, og jeg fortsatt bruker denne løsningen.

Likevel er det nå noen ESP8266 -skjold som gjør det mulig å gjøre det samme uten lodding så lenge du ikke bruker Micro- eller Nano -kort.

Denne instruksen vil forklare hvordan du bruker disse ESP82 -skjoldene som seriell UDP/IP -gateway.

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

Mer informasjon om skjoldet med denne instruerbare

Rekvisita

1 Arduino Mega (det beste er å ha minst 1 Mega for utvikling og 1 Uno for løpefase)

1 Rokoo ESP8266 ESP-12E UART WIFI Convertisseur

1 FTDI 3.3v

2 brødbrettledninger

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.

Trinn 2: Hva er hovedfunksjonene?

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

Men gatewayen kan også handle på egen hånd ved å sende intern informasjon til serveren og motta noen kommandoer fra serveren.

Arduino kan sende og motta meldinger mot / fra en server som er koblet til Internett, bare ved å skrive ut / lese en seriell lenke. Det er ikke nødvendig for Arduino -utvikleren å bry seg om IP -protokollen.

På toppen av det gir den en GPIO som kan brukes av Arduino for å kontrollere at Gateway er riktig koblet til WIFI og at Gateway automatisk kan bytte mellom to forskjellige SSID -er i tilfelle feil

Gateway har 2 forskjellige løpemoduser som velges ved å sette en GPIO

Hvis du setter GPIO til bakken og Gateway går inn i konfigurasjonsmodus.

Hvis du setter GPIO fri og Gateway går inn i gateway -driftsmodus.

I tillegg kan Gateway UDP/IP -konfigurasjonen endres eksternt

Trinn 3: Bygg av materiale

Bygget av materiale
Bygget av materiale

Svært få ting kreves

1 ESP8266 Shield - Jeg fant denne UNO R3 ESP8266 Serial WiFi Shield Extend Board -modulen for mindre enn 9 €

1 UNO som er Arduino -målet

1 Mega som er arduino -utviklingsverktøyet (du kan klare deg uten, men det er ganske vanskelig å feilsøke)

1 FTDI 3.3/5v for utvikling

Noen ledninger

Trinn 4: Last ned Gateway -koden

Last ned Gateway -koden
Last ned Gateway -koden

Under dette trinnet brukes Arduino bare til å drive (med USB eller en annen strømkilde) på ESP8266 -skjoldet

Koble ESP8266 GPIO4 til bakken (for å gå til konfigurasjonsmodus)

Sørg for å sette FTDI til 3,3v etter behov fra skjoldet

Koble FTDI til skjoldet (RX til TX)

Sett innstillingsskjermen til 1: av 2: av 3: på 4: på

Koble USB -siden av FTDI til datamaskinen

Tilbakestill skjoldet med ESP-RST-trykknappen

Last ned Gateway -koden der på GitHub

Åpne Arduino IDE

  • Velg FTDI -skjermporten
  • Åpne IDE Serial Monitor - Sett hastigheten til 38400
  • Velg Generisk ES8266 modulkort
  • Oppgrader skjermens fastvare med gateway -koden

Sett bryter 3: av 4: av

Åpne IDE Serial Monitor

Tilbakestill skjoldet med ESP-RST-trykknappen

Du må se meldinger på skjermen som starter med "EEPROM -initialisering" "Initialisering fullført" ….

Det er på tide å gjøre konfigurasjonen

Trinn 5: La oss gjøre gatewaykonfigurasjonen

Når du laster ned gateway -koden for første gang, vil ESP8266 Eeprom initialiseres med standardverdiene. Du vil se denne typen meldinger "sett parameter: x størrelse: åå"

Du finner disse verdiene inne i kode definisjonen av paramValue. Selvfølgelig kan du endre disse standardverdiene før du laster ned koden, men du kan også angi konfigurasjonen med kommando senere. Dette er bedre hvis du planlegger å ha flere rør gateway og beholde bare én versjon av kode.

Bruk skjermens serielle port til å sende kommando (satt til NL og CR).

Siden SSID ikke er definert for øyeblikket, vent på "Kunne ikke koble til ditt andre forsøk på nytt: 5"

Deretter starter en skanning av WIFI automatisk

Det er på tide å angi SSID -er med følgende kommandoer:

  • SSID1 = ditt valg1
  • PSW1 = yourpsw1
  • SSID2 = ditt valg2
  • PSW2 = yourpsw2
  • SSID = 1 (for å velge hvilken SSID du skal begynne med)
  • Start Wifi på nytt

Etter noen sekunder kan du sjekke forbindelsen med kommandoen "ShowWifi". Du må se IP -adressen gatewayen fikk fra DNS -serveren. I så fall er det på tide å gå videre

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"

Ved å sende en tom kommando vil du se alle de støttede kommandoene som du kan bruke senere for å passe dine krav. Alle parameterverdiene lagres i Eeprom og må tas i betraktning.

Fjern konfigurasjonskabelen

Skjoldet kjører nå som en inngangsport

Trinn 6: Last ned Arduino -koden

Last ned Arduino -koden
Last ned Arduino -koden

Last ned først Arduino -koden der på GitHub

Last deretter ned Arduino -koden med denne kommandodefinisjonen og denne serielle lenkkoden til bibliotekene dine

Åpne deretter hovedkoden med en ny Arduino IDE

Slå av skjermbryteren 1 og 2 for å frigjøre Arduino seriell kobling 0 for USB -tilkobling

Tilbakestill skjoldet

Koble FTDI -ledningene til Mega Serial 2 (TX FTDI til RX Mega og så videre)

Start en ny Arduino IDE (eller et TTY -verktøy), koble til FTDI Usb og begynn å overvåke den serielle lenken

Last opp Arduino -koden inne i Mega

Sett på skjermbryteren 1 og 2 for å koble til Arduino seriell kobling 0

Tilbakestill skjoldet

Du må se denne meldingen "start usb -utskrift" på skjermen

Trinn 7: La oss gjøre serversiden

Servereksemplet er et Java -program som du kan laste ned her på GitHub

Bare kjør den og se på Java -konsollen og se på FTDI -skjermen

Du vil se datautveksling mellom server og Arduino

Trinn 8: Gå videre

Å gå videre
Å gå videre
Å gå videre
Å gå videre

Dette Arduino -kodeeksemplet er basert på en rammedel av hjemmeautomatiseringsinfrastrukturen min.

Gi meg beskjed hvis du er interessert i denne infrastrukturen. Jeg vil publisere kilder.

Hvis du bare vil bruke gatewayen, kan du forenkle Arduino -koden.

Etter å ha utviklet og testet koden din på en Arduino Mega, kan du enkelt erstatte den med en Uno!

På toppen av det kan du koble en ledning mellom Arduino GPIO 7 og ESP8266 GPIO 5 hvis du vil at Arduino skal sjekke Wifi -tilkoblingen

Anbefalt: