Cuprins:

Cum să vă creați propriul gateway WIFI pentru a vă conecta Arduino la rețeaua IP?: 11 pași (cu imagini)
Cum să vă creați propriul gateway WIFI pentru a vă conecta Arduino la rețeaua IP?: 11 pași (cu imagini)

Video: Cum să vă creați propriul gateway WIFI pentru a vă conecta Arduino la rețeaua IP?: 11 pași (cu imagini)

Video: Cum să vă creați propriul gateway WIFI pentru a vă conecta Arduino la rețeaua IP?: 11 pași (cu imagini)
Video: CS50 2014 - Week 7 2024, Iulie
Anonim
Cum să vă creați propriul gateway WIFI pentru a vă conecta Arduino la rețeaua IP?
Cum să vă creați propriul gateway WIFI pentru a vă conecta Arduino la rețeaua IP?

Ca atâția oameni, credeți că Arduino este o soluție foarte bună pentru a face automatizarea și robotizarea casei

Dar, în ceea ce privește comunicarea, Arduinos vine doar cu legături seriale.

Lucrez la un robot care trebuie să fie conectat permanent cu un server care rulează cod de inteligență artificială. Am încercat să folosesc rețeaua RF așa cum obișnuiam să fac pentru domotic, dar nu este suficient de eficient. Pe măsură ce robotul se mișcă, nu pot folosi Ethernet Arduino Shield. Arduino Wifi Shield sunt scumpe și mi se pare un design vechi.

Aveam nevoie de ceva care să poată face schimb de date într-un mod foarte simplu și eficient cu un server.

De aceea am decis să proiectez un Gateway bazat pe microcontrolerul ESP8266 foarte ieftin și eficient din punct de vedere energetic

Aici puteți găsi cum să construiți componenta electronică și să descărcați software-ul.

Am folosit acest gateway pentru automatizarea casei și pentru robot.

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

Am făcut un alt instructable care utilizează un scut ESP8266 și evită lipirea

Provizii

Am scris un alt instructable pe această temă

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.

Este cel mai ușor de utilizat cu Arduino Mega care are mai mult de un UART (Arduino Mega de exemplu), dar poate rula și cu UNO.

Pasul 2: Care sunt principalele funcții?

În cea mai mare parte este o cutie neagră care convertește și trimite date seriale către pachetul UDP în ambele moduri.

Are 3 LED-uri care indică starea și traficul Gateway-ului.

Oferă un GPIO care poate fi utilizat de Arduino pentru a aștepta ca Gateway-ul să fie conectat la WIFI și IP.

Acesta rulează în 3 moduri diferite care sunt setate cu comutatoare:

  • Mod Gateway care este modul normal
  • Mod de configurare utilizat pentru a seta parametrii
  • Mod de depanare care este pentru modul de depanare

Majoritatea parametrilor pot fi modificați pentru a se potrivi nevoilor dumneavoastră.

Pasul 3: Construirea materialului

Construirea materialului
Construirea materialului

Pe lângă Arduino, veți avea nevoie

  • 1 x modul ESP8266 - aleg MOD-WIFI-ESP8266-DEV de la Olimex care costă în jur de 5 euro care este destul de ușor de utilizat.
  • Sursa de alimentare 1 x 5v
  • 1 x regulator de putere 3.3v - folosesc LM1086
  • 1 x 100 microfarad condensator
  • 1 x modul APN ULN2803 (poate fi înlocuit cu 3 x tranzistoare)
  • 8 rezistoare (3 x 1K, 1 x 2K, 1 x 2,7k, 1x 3,3K, 1x 27K, 1x 33k)
  • 3 x LED (roșu, verde, albastru)
  • 1 x PCB placa de panouri
  • unele fire și conectori

Doar în timpul pașilor de construcție, veți avea nevoie

  • 1 x FTDI 3.3v pentru configurare
  • Fier de lipit și tablă

Înainte de lipire, este important să configurați toate componentele de pe panou și să verificați dacă totul este în regulă.

Pasul 4: Să începem cu dispozitivul electronic de pe panou

Să începem cu dispozitivul electronic de pe panou!
Să începem cu dispozitivul electronic de pe panou!

Aspectul electronic este disponibil în format Fritzing

Puteți descărca aici pasul 1:

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

Doar faceți ca schemă având grijă de tensiune.

Amintiți-vă că ESP8266 nu acceptă tensiune mai mare de 3,3v. FTDI trebuie setat la 3,3v.

Pasul 5: Să mergem la software

Să mergem la software!
Să mergem la software!

Să începem cu partea Gateway

Am scris codul cu Arduino IDE. Deci, aveți nevoie de ESP8266 pentru a fi cunoscut sub numele de board de IDE. Selectați placa corespunzătoare cu meniul Instrumente / plăci.

Dacă nu vedeți niciun ESP266 în listă, înseamnă că poate fi necesar să instalați ESP8266 Arduino Addon (puteți găsi aici procedura).

Tot codul de care aveți nevoie este disponibil pe GitHub. Este timpul să-l descărcați!

Codul principal al Gateway-ului este acolo:

În plus față de standardul Arduino și ESP8266 include codul principal, aceste 2 includ: LookFoString care este folosit pentru a manipula șirurile și este acolo:

ManageParamEeprom care este folosit pentru a citi și stoca parametrii în Eeprom ans este acolo:

Odată ce primiți tot codul, este timpul să îl încărcați în ESP8266. Mai întâi conectați FTDI la un port USB al computerului.

Vă sugerez să verificați conexiunea înainte de a încerca să încărcați.

  • Setați monitorul serial Arduino la noul port USB.
  • Setați viteza la 115200 ambele cr nl (viteza implicită pentru Olimex)
  • Puterea pe panou (ESP8266 vine cu un software care se ocupă de comenzi AT)
  • Trimiteți „AT” cu instrumentul serial.
  • În schimb, trebuie să obțineți „OK”.

Dacă nu verificați conexiunea și consultați specificațiile ESP8266.

Dacă aveți „OK” sunteți gata să încărcați codul

  • Opriți panoul de așteptare, așteptați câteva secunde,
  • apăsați pe micro-swith-ul negru al ESP8266. Este normal să obțineți niște gunoi pe monitorul serial.
  • Apăsați pe IDE-ul de încărcare ca pentru un Arduino.
  • După finalizarea încărcării, setați viteza serială la 38400.

Veți vedea ceva ca în imagine.

Felicitări, ai încărcat cu succes codul!

Pasul 6: Să facem configurația

Să facem configurația!
Să facem configurația!

ConfigGPIO trebuie setat la 1 pentru a intra în modul configurație

La început scanați WIFI introducând comanda: ScanWifi. Veți vedea o listă a rețelei detectate.

  • Apoi setați SSID-ul dvs. introducând „SSID1 = rețeaua dvs.”
  • Apoi setați parola introducând „PSW1 = parola dvs.”
  • Apoi introduceți „SSID = 1” pentru a defini rețeaua curentă
  • Introduceți „Reporniți” pentru a conecta Gateway-ul la WIFI.
  • Puteți verifica dacă ați obținut un IP introducând „ShowWifi”.
  • LED-ul albastru va fi aprins și LED-ul roșu va clipi.

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”

Ultimul pas necesar este setarea portului de ascultare a serverului UDP prin introducerea „ascultăPort = xxxx”.

Introduceți „ShowEeprom” pentru a verifica ce tocmai ați stocat în Eeprom

Acum conectați GPIO2 la masă pentru a părăsi modul de configurare

Gateway-ul dvs. este gata să funcționeze

Există câteva alte comenzi pe care le-ați putea găsi în documentație.

Pasul 7: Să facem partea Arduino

Hai să facem partea Arduino!
Hai să facem partea Arduino!
Hai să facem partea Arduino!
Hai să facem partea Arduino!

În primul rând conectați Arduino

Dacă aveți un Mega, va fi cel mai ușor să începeți cu. Cu toate acestea, puteți utiliza un Uno.

Pentru a-ți verifica munca, cel mai bine este să folosești exemplul.

O puteți descărca de aici:

Include codul SerialNetwork care este aici:

Încărcați codul în Arduino.

LED-ul verde clipește de fiecare dată când Arduino trimite date.

Pasul 8: Să facem partea serverului

Hai să facem partea serverului!
Hai să facem partea serverului!
Să facem partea serverului!
Să facem partea serverului!

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

Doar rulați-l

Uită-te la consola Java.

Uită-te la monitorul Arduino.

Arduino trimite 2 pachete diferite.

  • Primul conține starea pinilor digitali de la 2 la 6.
  • A doua conține 2 valori aleatorii, nivelul de tensiune al lui A0 în mV și numărul incremental.

Programul Java

  • tipăriți datele primite în format hexazecimal
  • răspundeți la primul tip de date cu o valoare de pornire / oprire aleatorie pentru a activa / opri LED-ul Arduino
  • răspunde la al doilea tip de date cu numărul primit și o valoare aleatorie.

Pasul 9: Este timpul să faceți niște lipiri

Este timpul să faceți niște lipiri!
Este timpul să faceți niște lipiri!
Este timpul să faceți niște lipiri!
Este timpul să faceți niște lipiri!
Este timpul să faceți niște lipiri!
Este timpul să faceți niște lipiri!

Funcționează pe panou!

Este timpul să-l faceți mai robust prin lipirea pieselor de pe un PCB

În plus față de ceea ce ați făcut cu panoul de verificare, trebuie să adăugați 3 conectori.

  • C1 1 x pin unul care va fi utilizat pentru a intra în modul de urmărire a rețelei.
  • C2 3 x pini unul care va fi folosit pentru a comuta între modul de rulare și modul de configurare.
  • C3 6 x pini unul care va fi utilizat pentru a conecta Gateway-ul fie la un Arduino, fie la un FTDI.

C1 conectat la GPIO2 trebuie să fie împământat manual dacă doriți să activați urmele de rețea.

C2 conectat la GPIO 4 poate fi setat în 2 poziții diferite. Unul setat la sol pentru modul normal de funcționare și unul setat la 3.3v pentru intrarea în modul de configurare.

Setați toate componentele de pe PCB conform schemei și apoi începeți să lipiți pentru a obține produsul final!

Pasul 10: Să facem testul final

Image
Image

Porniți programul de testare Java.

Conectați Arduino.

Porniți Gateway-ul.

Și uitați-vă la consola Java, monitorul Arduino, LED-urile Arduino și LED-urile Gateway.

Pasul 11: Puteți adapta acest design la propriile cerințe

În ceea ce privește hardware-ul

  • Dacă alegeți alt ESP8266, va trebui să vă adaptați la specificații.
  • Dacă alegeți un alt regulator de 3.3v, acesta trebuie să livreze peste 500mA și va trebui să adaptați condensatorul.
  • Puteți modifica rezistențele LED pentru a regla luminozitatea.
  • Puteți suprima toate LED-urile, dar vă recomand să păstrați cel puțin roșul aprins.
  • Puteți înlocui ULN2803 cu 3 tranzistoare (sau mai puțin dacă alegeți să nu păstrați cele 3 LED-uri).
  • Am testat, dar acolo trebuie să funcționeze cu plăci Arduino de 3,3 v. Conectați doar Tx Rx la conectorul de 3.3v.

În ceea ce privește configurația

  • Puteți stoca 2 SSID și comuta diferite
  • Puteți modifica GPIO-ul folosit

În ceea ce privește software-ul

Recomandat: