Talaan ng mga Nilalaman:

Serial UDP / IP Gateway para sa Arduino Batay sa ESP8266 Shield: 8 Mga Hakbang
Serial UDP / IP Gateway para sa Arduino Batay sa ESP8266 Shield: 8 Mga Hakbang

Video: Serial UDP / IP Gateway para sa Arduino Batay sa ESP8266 Shield: 8 Mga Hakbang

Video: Serial UDP / IP Gateway para sa Arduino Batay sa ESP8266 Shield: 8 Mga Hakbang
Video: Arduino networking using the Ethernet module for TCP/IP User Datagram Protocol (UDP) 2024, Nobyembre
Anonim
Serial UDP / IP Gateway para sa Arduino Batay sa ESP8266 Shield
Serial UDP / IP Gateway para sa Arduino Batay sa ESP8266 Shield

Nai-publish ko na noong 2016 ang itinuturo na "Paano gumawa ng iyong sariling Wifi gateway upang ikonekta ang iyong Arduino sa IP Network". Dahil nagawa ko ang ilang mga pagpapabuti ng code at ginagamit ko pa rin ang solusyon na ito.

Gayon pa man mayroong ilang mga ESP8266 na kalasag na nagpapahintulot na gawin ang pareho nang walang paghihinang hangga't hindi ka gumagamit ng mga board ng Micro o Nano.

Ang itinuturo na ito ay magpapaliwanag kung paano gamitin ang mga kalasag na ito ng ESP82 bilang serial UDP / IP gateway.

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

Higit pang impormasyon tungkol sa kalasag na may itinuturo na ito

Mga gamit

1 Arduino Mega (ang pinakamahusay na magkaroon ng hindi bababa sa 1 Mega para sa pag-unlad at 1 Uno para sa pagpapatakbo ng yugto)

1 Rokoo ESP8266 ESP-12E UART WIFI Converterisseur

1 FTDI 3.3v

2 wires ng breadboard

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.

Hakbang 2: Ano ang Mga Pangunahing Pag-andar?

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

Ngunit ang gateway ay maaari ring kumilos sa pamamagitan ng kanyang sarili sa pamamagitan ng pagpapadala ng panloob na impormasyon sa server at pagtanggap ng ilang mga utos mula sa server.

Maaaring magpadala at makatanggap ang Arduino ng mga mensahe patungo sa / mula sa isang server na konektado sa Internet sa pamamagitan lamang ng pag-print / pagbabasa ng isang serial link. Hindi na kailangang abala ng developer ng Arduino ang IP protocol.

Sa itaas ng mga ito ay nagbibigay ng isang GPIO na maaaring magamit ng Arduino upang suriin na ang Gateway ay wastong konektado sa WIFI at ang Gateway ay maaaring awtomatikong mag-swith beetwen 2 iba't ibang SSID kung sakaling mabigo

Ang Gateway ay may 2 magkakaibang mga mode na tumatakbo na napili sa pamamagitan ng pagtatakda ng isang GPIO

Ang pagtatakda ng GPIO sa lupa at ang Gateway ay pumapasok sa mode ng pagsasaayos.

Ang pagtatakda ng GPIO libre at ang Gateway ay pumapasok sa gateway running mode.

Sa tuktok ng iyon ang pag-configure ng Gateway UDP / IP ay maaaring mabago nang malayuan

Hakbang 3: Bumuo ng Materyal

Pagbuo ng Materyal
Pagbuo ng Materyal

Napakakaunting mga bagay ang kinakailangan

1 ESP8266 Shield - Natagpuan ko ang UNO R3 ESP8266 Serial WiFi Shield Extend Board Module na mas mababa sa 9 €

1 UNO na ang target na target ng Arduino

1 Mega na ang tool sa pag-unlad ng arduino (maaari mong gawin nang walang ngunit medyo mahirap i-debug)

1 FTDI 3.3 / 5v para sa pag-unlad

Ang ilang mga wires

Hakbang 4: I-download ang Gateway Code

I-download ang Gateway Code
I-download ang Gateway Code

Sa hakbang na ito ang Arduino ay ginagamit lamang upang mag-power (na may USB o ibang mapagkukunan ng kuryente) sa kalasag na ESP8266

Ikonekta ang ESP8266 GPIO4 sa lupa (upang ipasok ang config mode)

Mag-ingat na itakda ang FTDI sa 3.3v tulad ng hinihiling ng kalasag

Ikonekta ang FTDI sa kalasag (RX sa TX)

Itakda ang set switch ng kalasag sa 1: off 2: off 3: sa 4: on

Ikonekta ang bahagi ng USB ng FTDI sa iyong computer

I-reset ang kalasag gamit ang pindutan ng push-ESP-RST

I-download ang Gateway code doon sa GitHub

Buksan ang Arduino IDE

  • Piliin ang port ng monitor ng FTDI
  • Buksan ang IDE Serial Monitor - Itakda ang bilis sa 38400
  • Piliin ang board ng Generic ES8266 module
  • I-upgrade ang firmware ng kalasag gamit ang gateway code

Itakda ang switch 3: off 4: off

Buksan ang IDE Serial Monitor

I-reset ang kalasag gamit ang pindutan ng push-ESP-RST

Dapat mong makita ang mga mensahe sa monitor na nagsisimula sa "EEPROM initialization" "Natapos ang Initialization"….

Oras na upang gawin ang pagsasaayos

Hakbang 5: Gawin Natin ang Pag-configure ng Gateway

Kapag nagda-download ng gateway code sa kauna-unahang pagkakataon, ang ESP8266 Eeprom ay sisimulan ng mga default na halaga. Makikita mo ang ganitong uri ng mga mensahe na "set parameter: x size: yy"

Maaari mong makita ang mga halagang ito sa loob ng code kahulugan ng paramValue. Siyempre maaari mong baguhin ang mga default na halagang ito bago i-download ang code ngunit maaari mo ring itakda ang iyong pagsasaayos sa pamamagitan ng utos sa paglaon. Mas mahusay ito kung balak mong magkaroon ng mga multipe gateway ans na panatilihin lamang ang isang bersyon ng code.

Gamitin ang monitor serial port upang magpadala ng utos (itakda sa NL at CR).

Dahil ang SSID ay hindi natukoy sa kasalukuyan maghintay para sa "Hindi makakonekta sa iyong subukan muli angecondssid: 5"

Pagkatapos ang isang pag-scan ng WIFI ay awtomatikong magsisimula

Panahon na upang itakda ang iyong mga SSID sa mga sumusunod na utos:

  • SSID1 = yourchoice1
  • PSW1 = yourpsw1
  • SSID2 = yourchoice2
  • PSW2 = yourpsw2
  • SSID = 1 (upang mapili kung aling SSID ang magsisimula)
  • I-restart ang WiFi

Pagkatapos ng ilang segundo maaari mong suriin ang koneksyon sa utos na "ShowWifi". Dapat mong makita ang IP address na nakuha ng gateway mula sa iyong DNS server. Kung ito ang kaso oras na upang pumunta sa karagdagang

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"

Sa pamamagitan ng pagpapadala ng isang walang laman na utos makikita mo ang lahat ng mga sinusuportahang utos na maaari mong gamitin sa paglaon upang magkasya sa iyong mga kinakailangan. Ang lahat ng mga halagang parameter ay nakaimbak sa Eeprom at kailangan ng isang pag-reboot upang isaalang-alang.

Alisin ang configure wire

Ang kalasag ay tumatakbo ngayon bilang isang gateway

Hakbang 6: I-download ang Halimbawa ng Arduino Code

I-download ang Halimbawa ng Arduino Code
I-download ang Halimbawa ng Arduino Code

I-download muna ang pangunahing Arduino code doon sa GitHub

Pagkatapos i-download ang Arduino code na ito kahulugan ng utos at ang serial link code na ito sa iyong mga librairies

Pagkatapos buksan ang pangunahing code gamit ang isang bagong Arduino IDE

Itakda ang kalasag Lumipat ng 1 at 2 upang palayain ang Arduino serial link 0 para sa koneksyon sa USB

I-reset ang kalasag

Ikonekta ang mga wire na FTDI sa Mega Serial 2 (TX FTDI sa RX Mega at iba pa)

Magsimula ng isang bagong Arduino IDE (o isang tool na TTY), ikonekta ang FTDI Usb at simulang subaybayan ang serial link

I-upload ang Arduino code sa loob ng Mega

Itakda ang kalasag Lumipat ng 1 at 2 upang ikonekta ang serial link na Arduino 0

I-reset ang kalasag

Dapat mong makita ang mensaheng ito na "simulan ang usb print" sa monitor

Hakbang 7: Gawin Natin ang Side ng Server

Ang halimbawa ng server ay isang programang Java na maaari mong i-download dito sa GitHub

Patakbuhin lamang ito at tingnan ang Java console at tingnan ang FTDI monitor

Makikita mo ang mga palitan ng data sa pagitan ng server at Arduino

Hakbang 8: Upang Magpatuloy

Para mas lumalim
Para mas lumalim
Para mas lumalim
Para mas lumalim

Ang halimbawa ng code ng Arduino na ito ay batay sa isang bahagi ng balangkas ng aking imprastraktura sa aking pag-aautomat sa bahay.

Kung interesado ka sa imprastrakturang ito, ipaalam sa akin. Maglathala ako ng mga mapagkukunan.

Kung nais mo lamang gamitin ang gateway maaari mong gawing simple ang Arduino code.

Matapos ang pagkakaroon ng developp at subukan ang iyong code sa isang Arduino Mega, madali mong mapapalitan ito ng isang Uno!

Sa tuktok ng na maaari mong ikonekta ang isang kawad sa pagitan ng Arduino GPIO 7 at ESP8266 GPIO 5 kung nais mong suriin ng iyong Arduino ang koneksyon sa Wifi

Inirerekumendang: