Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Hvordan fungerer det?
- Trin 2: Hvad er hovedfunktionerne?
- Trin 3: Byg af materiale
- Trin 4: Download Gateway -koden
- Trin 5: Lad os udføre Gateway -konfigurationen
- Trin 6: Download eksemplet på Arduino -kode
- Trin 7: Lad os gøre serversiden
- Trin 8: Gå videre
Video: Seriel UDP/IP -gateway til Arduino Baseret på ESP8266 Shield: 8 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
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?
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
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
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 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
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:
Raspberry PI 3 - Aktiver seriel kommunikation til TtyAMA0 til BCM GPIO 14 og GPIO 15: 9 trin
Raspberry PI 3 - Aktiver seriel kommunikation til TtyAMA0 til BCM GPIO 14 og GPIO 15: Jeg havde for nylig interesse i at aktivere UART0 på min Raspberry Pi (3b), så jeg kunne tilslutte den direkte til en RS -232 signalniveauenhed ved hjælp af en standard 9 -pind d-sub-stik uden at skulle gå gennem en USB til RS-232 adapter. En del af min interesse
Arduino -baseret ikke -kontakt infrarødt termometer - IR -baseret termometer ved hjælp af Arduino: 4 trin
Arduino -baseret ikke -kontakt infrarødt termometer | IR -baseret termometer ved hjælp af Arduino: Hej fyre i denne instruktion vil vi lave et kontaktfrit termometer ved hjælp af arduino. Da nogle gange temperaturen på væsken/faststoffet er alt for høj eller for lav, og så er det svært at komme i kontakt med det og læse dets temperaturen derefter i den scene
Rediger Arduino ASCD 8x 18650 Smart oplader / aflader til ESP8266 hardware seriel: 4 trin
Rediger Arduino ASCD 8x 18650 Smart Charger / Discharger til ESP8266 Hardware Serial: På PCB version 2.0 og nedenunder har ESP8266 Arduino Adapter de forkerte ben, hvor du ikke kan bruge (kommunikere) med ESP8266 til trådløs kommunikation til Vortex It Battery Portal. Denne ændring forbinder ESP8266 Arduino Adapter til Har
Web-baseret SmartMirror ved hjælp af seriel kommunikation: 6 trin
Web-baseret SmartMirror ved hjælp af seriel kommunikation: Denne instruktør leveres med al koden klar til brug. Udviklingen var meget kompliceret, men når den er konfigureret, er den virkelig let at tilpasse. Tag et kig og nyd den;)
Arduino -baseret seriel servo -controller: 6 trin
Arduino Based Serial Servo Controller: Dette er en simpel seriel controller til flere servoer baseret på Arduino. (min første instruerbare også :)) Det meste af arbejdet i dette kom fra at få softwaren til at tale med arduinoen og lave en protokol for, at dataene skulle blive videregivet. Som f