Innehållsförteckning:

Hur man gör din egen WIFI -gateway för att ansluta din Arduino till IP -nätverk?: 11 steg (med bilder)
Hur man gör din egen WIFI -gateway för att ansluta din Arduino till IP -nätverk?: 11 steg (med bilder)

Video: Hur man gör din egen WIFI -gateway för att ansluta din Arduino till IP -nätverk?: 11 steg (med bilder)

Video: Hur man gör din egen WIFI -gateway för att ansluta din Arduino till IP -nätverk?: 11 steg (med bilder)
Video: How to setup and use ESP32 Cam with Micro USB WiFi Camera 2024, November
Anonim
Hur gör du din egen WIFI -gateway för att ansluta din Arduino till IP -nätverk?
Hur gör du din egen WIFI -gateway för att ansluta din Arduino till IP -nätverk?

Som så många tror du att Arduino är en mycket bra lösning för att göra hemautomation och robotik

Men när det gäller kommunikation kommer Arduinos bara med seriella länkar.

Jag arbetar med en robot som måste vara permanent ansluten till en server som kör artificiell intelligenskod. Jag försökte använda RF -nätverk som jag brukade göra för domotic men det är inte tillräckligt effektivt. När roboten rör sig kan jag inte använda Ethernet Arduino Shield. Arduino Wifi Shield är dyra och verkar för mig vara gammal design.

Jag behövde något som kan utbyta data på ett mycket enkelt och effektivt sätt med en server.

Det är därför jag bestämde mig för att designa en Gateway baserad på den mycket billiga och energieffektiva ESP8266 mikrokontrollern

Här kan du hitta hur du bygger den elektroniska komponenten och laddar ner programvaran.

Jag använde denna gateway för hemautomation och för robotik.

Detta är en del av en global hemautomatiseringsinfrastruktur som du kan titta på här

Jag gjorde en annan instruerbar som använder en ESP8266 -skärm och undviker lödning

Tillbehör

Jag skrev en annan instruerbar om detta ämne

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.

Det är lättast att använda med Arduino Mega som har mer än en UART (Arduino Mega till exempel) men kan också köras med en UNO.

Steg 2: Vilka är huvudfunktionerna?

Mestadels är det en svart låda som konverterar och skickar seriell data till UDP -paket på båda sätten.

Den har 3 lysdioder som anger status och trafik för Gateway.

Den tillhandahåller en GPIO som kan användas av Arduino för att vänta på att Gateway är WIFI- och IP -ansluten.

Den körs i 3 olika lägen som är inställda med switchar:

  • Gateway -läge som är det normala läget
  • Konfigurationsläge som används för att ställa in parametrarna
  • Debug -läge som är för felsökningsläge

De flesta parametrarna kan ändras för att passa dina behov.

Steg 3: Bygg av material

Byggd av material
Byggd av material

Ovanpå din Arduino behöver du

  • 1 x ESP8266-modul-jag väljer MOD-WIFI-ESP8266-DEV från Olimex som kostar cirka 5 euro som är ganska lätt att använda.
  • 1 x 5v strömkälla
  • 1 x 3.3v effektregulator - jag använder LM1086
  • 1 x 100 mikrofarad kondensator
  • 1 x ULN2803 APG -modul (kan ersättas av 3 x transistorer)
  • 8 x motstånd (3 x 1K, 1 x 2K, 1 x 2.7k, 1x 3.3K, 1x 27K, 1x 33k)
  • 3 x LED (röd, grön, blå)
  • 1 x brödbräda PCB
  • några ledningar och kontakter

Endast under byggstegen behöver du

  • 1 x FTDI 3.3v för konfigurationen
  • Lödkolv och tenn

Innan lödning är det viktigt att installera alla komponenter på brödbräda och kontrollera att allt är ok.

Steg 4: Låt oss börja med elektroniken på brödbrädet

Låt oss börja med elektroniken på brödbrädan!
Låt oss börja med elektroniken på brödbrädan!

Den elektroniska layouten finns i Fritzing -format

Du kan ladda ner det här steg 1:

github.com/cuillerj/Esp8266IPSerialGateway/blob/master/GatewayElectronicStep1.fzz

Gör bara som schema genom att ta hand om spänningen.

Kom ihåg att ESP8266 inte stöder spänning högre än 3.3v. FTDI måste vara inställd på 3.3v.

Steg 5: Låt oss gå till programvaran

Låt oss gå till programvaran!
Låt oss gå till programvaran!

Låt oss börja med Gateway -sidan

Jag skrev koden med Arduino IDE. Så du behöver ESP8266 för att bli känd som styrelsen av IDE. Välj lämplig tavla med menyn Verktyg / tavlor.

Om du inte ser någon ESP266 i listan betyder det att du kan behöva installera ESP8266 Arduino Addon (proceduren hittar du här).

All kod du behöver är tillgänglig på GitHub. Det är dags att ladda ner den!

Huvudkoden för Gateway finns där:

Ovanpå standard Arduino och ESP8266 innehåller huvudkoden behöver dessa 2 inkluderar: LookFoString som används för att manipulera strängar och finns där:

ManageParamEeprom som används för att läsa och lagra parametrar i Eeprom ans finns där:

När du har fått all koden är det dags att ladda upp den till ESP8266. Anslut först FTDI till en USB -port på din dator.

Jag föreslår att du kontrollerar anslutningen innan du försöker ladda upp.

  • Ställ in Arduino seriell bildskärm till den nya USB -porten.
  • Ställ in hastigheten på 115200 både cr nl (defaut -hastighet för Olimex)
  • Slå på brödbrädan (ESP8266 levereras med programvara som hanterar AT -kommandon)
  • Skicka "AT" med serieverktyget.
  • Du måste få "OK" i gengäld.

Om inte, kontrollera din anslutning och titta på dina ESP8266 -specifikationer.

Om du har "OK" är du redo att ladda upp koden

  • Stäng av brödbrädan, vänta några sekunder,
  • tryck på den svarta mikrosviten i ESP8266. Det är normalt att få lite skräp på seriemonitorn.
  • Tryck på uppladdnings -IDE som för en Arduino.
  • När överföringen är klar ställer du in seriehastigheten till 38400.

Du kommer att se något som på bilden.

Grattis du lyckades ladda upp koden!

Steg 6: Låt oss göra konfigurationen

Låt oss göra konfigurationen!
Låt oss göra konfigurationen!

ConfigGPIO måste ställas in på 1 för att gå in i konfigurationsläge

Skanna först WIFI genom att ange kommandot: ScanWifi. Du kommer att se en lista över det upptäckta nätverket.

  • Ställ sedan in ditt SSID genom att ange "SSID1 = ditt nätverk"
  • Ange sedan ditt lösenord genom att ange "PSW1 = ditt lösenord"
  • Ange sedan "SSID = 1" för att definiera det aktuella nätverket
  • Ange "Starta om" för att ansluta gatewayen till ditt WIFI.
  • Du kan verifiera att du har en IP genom att ange "ShowWifi".
  • Den blå lysdioden lyser och den röda lysdioden blinkar.

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"

Det sista steget som krävs är att ställa in UDP -serverns lyssningsport genom att ange "listenPort = xxxx".

Ange "ShowEeprom" för att kontrollera vad du just lagrade i Eeprom

Anslut nu GPIO2 till marken för att lämna konfigurationsläget

Din Gateway är redo att fungera

Det finns några andra kommandon du kan hitta i dokumentationen.

Steg 7: Låt oss göra Arduino -sidan

Låt oss göra Arduino -sidan!
Låt oss göra Arduino -sidan!
Låt oss göra Arduino -sidan!
Låt oss göra Arduino -sidan!

Anslut först Arduino

Om du har en Mega är det lättast att börja med. Ändå kan du använda en Uno.

För att kontrollera ditt arbete är det bästa att använda exemplet.

Du kan ladda ner det där:

Den innehåller SerialNetwork -kod som finns här:

Ladda bara upp koden inuti din Arduino.

Den gröna lysdioden blinkar varje gång Arduino skickar data.

Steg 8: Låt oss göra serversidan

Låt oss göra serversidan!
Låt oss göra serversidan!
Låt oss göra serversidan!
Låt oss göra serversidan!

Serverexemplet är ett Java -program som du kan ladda ner här:

Kör det bara

Titta på Java -konsolen.

Titta på Arduino -skärmen.

Arduino skicka 2 olika paket.

  • Den första innehåller statusen för digitala stift 2 till 6.
  • Den andra innehåller 2 slumpmässiga värden, spänningsnivån A0 i mV och inkrementellt antal.

Java -programmet

  • skriva ut mottagna data i hexadecimalt format
  • svara på den första typen av data med ett slumpmässigt på/av -värde för att sätta på/av Arduino LED
  • svara på den andra typen av data med det mottagna antalet och ett slumpmässigt värde.

Steg 9: Det är dags att göra lite lödningar

Det är dags att göra lite lödningar!
Det är dags att göra lite lödningar!
Det är dags att göra lite lödningar!
Det är dags att göra lite lödningar!
Det är dags att göra lite lödningar!
Det är dags att göra lite lödningar!

Det fungerar på brödbrädan!

Det är dags att göra den mer robust genom att lödda delar på ett kretskort

Utöver det du gjorde med brödbrädan måste du lägga till tre kontakter.

  • C1 1 x pin one som ska användas för att gå in i nätverksspårningsläge.
  • C2 3 x stift en som kommer att användas för att växla mellan körning och konfigurationsläge.
  • C3 6 x stift en som kommer att användas för att ansluta Gateway antingen till en Arduino eller en FTDI.

C1 ansluten till GPIO2 måste jordas manuellt om du vill aktivera nätverksspåren.

C2 ansluten till GPIO 4 kan ställas in i 2 olika lägen. En som satt till marken för det normala driftläget och en till 3,3v för att gå in i konfigurationsläge.

Ställ in alla komponenter på kretskortet enligt diagrammet och börja sedan lödas för att få den slutliga produkten!

Steg 10: Låt oss göra det sista testet

Image
Image

Starta Java -testprogrammet.

Anslut Arduino.

Slå på Gateway.

Och titta på Java -konsolen, Arduino -bildskärmen, Arduino -LED och Gateway -lysdioderna.

Steg 11: Du kan anpassa denna design till dina egna krav

Angående hårdvaran

  • Om du väljer någon annan ESP8266 måste du anpassa dig till specifikationerna.
  • Om du väljer en annan 3.3v regulator måste den leverera över 500mA och du måste anpassa kondensatorn.
  • Du kan ändra LED -motstånden för att justera ljusstyrkan.
  • Du kan undertrycka all LED men jag rekommenderar att du åtminstone håller den röda på.
  • Du kan ersätta ULN2803 med 3 transistorer (eller mindre jag väljer att inte behålla de 3 lysdioderna).
  • Jag testade men det måste fungera med 3.3v Arduino -brädor. Anslut bara Tx Rx till 3.3v -kontakten.

Angående konfiguration

  • Du kan lagra 2 olika SSID och switch
  • Du kan ändra GPIO som används

Angående programvaran

Rekommenderad: