Indholdsfortegnelse:

Seriel UDP/IP -gateway til Arduino Baseret på ESP8266 Shield: 8 trin
Seriel UDP/IP -gateway til Arduino Baseret på ESP8266 Shield: 8 trin

Video: Seriel UDP/IP -gateway til Arduino Baseret på ESP8266 Shield: 8 trin

Video: Seriel UDP/IP -gateway til Arduino Baseret på ESP8266 Shield: 8 trin
Video: TCP/IP СОКЕТЫ | ПРОГРАММИРОВАНИЕ СОЦЕТОВ НА C – ЧАСТЬ 1 2024, November
Anonim
Seriel UDP/IP -gateway til Arduino Baseret på ESP8266 Shield
Seriel UDP/IP -gateway til Arduino Baseret på ESP8266 Shield

Jeg har allerede i 2016 udgivet denne instruerbare "Sådan laver du din egen Wifi -gateway for at forbinde din Arduino til IP -netværk". Da jeg lavede nogle kodeforbedringer, og jeg stadig bruger denne løsning.

Ikke desto mindre er der nu nogle ESP8266 -skærme, der gør det muligt at gøre det samme uden lodning, så længe du ikke bruger Micro- eller Nano -plader.

Denne instruktør vil forklare, hvordan du bruger disse ESP82 -skjolde som seriel UDP/IP -gateway.

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

Flere oplysninger om skjoldet med denne instruerbare

Forbrugsvarer

1 Arduino Mega (det bedste er at have mindst 1 Mega til udvikling og 1 Uno til løbende fase)

1 Rokoo ESP8266 ESP-12E UART WIFI Convertisseur

1 FTDI 3.3v

2 brødbrætstråde

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.

Trin 2: Hvad er hovedfunktionerne?

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

Men gatewayen kan også handle på egen hånd ved at sende interne oplysninger til serveren og modtage nogle kommandoer fra serveren.

Arduino kan sende og modtage beskeder mod / fra en server, der er forbundet via internettet, ved blot at udskrive / læse et serielt link. Det er ikke nødvendigt for Arduino -udvikleren at bekymre sig om IP -protokollen.

Derudover giver det en GPIO, der kan bruges af Arduino til at kontrollere, at Gateway er korrekt forbundet til WIFI, og at Gateway automatisk kan skifte mellem 2 forskellige SSID'er i tilfælde af fejl

Gateway har 2 forskellige driftstilstande, der vælges ved at indstille en GPIO

Indstilling af GPIO til jorden, og Gateway går i konfigurationstilstand.

Hvis du sætter GPIO fri, og Gateway går i gateway -driftstilstand.

Derudover kan Gateway UDP/IP -konfigurationen eksternt ændres

Trin 3: Byg af materiale

Bygget af materiale
Bygget af materiale

Der kræves meget få ting

1 ESP8266 Shield - Jeg fandt dette UNO R3 ESP8266 Serial WiFi Shield Extend Board -modul til mindre end 9 €

1 UNO, der er Arduino -målet

1 Mega, der er arduino udviklingsværktøj (du kan undvære, men det er ret svært at fejlsøge)

1 FTDI 3.3/5v til udvikling

Nogle ledninger

Trin 4: Download Gateway -koden

Download Gateway -koden
Download Gateway -koden

Under dette trin bruges Arduino kun til strøm (med USB eller en anden strømkilde) på ESP8266 -skjoldet

Tilslut ESP8266 GPIO4 til jorden (for at gå til konfigurationstilstand)

Sørg for at indstille FTDI til 3,3v som krævet af skærmen

Tilslut FTDI til skærmen (RX til TX)

Sæt sæt afskærmningskontakt til 1: slukket 2: slukket 3: tændt 4: tændt

Tilslut USB -siden af FTDI til din computer

Nulstil skærmen med ESP-RST-trykknappen

Download Gateway -koden der på GitHub

Åbn Arduino IDE

  • Vælg FTDI -monitorporten
  • Åbn IDE Serial Monitor - Indstil hastigheden til 38400
  • Vælg Generisk ES8266 -modulkort
  • Opgrader skærmens firmware med gateway -koden

Indstil kontakt 3: slukket 4: slukket

Åbn IDE Serial Monitor

Nulstil skærmen med ESP-RST-trykknappen

Du skal se meddelelser på skærmen, der starter med "EEPROM -initialisering" "Initialisering fuldført" ….

Det er tid til at foretage konfigurationen

Trin 5: Lad os udføre Gateway -konfigurationen

Ved download af gateway -koden for første gang vil ESP8266 Eeprom blive initialiseret med standardværdierne. Du vil se denne slags meddelelser "sæt parameter: x størrelse: åå"

Du kan finde disse værdier inde i kodedefinitionen af paramValue. Selvfølgelig kan du ændre disse standardværdier, før du downloader koden, men du kan også angive din konfiguration med kommando senere. Dette er bedre, hvis du planlægger at have flere rør gateway og kun beholde én version af kode.

Brug skærmens serielle port til at sende kommando (indstillet til NL og CR).

Da SSID ikke er defineret i øjeblikket, skal du vente på "Kunne ikke oprette forbindelse til din anden prøve igen: 5"

Derefter starter en scanning af WIFI automatisk

Det er tid til at indstille dine SSID'er med følgende kommandoer:

  • SSID1 = dit valg1
  • PSW1 = dinpsw1
  • SSID2 = dit valg2
  • PSW2 = dinpsw2
  • SSID = 1 (for at vælge hvilket SSID der skal startes med)
  • Genstart Wi -Fi

Efter et par sekunder kan du kontrollere forbindelsen med kommandoen "ShowWifi". Du skal se IP -adressen, som gatewayen fik fra din DNS -server. Hvis det er tilfældet, er det tid til at gå videre

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"

Ved at sende en tom kommando vil du se alle de understøttede kommandoer, som du senere kan bruge til at passe til dine krav. Alle parameterværdier gemmes i Eeprom, og der skal tages hensyn til en genstart.

Fjern konfigurationskablet

Skjoldet kører nu som en gateway

Trin 6: Download eksemplet på Arduino -kode

Download eksemplet på Arduino -kode
Download eksemplet på Arduino -kode

Download først den vigtigste Arduino -kode der på GitHub

Download derefter Arduino -koden med denne kommandodefinition og denne serielle linkkode til dine biblioteker

Åbn derefter hovedkoden med en ny Arduino IDE

Sæt skærmkontakten 1 og 2 fra for at frigøre Arduino seriel link 0 til USB -forbindelse

Nulstil skjoldet

Tilslut FTDI -ledningerne til Mega Serial 2 (TX FTDI til RX Mega og så videre)

Start en ny Arduino IDE (eller et TTY -værktøj), tilslut FTDI Usb og begynd at overvåge det serielle link

Upload Arduino -koden inde i Mega

Indstil skærmkontakten 1 og 2 for at tilslutte Arduino seriel link 0

Nulstil skjoldet

Du skal se denne meddelelse "start usb -udskrivning" på skærmen

Trin 7: Lad os gøre serversiden

Servereksemplet er et Java -program, som du kan downloade her på GitHub

Bare kør det og se på Java -konsollen og se på FTDI -skærmen

Du vil se dataudvekslinger mellem server og Arduino

Trin 8: Gå videre

At gå videre
At gå videre
At gå videre
At gå videre

Dette Arduino -kodeeksempel er baseret på en rammedel af min infrastruktur til hjemmeautomatisering.

Lad mig vide, hvis du er interesseret i denne infrastruktur. Jeg vil offentliggøre kilder.

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

Efter at have udviklet og testet din kode på en Arduino Mega, kan du nemt erstatte den med en Uno!

Derudover kan du tilslutte en ledning mellem Arduino GPIO 7 og ESP8266 GPIO 5, hvis du vil have din Arduino til at kontrollere Wifi -forbindelsen

Anbefalede: