Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
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?
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
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
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
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
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