Jak si vyrobit vlastní Wi-Fi připojené tlačítko s ESP8266

  • Edmund Richardson
  • 0
  • 4685
  • 740
reklama

Internet věcí má obrovský DIY potenciál. S dostatkem know-how a několika levnými komponenty byste mohli vytvořit komplexní systém připojených zařízení.

Někdy však chcete něco jednoduchého. Žádné zvonky ani píšťalky, pouze tlačítko, které provádí jediný úkol. Možná už jste něco takového obeznámili, pokud jste někdy použili tlačítko Amazon Dash k přeskupení předmětů každodenní domácnosti.

Dnes uděláme tlačítko s podporou Wi-Fi pomocí NodeMCU a naprogramujeme ho tak, aby používal IFTTT k tomu ... dobře, cokoli! Pokud dáváte přednost, písemné pokyny po videu.

Co budete potřebovat

Budete potřebovat:

  • 1 x deska NodeMCU (ESP8266), k dispozici za 2-3 $ na AliExpress
  • 1 x tlačítko
  • 1 x LED (volitelně)
  • 1 x 220 ohmový rezistor (volitelný)
  • Dráty na prkénko a háčky
  • Micro USB pro programování
  • Počítač s nainstalovaným Arduino IDE

Kromě NodeMCU byste měli být schopni najít většinu těchto dílů v libovolné sadě startérů Arduino. 4 Nejlepší startovací sady pro začátečníky Arduino ale nejdřív budete potřebovat Arduino a některé komponenty. Zde je náš výběr 4 z nejlepších startovacích souprav pro…. Tento tutoriál předpokládá, že používáte volitelnou LED a rezistor, ale nejsou nezbytné.

Krok 1: Nastavení obvodu

Nastavení hardwaru je pro tento projekt velmi jednoduché. Nastavte svou desku podle tohoto schématu.

Připojí se fialový drát pin D0 na jednu stranu tlačítka. Zelený vodič připojuje druhou stranu tlačítka k RST pin. Modrý drát běží od pin D1 na odpor a LED. Negativní rameno LED se připojí k GND pin NodeMCU.

Po nastavení prkénku by měla vypadat nějak takto:

Pokud vás zajímá, jak jsem dostal LED k uzemňovacímu kolíku pomocí právě těch drobných kousků kabelu, náš rychlý kurz havárie prkénku na prkénko Co je prkénko a jak to funguje? Kurz rychlého selhání Co je to prkénko a jak to funguje? Kurz rychlého selhání Chcete se naučit elektroniku pro kutily? Možná jste obdrželi prkénko ve vaší startovací sadě. Co je to prkénko a jak to funguje? měl by to pomoci vyčistit! Zkontrolujte nastavení a připojte NodeMCU k počítači přes USB.

Krok 2: Nastavení IDE

Než začnete s kódováním, musíte udělat nějaké přípravy. Pokud jste tak dosud neučinili, nastavte Arduino IDE tak, aby rozpoznávalo vaši NodeMCU desku. Můžete jej přidat do seznamu desek pomocí Soubor> Předvolby.

Podrobnější vysvětlení tohoto kroku najdete v našem úvodním článku NodeMCU.

Pro tento projekt jsou vyžadovány dvě knihovny. Navigovat do Skica> Zahrnout knihovnu> Spravovat knihovny. Hledat ESP8266WIFI od Ivan Grokhotkov a nainstalujte jej. Tato knihovna je vytvořena pro navazování připojení Wi-Fi s deskou NodeMCU.


Další hledání IFTTTWebhook od John Romkey a nainstalovat nejnovější verzi. Tato knihovna je navržena tak, aby zjednodušila proces odesílání webhooků na IFTTT.

To je veškerá příprava, kterou potřebujeme, nechá kód!

Jak bude kód fungovat

Použijeme ESP8266WIFI knihovna pro navázání připojení Wi-Fi. IFTTTWebhooks knihovna požádá IFTTT - v tomto případě o příspěvek na Twitter. Poté nařaďte desce NodeMCU, aby spala, pokud se nepoužívá, aby se šetřila energie.

Po stisknutí tlačítka se propojí D0 a RST kolíky. Tím se resetuje deska a proces se opakuje znovu.

Většina kódu v tomto tutoriálu je pro začátečníky dostatečně jednoduchá. To znamená, že pokud začínáte, zjistíte, že je mnohem snazší porozumět po provedení našeho průvodce Arduino pro začátečníky.

Tento tutoriál prochází kódem v blocích, aby pomohl porozumět. Pokud se chcete dostat přímo k podnikání, najdete kompletní kód v Pastebinu. Aby mohl fungovat, musíte v tomto kódu stále vyplnit své přihlašovací údaje Wi-Fi a IFTTT!

Krok 3: Testování hlubokého spánku

Nejprve vytvoříme jednoduchý test, který ukáže, jak funguje hluboký spánek. Otevřete novou skicu v Arduino IDE. Zadejte následující dva kousky kódu.

#include #include #define ledPin 5 #definine wakePin 16 #define ssid "YOUR_WIFI_SSID" #definujte heslo "YOUR_WIFI_PASSWORD" #definujte IFTTT_API_KEY "IFTTT_KEY_GOES_HERE "TVĚDĚJTE" 

Zde zahrnujeme naše knihovny a definujeme několik proměnných, které budeme v náčrtu potřebovat. Všimnete si, že ledPin a wakePin jsou zde očíslovány odlišně od výše uvedeného Fritzingova diagramu. NodeMCU má jiný pinout než desky Arduino. To však není problém kvůli tomuto užitečnému schématu:

Nyní vytvořte funkci nastavení:

neplatné nastavení () Serial.begin (115200); while (! Serial)  Serial.println (""); // vytiskněte prázdný řádek před a za tlačítkem Stiskněte Serial.println ("Tlačítko stisknuto"); Serial.println (""); // vytiskněte prázdný řádek ESP.deepSleep (wakePin);  

Zde jsme nastavili náš sériový port a pomocí smyčky while počkali, až začne. Protože se tento kód spustí po stisknutí tlačítka reset, tiskneme “Tlačítko stisknuto” na sériový monitor. Pak řekneme NodeMCU, aby šla do hlubokého spánku, dokud tlačítko spojující wakePin do RST pin je stlačen.

Nakonec to pro testování přidejte do svého smyčka() metoda:

void loop () // Pokud funguje hluboký spánek, tento kód se nikdy nespustí. Serial.println ("To by se nemělo vytisknout");  

Náčrtky Arduino obvykle po nastavení spouštějí funkci smyčky nepřetržitě. Protože posíláme desku do režimu spánku před ukončením instalace, smyčka se nikdy nespustí.

Uložte náčrt a nahrajte jej na tabuli. Otevřete sériový monitor a měli byste vidět “Tlačítko stisknuto.” Pokaždé, když se tlačítko spustí, deska se resetuje a zpráva se vytiskne znovu. Funguje to!

Poznámka k sériovému monitoru

Možná jste si všimli některých nesmyslných znaků na sériovém monitoru během některých vašich projektů. To je obvykle způsobeno nastavením sériového monitoru na stejnou přenosovou rychlost jako Serial.begin (XXXX) hodnotit.

Mnoho průvodců navrhuje zahájení sériového připojení při přenosové rychlosti 115200 pro takovýto projekt. Vyzkoušel jsem mnoho kombinací a všechny měly různou míru bláznovství před a po sériových zprávách. Podle různých příspěvků na fóru to může být vadný problém s kompatibilitou desky nebo softwaru. Protože to na projekt příliš nepůsobí, rozhodl jsem se předstírat, že se to neděje.

Pokud máte problémy se sériovým monitorem, zkuste různé přenosové rychlosti a zjistěte, která pro vás nejlépe funguje.

Krok 4: Připojení k Wi-Fi

Nyní vytvořte funkci pro připojení k vaší síti Wi-Fi.

void connectToWifi () Serial.print ("Připojení k: SSID NAME"); // odkomentujte další řádek pro zobrazení názvu SSID // Serial.print(ssid); WiFi.begin (ssid, heslo); Serial.println (""); // vytiskne prázdný řádek Serial.print ("Pokouší se připojit:"); // zkuste se připojit na 10 sekund int i = 10; while (WiFi.status ()! = WL_CONNECTED && i> = 0) delay (1000); Serial.print (i); Serial.print (","); já--;  Serial.println (""); // vytiskne prázdný řádek // výsledek tiskového připojení, pokud (WiFi.status () == WL_CONNECTED) Serial.print ("Connected."); Serial.println (""); // vytiskne prázdný řádek Serial.print ("ip adresa NodeMCU:"); Serial.println (WiFi.localIP ());  else Serial.println ("Připojení se nezdařilo - zkontrolujte přihlašovací údaje nebo připojení");  

Tato metoda se pokusí připojit k vaší síti desetkrát s vteřinou mezi nimi. Úspěch nebo selhání připojení se vytiskne na sériový monitor.

Krok 5: Volání metody připojení

Právě teď, connectToWifi () není nikdy povolán. Přidejte hovor do své funkce nastavení mezi “Tlačítko stisknuto” zprávu a odeslání desky do režimu spánku.

connectToWifi (); 

V případě, že vás zajímá, kam se to hodí, mělo by to vypadat takto:


V horní části náčrtu vyměňte ssid a Heslo proměnné s vašimi přihlašovacími údaji Wi-Fi. Uložte náčrt a nahrajte na tabuli.

Nyní, když se deska zavede, pokusí se připojit k vaší síti Wi-Fi, než se vrátí k funkci nastavení. Nyní můžete nastavit integraci IFTTT.

Krok 6: Nastavení integrace IFTTT

IFTTT umožňuje integraci s velkým množstvím webových služeb. Použili jsme jej v našem Wi-Fi PC tower LED tutoriálu k odeslání výstrahy, kdykoli obdržíte nový e-mail. Dnes ji použijeme k odeslání tweetu stisknutím tlačítka.

Přejděte na stránku Moje applety stránku a vyberte Nový applet

Klikněte na +tento a připojit se k Webhooks. Vybrat “Přijměte webový požadavek” a pojmenujte svou událost. Nech to být jednoduché! Poznamenejte si název události, budete ji muset později přidat do svého kódu NodeMCU. Klikněte na “Vytvořte spouštěč”.


Nyní vyberte +že. Hledejte Cvrlikání služby a připojte se k ní - budete ji muset autorizovat, abyste mohli zveřejňovat příspěvky na svůj účet Twitter. Vybrat “Odeslat tweet” a vyberte svou zprávu.


Na další obrazovce budete požádáni o kontrolu appletu. Klepněte na tlačítko Dokončit. A je to!

Krok 7: Přidání IFTTT pověření do kódu

Zpět v Arduino IDE budete muset do definovaných proměnných přidat klíč IFTTT API a název události. Chcete-li najít klíč API, přejděte na Moje applety a vyberte Webhooks pod Služby tab. Vybrat Dokumentace pro přístup ke svému klíči.

Zkopírujte klíč a název události do kódu a nahradte jim dočasná jména.

#define IFTTT_API_KEY "IFTTT_KEY_GOES_HERE" #define IFTTT_EVENT_NAME "IFTTT_EVENT_NAME_HERE" 

Všimněte si, že obrácené čárky musí zůstat, pouze nahradit text.

Mezi voláním connectToWifi () a odeslání desky do režimu spánku vytvořte instanci objektu knihovny IFTTTWebhook. LED dioda signalizuje dokončení úkolu dříve, než začne hluboký spánek.

// právě připojeno k Wi-Fi IFTTT Webhook hook (IFTTT_API_KEY, IFTTT_EVENT_NAME); hook.trigger (); pinMode (ledPin, OUTPUT); digitalWrite (ledPin, HIGH); zpoždění (200); digitalWrite (ledPin, LOW); // nyní odesíláme desku ke spánku 

Volání spouště na háček objekt odpálí applet IFTTT a měl by zaúčtovat na váš účet Twitter. Uložte náčrt a nahrajte jej. Nyní byste měli mít plně funkční tlačítko tweeting.

Pokud se nezdá, že by to fungovalo, zkontrolujte pečlivě svůj kód a přihlašovací údaje, zda neobsahují chyby. Pokud opravdu uvíznete, získejte celý kód shora a porovnejte jej s vlastním.

Hotovo! Jak byste to mohli vylepšit??

Toto je základní verze tlačítka Wi-Fi, ale existuje mnoho způsobů, jak by se dalo vylepšit. Pro zjednodušení se zde používá napájení USB. Baterie by ji učinila zcela mobilní a případ, ve kterém by byl obvod, by byl perfektním začátečníkem ve 3D tisku.

Přestože používáte hluboký spánek, možná zjistíte, že by se baterie vybila docela rychle. V těchto typech projektů je mnoho tipů na úsporu energie Arduino. Pokud jste si vytvořili svůj vlastní Arduino s vědomím, že je od začátku nulové, i když je to obtížnější, může tlačítko Wi-Fi napájené z baterie vydržet měsíce!

Tento projekt by byl ideální pro vzdálené aplikace pro inteligentní domácí aplikace. Existuje již značné množství domácích automatizačních appletů 10 nejlepších receptů IFTTT pro inteligentní domácí automatizaci 10 nejlepších receptů IFTTT pro inteligentní domácí automatizaci Správné recepty IFTTT pro váš inteligentní dům vám mohou ušetřit čas, úsilí a energii. Zde je deset našich oblíbených, abyste mohli začít. k dispozici na IFTTT. Jakmile máte základy dolů, můžete použít téměř jakýkoli senzor nebo přepínač pro spuštění prakticky jakékoli služby, kterou si dokážete představit.

Obrázek Kredit: Vadmary / Depositphotos




Bisher hat noch niemand einen Kommentar zu diesem Artikel abgegeben.

O moderní technologii, jednoduché a cenově dostupné.
Váš průvodce ve světě moderních technologií. Naučte se, jak používat technologie a pomůcky, které nás každý den obklopují, a naučte se, jak objevovat na internetu zajímavé věci.