Sadržaj:

Serijski UDP/IP pristupnik za Arduino na osnovu ESP8266 štita: 8 koraka
Serijski UDP/IP pristupnik za Arduino na osnovu ESP8266 štita: 8 koraka

Video: Serijski UDP/IP pristupnik za Arduino na osnovu ESP8266 štita: 8 koraka

Video: Serijski UDP/IP pristupnik za Arduino na osnovu ESP8266 štita: 8 koraka
Video: Как хакеры взламывают сети. Как узнавать об этом. Как защищаться 2024, Novembar
Anonim
Serijski UDP/IP pristupnik za Arduino na osnovu ESP8266 štita
Serijski UDP/IP pristupnik za Arduino na osnovu ESP8266 štita

Već sam 2016. objavio ovo uputstvo "Kako napraviti vlastiti WiFi pristupnik za povezivanje vašeg Arduina na IP mrežu". Budući da sam napravio neka poboljšanja koda i još uvijek koristim ovo rješenje.

Ipak, sada postoje neki ESP8266 štitovi koji omogućuju potpuno isto bez lemljenja sve dok ne koristite mikro ili nano ploče.

Ova instrukcija će objasniti kako koristiti ove ESP82 štitove kao serijski UDP/IP gateway.

Ovo je dio globalne infrastrukture kućne automatizacije koju možete pogledati ovdje

Više informacija o štitu s ovim uputstvom

Supplies

1 Arduino Mega (najbolje je imati najmanje 1 Mega za razvoj i 1 Uno za fazu rada)

1 Rokoo ESP8266 ESP-12E UART WIFI Convertisseur

1 FTDI 3.3v

2 žice za matičnu ploču

Korak 1: Kako to funkcionira?

Kako to radi ?
Kako to radi ?

Gateway je zasnovan na modulu ESP8266

Ovaj je modul povezan s jedne strane serijskom vezom s druge strane na IP mrežu s Wifi -jem.

Djeluje kao crna kutija. Paketi podataka koji dolaze sa serijske veze šalju se na IP/Udp port i obrnuto.

Samo morate postaviti vlastitu konfiguraciju (IP, WIFI …) kada prvi put uključite Gateway.

Može prenositi sirove ASCII i binarne podatke (nema HTTP, JSON …)

Dizajniran je za povezivanje objekata sa softverom napravljenim od servera koji zahtijeva brz i čest prijenos kratkog paketa podataka.

Korak 2: Koje su glavne funkcije?

Uglavnom je to crna kutija koja pretvara serijske podatke u UDP paket na oba načina.

No, gateway može djelovati i sam tako što šalje interne informacije poslužitelju i prima neke naredbe od poslužitelja.

Arduino može slati i primati poruke prema / sa servera povezanog putem Interneta samo štampanjem / čitanjem serijske veze. Nema potrebe da se Arduino programer zamara IP protokolom.

Povrh toga, pruža GPIO koji Arduino može koristiti za provjeru je li gateway ispravno spojen na WIFI, a gateway može automatski prebaciti između dva različita SSID -a u slučaju kvara

Gateway ima 2 različita načina rada koji se biraju postavljanjem GPIO -a

Postavljanje GPIO -a na uzemljenje i pristupnik ulazi u konfiguracijski način.

Oslobađanjem GPIO -a i Gateway ulazi u način rada gateway -a.

Povrh toga, UDP/IP konfiguracija mrežnog prolaza može se daljinski mijenjati

Korak 3: Izrada materijala

Izrada materijala
Izrada materijala

Vrlo malo stvari je potrebno

1 ESP8266 Shield - Pronašao sam ovaj UNO R3 ESP8266 serijski modul za proširenje WiFi Shield -a za manje od 9 €

1 UNO koji je meta Arduino meta

1 Mega koja je arduino razvojni alat (možete i bez toga, ali otklanjanje grešaka je prilično teško)

1 FTDI 3.3/5v za razvoj

Neke žice

Korak 4: Preuzmite kôd pristupnika

Preuzmite Gateway Code
Preuzmite Gateway Code

Tokom ovog koraka Arduino se koristi samo za napajanje (sa USB -om ili drugim izvorom napajanja) na ESP8266 štitu

Spojite ESP8266 GPIO4 na masu (za ulazak u konfiguracijski način)

Pazite da postavite FTDI na 3,3 V prema zahtjevu štita

Spojite FTDI na štit (RX na TX)

Postavite prekidač štita na 1: isključeno 2: isključeno 3: uključeno 4: uključeno

Priključite USB stranu FTDI -a na računar

Resetirajte štit pomoću tipke ESP-RST

Preuzmite Gateway kod na GitHubu

Otvorite Arduino IDE

  • Odaberite port FTDI monitora
  • Otvorite IDE serijski monitor - Postavite brzinu na 38400
  • Odaberite opću ploču modula ES8266
  • Nadogradite firmver štita pomoću koda pristupnika

Prekidač 3: isključeno 4: isključeno

Otvorite IDE Serial Monitor

Resetirajte štit pomoću tipke ESP-RST

Morate vidjeti poruke na monitoru koje počinju sa "EEPROM inicijalizacija" "Inicijalizacija je završena" ….

Vrijeme je za konfiguraciju

Korak 5: Uradimo konfiguraciju mrežnog prolaza

Prilikom prvog preuzimanja koda pristupnika, ESP8266 Eeprom će se inicijalizirati sa zadanim vrijednostima. Vidjet ćete ovu vrstu poruka "set parameter: x size: yy"

Ove vrijednosti možete pronaći unutar definicije koda paramValue. Naravno, možete promijeniti ove zadane vrijednosti prije preuzimanja koda, ali svoju konfiguraciju možete postaviti i naredbom kasnije. Ovo je bolje ako planirate imati višestruki pristupnik i zadržati samo jednu verziju koda.

Koristite serijski port monitora za slanje naredbe (postavljeno na NL i CR).

Kako SSID trenutno nije definiran, pričekajte "Nije moguće povezati se s vašom drugom sekundom pokušajte ponovo: 5"

Tada će automatski započeti skeniranje WIFI -ja

Vrijeme je da svoje SSID -ove postavite sljedećim naredbama:

  • SSID1 = vaš izbor1
  • PSW1 = vašpsw1
  • SSID2 = vaš izbor2
  • PSW2 = vašpsw2
  • SSID = 1 (za odabir SSID -a za početak)
  • RestartWifi

Nakon nekoliko sekundi možete provjeriti vezu naredbom "ShowWifi". Morate vidjeti IP adresu koju je gateway dobio od vašeg DNS servera. Ako je to slučaj, vrijeme je da krenete dalje

Vrijeme je da definirate adresu svog IP servera unošenjem 4 podadrese (server koji će pokretati Java testni kod). Na primjer:

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

Slanjem prazne naredbe vidjet ćete sve podržane naredbe koje kasnije možete koristiti za prilagođavanje vašim zahtjevima. Sve vrijednosti parametara pohranjene su u Eepromu i potrebno je ponovno pokretanje kako bi se uzelo u obzir.

Uklonite žicu za konfiguraciju

Štit sada radi kao kapija

Korak 6: Preuzmite Primjer Arduino koda

Preuzmite Primjer Arduino koda
Preuzmite Primjer Arduino koda

Prvo preuzmite glavni Arduino kod na GitHubu

Zatim preuzmite Arduino kod ove definicije naredbi i ovaj kod serijske veze u svoje biblioteke

Zatim otvorite glavni kôd s novim Arduino IDE -om

Isključite štitnike 1 i 2 kako biste oslobodili Arduino serijsku vezu 0 za USB vezu

Ponovo postavite štit

Spojite FTDI žice na Mega Serial 2 (TX FTDI na RX Mega i tako dalje)

Pokrenite novi Arduino IDE (ili TTY alat), povežite FTDI USB i počnite nadzirati serijsku vezu

Otpremite Arduino kod unutar Mega -e

Uključite štitnike 1 i 2 za povezivanje Arduino serijske veze 0

Ponovo postavite štit

Morate vidjeti ovu poruku "pokreni USB ispis" na monitoru

Korak 7: Idemo na serversku stranu

Primjer poslužitelja je Java program koji možete preuzeti ovdje na GitHub -u

Samo ga pokrenite i pogledajte Java konzolu i pogledajte FTDI monitor

Vidjet ćete razmjenu podataka između poslužitelja i Arduina

Korak 8: Idite dalje

Da idemo dalje
Da idemo dalje
Da idemo dalje
Da idemo dalje

Ovaj primjer koda Arduino zasnovan je na okvirnom dijelu moje infrastrukture kućne automatizacije.

Ako ste zainteresirani za ovu infrastrukturu, javite mi. Objaviću izvore.

Ako samo želite koristiti gateway, možete pojednostaviti Arduino kod.

Nakon što ste razvili i testirali svoj kôd na Arduino Mega -i, možete ga jednostavno zamijeniti Uno -om!

Povrh toga, možete spojiti žicu između Arduino GPIO 7 i ESP8266 GPIO 5 ako želite da vaš Arduino provjeri Wifi vezu

Preporučuje se: