Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 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 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?
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
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
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
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
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