Serijski UDP/IP pristupnik za Arduino na temelju ESP8266 štita: 8 koraka
Serijski UDP/IP pristupnik za Arduino na temelju ESP8266 štita: 8 koraka
Anonim
Serijski UDP/IP pristupnik za Arduino na temelju ESP8266 štita
Serijski UDP/IP pristupnik za Arduino na temelju 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 Micro ili Nano ploče.

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

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

Više informacija o štitu s ovim uputstvom

Pribor

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 radi ?
Kako radi ?

Gateway se temelji 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 …) jednom kad prvi put uključite Gateway.

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

Dizajniran je za povezivanje objekata s poslužiteljskim softverom koji je napravljen za poslužitelj i koji zahtijeva brz i čest prijenos kratkih 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, pristupnik može djelovati i sam tako što šalje interne podatke poslužitelju i prima neke naredbe od poslužitelja.

Arduino može slati i primati poruke prema / s poslužitelja povezanog putem Interneta samo ispisivanjem / č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 gatewaya.

Povrh toga, UDP/IP konfiguracija pristupnika može se daljinski mijenjati

Korak 3: Izrada materijala

Izrada materijala
Izrada materijala

Vrlo malo stvari je potrebno

1 ESP8266 štit - otkrio sam da ovaj UNO R3 ESP8266 serijski modul proširene ploče za WiFi štit stoji na manje od 9 €

1 UNO koji je meta Arduino meta

1 Mega koja je arduino razvojni alat (možete i bez toga, ali prilično je teško otkloniti pogreške)

1 FTDI 3.3/5v za razvoj

Neke žice

Korak 4: Preuzmite kôd pristupnika

Preuzmite Gateway Code
Preuzmite Gateway Code

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

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

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

Spojite USB stranu FTDI -a na računalo

Resetirajte štit pritiskom na tipku ESP-RST

Preuzmite kod Gatewaya na GitHubu

Otvorite Arduino IDE

  • Odaberite port za monitor FTDI
  • Otvorite IDE Serial Monitor - postavite brzinu na 38400
  • Odaberite opću ploču modula ES8266
  • Nadogradite firmver štita kodom pristupnika

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

Otvorite IDE Serial Monitor

Resetirajte štit pritiskom na tipku ESP-RST

Morate vidjeti poruke na monitoru koje počinju s "EEPROM inicijalizacija" "Inicijalizacija dovršena" ….

Vrijeme je za konfiguraciju

Korak 5: Izvršimo konfiguraciju pristupnika

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.

Za slanje naredbe koristite serijski port monitora (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 se automatski pokrenuti 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)
  • Ponovo pokrenite Wifi

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

Vrijeme je da definirate adresu svog IP poslužitelja unosom 4 podadrese (poslužitelj koji će pokrenuti Java testni kôd). Na primjer:

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

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

Uklonite konfiguracijsku žicu

Štit sada radi kao pristupnik

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 knjižnice

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

Ponovno 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

Prenesite Arduino kod unutar Mega -e

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

Ponovno postavite štit

Morate vidjeti ovu poruku "pokreni USB ispis" na monitoru

Korak 7: Učinimo na strani poslužitelja

Primjer poslužitelja je Java program koji možete preuzeti ovdje na GitHubu

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 temelji se na okvirnom dijelu moje infrastrukture kućne automatizacije.

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

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

Nakon što ste razvili i testirali svoj kod na Arduino Megi, 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