Sadržaj:

Kako napraviti vlastiti WIFI pristupnik za povezivanje vašeg Arduina na IP mrežu?: 11 koraka (sa slikama)
Kako napraviti vlastiti WIFI pristupnik za povezivanje vašeg Arduina na IP mrežu?: 11 koraka (sa slikama)

Video: Kako napraviti vlastiti WIFI pristupnik za povezivanje vašeg Arduina na IP mrežu?: 11 koraka (sa slikama)

Video: Kako napraviti vlastiti WIFI pristupnik za povezivanje vašeg Arduina na IP mrežu?: 11 koraka (sa slikama)
Video: Leap Motion SDK 2024, Srpanj
Anonim
Kako napraviti vlastiti WIFI pristupnik za povezivanje vašeg Arduina s IP mrežom?
Kako napraviti vlastiti WIFI pristupnik za povezivanje vašeg Arduina s IP mrežom?

Kao i mnogi ljudi, mislite da je Arduino jako dobro rješenje za kućnu automatizaciju i robotizaciju

No u smislu komunikacije, Arduinos dolazi samo sa serijskim vezama.

Radim na robotu koji mora biti trajno povezan sa poslužiteljem koji koristi kôd umjetne inteligencije. Pokušao sam koristiti RF mrežu kao što sam navikao za domotike, ali ona nije dovoljno učinkovita. Dok se robot kreće, ne mogu koristiti Ethernet Arduino štit. Arduino Wifi Shield su skupi i čini mi se da je stari dizajn.

Trebalo mi je nešto što može razmjenjivati podatke na vrlo jednostavan i učinkovit način sa poslužiteljem.

Zato sam odlučio dizajnirati Gateway temeljen na vrlo jeftinom i energetski učinkovitom mikrokontroleru ESP8266

Ovdje možete pronaći kako izgraditi elektroničku komponentu i preuzeti softver.

Ovaj sam pristupnik koristio za kućnu automatizaciju i za robotiziranje.

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

Napravio sam još jedno uputstvo koje koristi ESP8266 štit i izbjegava lemljenje

Pribor

Napisao sam još jednu pouku na ovu temu

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.

Najlakše je koristiti s Arduino Mega -om koja ima više od jednog UART -a (Arduino Mega na primjer), ali može raditi i s UNO -om.

Korak 2: Koje su glavne funkcije?

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

Ima 3 LED diode koje pokazuju status i promet na Gatewayu.

Pruža GPIO koji Arduino može koristiti za čekanje da se Gateway spoji na WIFI i IP.

Radi u 3 različita načina rada koji su postavljeni prekidačima:

  • Gateway način rada koji je normalni način rada
  • Konfiguracijski način rada za postavljanje parametara
  • Način otklanjanja pogrešaka koji je za način uklanjanja pogrešaka

Većina parametara može se izmijeniti prema vašim potrebama.

Korak 3: Izrada materijala

Izrada materijala
Izrada materijala

Na vrhu vašeg Arduina trebat će vam

  • 1 x modul ESP8266-Biram MOD-WIFI-ESP8266-DEV iz Olimexa koji košta oko 5 eura i prilično je jednostavan za korištenje.
  • 1 x 5v izvor napajanja
  • 1 x regulator snage 3.3v - koristim LM1086
  • 1 x 100 mikrofarad kondenzator
  • 1 x APL modul ULN2803 (može se zamijeniti 3 x tranzistora)
  • 8 x otpornika (3 x 1K, 1 x 2K, 1 x 2,7k, 1x 3,3K, 1x 27K, 1x 33k)
  • 3 x LED (crvena, zelena, plava)
  • 1 x PCB za matičnu ploču
  • neke žice i konektore

Trebat će vam samo tijekom koraka izgradnje

  • 1 x FTDI 3.3v za konfiguraciju
  • Lemilo i lim

Prije lemljenja važno je postaviti sve komponente na ploču i provjeriti je li sve u redu.

Korak 4: Počnimo s elektronikom na pločici

Počnimo s elektronikom na pločici!
Počnimo s elektronikom na pločici!

Elektronički izgled dostupan je u Fritzing formatu

Ovdje možete preuzeti 1. korak:

github.com/cuillerj/Esp8266IPSerialGateway/blob/master/GatewayElectronicStep1.fzz

Učinite samo shemu pazeći na napon.

Upamtite da ESP8266 ne podržava napon veći od 3,3 V. FTDI mora biti postavljen na 3,3 V.

Korak 5: Idemo na softver

Idemo na softver!
Idemo na softver!

Počnimo sa strane Gatewaya

Kod sam napisao s Arduino IDE -om. Dakle, trebate da ESP8266 bude poznat kao ploča od IDE -a. Odaberite odgovarajuću ploču s izbornikom Alati / ploče.

Ako na popisu ne vidite nijedan ESP266, to znači da ćete možda morati instalirati ESP8266 Arduino Addon (postupak možete pronaći ovdje).

Sav potreban kod dostupan je na GitHubu. Vrijeme je za preuzimanje!

Glavni kôd Gatewaya je tu:

Povrh standardnog, Arduino i ESP8266 uključuju glavni kôd koji treba ova 2 uključuje: LookFoString koji se koristi za manipulaciju nizovima i koji je tu:

ManageParamEeprom koji se koristi za čitanje i pohranu parametara u Eepromu postoji:

Nakon što nabavite sav kôd, vrijeme je za učitavanje u ESP8266. Prvo spojite FTDI na USB priključak vašeg računala.

Predlažem da prije pokušaja učitavanja provjerite vezu.

  • Postavite Arduino serijski monitor na novi USB priključak.
  • Postavite brzinu na 115200 za oba cr nl (zadana brzina za Olimex)
  • Uključite matičnu ploču (ESP8266 dolazi sa softverom koji se bavi AT naredbama)
  • Pošaljite "AT" serijskim alatom.
  • Zauzvrat morate dobiti "OK".

Ako ne provjerite svoju vezu i pogledajte specifikacije ESP8266.

Ako ste dobili "OK", spremni ste za učitavanje koda

  • Isključite matičnu ploču, pričekajte nekoliko sekundi,
  • pritisnite crni mikroprekidač ESP8266. Normalno je da na serijski monitor unesete nešto smeća.
  • Pritisnite IDE za prijenos kao za Arduino.
  • Nakon dovršetka prijenosa postavite serijsku brzinu na 38400.

Vidjet ćete nešto kao na slici.

Čestitamo, uspješno ste učitali kôd!

Korak 6: Izvršimo konfiguraciju

Učinimo konfiguraciju!
Učinimo konfiguraciju!

ConfigGPIO mora biti postavljen na 1 za ulazak u način konfiguracije

Prvo skenirajte WIFI unošenjem naredbe: ScanWifi. Vidjet ćete popis otkrivene mreže.

  • Zatim postavite svoj SSID unosom "SSID1 = vaša mreža"
  • Zatim postavite lozinku tako što ćete unijeti "PSW1 = vaša lozinka"
  • Zatim unesite "SSID = 1" da biste definirali trenutnu mrežu
  • Unesite "Ponovo pokreni" da biste spojili pristupnik na svoj WIFI.
  • Možete provjeriti imate li IP unošenjem "ShowWifi".
  • Plava LED dioda će svijetliti, a crvena će treptati.

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"

Posljednji potreban korak je postavljanje porta za slušanje UDP poslužitelja unosom "listenPort = xxxx".

Unesite "ShowEeprom" da biste provjerili što ste upravo spremili u Eeprom

Sada priključite GPIO2 na masu kako biste napustili način konfiguracije

Vaš Gateway je spreman za rad

U dokumentaciji možete pronaći još neke naredbe.

Korak 7: Učinimo Arduino stranu

Učinimo Arduino stranu!
Učinimo Arduino stranu!
Učinimo Arduino stranu!
Učinimo Arduino stranu!

Prvo povežite Arduino

Ako imate Mega, najlakše ćete započeti. Ipak, možete koristiti Uno.

Za provjeru svog rada najbolje je upotrijebiti primjer.

Možete ga preuzeti tamo:

Uključuje kôd SerialNetwork koji se nalazi ovdje:

Samo učitajte kôd u svoj Arduino.

Zelena LED lampica treperi svaki put kada Arduino pošalje podatke.

Korak 8: Učinimo na strani poslužitelja

Učinimo na strani poslužitelja!
Učinimo na strani poslužitelja!
Učinimo na strani poslužitelja!
Učinimo na strani poslužitelja!

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

Samo ga pokreni

Pogledajte Java konzolu.

Pogledajte Arduino monitor.

Arduino šalje 2 različita paketa.

  • Prvi sadrži status digitalnih pinova od 2 do 6.
  • Druga sadrži 2 slučajne vrijednosti, razinu napona A0 u mV i inkrementalni broj.

Java program

  • ispisati primljene podatke u heksadecimalnom formatu
  • odgovoriti na prvu vrstu podataka sa slučajnom vrijednošću uključivanja/isključivanja za postavljanje uključivanja/isključivanja Arduino LED diode
  • odgovor na drugu vrstu podataka s primljenim brojem i slučajnom vrijednošću.

Korak 9: Vrijeme je za lemljenje

Vrijeme je za lemljenje!
Vrijeme je za lemljenje!
Vrijeme je za lemljenje!
Vrijeme je za lemljenje!
Vrijeme je za lemljenje!
Vrijeme je za lemljenje!

Radi na ploči!

Vrijeme je da ga učinite robusnijim lemljenjem dijelova na PCB

Povrh svega što ste učinili s matičnom pločom, morate dodati 3 priključka.

  • C1 1 x pin one koji će se koristiti za ulazak u način rada za praćenje mreže.
  • C2 3 x pinovi koji će se koristiti za prebacivanje između načina rada i konfiguracije.
  • C3 6 x pinovi koji će se koristiti za povezivanje Gatewaya na Arduino ili FTDI.

C1 spojen na GPIO2 mora se ručno uzemljiti ako želite aktivirati mrežne tragove.

C2 spojen na GPIO 4 može se postaviti u 2 različita položaja. Onaj koji je postavljen na zemlju za normalni način rada i jedan postavljen na 3,3 V za ulazak u konfiguracijski način.

Postavite sve komponente na PCB -u prema dijagramu, a zatim počnite lemiti kako biste dobili konačni proizvod!

Korak 10: Napravimo posljednji test

Image
Image

Pokrenite Java testni program.

Spojite Arduino.

Napajanje na Gatewayu.

I pogledajte Java konzolu, Arduino monitor, Arduino LED i Gateway LED diode.

Korak 11: Ovaj dizajn možete prilagoditi vlastitim zahtjevima

Što se tiče hardvera

  • Ako odaberete neki drugi ESP8266, morat ćete se prilagoditi specifikacijama.
  • Ako odaberete drugi regulator od 3,3 V, on mora isporučiti više od 500 mA i morat ćete prilagoditi kondenzator.
  • LED otpornike možete izmijeniti kako biste prilagodili svjetlinu.
  • Možete potisnuti sve LED diode, ali preporučujem da barem crvena ostane uključena.
  • ULN2803 možete zamijeniti s 3 tranzistora (ili manje ako odaberete da ne zadržite 3 LED diode).
  • Jesam testirao, ali mora raditi s 3.3V Arduino pločama. Samo povežite Tx Rx na konektor od 3,3 V.

Što se tiče konfiguracije

  • Možete pohraniti 2 različita SSID -a i preklopiti
  • Možete promijeniti GPIO koji se koristi

Što se tiče softvera

Preporučeni: