Talaan ng mga Nilalaman:

Paano Gumawa ng Iyong Sariling WIFI Gateway upang Ikonekta ang Iyong Arduino sa IP Network?: 11 Mga Hakbang (na may Mga Larawan)
Paano Gumawa ng Iyong Sariling WIFI Gateway upang Ikonekta ang Iyong Arduino sa IP Network?: 11 Mga Hakbang (na may Mga Larawan)

Video: Paano Gumawa ng Iyong Sariling WIFI Gateway upang Ikonekta ang Iyong Arduino sa IP Network?: 11 Mga Hakbang (na may Mga Larawan)

Video: Paano Gumawa ng Iyong Sariling WIFI Gateway upang Ikonekta ang Iyong Arduino sa IP Network?: 11 Mga Hakbang (na may Mga Larawan)
Video: CS50 2014 – 7-я неделя 2024, Nobyembre
Anonim
Paano Gumawa ng Iyong Sariling WIFI Gateway upang Ikonekta ang Iyong Arduino sa IP Network?
Paano Gumawa ng Iyong Sariling WIFI Gateway upang Ikonekta ang Iyong Arduino sa IP Network?

Tulad ng maraming mga tao sa tingin mo Arduino ay isang napakahusay na solusyon upang gawin ang automation sa bahay at robotic

Ngunit sa term ng komunikasyon ang Arduinos ay may serial link lamang.

Nagtatrabaho ako sa isang robot na kailangang permanenteng konektado sa isang server na nagpapatakbo ng artipisyal na code ng katalinuhan. Sinubukan kong gamitin ang RF network tulad ng ginagamit kong gawin para sa domotic ngunit hindi ito sapat na mahusay. Habang gumagalaw ang robot ay hindi ko magagamit ang Ethernet Arduino Shield. Ang Arduino Wifi Shield ay mahal at para sa akin ay luma na ang disenyo.

Kailangan ko ng isang bagay na maaaring makipagpalitan ng data sa isang napaka-simple at mahusay na paraan sa isang server.

Iyon ang dahilan kung bakit napagpasyahan kong magdisenyo ng isang Gateway batay sa napakamura at mahusay na kapangyarihan na ESP8266 microcontroller

Mahahanap mo rito kung paano bumuo ng elektronikong sangkap at mag-download ng software.

Ginamit ko ang gateway na ito para sa Home automation at para sa Robotic.

Tumatagal ito ng bahagi ng isang pandaigdigang imprastraktura ng automation ng bahay na maaari kang tumingin dito

Gumawa ako ng isa pang itinuturo na gumagamit ng isang kalasag na ESP8266 at maiwasan ang paghihinang

Mga gamit

Sumulat ako ng iba pang itinuturo sa paksang ito

Hakbang 1: Paano Ito Gumagana?

Paano Ito Gumagana?
Paano Ito Gumagana?

Ang Gateway ay batay sa isang module na ESP8266

Ang module na ito ay konektado mula sa isang gilid na may serial link mula sa kabilang panig sa IP network gamit ang Wifi.

Gumaganap ito bilang isang itim na kahon. Ang mga packet ng data na nagmumula sa serial link ay ipinapadala sa isang IP / Udp port at iba pa.

Kailangan mo lamang itakda ang iyong sariling pagsasaayos (IP, WIFI…) sa sandaling sa unang pagkakataon ay gagana ka sa Gateway.

Maaari nitong ilipat ang alinman sa hilaw na ASCII at binary data (walang HTTP, JSON…)

Dinisenyo ito upang ikonekta ang mga bagay na may mga softwares na gawa sa bahay ng server na nangangailangan ng mabilis at madalas na paglipat ng maikling packet ng data.

Ito ay pinakamadaling gamitin sa Arduino Mega na mayroong higit sa isang UART (halimbawa ng Arduino Mega) ngunit maaari ding tumakbo sa isang UNO.

Hakbang 2: Ano ang Mga Pangunahing Pag-andar?

Kadalasan ito ay isang itim na kahon na nagko-convert at nagpapadala ng serial data sa UDP packet sa parehong paraan.

Mayroon itong 3 LED na nagpapahiwatig ng katayuan at trapiko ng Gateway.

Nagbibigay ito ng isang GPIO na maaaring magamit ng Arduino upang maghintay para sa Gateway na maging konektado sa WIFI at IP.

Nagpapatakbo ito sa 3 magkakaibang mga mode na itinakda sa mga switch:

  • Gateway mode na normal mode
  • Ginamit ang configure mode upang maitakda ang mga parameter
  • Debug mode na para sa debuging mode

Karamihan sa mga parameter ay maaaring mabago upang magkasya sa iyong mga pangangailangan.

Hakbang 3: Bumuo ng Materyal

Pagbuo ng Materyal
Pagbuo ng Materyal

Sa tuktok ng iyong Arduino kakailanganin mo

  • 1 x ESP8266 module - Pinipili ko ang MOD-WIFI-ESP8266-DEV mula sa Olimex na nagkakahalaga ng humigit-kumulang 5 euro na medyo madaling gamitin.
  • 1 x 5v mapagkukunan ng kuryente
  • 1 x 3.3v power regulator - Gumagamit ako ng LM1086
  • 1 x 100 microfarad capacitor
  • 1 x ULN2803 APG module (maaaring mapalitan ng 3 x transistors)
  • 8 x resistors (3 x 1K, 1 x 2K, 1 x 2.7k, 1x 3.3K, 1x 27K, 1x 33k)
  • 3 x LED (pula, berde, asul)
  • 1 x Breadboard PCB
  • ilang mga wire at konektor

Sa mga hakbang ng pagbuo lamang, kakailanganin mo

  • 1 x FTDI 3.3v para sa pagsasaayos
  • Panghinang at bakal

Bago ang paghihinang mahalaga na i-setup ang lahat ng mga sangkap sa breadboard at suriin ang lahat ay ok.

Hakbang 4: Magsimula Tayo Sa Elektronikong nasa Breadboard

Magsimula Tayo Sa Elektronikong nasa Breadboard!
Magsimula Tayo Sa Elektronikong nasa Breadboard!

Ang elektronikong layout ay magagamit sa Fritzing format

Maaari mong i-download ito dito sa hakbang 1:

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

Gawin lamang bilang iskema sa pamamagitan ng pag-aalaga sa boltahe.

Tandaan na ang ESP8266 ay hindi sumusuporta sa boltahe na mas mataas kaysa sa 3.3v. Ang FTDI ay dapat itakda sa 3.3v.

Hakbang 5: Pumunta tayo sa Software

Pumunta tayo sa Software!
Pumunta tayo sa Software!

Magsimula tayo sa panig ng Gateway

Sinulat ko ang code sa Arduino IDE. Kaya kailangan mo ng ESP8266 upang makilala bilang board ng IDE. Piliin ang naaangkop na board na may menu ng Mga tool / board.

Kung hindi mo makita ang anumang ESP266 sa listahan na nangangahulugan na maaaring kailanganin mong i-install ang ESP8266 Arduino Addon (maaari mong makita dito ang pamamaraan).

Ang lahat ng code na kailangan mo ay magagamit sa GitHub. Panahon na upang i-download ito!

Ang pangunahing code ng Gateway ay naroroon:

Sa tuktok ng karaniwang Arduino at ESP8266 ay nagsasama ng pangunahing code na kailangan ng 2 kasama ang: LookFoString na ginagamit upang manipulahin ang mga string at naroroon:

ManageParamEeprom na ginagamit upang basahin at mag-imbak ng mga parameter sa Eeprom ans ay naroroon:

Sa sandaling makuha mo ang lahat ng code oras na upang i-upload ito sa ESP8266. Una ikonekta ang FTDI sa isang USB port ng iyong computer.

Iminumungkahi kong suriin mo ang koneksyon bago subukang mag-upload.

  • Itakda ang Arduino serial monitor sa bagong USB port.
  • Itakda ang bilis sa 115200 parehong cr nl (bilis ng pag-defaut para sa Olimex)
  • Lakas sa breadboard (Ang ESP8266 ay may kasamang software na nakikipag-usap sa mga utos ng AT)
  • Ipadala ang "AT" gamit ang serial tool.
  • Dapat kang makakuha ng "OK" bilang kapalit.

Kung hindi suriin ang iyong koneksyon at tingnan ang iyong mga pagtutukoy sa ESP8266.

Kung nakakuha ka ng "OK" handa ka nang mag-upload ng code

  • Patayin ang breadboard, maghintay ng ilang segundo,
  • pindutin ang itim na micro-swith ng ESP8266. Normal na makakuha ng ilang basura sa serial monitor.
  • Pindutin ang upload IDE para sa isang Arduino.
  • Matapos makumpleto ang pag-upload itakda ang bilis ng serial sa 38400.

May makikita ka tulad ng nasa larawan.

Binabati kita ng matagumpay na na-upload ang code!

Hakbang 6: Gawin Natin ang Pag-configure

Gawin Natin ang Pag-configure!
Gawin Natin ang Pag-configure!

Ang configGPIO ay dapat itakda sa 1 para sa pagpasok sa configuation mode

Sa una i-scan ang WIFI sa pamamagitan ng pagpasok ng utos: ScanWifi. Makakakita ka ng isang listahan ng napansin na network.

  • Pagkatapos itakda ang iyong SSID sa pamamagitan ng pagpasok ng "SSID1 = yournetwork"
  • Pagkatapos itakda ang iyong password sa pamamagitan ng ipasok ang "PSW1 = yourpassword"
  • Pagkatapos ay ipasok ang "SSID = 1" upang tukuyin ang kasalukuyang network
  • Ipasok ang "Restart" upang ikonekta ang Gateway sa iyong WIFI.
  • Maaari mong i-verify na nakakuha ka ng isang IP sa pamamagitan ng pagpasok ng "ShowWifi".
  • Ang asul na LED ay bukas at ang pulang LED blinking.

Panahon na upang tukuyin ang iyong IP server address sa pamamagitan ng pagpasok ng 4 na mga subaddresses (server na tatakbo ang Java test code). Halimbawa:

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

Ang huling kinakailangang hakbang ay upang itakda ang UDP server makinig port sa pamamagitan ng pagpasok ng "listenPort = xxxx".

Ipasok ang "ShowEeprom" upang suriin kung ano ang naimbak mo lamang sa Eeprom

Ngayon plug ang GPIO2 sa lupa upang iwanan ang mode ng pagsasaayos

Handa nang gumana ang iyong Gateway

Mayroong ilang mga utos na maaari mong makita sa dokumentasyon.

Hakbang 7: Gawin Natin ang Arduino Side

Gawin Natin ang Arduino Side!
Gawin Natin ang Arduino Side!
Gawin Natin ang Arduino Side!
Gawin Natin ang Arduino Side!

Una kumonekta sa Arduino

Kung mayroon kang isang Mega ito ay magiging pinakamadaling magsimula sa. Gayunpaman maaari kang gumamit ng isang Uno.

Upang suriin ang iyong trabaho ang pinakamahusay na gamitin ang halimbawa.

Maaari mong i-download ito doon:

May kasama itong code na SerialNetwork na narito:

I-upload lamang ang code sa loob ng iyong Arduino.

Ang berdeng LED ay kumikislap sa tuwing magpapadala ng data ang Arduino.

Hakbang 8: Gawin Natin ang Server Side

Gawin Natin ang Server Side!
Gawin Natin ang Server Side!
Gawin Natin ang Server Side!
Gawin Natin ang Server Side!

Ang halimbawa ng server ay isang programa sa Java na maaari mong i-download dito:

Patakbuhin lang ito

Tingnan ang Java console.

Tingnan ang Arduino monitor.

Nagpadala ang Arduino ng 2 magkakaibang mga packet.

  • Naglalaman ang una ng katayuang digital na 2 hanggang 6.
  • Ang pangalawa ay naglalaman ng 2 mga random na halaga, ang antas ng boltahe ng A0 sa mV at incremental count.

Ang programa ng Java

  • i-print ang natanggap na data sa hexadecimal format
  • tumugon sa unang uri ng data na may isang random na on / off na halaga upang maitakda sa / off ang Arduino LED
  • tumugon sa pangalawang uri ng data na may natanggap na bilang at isang random na halaga.

Hakbang 9: Panahon na upang Gumawa ng Ilang Paghinang

Panahon na upang Gumawa ng Ilang Paghinang!
Panahon na upang Gumawa ng Ilang Paghinang!
Panahon na upang Gumawa ng Ilang Paghinang!
Panahon na upang Gumawa ng Ilang Paghinang!
Panahon na upang Gumawa ng Ilang Paghinang!
Panahon na upang Gumawa ng Ilang Paghinang!

Gumagana ito sa breadboard!

Panahon na upang gawing mas matatag ito sa pamamagitan ng mga bahagi ng paghihinang sa isang PCB

Sa tuktok ng iyong ginawa sa breadboard, dapat kang magdagdag ng 3 mga konektor.

  • C1 1 x i-pin ang isa na gagamitin para sa pagpasok sa mode ng pagsubaybay sa network.
  • C2 3 x pin ang isa na gagamitin upang lumipat sa pagitan ng pagtakbo at pagsasaayos mode.
  • C3 6 x pin ang isa na magagamit upang ikonekta ang Gateway alinman sa isang Arduino o isang FTDI.

Ang C1 na konektado sa GPIO2 ay dapat na manu-manong na-grounded kung nais mong buhayin ang mga bakas sa network.

Ang C2 na konektado sa GPIO 4 ay maaaring itakda sa 2 magkakaibang posisyon. Isa na nakatakda sa ground para sa normal na running mode at isang set sa 3.3v para sa pagpasok sa configure mode.

Itakda ang lahat ng mga bahagi sa PCB alinsunod sa diagram at pagkatapos ay magsimulang maghinang upang makuha ang pangwakas na produkto!

Hakbang 10: Gawin Natin ang Pangwakas na Pagsubok

Image
Image

Simulan ang Java test program.

Ikonekta ang Arduino.

Lakas sa Gateway.

At tingnan ang Java console, ang Arduino monitor, ang Arduino LED at ang mga Gateway LEDs.

Hakbang 11: Maaari mong Iangkop ang Disenyong Ito sa Iyong Sariling Mga Kinakailangan

Tungkol sa hardware

  • Kung pumili ka ng ilang iba pang ESP8266 kakailanganin mong ayusin ang mga pagtutukoy.
  • Kung pipiliin mo ang ibang 3.3v regulator dapat itong maghatid ng higit sa 500mA at kailangan mong iakma ang capacitor.
  • Maaari mong baguhin ang LED resistors upang ayusin ang ningning.
  • Maaari mong sugpuin ang lahat ng LED ngunit inirerekumenda kong panatilihing hindi bababa ang pula.
  • Maaari mong palitan ang ULN2803 ng 3 transistors (o mas kaunti sa pinili mo na huwag panatilihin ang 3 LED).
  • Sinubukan ko ngunit doon dapat itong gumana sa mga board ng 3.3v Arduino. Ikonekta lamang ang Tx Rx sa konektor na 3.3v.

Tungkol sa pagsasaayos

  • Maaari kang mag-imbak ng 2 magkakaibang SSID at switch
  • Maaari mong baguhin ang ginamit na GPIO

Tungkol sa software

Inirerekumendang: