INHOUDSOPGAWE:

Hoe om u eie WIFI -gateway te maak om u Arduino aan 'n IP -netwerk te koppel?: 11 stappe (met foto's)
Hoe om u eie WIFI -gateway te maak om u Arduino aan 'n IP -netwerk te koppel?: 11 stappe (met foto's)

Video: Hoe om u eie WIFI -gateway te maak om u Arduino aan 'n IP -netwerk te koppel?: 11 stappe (met foto's)

Video: Hoe om u eie WIFI -gateway te maak om u Arduino aan 'n IP -netwerk te koppel?: 11 stappe (met foto's)
Video: Leap Motion SDK 2024, November
Anonim
Hoe kan u u eie WIFI -gateway maak om u Arduino aan 'n IP -netwerk te koppel?
Hoe kan u u eie WIFI -gateway maak om u Arduino aan 'n IP -netwerk te koppel?

Soos soveel mense dink u dat Arduino 'n baie goeie oplossing is om tuisautomatisering en robotika te doen

Maar in terme van kommunikasie, het Arduinos net reeksskakels.

Ek werk aan 'n robot wat permanent verbind moet word met 'n bediener wat kunsmatige intelligensie -kode gebruik. Ek het probeer om RF -netwerk te gebruik, soos ek gewoond was vir domotika, maar dit is nie doeltreffend genoeg nie. Terwyl die robot beweeg, kan ek nie die Ethernet Arduino Shield gebruik nie. Arduino Wifi Shield is duur en lyk my 'n ou ontwerp.

Ek het iets nodig gehad wat data op 'n baie eenvoudige en doeltreffende manier met 'n bediener kan uitruil.

Daarom het ek besluit om 'n Gateway te ontwerp op grond van die baie goedkoop en energie -effektiewe ESP8266 mikrobeheerder

Hier vind u hoe u die elektroniese komponent kan bou en die sagteware kan aflaai.

Ek het hierdie poort gebruik vir tuistomatisering en vir robotika.

Dit maak deel uit van 'n wêreldwye tuisautomatiseringsinfrastruktuur wat u hier kan sien

Ek het nog 'n instruksie gemaak wat 'n ESP8266 -skild gebruik en soldeer vermy

Voorrade

Ek het 'n ander instruksies oor hierdie onderwerp geskryf

Stap 1: Hoe werk dit?

Hoe werk dit ?
Hoe werk dit ?

Die Gateway is gebaseer op 'n ESP8266 -module

Hierdie module is aan die een kant verbind met die seriële skakel van die ander kant na die IP -netwerk met die Wifi.

Dit dien as 'n swart boks. Datapakkies wat van die seriële skakel af kom, word gestuur na 'n IP/Udp -poort en omgekeerd.

U hoef net u eie konfigurasie (IP, WIFI …) in te stel sodra u die Gateway die eerste keer aanskakel.

Dit kan rou ASCII en binêre data oordra (geen HTTP, JSON …)

Dit is ontwerp om voorwerpe te verbind met tuisgemaakte sagteware vir bedieners wat vinnige en gereelde oordrag van kort pakkie data benodig.

Dit is die maklikste om te gebruik met Arduino Mega met meer as een UART (byvoorbeeld Arduino Mega), maar kan ook met 'n UNO werk.

Stap 2: Wat is die belangrikste funksies?

Dit is meestal 'n swart boks wat op beide maniere reeksdata na UDP -pakket omskakel en stuur.

Dit het 3 LED's wat die status en verkeer van die Gateway aandui.

Dit bied 'n GPIO wat deur Arduino gebruik kan word om te wag totdat die Gateway WIFI en IP gekoppel is.

Dit werk in 3 verskillende modusse wat met skakelaars ingestel is:

  • Gateway -modus is die normale modus
  • Konfigurasiemodus wat gebruik word om die parameters in te stel
  • Ontfoutmodus wat vir ontfoutingsmodus is

Die meeste parameters kan aangepas word om aan u behoeftes te voldoen.

Stap 3: Bou van materiaal

Bou van materiaal
Bou van materiaal

Boonop het u Arduino nodig

  • 1 x ESP8266-module-ek kies die MOD-WIFI-ESP8266-DEV van Olimex wat ongeveer 5 euro kos, wat redelik maklik is om te gebruik.
  • 1 x 5v kragbron
  • 1 x 3.3v kragreguleerder - ek gebruik LM1086
  • 1 x 100 microfarad kapasitor
  • 1 x ULN2803 APG -module (kan vervang word deur 3 x transistors)
  • 8 x weerstande (3 x 1K, 1 x 2K, 1 x 2.7k, 1x 3.3K, 1x 27K, 1x 33k)
  • 3 x LED (rooi, groen, blou)
  • 1 x broodbord PCB
  • 'n paar drade en verbindings

U benodig slegs tydens die boustappe

  • 1 x FTDI 3.3v vir die opset
  • Soldeerbout en blik

Voordat u soldeer, is dit belangrik om al die komponente op die broodbord op te stel en te kyk of alles reg is.

Stap 4: Kom ons begin met die elektronika op die broodbord

Kom ons begin met die elektronika op die broodbord!
Kom ons begin met die elektronika op die broodbord!

Die elektroniese uitleg is beskikbaar in Fritzing -formaat

U kan dit hier aflaai by stap 1:

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

Doen net die skema deur na die spanning te kyk.

Onthou dat ESP8266 nie spanning hoër as 3.3v ondersteun nie. Die FTDI moet op 3.3v gestel word.

Stap 5: Kom ons gaan na die sagteware

Kom ons gaan na die sagteware!
Kom ons gaan na die sagteware!

Kom ons begin met die Gateway -kant

Ek het die kode met Arduino IDE geskryf. U het dus ESP8266 nodig om deur die IDE as bord bekend te staan. Kies die toepaslike bord met die menu Tools / boards.

As u geen ESP266 in die lys sien nie, beteken dit dat u moontlik ESP8266 Arduino Addon moet installeer (u kan die prosedure hier vind).

Al die kode wat u benodig, is beskikbaar op GitHub. Dit is tyd om dit af te laai!

Die hoofkode van die Gateway is daar:

Bo en behalwe die standaard bevat Arduino en ESP8266 die hoofkode, insluitend hierdie twee: LookFoString wat gebruik word om snare te manipuleer en is daar:

ManageParamEeprom wat gebruik word om parameters in Eeprom te lees en te stoor, is daar:

Sodra u al die kode gekry het, is dit tyd om dit op te laai na die ESP8266. Sluit eers die FTDI aan op 'n USB -poort van u rekenaar.

Ek stel voor dat u die verbinding nagaan voordat u probeer oplaai.

  • Stel die Arduino seriële monitor op die nuwe USB -poort.
  • Stel die spoed op 115200 beide cr nl (standaardspoed vir Olimex)
  • Skakel die broodbord in (ESP8266 word voorsien van sagteware wat handel oor AT -opdragte)
  • Stuur 'AT' met die seriële hulpmiddel.
  • U moet 'OK' in ruil daarvoor kry.

Kontroleer u verbinding en kyk na u ESP8266 -spesifikasies.

As u 'OK' het, is u gereed om die kode op te laai

  • Skakel die broodbord af, wag 'n paar sekondes,
  • druk op die swart mikro-swith van die ESP8266. Dit is normaal om vullis op die seriële monitor te kry.
  • Druk op die oplaai IDE soos vir 'n Arduino.
  • Nadat die oplaai voltooi is, stel die reekssnelheid op 38400.

U sal iets sien soos op die prentjie.

Baie geluk dat u die kode suksesvol opgelaai het!

Stap 6: Kom ons doen die konfigurasie

Kom ons doen die konfigurasie!
Kom ons doen die konfigurasie!

Die configGPIO moet op 1 gestel word om in die konfigurasiemodus te kom

Skandeer eers die WIFI deur die opdrag in te voer: ScanWifi. U sal 'n lys van die opgespoorde netwerk sien.

  • Stel dan u SSID in deur "SSID1 = yournetwork" in te voer
  • Stel dan u wagwoord in deur "PSW1 = u wagwoord" in te voer
  • Voer dan "SSID = 1" in om die huidige netwerk te definieer
  • Tik "Herbegin" om die Gateway aan u WIFI te koppel.
  • U kan verifieer dat u 'n IP -adres het deur 'ShowWifi' in te voer.
  • Die blou LED sal brand en die rooi LED knipper.

Dit is tyd om u IP -bedieneradres te definieer deur die 4 subadresse in te voer (bediener wat die Java -toetskode sal uitvoer). Byvoorbeeld:

  • "IP1 = 192"
  • "IP2 = 168"
  • "IP3 = 1"
  • "IP4 = 10"

Die laaste vereiste stap is om die luisterpoort van die UDP -bediener in te stel deur "listenPort = xxxx" in te voer.

Voer "ShowEeprom" in om te kyk wat u pas in Eeprom gestoor het

Sluit nou die GPIO2 aan op die grond om die konfigurasiemodus te verlaat

Jou Gateway is gereed om te werk

Daar is 'n paar ander opdragte wat u in die dokumentasie kan vind.

Stap 7: Kom ons doen die Arduino -kant

Kom ons doen die Arduino -kant!
Kom ons doen die Arduino -kant!
Kom ons doen die Arduino -kant!
Kom ons doen die Arduino -kant!

Koppel eers die Arduino

As u 'n Mega het, is dit die maklikste om mee te begin. U kan egter 'n Uno gebruik.

Om die beste van u werk te kyk, is om die voorbeeld te gebruik.

U kan dit daar aflaai:

Dit bevat SerialNetwork -kode wat hier is:

Laai die kode net in u Arduino op.

Die groen LED knipper elke keer as Arduino data stuur.

Stap 8: Kom ons doen die bedienerkant

Kom ons doen die bedienerkant!
Kom ons doen die bedienerkant!
Kom ons doen die bedienerkant!
Kom ons doen die bedienerkant!

Die bedienervoorbeeld is 'n Java -program wat u hier kan aflaai:

Begin dit net

Kyk na die Java -konsole.

Kyk na die Arduino -monitor.

Arduino stuur 2 verskillende pakkies.

  • Die eerste een bevat die digitale penne 2 tot 6 status.
  • Die tweede een bevat 2 ewekansige waardes, die spanningsvlak van A0 in mV en inkrementele telling.

Die Java -program

  • druk die ontvangde data in heksadesimale formaat af
  • beantwoord die eerste soort data met 'n ewekansige aan/uit -waarde om die Arduino LED aan/uit te sit
  • beantwoord die tweede soort data met die ontvangde telling en 'n ewekansige waarde.

Stap 9: Dit is tyd om te soldeer

Dit is tyd om te soldeer!
Dit is tyd om te soldeer!
Dit is tyd om te soldeer!
Dit is tyd om te soldeer!
Dit is tyd om te soldeer!
Dit is tyd om te soldeer!

Dit werk op die broodbord!

Dit is tyd om dit robuuster te maak deur dele op 'n PCB te soldeer

Benewens wat u met die broodbord gedoen het, moet u 3 verbindings byvoeg.

  • C1 1 x pen een wat gebruik sal word om in die netwerkopsporingsmodus in te gaan.
  • C2 3 x penne een wat gebruik sal word om te wissel tussen hardloop- en konfigurasiemodus.
  • C3 6 x penne een wat gebruik sal word om die Gateway aan te sluit op 'n Arduino of 'n FTDI.

C1 wat aan GPIO2 gekoppel is, moet handmatig geaard word as u die netwerkspore wil aktiveer.

C2 wat aan GPIO 4 gekoppel is, kan in 2 verskillende posisies gestel word. Een wat in die normale modus begin en een op 3.3v om in die konfigurasiemodus te begin.

Stel al die komponente op die PCB volgens die diagram en begin daarna soldeer om die finale produk te kry!

Stap 10: Kom ons doen die laaste toets

Image
Image

Begin die Java -toetsprogram.

Koppel die Arduino.

Skakel die poort aan.

En kyk na die Java -konsole, die Arduino -monitor, die Arduino LED en die Gateway LED's.

Stap 11: u kan hierdie ontwerp aanpas by u eie vereistes

Met betrekking tot die hardeware

  • As u 'n ander ESP8266 kies, moet u aanpas by die spesifikasies.
  • As u 'n ander 3.3v -reguleerder kies, moet dit meer as 500mA lewer, en u moet die kapasitor aanpas.
  • U kan die LED -weerstande verander om die helderheid aan te pas.
  • U kan al die LED's onderdruk, maar ek raai u aan om ten minste die rooi aan te hou.
  • U kan die ULN2803 vervang deur 3 transistors (of minder, u kies om die 3 LED nie te behou nie).
  • Ek het wel getoets, maar daar moet dit werk met 3.3v Arduino -borde. Koppel net Tx Rx aan die 3.3v -aansluiting.

Oor konfigurasie

  • U kan 2 verskillende SSID's stoor en skakel
  • U kan die gebruikte GPIO verander

Met betrekking tot die sagteware

Aanbeveel: