Jak si vytvořit vlastní tlačítko pro připojení k Wi-Fi pomocí ESP8266

Jak si vytvořit vlastní tlačítko pro připojení k Wi-Fi pomocí ESP8266

Internet věcí má obrovský potenciál pro kutily. S dostatkem know-how a několika levnými komponentami můžete vybudovat komplexní systém připojených zařízení.





Někdy však chcete něco jednoduchého. Žádné zvonky ani píšťalky, jen tlačítko, které plní jeden úkol. Možná jste již s něčím podobným obeznámeni, pokud jste někdy použili tlačítko Amazon Dash k přeskupení předmětů každodenní potřeby v domácnosti.





Dnes vyrobíme tlačítko s podporou Wi-Fi pomocí NodeMCU a naprogramujeme ho tak, aby pomocí IFTTT dělalo ... no, cokoli! Písemné pokyny podle videa, pokud dáváte přednost.





Co budete potřebovat

Budete potřebovat:

  • 1 x deska NodeMCU (ESP8266), k dispozici pro 2-3 $ na AliExpress
  • 1 x tlačítko
  • 1 x LED (volitelně)
  • 1 x odpor 220 ohmů (volitelně)
  • Breadboard a hookup dráty
  • Micro USB pro programování
  • Počítač s nainstalovaným Arduino IDE

Kromě NodeMCU byste většinu těchto částí měli najít v jakékoli startovací sadě Arduino. Tento tutoriál předpokládá, že používáte volitelnou LED a odpor, ale nejsou zásadní.



Krok 1: Nastavení obvodu

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

Fialový drát se přichytí kolík D0 na jednu stranu tlačítka. Zelený vodič spojuje druhou stranu tlačítka s RST pin . Modrý drát běží od kolík D1 na odpor a LED. Negativní noha LED se připojí k GND pin NodeMCU.





Když je prkénko nastaveno, mělo by vypadat nějak takto:

jak získat google v roce

Pokud vás zajímá, jak jsem dostal svou LED k uzemnění pomocí pouze těch malých kousků kabelu, naše rychlé crashboard kurz by to mělo pomoci vyjasnit! Zkontrolujte své nastavení a připojte NodeMCU k počítači přes USB.





Krok 2: Nastavení IDE

Než se pustíte do kódování, musíte se trochu připravit. Pokud jste to ještě neudělali, nastavte Arduino IDE, aby rozpoznalo vaši desku NodeMCU. Můžete jej přidat do svého seznamu desek prostřednictvím 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 ESP8266 WIFI od Ivana Grokhotkova a nainstalujte jej. Tato knihovna je vytvořena pro vytváření připojení Wi-Fi s deskou NodeMCU.

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

To je celá příprava, kterou potřebujeme, pojďme kódovat!

Jak bude kodex fungovat

Použijeme ESP8266 WIFI knihovnu k navázání připojení Wi-Fi. The IFTTTWebhooks knihovna žádá IFTTT-v tomto případě o zveřejnění na Twitteru. Poté přiřaďte desce NodeMCU spánek, když se nepoužívá, aby se šetřila energie.

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

Většina kódu v tomto kurzu je pro začátečníky dostatečně jednoduchá. To znamená, že pokud začínáte, bude pro vás mnohem snazší porozumět tomu, když budete postupovat podle našich Průvodce pro začátečníky Arduina .

Tento tutoriál prochází kódem v blocích, aby pomohl s porozuměním. Pokud se chcete pustit rovnou do podnikání, můžete najít kompletní kód na Pastebin . Aby tento kód fungoval, budete ještě muset v tomto kódu vyplnit své přihlašovací údaje pro 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 bloky kódu.

#include
#include
#define ledPin 5
#define wakePin 16
#define ssid 'YOUR_WIFI_SSID'
#define password 'YOUR_WIFI_PASSWORD'
#define IFTTT_API_KEY 'IFTTT_KEY_GOES_HERE'
#define IFTTT_EVENT_NAME 'IFTTT_EVENT_NAME_HERE'

Zde zahrneme naše knihovny spolu s definováním několika proměnných, které budeme v náčrtu potřebovat. Všimnete si, že ledPin a wakePin jsou zde číslovány odlišně ve srovnání s Fritzingovým diagramem výše. NodeMCU má jiný pinout než desky Arduino. To však není problém, kvůli tomuto šikovnému diagramu:

Nyní vytvořte funkci nastavení:

void setup() {
Serial.begin(115200);
while(!Serial) {
}
Serial.println(' ');// print an empty line before and after Button Press
Serial.println('Button Pressed');
Serial.println(' ');// print an empty line
ESP.deepSleep(wakePin);
}

Zde nastavíme náš sériový port a pomocí cyklu while počkáme, až začne. Protože se tento kód spustí po stisknutí tlačítka reset, tiskneme 'Tlačítko stisknuto' na sériový monitor. Poté řekneme NodeMCU, aby šla do hlubokého spánku, dokud tlačítko spojující wakePin do RST kolík je stisknutý.

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

void loop(){
//if deep sleep is working, this code will never run.
Serial.println('This shouldn't get printed');
}

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

Uložte si skicu a nahrajte ji na tabuli. Otevřete sériový monitor a měli byste vidět 'Tlačítko stisknuto.' Při každém spuštění tlačítka se deska resetuje a zpráva se vytiskne znovu. Funguje to!

Poznámka k sériovému monitoru

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

Mnoho průvodců navrhuje u takového projektu zahájit sériové připojení s přenosovou rychlostí 115200. Vyzkoušel jsem mnoho kombinací a všechny měly různé stupně blábolení 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 způsobeno vadnou deskou nebo problémem s kompatibilitou softwaru. Protože to neovlivňuje projekt tak špatně, rozhodl jsem se předstírat, že se to neděje.

jak zastavím automatické přehrávání videí ve Firefoxu

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

Krok 4: Připojení k Wi-Fi

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

void connectToWifi() {
Serial.print('Connecting to: SSID NAME'); //uncomment next line to show SSID name
//Serial.print(ssid);
WiFi.begin(ssid, password);
Serial.println(' ');// print an empty line
Serial.print('Attempting to connect: ');
//try to connect for 10 seconds
int i = 10;
while(WiFi.status() != WL_CONNECTED && i >=0) {
delay(1000);
Serial.print(i);
Serial.print(', ');
i--;
}
Serial.println(' ');// print an empty line
//print connection result
if(WiFi.status() == WL_CONNECTED){
Serial.print('Connected.');
Serial.println(' ');// print an empty line
Serial.print('NodeMCU ip address: ');
Serial.println(WiFi.localIP());
}
else {
Serial.println('Connection failed - check your credentials or connection');
}
}

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

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

Právě teď, connectToWifi () nikdy není volán Přidejte do své funkce nastavení hovor mezi zprávou „Stisknutí tlačítka“ a odesláním desky do režimu spánku.

connectToWifi();

Pokud vás zajímá, kam se to hodí, mělo by to vypadat takto:

V horní části skici nahraďte ssid a Heslo proměnné s vašimi pověřeními Wi-Fi. Uložte si skicu a nahrajte na tabuli.

Když se deska spustí, pokusí se připojit k vaší síti Wi-Fi, než se vrátí k funkci nastavení. Nyní nastavíme integraci IFTTT.

Krok 6: Nastavení integrace IFTTT

IFTTT umožňuje integraci s rozsáhlou škálou webových služeb. Použili jsme to v našem tutoriálu LED Wi-Fi PC tower k odeslání upozornění při každém přijetí nového e-mailu. Dnes jej použijeme k odeslání tweetu stisknutím tlačítka.

Přejděte na Moje aplety stránku a vyberte Nový aplet

Klikněte na +toto a připojte se k Webhooky . Vybrat „Přijmout webovou žádost“ a pojmenujte svou událost. Udržujte to jednoduché ! Poznamenejte si název události, budete ji muset přidat do kódu NodeMCU později. Klikněte 'Vytvořit spoušť' .

Nyní vyberte +to . Vyhledejte soubor Cvrlikání službu a připojte se k ní --- budete ji muset autorizovat k odeslání na váš účet Twitter. Vybrat „Zveřejnit tweet“ a vyberte svou zprávu.

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

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

Zpět do Arduino IDE budete muset přidat klíč IFTTT API a název události k definovaným proměnným. Chcete -li najít klíč API, přejděte na Moje aplety a vyberte Webhooky 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 nahraďte pro ně nastavená dočasná jména.

#define IFTTT_API_KEY 'IFTTT_KEY_GOES_HERE'
#define IFTTT_EVENT_NAME 'IFTTT_EVENT_NAME_HERE'

Obrácené čárky musí zůstat, nahraďte pouze text.

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

přenášet kontakty z iPhone na Android
//just connected to Wi-Fi
IFTTTWebhook hook(IFTTT_API_KEY, IFTTT_EVENT_NAME);
hook.trigger();
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, HIGH);
delay(200);
digitalWrite(ledPin, LOW);
//now sending board to sleep

Spoušť volání na háček objekt vystřelí z apletu IFTTT a měl by být zveřejněn na vašem účtu Twitter. Uložte si skicu a nahrajte ji. Nyní byste měli mít plně funkční tlačítko tweetování.

Pokud se zdá, že nefunguje, pečlivě zkontrolujte kód a přihlašovací údaje, zda neobsahují chyby. Pokud se opravdu zaseknete, získejte celý kód shora a porovnejte jej se svým.

Hotovo! Jak byste to mohli dále vylepšit?

Toto je základní verze tlačítka Wi-Fi, ale existuje mnoho způsobů, jak jej lze vylepšit. Pro jednoduchost zde slouží k napájení připojení USB. Díky baterii by byl zcela mobilní a pouzdro s obvodem by bylo dokonalým projektem 3D tisku pro začátečníky.

Navzdory hlubokému spánku můžete zjistit, že se baterie vybije poměrně rychle. Je jich mnoho Tipy pro úsporu energie Arduino které pomáhají v těchto typech projektů. I když je to těžší než tento tutoriál, pokud jste si vyrobili vlastní Arduino s vědomím napájení, tlačítko Wi-Fi napájené z baterie může trvat měsíce!

Tento projekt by byl ideální pro dálkové ovládání pro chytré domácí aplikace. Existuje již značné množství applety pro domácí automatizaci k dispozici na IFTTT. Jakmile máte základy, můžete pomocí téměř jakéhokoli senzoru nebo přepínače spustit prakticky jakoukoli službu, kterou si dokážete představit.

Uznání: Vadmary / Depositphotos

Podíl Podíl tweet E-mailem 6 zvukových alternativ: Nejlepší bezplatné nebo levné aplikace pro audioknihy

Pokud vás nebaví platit za audioknihy, zde je několik skvělých aplikací, které vám umožní poslouchat je zdarma a legálně.

Číst dále
Související témata
  • DIY
  • Arduino
  • Návody na projekt DIY
O autorovi Ian Buckley(216 publikovaných článků)

Ian Buckley je nezávislý novinář, hudebník, performer a video producent žijící v Berlíně v Německu. Když nepíše nebo není na jevišti, pohrává si s elektronikou nebo kódem pro kutily v naději, že se stane šíleným vědcem.

Více od Iana Buckleyho

Přihlaste se k odběru našeho zpravodaje

Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné elektronické knihy a exkluzivní nabídky!

Kliknutím sem se přihlásíte k odběru
Kategorie Diy