Innholdsfortegnelse:
- Rekvisita
- Trinn 1: Hvordan fungerer det?
- Trinn 2: Hva er hovedfunksjonene?
- Trinn 3: Bygg av materiale
- Trinn 4: Last ned Gateway -koden
- Trinn 5: La oss gjøre gatewaykonfigurasjonen
- Trinn 6: Last ned Arduino -koden
- Trinn 7: La oss gjøre serversiden
- Trinn 8: Gå videre
Video: Seriell UDP/IP -gateway for Arduino Basert på ESP8266 Shield: 8 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:22
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?
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
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
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 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
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:
Arduino seriell kommunikasjon: 5 trinn
Arduino seriell kommunikasjon: Mange Arduino -prosjekter er avhengige av å overføre data mellom flere Arduinos. Om du er en hobbyist som bygger en RC -bil, et RC -fly eller designer en værstasjon med en ekstern skjerm, må du vite hvordan du kan overfør serier
Frittstående Arduino 3.3V W / ekstern 8 MHz klokke som programmeres fra Arduino Uno gjennom ICSP / ISP (med seriell overvåking!): 4 trinn
Frittstående Arduino 3.3V W / ekstern 8 MHz -klokke som programmeres fra Arduino Uno gjennom ICSP / ISP (med seriell overvåking!): Mål: Å bygge en frittstående Arduino som kjører på 3.3V fra en 8 MHz ekstern klokke. For å programmere den via ISP (også kjent som ICSP, seriell programmering i krets) fra en Arduino Uno (kjører på 5V) For å redigere bootloader-filen og brenne
Arduino -basert ikke -kontakt infrarødt termometer - IR -basert termometer ved bruk av Arduino: 4 trinn
Arduino -basert ikke -kontakt infrarødt termometer | IR -basert termometer ved bruk av Arduino: Hei folkens i denne instruksjonsboken vil vi lage et kontaktfritt termometer ved hjelp av arduino. Siden noen ganger temperaturen på væsken/faststoffet er for høy eller for lav, og da er det vanskelig å få kontakt med det og lese dets temperaturen da i den situasjonen
Flash ESP-01 (ESP8266) Uten USB-til-seriell adapter ved bruk av Raspberry Pi: 3 trinn
Flash ESP-01 (ESP8266) Uten USB-til-seriell adapter ved bruk av Raspberry Pi: Denne instruksjonen guider deg til hvordan du starter programmeringen av ESP8266-mikrokontrolleren på en ESP-01 WIFI-modul. Alt du trenger for å komme i gang (i tillegg til ESP-01-modulen, selvfølgelig) er Raspberry Pi Jumper wires 10K motstand jeg ønsket å pusse opp en
Arduino -basert seriell servokontroller: 6 trinn
Arduino -basert seriell servokontroller: Dette er en enkel seriell kontroller for flere servoer basert på Arduino. (min første instruerbare også :)) Det meste av arbeidet i dette kom fra å få programvaren til å snakke med arduinoen og lage en protokoll for dataene som skal overføres. Som f