INHOUDSOPGAWE:

Seriële UDP/IP -gateway vir Arduino Gebaseer op ESP8266 Shield: 8 stappe
Seriële UDP/IP -gateway vir Arduino Gebaseer op ESP8266 Shield: 8 stappe

Video: Seriële UDP/IP -gateway vir Arduino Gebaseer op ESP8266 Shield: 8 stappe

Video: Seriële UDP/IP -gateway vir Arduino Gebaseer op ESP8266 Shield: 8 stappe
Video: ESP8266 Project: How to control 2 AC bulb or load using 2 Relay with NodeMCU and D1 Mini over WiFi 2024, Julie
Anonim
Seriële UDP/IP -gateway vir Arduino Gebaseer op ESP8266 Shield
Seriële UDP/IP -gateway vir Arduino Gebaseer op ESP8266 Shield

Ek het reeds in 2016 hierdie instruksies gepubliseer "Hoe om u eie Wifi -gateway te maak om u Arduino aan IP -netwerk te koppel". Aangesien ek 'n paar kodeverbeterings aangebring het en ek nog steeds hierdie oplossing gebruik.

Tog is daar nou 'n paar ESP8266 -skilde waarmee u dieselfde kan doen sonder om te soldeer, solank u nie Micro- of Nano -borde gebruik nie.

Hierdie instruksies sal verduidelik hoe u hierdie ESP82 -skilde as seriële UDP/IP -gateway kan gebruik.

Dit maak deel uit van 'n wêreldwye tuisautomatiseringsinfrastruktuur wat u hier kan sien

Meer inligting oor die skild met hierdie instruksies

Voorrade

1 Arduino Mega (die beste is om ten minste 1 Mega te hê vir ontwikkeling en 1 Uno vir aanloopfase)

1 Rokoo ESP8266 ESP-12E UART WIFI Convertisseur

1 FTDI 3.3v

2 broodbord drade

Stap 1: Hoe werk dit?

Hoe werk dit ?
Hoe werk dit ?

Die Gateway is gebaseer op 'n ESP8266 -module

Hierdie module is aan die een kant verbind met die seriële skakel van die ander kant na die IP -netwerk met die Wifi.

Dit dien as 'n swart boks. Datapakkies wat van die seriële skakel af kom, word gestuur na 'n IP/Udp -poort en omgekeerd.

U hoef net u eie konfigurasie (IP, WIFI …) in te stel sodra u die Gateway die eerste keer aanskakel.

Dit kan rou ASCII en binêre data oordra (geen HTTP, JSON …)

Dit is ontwerp om voorwerpe te verbind met tuisgemaakte sagteware vir bedieners wat vinnige en gereelde oordrag van kort pakkie data benodig.

Stap 2: Wat is die belangrikste funksies?

Meestal is dit 'n swart boks wat seriële data na UDP -pakket op twee maniere omskakel.

Maar die poort kan ook op sy eie werk deur interne inligting na die bediener te stuur en 'n paar opdragte van die bediener af te ontvang.

Arduino kan boodskappe stuur en ontvang na / van 'n bediener wat via die internet gekoppel is, net deur 'n reeksskakel te druk / lees. Die Arduino -ontwikkelaar hoef nie die IP -protokol te bekommer nie.

Boonop bied dit 'n GPIO wat deur Arduino gebruik kan word om te kontroleer of die Gateway korrek aan die WIFI gekoppel is en die Gateway outomaties twee verskillende SSID's kan in geval van mislukking

Die Gateway het 2 verskillende loopmodusse wat gekies word deur 'n GPIO in te stel

As GPIO op die grond gestel word, gaan die gateway in die konfigurasiemodus.

As GPIO vrygestel word, gaan die gateway in die gateway -modus af.

Boonop kan die Gateway UDP/IP -konfigurasie op afstand verander word

Stap 3: Bou van materiaal

Bou van materiaal
Bou van materiaal

Baie min dinge word vereis

1 ESP8266 Shield - ek vind hierdie UNO R3 ESP8266 Serial WiFi Shield Extend Board Module vir minder as 9 €

1 UNO dit is die teiken Arduino

1 Mega wat die arduino -ontwikkelingshulpmiddel is (u kan sonder, maar dit is redelik moeilik om te ontfout)

1 FTDI 3.3/5v vir ontwikkeling

Sommige drade

Stap 4: Laai die Gateway -kode af

Laai die Gateway -kode af
Laai die Gateway -kode af

Tydens hierdie stap word die Arduino slegs gebruik om die ESP8266 -skild (met USB of 'n ander kragbron) aan te skakel

Koppel die ESP8266 GPIO4 aan die grond (om in die konfigurasiemodus te gaan)

Stel die FTDI in op 3.3v soos vereis deur die skild

Koppel die FTDI aan die skerm (RX na TX)

Stel die stelskakelaar op 1: af 2: af 3: aan 4: aan

Koppel die USB -kant van die FTDI aan u rekenaar

Stel die skerm terug met die ESP-RST-drukknop

Laai die Gateway -kode daar af op GitHub

Maak Arduino IDE oop

  • Kies die FTDI -monitorpoort
  • Maak die IDE Serial Monitor oop - Stel die spoed op 38400
  • Kies die generiese ES8266 -modulebord
  • Gradeer die skerm -firmware op met die gateway -kode

Stel skakelaar 3: af 4: af

Maak die IDE Serial Monitor oop

Stel die skerm terug met die ESP-RST-drukknop

U moet boodskappe op die monitor sien wat begin met "EEPROM -inisialisering" "Initialisering voltooi" …

Dit is tyd om die opset te doen

Stap 5: Kom ons doen die gateway -konfigurasie

As u die gateway -kode vir die eerste keer aflaai, word die ESP8266 Eeprom geïnitialiseer met die standaardwaardes. U sal hierdie soort boodskappe sien "stel parameter: x grootte: jj"

U kan hierdie waardes vind binne die kode -definisie van paramValue. U kan natuurlik hierdie standaardwaardes verander voordat u die kode aflaai, maar u kan ook u opset later met opdrag stel. Dit is beter as u van plan is om multi -gateway te hê en slegs een weergawe van die kode te hou.

Gebruik die seriële poort van die monitor om die opdrag te stuur (ingestel op NL en CR).

Aangesien SSID tans nie gedefinieer is nie, wag vir "Kon nie aan u tweede sekond probeer nie: 5"

Dan begin 'n skandering van WIFI outomaties

Dit is tyd om u SSID's met die volgende opdragte in te stel:

  • SSID1 = jou keuse1
  • PSW1 = yourpsw1
  • SSID2 = jou keuse2
  • PSW2 = yourpsw2
  • SSID = 1 (om te kies met watter SSID u moet begin)
  • Herbegin WiFi

Na 'n paar sekondes kan u die verbinding met die opdrag "ShowWifi" kontroleer. U moet die IP -adres wat die gateway van u DNS -bediener gekry het, sien. As dit die geval is, is dit tyd om verder te gaan

Dit is tyd om u IP -bedieneradres te definieer deur die 4 subadresse in te voer (bediener wat die Java -toetskode sal uitvoer). Byvoorbeeld:

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

Deur 'n leë opdrag te stuur, sien u al die ondersteunde opdragte wat u later kan gebruik om aan u vereistes te voldoen. Al die parameterswaardes word in Eeprom gestoor en moet herlaai word om in ag te neem.

Verwyder die konfigurasie draad

Die skild loop nou as 'n poort

Stap 6: Laai die voorbeeld van die Arduino -kode af

Laai die voorbeeld van die Arduino -kode af
Laai die voorbeeld van die Arduino -kode af

Laai eers die belangrikste Arduino -kode af op GitHub

Laai dan die Arduino -kode af wat hierdie opdrag definisie en hierdie reeksskakelkode in u biblioteke plaas

Maak dan die hoofkode oop met 'n nuwe Arduino IDE

Skakel die skildskakelaar 1 en 2 uit om die Arduino -seriële skakel 0 vir USB -verbinding te bevry

Stel die skild terug

Koppel die FTDI -drade aan die Mega Serial 2 (TX FTDI na RX Mega en so aan)

Begin 'n nuwe Arduino IDE (of 'n TTY -instrument), koppel die FTDI Usb aan en begin om die seriële skakel te monitor

Laai die Arduino -kode in die Mega op

Skakel die skildskakelaar 1 en 2 aan om die Arduino -seriële skakel 0 aan te sluit

Stel die skild terug

U moet hierdie boodskap "begin usb -afdruk" op die monitor sien

Stap 7: Kom ons doen die bedienerkant

Die bedienervoorbeeld is 'n Java -program wat u hier op GitHub kan aflaai

Begin dit net, kyk na die Java -konsole en kyk na die FTDI -monitor

U sien data -uitruilings tussen bediener en Arduino

Stap 8: Om verder te gaan

Om verder te gaan
Om verder te gaan
Om verder te gaan
Om verder te gaan

Hierdie voorbeeld van Arduino -kode is gebaseer op 'n raamwerk van my tuisautomatiseringsinfrastruktuur.

Laat weet my as u belangstel in hierdie infrastruktuur. Ek sal bronne publiseer.

As u net die gateway wil gebruik, kan u die Arduino -kode vereenvoudig.

Nadat u die kode ontwikkel het en u kode op 'n Arduino Mega getoets het, kan u dit maklik deur 'n Uno vervang!

Boonop kan u 'n draad tussen Arduino GPIO 7 en ESP8266 GPIO 5 aansluit as u wil hê dat u Arduino die Wifi -verbinding moet kontroleer

Aanbeveel: