Obsah:

Sériová brána UDP/IP pro Arduino na štítu ESP8266: 8 kroků
Sériová brána UDP/IP pro Arduino na štítu ESP8266: 8 kroků

Video: Sériová brána UDP/IP pro Arduino na štítu ESP8266: 8 kroků

Video: Sériová brána UDP/IP pro Arduino na štítu ESP8266: 8 kroků
Video: LinuxDays 2015 - Arduino a Internet věcí - Petr Stehlík 2024, Listopad
Anonim
Sériová brána UDP/IP pro Arduino založená na štítu ESP8266
Sériová brána UDP/IP pro Arduino založená na štítu ESP8266

Již jsem v roce 2016 publikoval tento návod „Jak vytvořit vlastní bránu Wifi pro připojení Arduina k síti IP“. Protože jsem provedl několik vylepšení kódu a toto řešení stále používám.

Přesto nyní existuje několik štítů ESP8266, které umožňují dělat totéž bez pájení, pokud nepoužíváte desky Micro nebo Nano.

Tento instruktážní program vysvětlí, jak používat tyto štíty ESP82 jako sériovou bránu UDP/IP.

To je součástí globální infrastruktury pro domácí automatizaci, kterou si můžete prohlédnout zde

Další informace o štítu s tímto návodem

Zásoby

1 Arduino Mega (nejlepší je mít alespoň 1 Mega pro vývoj a 1 Uno pro běžící fázi)

1 Rokoo ESP8266 ESP-12E UART WIFI Inzerent

1 FTDI 3.3v

2 dráty na prkénko

Krok 1: Jak to funguje?

Jak to funguje ?
Jak to funguje ?

Brána je založena na modulu ESP8266

Tento modul je z jedné strany připojen k sériové lince z druhé strany k síti IP pomocí Wifi.

Funguje jako černá skříňka. Datové pakety pocházející ze sériového propojení jsou odesílány na port IP/Udp a naopak.

Jednoduše si musíte nastavit vlastní konfiguraci (IP, WIFI…), jakmile bránu poprvé zapnete.

Může přenášet buď nezpracovaná ASCII a binární data (bez HTTP, JSON…)

Je navržen tak, aby propojoval objekty se serverovými domácími softwary, které vyžadují rychlé a časté přenosy krátkých datových paketů.

Krok 2: Jaké jsou hlavní funkce?

Většinou se jedná o černou skříňku, která převádí sériová data na UDP paket oběma způsoby.

Brána však může fungovat také samostatně odesláním interních informací na server a přijetím některých příkazů ze serveru.

Arduino může odesílat a přijímat zprávy na / ze serveru připojeného přes internet pouhým tiskem / čtením sériového odkazu. Není nutné, aby se vývojář Arduina obtěžoval protokolem IP.

Kromě toho poskytuje GPIO, které může Arduino použít ke kontrole, zda je brána správně připojena k WIFI a že brána může v případě selhání automaticky přepínat mezi 2 různými SSID

Gateway má 2 různé provozní režimy, které jsou vybrány nastavením GPIO

Nastavení GPIO na zem a brána vstoupí do konfiguračního režimu.

Nastavení GPIO zdarma a brána přejde do režimu brány.

Kromě toho lze konfiguraci brány UDP/IP vzdáleně upravovat

Krok 3: Stavba materiálu

Stavba materiálu
Stavba materiálu

Je vyžadováno velmi málo věcí

1 štít ESP8266 - našel jsem tento modul UNO R3 ESP8266 Serial WiFi Shield Extend Board Module za méně než 9 €

1 UNO, což je cíl Arduino

1 Mega, což je nástroj pro vývoj arduina (obejdete se bez něj, ale ladění je docela obtížné)

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

Nějaké dráty

Krok 4: Stáhněte si kód brány

Stáhněte si kód brány
Stáhněte si kód brány

Během tohoto kroku se Arduino používá pouze k napájení (pomocí USB nebo jiného zdroje napájení) štítu ESP8266

Připojte ESP8266 GPIO4 k zemi (pro vstup do konfiguračního režimu)

Dávejte pozor, abyste FTDI nastavili na 3,3 V, jak to vyžaduje štít

Připojte FTDI ke štítu (RX až TX)

Nastavte přepínač štítu na 1: vypnuto 2: vypnuto 3: zapnuto 4: zapnuto

Připojte USB stranu FTDI k vašemu počítači

Resetujte štít pomocí tlačítka ESP-RST

Stáhněte si kód brány tam na GitHub

Otevřete Arduino IDE

  • Vyberte port monitoru FTDI
  • Otevřete IDE Serial Monitor - Nastavte rychlost na 38400
  • Vyberte obecnou desku modulu ES8266
  • Upgradujte firmware štítu pomocí kódu brány

Nastavte spínač 3: vypnuto 4: vypnuto

Otevřete IDE Serial Monitor

Resetujte štít pomocí tlačítka ESP-RST

Na monitoru musíte vidět zprávy začínající „inicializace EEPROM“„Inicializace dokončena“….

Je čas provést konfiguraci

Krok 5: Pojďme provést konfiguraci brány

Při prvním stahování kódu brány bude ESP8266 Eeprom inicializován s výchozími hodnotami. Uvidíte tento druh zpráv „nastavit parametr: x velikost: yy“

Tyto hodnoty najdete uvnitř definice kódu paramValue. Tyto výchozí hodnoty můžete samozřejmě změnit před stažením kódu, ale konfiguraci můžete také nastavit příkazem později. To je lepší, pokud plánujete mít víceprostorovou bránu a ponechat si pouze jednu verzi kódu.

K odeslání příkazu použijte sériový port monitoru (nastaven na NL a CR).

Protože SSID není aktuálně definováno, počkejte na „Nelze se připojit k vašemu druhému pokusu o opakování: 5“

Poté se automaticky spustí skenování WIFI

Je na čase nastavit SSID pomocí následujících příkazů:

  • SSID1 = vaše volba1
  • PSW1 = yourpsw1
  • SSID2 = vaše volba2
  • PSW2 = yourpsw2
  • SSID = 1 (vyberte SSID, kterým chcete začít)
  • Restartujte WiFi

Po několika sekundách můžete zkontrolovat připojení pomocí příkazu „ShowWifi“. Musíte vidět IP adresu, kterou brána získala z vašeho serveru DNS. Pokud tomu tak je, je čas jít dál

Je na čase definovat adresu IP serveru zadáním 4 podadres (server, na kterém bude spuštěn testovací kód Java). Například:

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

Odesláním prázdného příkazu uvidíte všechny podporované příkazy, které můžete později použít, aby vyhovovaly vašim požadavkům. Všechny hodnoty parametrů jsou uloženy v Eepromu a je třeba vzít v úvahu restart.

Odstraňte konfigurační vodič

Štít nyní běží jako brána

Krok 6: Stáhněte si příklad kódu Arduino

Stáhněte si příklad kódu Arduino
Stáhněte si příklad kódu Arduino

Nejprve si stáhněte hlavní kód Arduino na GitHub

Poté si stáhněte kód Arduino, definici tohoto příkazu a tento kód sériového odkazu do svých knihoven

Poté otevřete hlavní kód s novým Arduino IDE

Vypněte přepínač Shield 1 a 2, aby se uvolnilo sériové propojení Arduino 0 pro připojení USB

Resetujte štít

Připojte vodiče FTDI k Mega Serial 2 (TX FTDI k RX Mega a tak dále)

Spusťte nové IDE Arduino (nebo nástroj TTY), připojte FTDI USB a začněte sledovat sériové připojení

Nahrajte kód Arduino do Mega

Chcete -li připojit sériové propojení Arduino 0, zapněte štítový přepínač 1 a 2

Resetujte štít

Na monitoru se musí zobrazit tato zpráva „spustit tisk z USB“

Krok 7: Pojďme na stranu serveru

Příkladem serveru je program Java, který si můžete stáhnout zde na GitHub

Stačí jej spustit a podívat se na konzolu Java a podívat se na monitor FTDI

Uvidíte výměnu dat mezi serverem a Arduinem

Krok 8: Přejít dále

Jít dál
Jít dál
Jít dál
Jít dál

Tento příklad kódu Arduino je založen na rámcové části mé infrastruktury pro domácí automatizaci.

Pokud vás tato infrastruktura zajímá, dejte mi vědět. Zveřejním zdroje.

Pokud chcete bránu pouze používat, můžete kód Arduino zjednodušit.

Poté, co vyvinete a otestujete svůj kód na Arduino Mega, můžete jej snadno nahradit Uno!

Kromě toho můžete připojit kabel mezi Arduino GPIO 7 a ESP8266 GPIO 5, pokud chcete, aby váš Arduino zkontroloval připojení Wifi

Doporučuje: