reklama
Wi-Fi je nezbytnou součástí sady pro jakékoli DIY projekty pro internet věcí (IoT), ale náš oblíbený Arduino nepřichází s Wi-Fi a přidání štítu Wi-Fi může celkové náklady přiblížit zhruba 40 $. Co když vám řeknu, že existuje deska pro Arduino kompatibilní s integrovanou sítí Wi-Fi za méně než 10 USD? No, je.
Seznamte se s Arduino Killer: ESP8266. Bylo jen otázkou času, než byla koruna ukradena z lesklé hlavy naší drahé vývojové desky Arduino. Je možné se zamilovat do desky s obvody?
Kromě Catchy jmen, ESP8266 (také známý jako NodeMCU) byl původně uváděn na trh jako levné Wi-Fi add-on pro desky Arduino, dokud si hackerská komunita neuvědomila, že můžete Arduino vyříznout z rovnice zcela.
Za méně než rok se ESP8266 stal popularitou a nyní je tak dobře podporován a vyvíjen, že pokud v současnosti používáte Arduino, musíte se postavit a vzít na vědomí. Kupte si ji hned teď, pak postupujte podle tohoto průvodce a začněte programovat svůj ESP8266 - vše zv rámci známé Arduino IDE.
Nejste omezeni na používání Arduino IDE, samozřejmě - jsou kompatibilní také s Luou (což vypadá jako zúžený Python k mému začátečníky), ale od té doby, co to řešíme z pohledu těch z nás, kteří jsme se o Arduinu dozvěděli, pokrýváme to výhradně dnes.
V současné době existuje několik modelů ESP8266, ale budu pokračovat a doporučuji tento: ESP-12E (známá také jako NodeMCU 1.0 nebo nejnovější sourozenec NodeMCU 2.0).
Je to o něco dražší než ostatní ($ 6,50 ve srovnání se 4 $!), Ale zahrnuje sériový ovladač potřebný pro programování čipu, má vestavěný regulátor výkonu a spoustu pinů IO. Je široce podporován a opravdu nepotřebuje nic jiného než připojení USB pro programování nebo napájení, takže je nejsnadnější s ním pracovat. Pokud si koupíte jakýkoli jiný typ desky ESP8266, možná budete potřebovat samostatný 3,3 V regulátor výkonu a vhodné připojení FTDI pro programování.
Začínáme s ESP8266-12E a Arduino
První, nainstalovat sériové ovladače pro tuto desku. Možná budete muset zakázat podepisování KEXT pokud provozujete El Capitan kvůli novým bezpečnostním systémům.
Dále musíme povolit podporu pro ESP8266 od správce desky Arduino IDE. Otevřete předvolby a zadejte následující adresu URL, kde se zobrazuje Další adresy URL Správce desky:
Stiskněte Ok a otevřete Správce nástěnek z Nástroje -> Deska hledejte esp8266 a nainstalujte platformu. Nyní byste měli vidět výběr pro NodeMCU 1.0.
Nechte CPU a rychlost uploadu takovou, jaká je, a vyberte nově nainstalovaný sériový port. Na počítačích Mac se to zobrazí jako cu. SLAB_USBtoUART.
Jako první program navrhuji jednoduchý Wi-Fi skener - najděte jej Soubor -> Příklady -> ESP8266WiFi -> WifiScan. Nahrávání je poměrně pomalé, ale nakonec řekne „hotové nahrávání“ a v tuto chvíli (ne dříve, nebo proces nahrávání přerušíte) můžete otevřít sériový monitor. Měli byste vidět něco podobného tomuto:
Úspěch! Nyní se pokusíme připojit k jednomu.
Zde je naprosto jednoduchý kód barebones pro připojení k síti Wi-Fi. Neurobí nic jiného než jen připojit, ale je to něco, co můžete přidat příliš pozdě. Nezapomeňte změnit YOUR_SSID a YOUR_PASSWORD na podrobnosti o Wi-Fi. Nahrajte, otevřete sériovou konzoli a měli byste vidět připojení.
#include const char * ssid = "YOUR_SSID"; const char * password = "YOUR_PASSWORD"; WiFiClient wifiClient; neplatné nastavení () {Serial.begin (115200); Serial.print („Připojení k“); Serial.println (ssid); WiFi.begin (ssid, heslo); while (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print ("."); } Serial.println (""); Serial.println („WiFi připojeno“); Serial.println ("IP adresa:"); Serial.println (WiFi.localIP ()); } void loop () {}
Není to skvělé, jak směšně jednoduché to bylo?
Než budeme pokračovat, tady je schéma pinout - může se to hodit později. Všimněte si, že čísla pinů uvedená v kódu jsou čísla GPIO, nikoli D0-16 pravděpodobně zapsaná na desce plošných spojů. Pokud absolutně, pozitivně nemůžete přijít na to, proč senzor nefunguje, pravděpodobně jste smíchali čísla pinů.
Rychlý inteligentní domácí senzor s MQTT a DHT11
Zde je praktický příklad, který můžete použít k okamžitému sledování domova. Přidáme snímač teploty a vlhkosti DHT11 a poté hodnoty nahlásíme pomocí protokolu MQTT přes Wi-Fi síť, v mém případě k domácímu automatizačnímu systému OpenHAB DIY (pokud ne, možná budete chtít přečíst náš průvodce pro začátečníky, jak otevřít OpenHAB a spustit na Raspberry Pi Začínáme s domácí automatizací OpenHAB na Raspberry PiOpenHAB je vyspělá platforma pro domácí automatizaci s otevřeným zdrojovým kódem, která běží na různých hardwarech a je protokol agnostický, což znamená, že se může připojit k téměř jakémukoli hardwaru domácí automatizace na trhu dnes. Přečtěte si více a část 2, která se konkrétně zabývá instalace serveru MQTT Příručka OpenHAB pro začátečníky Část 2: ZWave, MQTT, pravidla a mapováníOpenHAB, software pro domácí automatizaci s otevřeným zdrojovým kódem, výrazně převyšuje možnosti ostatních systémů domácí automatizace na trhu - nastavení však není snadné. Ve skutečnosti to může být naprosto frustrující. Přečtěte si více ).
Na straně zapojení připojte snímač DHT k GND, 3,3v, a ~ D4 (nebo GPIO 2). To je vše, co teď potřebujeme.
Stažení tyto knihovny MQTT a DHT. I když je již máte, přesto si je stáhněte, zálohujte, co máte, a přepište je. Nejnovější knihovna DHT11 od Adafruit používá automatický algoritmus pro určení rychlosti, jakou data jsou čtena ze senzoru, ale je to buggy na ESP8266 a 90% času vede k selhání čtení.
Se starou verzí 1.0 knihovny, kterou jsem zahrnul do stahování, můžete manuálně změnit načasování: 11 funguje nejlépe pro tyto desky ESP2866. Také jsem prošel mnoha kopiemi knihovny MQTT a snažil se najít dobrou zpětné volání funkce, konečně přistání na té zahrnuté. Po jejich nahrazení budete muset restartovat Arduino IDE.
Tady je kompletní kód projektu. V horní části jsou všechny proměnné, které potřebujete změnit, včetně podrobností Wi-Fi, serveru MQTT (lze použít adresu URL namísto toho, pokud používáte cloudový server, ačkoli neexistuje ověřování na místě), a kanály, na kterých lze publikovat data.
Jak to funguje a pár poznámek:
- Nejprve se připojíme k Wi-Fi, poté k serveru MQTT, a pak začneme hlavní smyčka().
- Ve smyčce dotazujeme senzor DHT každých 60 sekund a výsledky publikujeme na příslušných kanálech MQTT. Pokud opět zjistíte, že většina výsledků má za následek chybovou zprávu, máte špatnou verzi knihovny DHT - downgrade na v1.0.
- client.loop () předává řízení do knihovny MQTT, což mu umožňuje reagovat na příchozí zprávy.
- Je tu zpráva přijata() funkce, kde zpracováváme příchozí zprávy - jednoduše proveďte příkaz if, chcete-li porovnat užitečné zatížení se zprávou, kterou očekáváte. Můžete použít například k aktivaci relé.
- Po několika dnech provozu jsem zjistil, že náhodně přestanou fungovat - předpokládám, že se jedná o nějaký únik paměti, ale vzhledem k tomu, Nemám schopnost kódování se s tím vypořádat a mohlo by to být s jádrovými knihovnami, rozhodl jsem se pro jednoduchý soft reset den. Přesně den po první aktivaci senzorových uzlů se restartují.
- Při napájení těchto levných modulů DHT11 od 3,3 V jsou hodnoty vlhkosti mnohem nižší, než by měly být. Vyřešil jsem to jednoduchým násobením a kalibroval proti komerčnímu senzoru. Doporučuji vám, abyste se před spoléháním na čtení potvrdili také proti svému známému zdroji. Alternativně je napájejte 5V - ale musíte umístit logický řadič 5v-3.3v mezi datový pin a ESP8266, jinak jej poškodíte.
Pokud by všechno šlo dobře, měli byste nyní přijímat odečty senzorů u svého makléře MQTT a můžete je spojit s připojením k OpenHAB, jak je podrobně popsáno v část 2 průvodce pro začátečníky Příručka OpenHAB pro začátečníky Část 2: ZWave, MQTT, pravidla a mapováníOpenHAB, software pro domácí automatizaci s otevřeným zdrojovým kódem, výrazně převyšuje možnosti ostatních systémů domácí automatizace na trhu - nastavení však není snadné. Ve skutečnosti to může být naprosto frustrující. Přečtěte si více , kde jsem vám také ukázal, jak grafovat data.
Sbohem Arduino, milovali jsme tě. Jen si dělám legraci: ne všude v mém domě se dokonce dá získat Wi-Fi, takže pro ta místa budu potřebovat síť s Arduino a RF přijímači.
Pro zábavný projekt, podívejte se jak vytvořit tlačítko Wi-Fi s ESP8266 Jak si vyrobit vlastní Wi-Fi připojené tlačítko s ESP8266V tomto tutoriálu se naučíte, jak vytvořit tlačítko s podporou Wi-Fi pomocí NodeMCU a IFTTT. Přečtěte si více .
Ale co uděláte s ESP8266? Nějaké projekty používající ESP8266, které byste rádi viděli napsané na MakeUseOf? Dejte nám vědět v komentářích!
James má bakalářský titul v oboru umělé inteligence a je držitelem certifikátu CompTIA A + a Network +. Je hlavním vývojářem MakeUseOf a tráví svůj volný čas hraním VR paintballu a deskových her. Staví počítače od dětství.