Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
Jag publicerade redan 2016 denna instruerbara "Hur man gör din egen Wifi -gateway för att ansluta din Arduino till IP -nätverk". Eftersom jag gjorde några kodförbättringar och jag fortfarande använder den här lösningen.
Ändå finns det nu några ESP8266 -skärmar som gör det möjligt att göra detsamma utan att lödas så länge du inte använder Micro- eller Nano -kort.
Denna instruktör kommer att förklara hur man använder dessa ESP82 -sköldar som seriell UDP/IP -gateway.
Detta är en del av en global hemautomatiseringsinfrastruktur som du kan titta på här
Mer information om skölden med denna instruerbara
Tillbehör
1 Arduino Mega (det bästa är att ha minst 1 Mega för utveckling och 1 Uno för körfas)
1 Rokoo ESP8266 ESP-12E UART WIFI Convertisseur
1 FTDI 3.3v
2 trådbräda
Steg 1: Hur fungerar det?
Gateway är baserad på en ESP8266 -modul
Denna modul är ansluten från ena sidan med seriell länk från den andra sidan till IP -nätverk med Wifi.
Det fungerar som en svart låda. Datapaket som kommer från den seriella länken skickas till en IP/Udp -port och vice versa.
Du måste bara ställa in din egen konfiguration (IP, WIFI …) en gång första gången du startar Gateway.
Den kan överföra antingen rå ASCII och binär data (ingen HTTP, JSON …)
Det är utformat för att ansluta objekt med hemgjorda mjukvaror som kräver snabba och frekventa överföringar av korta paket med data.
Steg 2: Vilka är huvudfunktionerna?
Mestadels är det en svart låda som konverterar seriell data till UDP -paket på båda sätten.
Men gatewayen kan också agera på egen hand genom att skicka intern information till servern och ta emot några kommandon från servern.
Arduino kan skicka och ta emot meddelanden till / från en server som är ansluten via Internet bara genom att skriva ut / läsa en seriell länk. Det finns inget behov av att Arduino -utvecklaren bry sig om IP -protokoll.
Dessutom tillhandahåller den en GPIO som kan användas av Arduino för att kontrollera att gatewayen är korrekt ansluten till WIFI och att Gateway automatiskt kan byta mellan två olika SSID vid fel
Gateway har två olika driftlägen som väljs genom att ställa in en GPIO
Inställning av GPIO till marken och Gateway går in i konfigurationsläge.
Om du sätter GPIO fri och Gateway går in i gateway -körningsläge.
Dessutom kan Gateway UDP/IP -konfigurationen fjärrändras
Steg 3: Bygg av material
Mycket få saker krävs
1 ESP8266 Shield - Jag hittade denna UNO R3 ESP8266 Serial WiFi Shield Extend Board Module för mindre än 9 €
1 UNO som är Arduino -målet
1 Mega som är arduino -utvecklingsverktyget (du kan klara dig utan det är ganska svårt att felsöka)
1 FTDI 3.3/5v för utveckling
Några ledningar
Steg 4: Ladda ner Gateway -koden
Under detta steg används Arduino endast för att driva (med USB eller en annan strömkälla) på ESP8266 -skärmen
Anslut ESP8266 GPIO4 till jord (för att gå till konfigurationsläge)
Var noga med att ställa in FTDI på 3,3v enligt skärmens krav
Anslut FTDI till skärmen (RX till TX)
Ställ in skärmbrytaren på 1: av 2: av 3: på 4: på
Anslut USB -sidan av FTDI till din dator
Återställ skärmen med tryckknappen ESP-RST
Ladda ner Gateway -koden där på GitHub
Öppna Arduino IDE
- Välj FTDI -bildskärmsporten
- Öppna IDE Serial Monitor - Ställ in hastigheten på 38400
- Välj Generic ES8266 -modulkort
- Uppgradera skärmens firmware med gatewaykoden
Ställ omkopplare 3: av 4: av
Öppna IDE Serial Monitor
Återställ skärmen med tryckknappen ESP-RST
Du måste se meddelanden på monitorn som börjar med "EEPROM -initialisering" "Initiering klar" ….
Det är dags att göra konfigurationen
Steg 5: Låt oss göra Gateway -konfigurationen
När du laddar ner gatewaykoden för första gången kommer ESP8266 Eeprom att initialiseras med standardvärdena. Du kommer att se den här typen av meddelanden "ställ in parameter: x storlek: åå"
Du kan hitta dessa värden i koddefinitionen för paramValue. Naturligtvis kan du ändra dessa standardvärden innan du laddar ner koden men du kan också ställa in din konfiguration med kommando senare. Detta är bättre om du planerar att ha flerpipegateway och bara behålla en version av kod.
Använd bildskärmens seriella port för att skicka kommando (inställt på NL och CR).
Eftersom SSID för närvarande inte är definierat väntar du på "Det gick inte att ansluta till ditt andra försök igen: 5"
Då startar en skanning av WIFI automatiskt
Det är dags att ställa in dina SSID med följande kommandon:
- SSID1 = ditt val1
- PSW1 = yourpsw1
- SSID2 = ditt val2
- PSW2 = yourpsw2
- SSID = 1 (för att välja vilket SSID du ska börja med)
- Starta om Wi -Fi
Efter några sekunder kan du kontrollera anslutningen med kommandot "ShowWifi". Du måste se IP -adressen som gatewayen fick från din DNS -server. Om så är fallet är det dags att gå längre
Det är dags att definiera din IP -serveradress genom att ange de fyra underadresserna (server som kör Java -testkoden). Till exempel:
- "IP1 = 192"
- "IP2 = 168"
- "IP3 = 1"
- "IP4 = 10"
Genom att skicka ett tomt kommando ser du alla de kommandon som stöds som du kan använda senare för att passa dina krav. Alla parametervärden lagras i Eeprom och behöver en omstart för att beaktas.
Ta bort konfigurationskabeln
Skölden körs nu som en gateway
Steg 6: Ladda ner Arduino Code Exempel
Ladda ner först den huvudsakliga Arduino -koden där på GitHub
Ladda sedan ner Arduino -koden med den här kommandodefinitionen och den här seriella länkkoden till dina librairies
Öppna sedan huvudkoden med en ny Arduino IDE
Stäng av skärmbrytaren 1 och 2 för att frigöra Arduino seriell länk 0 för USB -anslutning
Återställ skölden
Anslut FTDI -kablarna till Mega Serial 2 (TX FTDI till RX Mega och så vidare)
Starta en ny Arduino IDE (eller ett TTY -verktyg), anslut FTDI Usb och börja övervaka seriell länk
Ladda upp Arduino -koden inuti Mega
Sätt på skärmbrytaren 1 och 2 för att ansluta Arduino seriell länk 0
Återställ skölden
Du måste se detta meddelande "start usb -utskrift" på bildskärmen
Steg 7: Låt oss göra serversidan
Serverexemplet är ett Java -program som du kan ladda ner här på GitHub
Bara köra den och titta på Java -konsolen och titta på FTDI -skärmen
Du kommer att se datautbyte mellan server och Arduino
Steg 8: Gå vidare
Detta Arduino -kodexempel är baserat på en ramdel av min hemautomatiseringsinfrastruktur.
Låt mig veta om du är intresserad av denna infrastruktur. Jag kommer att publicera källor.
Om du bara vill använda gatewayen kan du förenkla Arduino -koden.
Efter att ha utvecklat och testat din kod på en Arduino Mega kan du enkelt ersätta den med en Uno!
Dessutom kan du ansluta en kabel mellan Arduino GPIO 7 och ESP8266 GPIO 5 om du vill att din Arduino ska kontrollera Wifi -anslutningen