Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
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?
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
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
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
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
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