WiFi LED ovládání pomocí ESP8266
Příklad ukazuje, jak odesílat data přes web do modulu ESP8266 pomocí Arduina. Program ovládá LED diody připojené k desce Arduino.
Příklad používá následující prvky:
- Arduino Uno
- Modul je založen na systému ESP8266 , např. ESP-01
- Led světla
- Rezistory
- Nepájivé pole a dráty
- Počítač vybavený kartou WiFi
Propojení ESP-01 a Arduina
Sériové rozhraní UART se používá pro komunikaci mezi WiFi modulem založeným na systému ESP8226 a deskou Arduino. V tomto případě bude použita jeho softwarová verze, hardware UART, tj. Piny 1 a 0, zůstane uživateli k dispozici. Systémy by měly být připojeny, například pomocí kabelů typu female-male, a to následovně:
Kolík ESP8266 | Pin Arduino |
---|---|
Tx | 2 |
Rx | 3 |
Vcc | 3,3 V |
CH_PD |
3,3 V |
GND | GND |
LED diody by měly být připojeny k pinům 11, 12 a 13 Arduina přes odpor omezující proud diody . Jeho hodnota určuje jas LED diody, příliš nízký odpor může diodu poškodit, při příliš vysokém odporu nebude svítit. Doporučujeme zvolit hodnotu odporu v rozsahu od 220 Ω do 1,5 kΩ .
Program pro Arduino
V příkladu byl použit následující kód:
#include// zahrnutí knihovny pro podporu softwarového rozhraní UART SoftwareSerial esp01 (2,3); // Inicializace softwarového rozhraní UART: 2-RX (připojení k modulu ESP Tx); 3-TX (připojení k modulu Rx ESP) neplatné nastavení () { Serial.begin (9600); // Inicializace hardwarového rozhraní UART rychlostí 9600 b / s - pro komunikaci s počítačem přes USB esp01.begin (9600); // Inicializace softwarového rozhraní UART rychlostí 9600 b / s - pro komunikaci s modulem ESP pinMode (11, VÝSTUP); // nastavení kolíku 11 jako vstupu pro LED č. 1 digitalWrite (11, LOW); // dát pin 11 nízký stav - dioda 1 je ve výchozím nastavení vypnutá pinMode (12, VÝSTUP); // nastavení pinu 12 jako vstupu pro LED č. 2 digitalWrite (12, LOW); // dát pin 12 nízký stav - dioda 2 je ve výchozím nastavení vypnutá pinMode (13, VÝSTUP); // nastavení pinu 13 jako vstupu pro LED č. 3 digitalWrite (13, LOW); // dát pin 13 nízký stav - LED 3 je ve výchozím nastavení vypnutá // Odeslání inicializačních příkazů pro ESP sendData ("AT + RSTrn", 2000); // reset modulu sendData ("AT + CWMODE = 2yrn", 1000); // nastavení v režimu přístupového bodu sendData ("AT + CIFSRrn", 1000); // získat IP adresu (standardně 192.168.4.1) sendData ("AT + CIPMUX = 1rn", 1000); // povolit režim vícenásobného připojení sendData ("AT + CIPSERVER = 1,80rn", 1000); // nastavit server na port 80} void loop () {if (esp01.available ()) // zkontrolovat, zda modul přijal data {if (esp01.find ("+ IPD,")) {delay (1000) ; // čekat na vyplnění vyrovnávací paměti daty // přečíst ID připojení int connectionId = esp01.read () - 48; // čtení hodnoty ASCI: 48 odečteno, protože read () vrací desítkovou hodnotu ASCII na pozici 48 esp01.find ("pin ="); // hledejte frázi „pin =“ a umístěte tam „kurzor“ int pinNumber = (esp01.read () - 48) * 10; // získejte první číslici, např. pro pin 13, první číslice je 1, vynásobte ji 10 pinNumber + = (esp01.read () - 48); // získejte druhou číslici, např. pro pin 13, druhá číslice je 3, přidejte ji k předchozímu výsledku digitalWrite (pinNumber ,! digitalRead (pinNumber)); // změnit stav vybraného pinu // zavřít připojení String closeCommand = "AT + CIPCLOSE ="; closeCommand + = connectionId; // ID připojení číst nejprve closeCommand + = "rn"; sendData (closeCommand, 1000); // odeslání příkazu pro ukončení připojení}}} / * * Funkce, která odesílá příkazy do modulu ESP01 * Parametry: * příkaz - příkaz k odeslání * timeout - časový limit pro odpověď * / String sendData (String command, const int timeout) {String response = ""; esp01.print (příkaz); // odeslání příkazu do ESP01 long int time = millis (); while ((time + timeout)> millis ()) {while (esp01.available ()) // pokud existují nějaká data z modulu, pak se načte {char c = esp01.read (); // načtení další znakové odpovědi + = c; }} Serial.print (odpověď); návratová odpověď; }
HTML kód pro odesílání dat
Zkopírujte níže uvedený kód a použijte například systémový Poznámkový blok s příponou .html.
Ovládání LED pomocí ESP8266 |
Program také používá knihovnu JQuery. Stáhněte si jej a uložte do adresáře, kde je umístěn výše uvedený soubor .html.
Spusťte program
Nejprve se musíte k modulu připojit jako přístupový bod (podobně jako např. Bezdrátový router). Po navázání připojení otevřete vytvořený web pomocí libovolného prohlížeče. Pomocí jednoho ze tří tlačítek můžete LED zapnout nebo vypnout.