Turinys:

„Arduino“serijinis UDP/IP šliuzas, pagrįstas ESP8266 ekranu: 8 žingsniai
„Arduino“serijinis UDP/IP šliuzas, pagrįstas ESP8266 ekranu: 8 žingsniai

Video: „Arduino“serijinis UDP/IP šliuzas, pagrįstas ESP8266 ekranu: 8 žingsniai

Video: „Arduino“serijinis UDP/IP šliuzas, pagrįstas ESP8266 ekranu: 8 žingsniai
Video: Lesson 05: Introduction to Serial Monitor | Robojax Arduino Step By Step Course 2024, Liepa
Anonim
Serijinis „Arduino“UDP/IP šliuzas, pagrįstas „ESP8266 Shield“
Serijinis „Arduino“UDP/IP šliuzas, pagrįstas „ESP8266 Shield“

Aš jau paskelbiau 2016 m. Šį nurodymą „Kaip sukurti savo„ Wifi “šliuzą, kad prijungtumėte„ Arduino “prie IP tinklo“. Kadangi padariau keletą kodo patobulinimų ir vis dar naudoju šį sprendimą.

Nepaisant to, dabar yra keletas ESP8266 skydų, kurie leidžia tą patį padaryti be litavimo, kol nenaudojate „Micro“ar „Nano“plokščių.

Šioje instrukcijoje bus paaiškinta, kaip naudoti šiuos ESP82 skydus kaip nuoseklius UDP/IP šliuzus.

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

Daugiau informacijos apie skydą su šia instrukcija

Prekės

1 „Arduino Mega“(geriausia turėti bent 1 Mega vystymuisi ir 1 „Uno“bėgimo fazei)

1 „Rokoo ESP8266 ESP-12E UART WIFI Convertiver“

1 FTDI 3.3v

2 duonos lentos laidai

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ą.

2 žingsnis: Kokios yra pagrindinės funkcijos?

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

Tačiau šliuzas taip pat gali veikti pats, siųsdamas vidinę informaciją į serverį ir gaudamas kai kurias komandas iš serverio.

„Arduino“gali siųsti ir gauti pranešimus į / iš serverio, prijungto per internetą, tiesiog atspausdindamas / skaitydamas nuoseklią nuorodą. „Arduino“kūrėjui nereikia nerimauti dėl IP protokolo.

Be to, jame yra GPIO, kurį „Arduino“gali naudoti norėdamas patikrinti, ar vartai yra tinkamai prijungti prie „WIFI“, o „Gateway“gali automatiškai pakeisti 2 skirtingus SSID gedimo atveju.

Vartai turi 2 skirtingus veikimo režimus, kurie pasirenkami nustatant GPIO

Nustatant GPIO į žemę ir „Gateway“įjungiamas konfigūracijos režimas.

Išjungus GPIO ir „Gateway“įjungiamas vartų veikimo režimas.

Be to, „Gateway“UDP/IP konfigūraciją galima keisti nuotoliniu būdu

3 žingsnis: Medžiagos kūrimas

Medžiagos konstrukcija
Medžiagos konstrukcija

Reikalaujama labai nedaug dalykų

1 skydas ESP8266 - radau šį UNO R3 ESP8266 serijinio „WiFi“skydo išplėtimo plokštės modulį už mažiau nei 9 €

1 UNO, kuris yra tikslinis „Arduino“taikinys

1 Mega, kuri yra „arduino“kūrimo įrankis (galite apsieiti be jo, tačiau derinti yra gana sunku)

1 FTDI 3.3/5v plėtrai

Kai kurie laidai

4 veiksmas: atsisiųskite vartų kodą

Atsisiųskite „Gateway Code“
Atsisiųskite „Gateway Code“

Šio žingsnio metu „Arduino“naudojamas tik ESP8266 skydo maitinimui (naudojant USB arba kitą maitinimo šaltinį)

Prijunkite ESP8266 GPIO4 prie žemės (kad įeitumėte į konfigūracijos režimą)

Pasirūpinkite, kad FTDI būtų 3.3v, kaip reikalauja skydas

Prijunkite FTDI prie skydo (RX į TX)

Nustatykite skydo jungiklį į 1: išjungta 2: išjungta 3: įjungta 4: įjungta

Prijunkite FTDI USB pusę prie kompiuterio

Iš naujo nustatykite skydą naudodami ESP-RST mygtuką

Atsisiųskite „Gateway“kodą iš „GitHub“

Atidarykite „Arduino IDE“

  • Pasirinkite FTDI monitoriaus prievadą
  • Atidarykite IDE serijinį monitorių - nustatykite greitį iki 38400
  • Pasirinkite bendrąją ES8266 modulio plokštę
  • Atnaujinkite skydo programinę įrangą naudodami šliuzo kodą

Nustatykite jungiklį 3: išjungtas 4: išjungtas

Atidarykite IDE serijos monitorių

Iš naujo nustatykite skydą naudodami ESP-RST mygtuką

Ekrane turite matyti pranešimus, prasidedančius „EEPROM inicijavimas“, „Inicializavimas baigtas“….

Atėjo laikas atlikti konfigūraciją

5 veiksmas: atlikime šliuzo konfigūraciją

Kai pirmą kartą atsisiųsite šliuzo kodą, ESP8266 Eeprom bus inicijuotas naudojant numatytas vertes. Pamatysite tokio tipo pranešimus "Nustatykite parametrą: x dydis: yy"

Šias vertes galite rasti „paramValue“kodo apibrėžtyje. Žinoma, galite pakeisti šias numatytas reikšmes prieš atsisiųsdami kodą, tačiau vėliau taip pat galite nustatyti savo konfigūraciją naudodami komandą. Tai geriau, jei planuojate turėti daugialypį šliuzą ir išsaugoti tik vieną kodo versiją.

Naudokite monitoriaus nuoseklųjį prievadą komandai siųsti (nustatykite į NL ir CR).

Kadangi SSID šiuo metu nėra apibrėžtas, palaukite „Nepavyko prisijungti prie jūsų antrojo bandymo: 5“

Tada automatiškai prasidės WIFI nuskaitymas

Atėjo laikas nustatyti savo SSID naudojant šias komandas:

  • SSID1 = jūsų pasirinkimas1
  • PSW1 = jūsųpsw1
  • SSID2 = jūsų pasirinkimas2
  • PSW2 = jūsųpsw2
  • SSID = 1 (pasirinkti, nuo kurio SSID pradėti)
  • Iš naujo paleiskite „Wi -Fi“

Po kelių sekundžių galite patikrinti ryšį naudodami komandą „ShowWifi“. Turite pamatyti IP adresą, kurį vartai gavo iš jūsų DNS serverio. Jei taip yra, laikas eiti toliau

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“

Siųsdami tuščią komandą pamatysite visas palaikomas komandas, kurias vėliau galėsite naudoti, kad atitiktų jūsų reikalavimus. Visos parametrų vertės yra saugomos „Eeprom“ir jas reikia paleisti iš naujo.

Nuimkite konfigūracijos laidą

Skydas dabar veikia kaip vartai

6 veiksmas: atsisiųskite „Arduino“kodo pavyzdį

Atsisiųskite „Arduino“kodo pavyzdį
Atsisiųskite „Arduino“kodo pavyzdį

Pirmiausia atsisiųskite pagrindinį „Arduino“kodą iš „GitHub“

Tada atsisiųskite „Arduino“kodą pagal šios komandos apibrėžimą ir šį nuoseklios nuorodos kodą į savo bibliotekas

Tada atidarykite pagrindinį kodą naudodami naują „Arduino IDE“

Išjunkite skydo jungiklį 1 ir 2, kad atlaisvintumėte „Arduino“nuosekliąją jungtį 0 USB jungčiai

Iš naujo nustatykite skydą

Prijunkite FTDI laidus prie „Mega Serial 2“(TX FTDI prie „RX Mega“ir pan.)

Paleiskite naują „Arduino IDE“(arba TTY įrankį), prijunkite „FTDI Usb“ir pradėkite stebėti nuosekliąją nuorodą

Įkelkite „Arduino“kodą į „Mega“

Įjunkite skydo jungiklį 1 ir 2, kad prijungtumėte „Arduino“nuosekliąją jungtį 0

Iš naujo nustatykite skydą

Turite matyti šį pranešimą „pradėti spausdinti iš USB“monitoriuje

7 žingsnis: padarykime serverio pusę

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

Tiesiog paleiskite ją, pažvelkite į „Java“konsolę ir į FTDI monitorių

Pamatysite duomenų mainus tarp serverio ir „Arduino“

8 žingsnis: eiti toliau

Norėdami eiti toliau
Norėdami eiti toliau
Norėdami eiti toliau
Norėdami eiti toliau

Šis „Arduino“kodo pavyzdys yra pagrįstas pagrindine mano namų automatikos infrastruktūros dalimi.

Jei jus domina ši infrastruktūra, praneškite man. Aš paskelbsiu šaltinius.

Jei norite tiesiog naudoti šliuzą, galite supaprastinti „Arduino“kodą.

Sukūrę ir išbandę savo kodą „Arduino Mega“, galite lengvai jį pakeisti „Uno“!

Be to, galite prijungti laidą tarp „Arduino GPIO 7“ir „ESP8266 GPIO 5“, jei norite, kad „Arduino“patikrintų „Wifi“ryšį

Rekomenduojamas: