Innehållsförteckning:

Seriell UDP/IP -gateway för Arduino Baserat på ESP8266 Shield: 8 steg
Seriell UDP/IP -gateway för Arduino Baserat på ESP8266 Shield: 8 steg

Video: Seriell UDP/IP -gateway för Arduino Baserat på ESP8266 Shield: 8 steg

Video: Seriell UDP/IP -gateway för Arduino Baserat på ESP8266 Shield: 8 steg
Video: Understanding Serial Protocols 2024, Juli
Anonim
Seriell UDP/IP -gateway för Arduino Baserat på ESP8266 Shield
Seriell UDP/IP -gateway för Arduino Baserat på ESP8266 Shield

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?

Hur fungerar det ?
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

Byggd av material
Byggd 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

Ladda ner Gateway -koden
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 Arduino Code Exempel
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

Att gå längre
Att gå längre
Att gå längre
Att gå längre

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

Rekommenderad: