Obsah:

Sériová brána UDP/IP pre Arduino na základe štítu ESP8266: 8 krokov
Sériová brána UDP/IP pre Arduino na základe štítu ESP8266: 8 krokov

Video: Sériová brána UDP/IP pre Arduino na základe štítu ESP8266: 8 krokov

Video: Sériová brána UDP/IP pre Arduino na základe štítu ESP8266: 8 krokov
Video: LinuxDays 2015 - Arduino a Internet věcí - Petr Stehlík 2024, Júl
Anonim
Sériová brána UDP/IP pre Arduino na základe štítu ESP8266
Sériová brána UDP/IP pre Arduino na základe štítu ESP8266

V roku 2016 som už publikoval tento návod „Ako si vytvoriť vlastnú bránu Wifi na pripojenie zariadenia Arduino k sieti IP“. Pretože som urobil niekoľko vylepšení kódu a stále používam toto riešenie.

Napriek tomu teraz existuje niekoľko štítov ESP8266, ktoré umožňujú robiť to isté bez spájkovania, pokiaľ nepoužívate dosky Micro alebo Nano.

Tento návod vysvetlí, ako používať tieto štíty ESP82 ako sériovú bránu UDP/IP.

Toto je súčasťou globálnej infraštruktúry pre domácu automatizáciu, ktorú si môžete pozrieť tu

Viac informácií o štíte s týmto pokynom

Zásoby

1 Arduino Mega (najlepšie je mať aspoň 1 Mega na vývoj a 1 Uno na spustenú fázu)

1 Rokoo ESP8266 ESP-12E UART WIFI Inzerent

1 FTDI 3.3v

2 drôtené dosky

Krok 1: Ako to funguje?

Ako to funguje ?
Ako to funguje ?

Brána je založená na module ESP8266

Tento modul je z jednej strany prepojený so sériovým prepojením z druhej strany s IP sieťou Wifi.

Funguje ako čierna skrinka. Dátové pakety pochádzajúce zo sériového spojenia sú odoslané na port IP/Udp a naopak.

Pri prvom zapnutí brány stačí nastaviť vlastnú konfiguráciu (IP, WIFI …).

Môže prenášať surové ASCII a binárne údaje (bez HTTP, JSON …)

Je navrhnutý tak, aby spájal objekty so serverovým domácim softvérom, ktorý vyžaduje rýchly a častý prenos krátkeho paketu údajov.

Krok 2: Aké sú hlavné funkcie?

Väčšinou ide o čiernu skrinku, ktorá prevádza sériové údaje na paket UDP oboma spôsobmi.

Brána však môže fungovať aj samostatne, a to odoslaním interných informácií na server a prijatím niektorých príkazov zo servera.

Arduino môže odosielať a prijímať správy zo servera pripojeného cez internet / zo servera iba vytlačením / prečítaním sériového odkazu. Nie je potrebné, aby sa vývojár Arduino obťažoval IP protokolom.

Navyše poskytuje GPIO, ktoré môže Arduino použiť na kontrolu správneho pripojenia brány k WIFI a že brána môže v prípade poruchy automaticky prepnúť medzi 2 rôznymi SSID

Gateway má 2 rôzne prevádzkové režimy, ktoré sa vyberajú nastavením GPIO

Nastavenie GPIO na zem a brána prejde do konfiguračného režimu.

Nastavením GPIO zadarmo a brána prejde do režimu brány.

Navyše konfiguráciu brány UDP/IP je možné vzdialene upravovať

Krok 3: Zostavenie materiálu

Stavba materiálu
Stavba materiálu

Vyžaduje sa veľmi málo vecí

1 štít ESP8266 - našiel som tento modul UNO R3 ESP8266 Serial WiFi Shield Extend Board Module za menej ako 9 €

1 UNO, čo je cieľ Arduino

1 mega, ktorý je nástrojom na vývoj arduino (môžete to urobiť bez, ale je ťažké ho odladiť)

1 FTDI 3,3/5v na vývoj

Niektoré drôty

Krok 4: Stiahnite si kód brány

Stiahnite si kód brány
Stiahnite si kód brány

Počas tohto kroku sa Arduino používa iba na napájanie (pomocou USB alebo iného zdroja napájania) štítu ESP8266

Pripojte ESP8266 GPIO4 k zemi (aby ste vstúpili do režimu konfigurácie)

Dávajte pozor, aby ste FTDI nastavili na 3,3 V, ako to vyžaduje štít

Pripojte FTDI k štítu (RX až TX)

Nastavte prepínač štítu na 1: vypnutý 2: vypnutý 3: zapnutý 4: zapnutý

Pripojte USB stranu FTDI k vášmu počítaču

Resetujte štít pomocou tlačidla ESP-RST

Stiahnite si kód brány tam na GitHub

Otvorte Arduino IDE

  • Vyberte port monitora FTDI
  • Otvorte sériový monitor IDE - nastavte rýchlosť na 38400
  • Vyberte generickú dosku modulu ES8266
  • Inovujte firmvér štítu pomocou kódu brány

Nastavte spínač 3: vypnuté 4: vypnuté

Otvorte sériový monitor IDE

Resetujte štít pomocou tlačidla ESP-RST

Na monitore musíte vidieť správy začínajúce na „Inicializácia EEPROM“„Inicializácia dokončená“….

Je čas vykonať konfiguráciu

Krok 5: Vykonajme konfiguráciu brány

Pri prvom sťahovaní kódu brány sa ESP8266 Eeprom inicializuje s predvolenými hodnotami. Uvidíte tento druh správ „nastaviť parameter: x veľkosť: yy“

Tieto hodnoty nájdete v definícii kódu paramValue. Tieto predvolené hodnoty môžete samozrejme zmeniť pred stiahnutím kódu, ale konfiguráciu môžete nastaviť aj príkazom neskôr. Je to lepšie, ak plánujete mať viacúrovňovú bránu a ponechať iba jednu verziu kódu.

Na odoslanie príkazu použite sériový port monitora (nastavený na NL a CR).

Pretože SSID nie je v súčasnosti definovaný, počkajte na „Nepodarilo sa pripojiť k vášmu druhému serveru, skúste to znova: 5“

Potom sa automaticky spustí skenovanie WIFI

Je načase nastaviť SSID pomocou nasledujúcich príkazov:

  • SSID1 = vaša voľba1
  • PSW1 = yourpsw1
  • SSID2 = vaša voľba2
  • PSW2 = yourpsw2
  • SSID = 1 (na výber, ktorým SSID začať)
  • Reštartujte WiFi

Po niekoľkých sekundách môžete skontrolovať pripojenie pomocou príkazu „ShowWifi“. Musíte vidieť IP adresu, ktorú brána získala z vášho servera DNS. Ak je to tak, je načase ísť ďalej

Je načase definovať adresu IP servera zadaním 4 podadries (server, na ktorom bude spustený testovací kód Java). Napríklad:

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

Odoslaním prázdneho príkazu uvidíte všetky podporované príkazy, ktoré môžete neskôr použiť, aby vyhovovali vašim požiadavkám. Všetky hodnoty parametrov sú uložené v Eeprom a je potrebné vziať do úvahy reštart.

Odstráňte konfiguračný vodič

Štít teraz beží ako brána

Krok 6: Stiahnite si príklad kódu Arduino

Stiahnite si príklad kódu Arduino
Stiahnite si príklad kódu Arduino

Najprv si stiahnite hlavný kód Arduino na GitHub

Potom si stiahnite kód Arduino, ktorý obsahuje definíciu príkazov, a tento kód sériového odkazu do svojich knižníc

Potom otvorte hlavný kód s novým Arduino IDE

Vypnite štítový spínač 1 a 2, aby sa uvoľnilo sériové prepojenie Arduino 0 pre pripojenie USB

Resetujte štít

Pripojte káble FTDI k Mega Serial 2 (TX FTDI k RX Mega a tak ďalej)

Spustite nové IDE Arduino (alebo nástroj TTY), pripojte FTDI USB a začnite monitorovať sériové prepojenie

Nahrajte kód Arduino do Mega

Nastavte štítový spínač 1 a 2 na pripojenie sériového prepojenia Arduino 0

Resetujte štít

Na monitore sa musí zobraziť táto správa „začať tlač z USB“

Krok 7: Poďme na stranu servera

Príkladom servera je program Java, ktorý si môžete stiahnuť tu na GitHub

Stačí ho spustiť a pozrieť sa na konzolu Java a pozrieť sa na monitor FTDI

Uvidíte výmenu údajov medzi serverom a Arduinom

Krok 8: Choďte ďalej

Ísť ďalej
Ísť ďalej
Ísť ďalej
Ísť ďalej

Tento príklad kódu Arduino je založený na rámcovej časti mojej infraštruktúry pre domácu automatizáciu.

Ak vás táto infraštruktúra zaujíma, dajte mi vedieť. Budem zverejňovať zdroje.

Ak chcete len používať bránu, môžete kód Arduino zjednodušiť.

Po vyvinutí a otestovaní kódu na Arduino Mega ho môžete ľahko vymeniť za Uno!

Okrem toho môžete pripojiť vodič medzi Arduino GPIO 7 a ESP8266 GPIO 5, ak chcete, aby váš Arduino skontroloval pripojenie Wifi

Odporúča: