Turinys:

Kaip sukurti savo „WIFI“šliuzą, kad prijungtumėte „Arduino“prie IP tinklo?: 11 žingsnių (su nuotraukomis)
Kaip sukurti savo „WIFI“šliuzą, kad prijungtumėte „Arduino“prie IP tinklo?: 11 žingsnių (su nuotraukomis)

Video: Kaip sukurti savo „WIFI“šliuzą, kad prijungtumėte „Arduino“prie IP tinklo?: 11 žingsnių (su nuotraukomis)

Video: Kaip sukurti savo „WIFI“šliuzą, kad prijungtumėte „Arduino“prie IP tinklo?: 11 žingsnių (su nuotraukomis)
Video: Using Micro SD Card and Data logging with Arduino | Arduino Step by Step Course Lesson 106 2024, Lapkritis
Anonim
Kaip sukurti savo „WIFI“šliuzą, kad prijungtumėte „Arduino“prie IP tinklo?
Kaip sukurti savo „WIFI“šliuzą, kad prijungtumėte „Arduino“prie IP tinklo?

Kaip ir daugelis žmonių, jūs manote, kad „Arduino“yra labai geras sprendimas namų automatizavimui ir robotizavimui

Tačiau bendravimo požiūriu „Arduinos“tiesiog turi serijines nuorodas.

Aš dirbu su robotu, kuris turi būti nuolat prijungtas prie serverio, kuriame veikia dirbtinio intelekto kodas. Bandžiau naudoti RF tinklą, kaip esu įpratęs daryti domotikai, tačiau jis nėra pakankamai efektyvus. Kai robotas juda, aš negaliu naudoti „Ethernet Arduino Shield“. „Arduino Wifi Shield“yra brangūs ir man atrodo seno dizaino.

Man reikėjo kažko, kas galėtų labai paprastai ir efektyviai keistis duomenimis su serveriu.

Todėl nusprendžiau sukurti „Gateway“, pagrįstą labai pigiu ir energiją taupančiu ESP8266 mikrovaldikliu

Čia rasite, kaip sukurti elektroninį komponentą ir atsisiųsti programinę įrangą.

Aš naudoju šį vartą namų automatizavimui ir robotui.

Tai apima pasaulinės namų automatikos infrastruktūros dalį, kurią galite pamatyti čia

Aš padariau dar vieną nurodymą, kuris naudoja ESP8266 skydą ir vengia litavimo

Prekės

Aš parašiau kitą pamoką šia tema

1 žingsnis: kaip tai veikia?

Kaip tai veikia ?
Kaip tai veikia ?

„Gateway“yra pagrįstas ESP8266 moduliu

Šis modulis yra prijungtas iš vienos pusės su serijine nuoroda iš kitos pusės į IP tinklą naudojant „Wifi“.

Jis veikia kaip juoda dėžutė. Duomenų paketai, gaunami iš nuosekliosios nuorodos, siunčiami į IP/Udp prievadą ir atvirkščiai.

Jums tereikia nustatyti savo konfigūraciją (IP, WIFI …), kai pirmą kartą įjungiate „Gateway“.

Jis gali perduoti neapdorotus ASCII ir dvejetainius duomenis (nėra HTTP, JSON …)

Jis skirtas prijungti objektus prie serverio sukurtos programinės įrangos, kuriai reikia greitai ir dažnai perduoti trumpą duomenų paketą.

Lengviausia jį naudoti su „Arduino Mega“, turinčiu daugiau nei vieną UART (pavyzdžiui, „Arduino Mega“), bet taip pat galima naudoti su UNO.

2 žingsnis: Kokios yra pagrindinės funkcijos?

Dažniausiai tai yra juodoji dėžė, kuri abiem būdais konvertuoja ir siunčia serijinius duomenis į UDP paketą.

Jame yra 3 šviesos diodai, rodantys vartų būseną ir srautą.

Jame yra GPIO, kurį „Arduino“gali naudoti laukdamas, kol vartai bus prijungti prie WIFI ir IP.

Jis veikia 3 skirtingais režimais, kurie nustatomi jungikliais:

  • Vartų režimas, kuris yra įprastas režimas
  • Konfigūracijos režimas, naudojamas parametrams nustatyti
  • Derinimo režimas, skirtas derinimo režimui

Daugumą parametrų galima keisti pagal jūsų poreikius.

3 žingsnis: Medžiagos kūrimas

Medžiagos konstrukcija
Medžiagos konstrukcija

Ant „Arduino“jums reikės

  • 1 x ESP8266 modulis-aš renkuosi „Olimex“MOD-WIFI-ESP8266-DEV, kuris kainuoja apie 5 eurus ir yra gana paprastas naudoti.
  • 1 x 5 V maitinimo šaltinis
  • 1 x 3.3v galios reguliatorius - naudoju LM1086
  • 1 x 100 mikrofaradų kondensatorius
  • 1 x ULN2803 APG modulis (gali būti pakeistas 3 x tranzistoriais)
  • 8 x rezistoriai (3 x 1K, 1 x 2K, 1 x 2,7k, 1x 3,3K, 1x 27K, 1x 33k)
  • 3 x LED (raudona, žalia, mėlyna)
  • 1 x duonos plokštės PCB
  • kai kurie laidai ir jungtys

Tik atliekant statybos veiksmus jums reikės

  • 1 x FTDI 3.3v konfigūracijai
  • Lituoklis ir skarda

Prieš litavimą svarbu sukonfigūruoti visus duonos lentos komponentus ir patikrinti, ar viskas gerai.

4 žingsnis: pradėkime nuo elektroninės informacijos apie duonos lentą

Pradėkime nuo elektronikos ant duonos lentos!
Pradėkime nuo elektronikos ant duonos lentos!

Elektroninis išdėstymas galimas Fritzing formatu

Čia galite atsisiųsti 1 veiksmą:

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

Tiesiog atlikite schemą, rūpindamiesi įtampa.

Atminkite, kad ESP8266 nepalaiko didesnės nei 3,3 V įtampos. FTDI turi būti nustatytas į 3.3 V.

5 žingsnis: Eikime į programinę įrangą

Eikime į programinę įrangą!
Eikime į programinę įrangą!

Pradėkime nuo vartų pusės

Aš parašiau kodą naudodami „Arduino IDE“. Taigi jums reikia, kad ESP8266 būtų žinomas kaip lenta IDE. Meniu Įrankiai / lentos pasirinkite tinkamą lentą.

Jei sąraše nematote jokio ESP266, tai reiškia, kad gali tekti įdiegti ESP8266 „Arduino Addon“(procedūrą rasite čia).

Visas reikalingas kodas yra prieinamas „GitHub“. Atėjo laikas jį atsisiųsti!

Pagrindinis „Gateway“kodas yra čia:

Be standartinio „Arduino“ir „ESP8266“yra pagrindinis kodo poreikis, šie 2 apima: „LookFoString“, kuris naudojamas manipuliuoti eilutėmis ir yra:

„ManageParamEeprom“, naudojamas parametrams skaityti ir saugoti „Eeprom ans“, yra čia:

Kai gausite visą kodą, laikas jį įkelti į ESP8266. Pirmiausia prijunkite FTDI prie kompiuterio USB prievado.

Siūlau patikrinti ryšį prieš bandant įkelti.

  • Nustatykite „Arduino“serijinį monitorių į naują USB prievadą.
  • Nustatykite greitį 115200 tiek cr nl (numatytasis „Olimex“greitis)
  • Įjunkite duonos lentą (ESP8266 pateikiama kartu su programine įranga, kuri tvarko AT komandas)
  • Siųskite „AT“naudodami serijinį įrankį.
  • Mainais turite gauti „Gerai“.

Jei ne, patikrinkite ryšį ir peržiūrėkite ESP8266 specifikacijas.

Jei gavote „Gerai“, esate pasiruošę įkelti kodą

  • Išjunkite duonos lentą, palaukite kelias sekundes,
  • paspauskite juodą ESP8266 mikropasukiklį. Įprasta, kad į nuoseklųjį monitorių patenka šiukšlių.
  • Paspauskite įkėlimo IDE kaip „Arduino“.
  • Įkėlus nustatykite serijos greitį iki 38400.

Pamatysite kažką panašaus į paveikslėlį.

Sveikiname, kad sėkmingai įkėlėte kodą!

6 žingsnis: atlikime konfigūraciją

Atlikime konfigūraciją!
Atlikime konfigūraciją!

Norint patekti į konfigūracijos režimą, „configGPIO“turi būti nustatytas į 1

Iš pradžių nuskaitykite WIFI įvesdami komandą: ScanWifi. Pamatysite aptikto tinklo sąrašą.

  • Tada nustatykite savo SSID įvesdami „SSID1 = yournetwork“
  • Tada nustatykite slaptažodį įvesdami „PSW1 = yourpassword“
  • Tada įveskite „SSID = 1“, kad apibrėžtumėte dabartinį tinklą
  • Įveskite „Restart“, kad prijungtumėte šliuzą prie savo WIFI.
  • Galite patikrinti, ar gavote IP, įvesdami „ShowWifi“.
  • Užsidegs mėlynas šviesos diodas, o mirksės raudonas.

Atėjo laikas apibrėžti savo IP serverio adresą įvedant 4 antrinius adresus (serveris, kuriame bus paleistas „Java“bandymo kodas). Pavyzdžiui:

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

Paskutinis būtinas žingsnis yra nustatyti UDP serverio klausymo prievadą įvedant „listenPort = xxxx“.

Įveskite „ShowEeprom“, kad patikrintumėte, ką ką tik išsaugojote „Eeprom“

Dabar prijunkite GPIO2 prie žemės, kad išeitumėte iš konfigūracijos režimo

Jūsų vartai yra paruošti darbui

Yra keletas kitų komandų, kurias galite rasti dokumentuose.

7 žingsnis: padarykime „Arduino“pusę

Padarykime Arduino pusę!
Padarykime Arduino pusę!
Padarykime Arduino pusę!
Padarykime Arduino pusę!

Pirmiausia prijunkite „Arduino“

Jei turite „Mega“, tai bus lengviausia pradėti. Nepaisant to, galite naudoti „Uno“.

Norėdami patikrinti savo darbą, geriausia naudoti pavyzdį.

Ją galite atsisiųsti čia:

Jame yra „SerialNetwork“kodas, kuris yra čia:

Tiesiog įkelkite kodą į „Arduino“.

Žalias šviesos diodas mirksi kiekvieną kartą, kai „Arduino“siunčia duomenis.

8 žingsnis: padarykime serverio pusę

Padarykime serverio pusę!
Padarykime serverio pusę!
Padarykime serverio pusę!
Padarykime serverio pusę!

Serverio pavyzdys yra „Java“programa, kurią galite atsisiųsti čia:

Tiesiog paleisk

Pažvelkite į „Java“konsolę.

Pažvelkite į „Arduino“monitorių.

„Arduino“siunčia 2 skirtingus paketus.

  • Pirmajame yra skaitmeninių kaiščių nuo 2 iki 6 būsena.
  • Antrajame yra 2 atsitiktinės vertės, A0 įtampos lygis mV ir papildomas skaičius.

„Java“programa

  • spausdinti gautus duomenis šešioliktainiu formatu
  • atsakykite į pirmosios rūšies duomenis su atsitiktine įjungimo/išjungimo reikšme, kad įjungtumėte/išjungtumėte „Arduino“šviesos diodą
  • atsakykite į antros rūšies duomenis, nurodydami gautą skaičių ir atsitiktinę vertę.

9 žingsnis: Atėjo laikas atlikti litavimą

Atėjo laikas atlikti litavimą!
Atėjo laikas atlikti litavimą!
Atėjo laikas atlikti litavimą!
Atėjo laikas atlikti litavimą!
Atėjo laikas atlikti litavimą!
Atėjo laikas atlikti litavimą!

Tai veikia ant duonos lentos!

Atėjo laikas jį padaryti tvirtesnį, lituojant dalis ant PCB

Be to, ką darėte su duonos lenta, turite pridėti 3 jungtis.

  • C1 1 x kištukas, kuris bus naudojamas įeinant į tinklo sekimo režimą.
  • C2 3 x smeigtukai, kurie bus naudojami perjungimui tarp veikimo ir konfigūracijos režimo.
  • C3 6 x smeigtukai, kurie bus naudojami „Gateway“prijungimui prie „Arduino“arba FTDI.

Jei norite suaktyvinti tinklo pėdsakus, C1, prijungtas prie GPIO2, turi būti įžemintas rankiniu būdu.

C2, prijungtą prie GPIO 4, galima nustatyti 2 skirtingose padėtyse. Vienas, kuris buvo nustatytas įprastam veikimo režimui, o kitas - 3.3v, kad būtų galima įjungti konfigūracijos režimą.

Nustatykite visus PCB komponentus pagal schemą ir vėliau pradėkite lituoti, kad gautumėte galutinį produktą!

10 žingsnis: atlikime galutinį testą

Image
Image

Paleiskite „Java“testavimo programą.

Prijunkite „Arduino“.

Įjunkite „Gateway“.

Ir pažvelkite į „Java“konsolę, „Arduino“monitorių, „Arduino LED“ir „Gateway“šviesos diodus.

11 veiksmas: galite pritaikyti šį dizainą pagal savo poreikius

Kalbant apie aparatūrą

  • Jei pasirinksite kitą ESP8266, turėsite prisitaikyti prie specifikacijų.
  • Jei pasirinksite kitą 3.3V reguliatorių, jis turi tiekti daugiau nei 500 mA ir turėsite pritaikyti kondensatorių.
  • Galite keisti LED rezistorius, kad sureguliuotumėte ryškumą.
  • Galite slopinti visus šviesos diodus, bet aš rekomenduoju išlaikyti bent raudoną.
  • ULN2803 galite pakeisti 3 tranzistoriais (arba mažiau, jei nuspręsite nelaikyti 3 šviesos diodų).
  • Aš išbandžiau, bet ten jis turi veikti su 3.3v „Arduino“plokštėmis. Tiesiog prijunkite „Tx Rx“prie 3.3v jungties.

Kalbant apie konfigūraciją

  • Galite išsaugoti 2 skirtingus SSID ir perjungti
  • Galite pakeisti naudojamą GPIO

Kalbant apie programinę įrangą

Rekomenduojamas: