Cuprins:

Gateway UDP / IP serial pentru Arduino Bazat pe ESP8266 Shield: 8 pași
Gateway UDP / IP serial pentru Arduino Bazat pe ESP8266 Shield: 8 pași

Video: Gateway UDP / IP serial pentru Arduino Bazat pe ESP8266 Shield: 8 pași

Video: Gateway UDP / IP serial pentru Arduino Bazat pe ESP8266 Shield: 8 pași
Video: Создаем мост UART - Ethernet. Идеальное решение для удаленной отладки и обмена данными. 2024, Noiembrie
Anonim
Gateway UDP / IP serial pentru Arduino Bazat pe ESP8266 Shield
Gateway UDP / IP serial pentru Arduino Bazat pe ESP8266 Shield

Am publicat deja în 2016 acest instructabil „Cum să-ți faci propriul gateway Wifi pentru a-ți conecta Arduino la rețeaua IP”. De când am făcut unele îmbunătățiri de cod și încă folosesc această soluție.

Cu toate acestea, există acum niște scuturi ESP8266 care permit să procedeze la fel fără lipire, atâta timp cât nu utilizați plăci Micro sau Nano.

Acest instructable va explica cum să utilizați aceste scuturi ESP82 ca gateway serial UDP / IP.

Aceasta face parte dintr-o infrastructură globală de automatizare a locuinței, pe care o puteți arunca aici

Mai multe informații despre scut cu acest instructable

Provizii

1 Arduino Mega (cel mai bun este să ai cel puțin 1 Mega pentru dezvoltare și 1 Uno pentru faza de rulare)

1 Rokoo ESP8266 ESP-12E UART WIFI Convertisseur

1 FTDI 3.3v

2 fire de panou

Pasul 1: Cum funcționează?

Cum functioneazã ?
Cum functioneazã ?

Gateway-ul se bazează pe un modul ESP8266

Acest modul este conectat dintr-o parte cu legătura serială din cealaltă parte la rețeaua IP cu Wifi.

Acționează ca o cutie neagră. Pachetele de date provenind de la link-ul serial sunt trimise către un port IP / Udp și vizibil și invers.

Trebuie doar să vă configurați propria configurație (IP, WIFI …) odată ce veți porni prima dată Gateway-ul.

Poate transfera date ASCII brute și date binare (fără HTTP, JSON …)

Acesta este conceput pentru a conecta obiecte cu software-uri create de server, care necesită transferuri rapide și frecvente de pachete scurte de date.

Pasul 2: Care sunt principalele funcții?

În cea mai mare parte este o cutie neagră care convertește datele seriale în pachetul UDP în ambele moduri.

Dar gateway-ul poate acționa și el prin trimiterea de informații interne către server și primirea unor comenzi de la server.

Arduino poate trimite și primi mesaje către / de la un server conectat prin Internet doar prin imprimarea / citirea unui link serial. Nu este nevoie ca dezvoltatorul Arduino să se deranjeze asupra protocolului IP.

În plus, acesta oferă un GPIO care poate fi utilizat de Arduino pentru a verifica dacă Gateway-ul este conectat corect la WIFI și Gateway-ul poate fi automat între 2 SSID diferite în caz de eșec.

Gateway-ul are 2 moduri de rulare diferite care sunt selectate prin setarea unui GPIO

Setarea GPIO la sol și Gateway-ul intră în modul de configurare.

Setarea GPIO liberă și Gateway-ul intră în modul de rulare a gateway-ului.

În plus, configurația Gateway UDP / IP poate fi modificată de la distanță

Pasul 3: Construirea materialului

Construirea materialului
Construirea materialului

Sunt necesare foarte puține lucruri

1 ESP8266 Shield - Am găsit acest modul de placă extinsă Shield Extend WiFi UNO R3 ESP8266 la mai puțin de 9 €

1 UNO care este ținta țintă Arduino

1 Mega care este instrumentul de dezvoltare arduino (puteți face fără, dar este destul de dificil de depanat)

1 FTDI 3.3 / 5v pentru dezvoltare

Unele fire

Pasul 4: Descărcați Codul Gateway

Descărcați Codul Gateway
Descărcați Codul Gateway

În acest pas, Arduino este folosit doar pentru a alimenta (cu USB sau o altă sursă de alimentare) pe ecranul ESP8266

Conectați ESP8266 GPIO4 la masă (pentru a intra în modul de configurare)

Aveți grijă să setați FTDI la 3.3v, așa cum este cerut de scut

Conectați FTDI la ecran (RX la TX)

Setați comutatorul scutului la 1: oprit 2: oprit 3: pornit 4: pornit

Conectați partea USB a FTDI la computer

Resetați scutul cu butonul ESP-RST

Descărcați codul Gateway acolo pe GitHub

Deschideți Arduino IDE

  • Selectați portul monitorului FTDI
  • Deschideți IDE Serial Monitor - Setați viteza la 38400
  • Selectați placa modulă generică ES8266
  • Actualizați firmware-ul scutului cu codul de gateway

Setați comutatorul 3: oprit 4: oprit

Deschideți IDE Serial Monitor

Resetați scutul cu butonul ESP-RST

Trebuie să vedeți mesaje pe monitor începând cu „Inițializare EEPROM” „Inițializare finalizată”….

Este timpul să faceți configurația

Pasul 5: Să facem configurația gateway-ului

La descărcarea codului gateway-ului pentru prima dată, ESP8266 Eeprom va fi inițializat cu valorile implicite. Veți vedea acest tip de mesaje „setare parametru: x dimensiune: aa”

Puteți găsi aceste valori în definiția codului paramValue. Desigur, puteți schimba aceste valori implicite înainte de a descărca codul, dar puteți configura și configurația prin comandă mai târziu. Acest lucru este mai bun dacă intenționați să aveți un gateway multipe și să păstrați o singură versiune de cod.

Utilizați portul serial al monitorului pentru a trimite comanda (setată la NL și CR).

Deoarece SSID nu este definit în prezent, așteptați „Nu s-a putut conecta la reîncercarea dvs. secundară: 5”

Apoi va începe automat o scanare a WIFI

Este timpul să vă setați SSID-urile cu următoarele comenzi:

  • SSID1 = alegerea ta1
  • PSW1 = yourpsw1
  • SSID2 = alegerea ta2
  • PSW2 = yourpsw2
  • SSID = 1 (pentru a alege cu ce SSID începe)
  • Reporniți Wifi

După câteva secunde puteți verifica conexiunea cu comanda „ShowWifi”. Trebuie să vedeți adresa IP pe care gateway-ul a primit-o de la serverul dvs. DNS. Dacă este cazul, este timpul să mergem mai departe

Este timpul să vă definiți adresa serverului IP prin introducerea celor 4 subadrese (server care va rula codul de test Java). De exemplu:

  • „IP1 = 192”
  • „IP2 = 168”
  • „IP3 = 1”
  • „IP4 = 10”

Trimitând o comandă goală, veți vedea toate comenzile acceptate pe care le puteți utiliza ulterior pentru a se potrivi cerințelor dvs. Toate valorile parametrilor sunt stocate în Eeprom și necesită o repornire pentru a fi luată în considerare.

Scoateți firul de configurare

Scutul rulează acum ca o poartă

Pasul 6: Descărcați Exemplul de cod Arduino

Descărcați Exemplul de cod Arduino
Descărcați Exemplul de cod Arduino

Mai întâi descărcați codul principal Arduino acolo pe GitHub

Apoi descărcați codul Arduino, această definiție a comenzilor și acest cod de legătură serială în bibliotecile dvs.

Apoi deschideți codul principal cu un nou IDE Arduino

Dezactivați comutatorul de scut 1 și 2 pentru a elibera conexiunea serial Arduino 0 pentru conexiunea USB

Resetați scutul

Conectați firele FTDI la Mega Serial 2 (TX FTDI la RX Mega și așa mai departe)

Porniți un nou IDE Arduino (sau un instrument TTY), conectați FTDI Usb și începeți să monitorizați legătura serială

Încărcați codul Arduino în interiorul Mega

Setați comutatorul de scut 1 și 2 pentru a conecta legătura serială 0 Arduino

Resetați scutul

Trebuie să vedeți acest mesaj „începeți imprimarea USB” pe monitor

Pasul 7: Să facem partea serverului

Exemplul de server este un program Java pe care îl puteți descărca aici de pe GitHub

Pur și simplu rulați-o și uitați-vă la consola Java și uitați-vă la monitorul FTDI

Veți vedea schimburi de date între server și Arduino

Pasul 8: Pentru a merge mai departe

A merge mai departe
A merge mai departe
A merge mai departe
A merge mai departe

Acest exemplu de cod Arduino se bazează pe o parte cadru a infrastructurii mele de automatizare a casei.

Dacă sunteți interesat de această infrastructură, anunțați-mă. Voi publica surse.

Dacă doriți doar să utilizați gateway-ul, puteți simplifica codul Arduino.

După ce ați dezvoltat și testat codul pe un Arduino Mega, îl puteți înlocui cu ușurință cu un Uno!

În plus, puteți conecta un fir între Arduino GPIO 7 și ESP8266 GPIO 5 dacă doriți ca Arduino să verifice conexiunea Wifi

Recomandat: