Ako si vytvorte vlastné tlačidlo na pripojenie Wi-Fi pomocou ESP8266

Ako si vytvorte vlastné tlačidlo na pripojenie Wi-Fi pomocou ESP8266

Internet vecí má obrovský potenciál pre domácich majstrov. S dostatkom know-how a niekoľkými lacnými komponentmi by ste mohli postaviť komplexný systém prepojených zariadení.





Niekedy však chcete niečo jednoduché. Žiadne zvončeky ani píšťalky, iba tlačidlo, ktoré plní jednu úlohu. Niečo podobné už možno poznáte, ak ste niekedy použili tlačidlo Amazon Dash na zmenu objednávky predmetov každodennej potreby do domácnosti.





Dnes vyrobíme tlačidlo s podporou Wi-Fi pomocou NodeMCU a naprogramujeme ho tak, aby používalo IFTTT ... no, čokoľvek! Ak chcete, písomné pokyny podľa videa.





Čo budete potrebovať

Budete potrebovať:

  • 1 x doska NodeMCU (ESP8266), k dispozícii pre 2-3 doláre na AliExpress
  • 1 x tlačidlo
  • 1 x LED (voliteľné)
  • 1 x odpor 220 ohmov (voliteľné)
  • Breadboard a prípojné drôty
  • Micro USB na programovanie
  • Počítač s nainštalovaným IDE Arduino

Okrem NodeMCU by ste väčšinu týchto dielov mali nájsť v akejkoľvek štartovacej súprave Arduino. Tento tutoriál bude predpokladať, že používate voliteľnú diódu LED a odpor, ale nie sú nevyhnutné.



Krok 1: Nastavenie obvodu

Hardvérové ​​nastavenie je pre tento projekt veľmi jednoduché. Nastavte svoju dosku podľa tohto diagramu.

Fialový drôt sa prichytí kolík D0 na jednu stranu tlačidla. Zelený vodič spája druhú stranu tlačidla s Kolík RST . Modrý drôt beží od kolík D1 na odpor a LED. Negatívna noha diódy LED sa prichytí k Pin GND NodeMCU.





Keď je doska na pečenie nastavená, mala by vyzerať nasledovne:

ako spustiť hry systému Windows 98 v systéme Windows 10

Ak sa zaujímate, ako som dostal svoju LED diódu do uzemňovacieho kolíka pomocou iba tých malých kúskov kábla, rýchlo crashboard kurz by to malo pomôcť objasniť! Skontrolujte svoje nastavenie a pripojte NodeMCU k počítaču prostredníctvom USB.





Krok 2: Nastavenie IDE

Predtým, ako sa pustíte do kódovania, musíte sa trochu pripraviť. Ak ste to ešte neurobili, nastavte Arduino IDE, aby rozpoznalo vašu dosku NodeMCU. Môžete ho pridať do svojho zoznamu násteniek prostredníctvom Súbor> Predvoľby .

Podrobnejšie vysvetlenie tohto kroku nájdete v našom úvodnom článku NodeMCU.

Pre tento projekt sú potrebné dve knižnice. Prejdite na Skica> Zahrnúť knižnicu> Spravovať knižnice . Hľadať ESP8266 WIFI od Ivana Grokhotkova a nainštalujte ho. Táto knižnica je navrhnutá na vytváranie Wi-Fi pripojení k doske NodeMCU.

Ďalej vyhľadajte súbor IFTTTWebhook od Johna Romkeyho a nainštalujte si najnovšiu verziu. Táto knižnica je navrhnutá tak, aby zjednodušila proces odosielania webhookov na IFTTT.

To je všetko, čo potrebujeme k príprave, poďme kódovať!

Ako bude kódex fungovať

Použijeme ESP8266 WIFI knižnica na vytvorenie pripojenia Wi-Fi. The IFTTTWebhooks knižnica žiada IFTTT --- v tomto prípade o príspevok na Twitter. Potom dajte pokyn doske NodeMCU, aby sa uspala, keď sa nepoužíva, aby sa šetrila energia.

Po stlačení tlačidla sa prepojí súbor D0 a RST špendlíky. Tým sa doska vynuluje a postup sa zopakuje.

Väčšina kódu v tomto návode je pre začiatočníkov dostatočne jednoduchá. To znamená, že ak začínate, bude pre vás oveľa jednoduchšie porozumieť, keď sa budete riadiť našimi Sprievodca Arduino pre začiatočníkov .

Tento tutoriál prechádza kódom v kusoch, aby vám pomohol porozumieť. Ak sa chcete rovno pustiť do podnikania, môžete nájsť kompletný kód na Pastebin . Aby tento kód fungoval, budete musieť v tomto kóde stále vyplniť svoje poverenia Wi-Fi a IFTTT!

Krok 3: Testovanie hlbokého spánku

Na začiatok vytvoríme jednoduchý test, ktorý ukáže, ako funguje hlboký spánok. Otvorte nový náčrt v Arduino IDE. Zadajte nasledujúce dve časti 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'

Tu zahrnujeme naše knižnice spolu s definovaním niekoľkých premenných, ktoré budeme potrebovať v našom náčrte. Všimnete si, že LEDPin a WakePin sú tu očíslované odlišne v porovnaní s Fritzingovým diagramom vyššie. NodeMCU má iný vývod ako dosky Arduino. To však nie je problém, pretože tento praktický diagram:

Teraz vytvorte funkciu nastavenia:

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);
}

Tu sme nastavili náš sériový port a chvíľu počkali, kým sa začne. Pretože sa tento kód spustí po stlačení tlačidla reset, tlačíme „Stlačené tlačidlo“ na sériový monitor. Potom povieme NodeMCU, aby šla do hlbokého spánku, kým tlačidlo spájajúce wakePin do RST kolík je stlačený.

Nakoniec na testovanie pridajte toto do svojho slučka () metóda:

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

Po náčrtoch Arduino skici spravidla spúšťajú funkciu slučky nepretržite. Pretože posielame dosku spať pred dokončením nastavenia, slučka sa nikdy nespustí.

Uložte svoj náčrt a nahrajte ho na tabuľu. Otvorte sériový monitor a mali by ste vidieť 'Stlačené tlačidlo.' Pri každom spustení tlačidla sa doska resetuje a správa sa znova vytlačí. Funguje to!

Poznámka o sériovom monitore

Pri niektorých svojich projektoch ste si mohli všimnúť niektoré nezmyselné postavy na sériovom monitore. Dôvodom je zvyčajne nenastavenie sériového monitora na rovnakú prenosovú rýchlosť ako Serial.begin (XXXX) sadzba.

Mnoho sprievodcov navrhuje pre takýto projekt začať sériové pripojenie s prenosovou rýchlosťou 115 200. Skúsil som mnoho kombinácií a všetky mali rôzny stupeň gýča pred a po sériových správach. Podľa rôznych príspevkov na fóre za to môže problém s chybnou doskou alebo kompatibilitou softvéru. Keďže to neovplyvňuje projekt až tak zle, rozhodujem sa predstierať, že sa to nedeje.

ako získať vlastný prichytávací filter

Ak máte problémy so sériovým monitorom, vyskúšajte rôzne prenosové rýchlosti a zistite, ktorý vám najlepšie vyhovuje.

Krok 4: Pripojenie k sieti Wi-Fi

Teraz vytvorte funkciu na pripojenie k vašej sieti 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');
}
}

Táto metóda sa pokúša pripojiť k vašej sieti desaťkrát s prestávkou medzi nimi. Úspech alebo zlyhanie pripojenia sa vytlačí na sériový monitor.

Krok 5: Volanie spôsobu pripojenia

Práve teraz, connectToWifi () nikdy sa nevola. Pridajte hovor k svojej nastavovacej funkcii medzi správou „Stlačené tlačidlo“ a odoslaním dosky do režimu spánku.

connectToWifi();

V prípade, že vás zaujíma, kam to patrí, malo by to vyzerať takto:

V hornej časti náčrtu vymeňte ssid a heslo premenné s vašimi povereniami Wi-Fi. Uložte svoj náčrt a nahrajte ho na nástenku.

Keď sa doska spustí, pokúsi sa pripojiť k vašej sieti Wi-Fi a potom sa vráti k funkcii nastavenia. Teraz nastavme integráciu IFTTT.

Krok 6: Nastavenie integrácie IFTTT

IFTTT umožňuje integráciu s rozsiahlou škálou webových služieb. Použili sme to v našom návode na LED Wi-Fi PC tower na odoslanie upozornenia pri každom prijatí nového e-mailu. Dnes ho použijeme na odoslanie tweetu stlačením tlačidla.

Prejdite na Moje aplety stránku a vyberte položku Nový aplet

Kliknite na +toto a pripojiť sa k Webhooky . Vyberte „Prijať webovú žiadosť“ a pomenujte svoju udalosť. Nech je to jednoduché ! Poznamenajte si názov udalosti, budete ju musieť neskôr pridať do kódu NodeMCU. Kliknite „Vytvoriť spúšť“ .

Teraz vyberte +to . Vyhľadajte súbor Twitter službu a pripojte sa k nej --- budete ju musieť autorizovať na odosielanie na váš účet Twitter. Vyberte „Uverejniť tweet“ a vyberte svoju správu.

Nasledujúca obrazovka vás požiada o kontrolu apletu. Kliknite na Dokončiť. To je všetko!

Krok 7: Pridanie poverení IFTTT do kódu

V IDE Arduino budete musieť do definovaných premenných pridať svoj kľúč IFTTT API a názov udalosti. Ak chcete nájsť kľúč API, prejdite na Moje aplety a vyberte Webhooky pod Služby tab. Vyberte Dokumentácia prístup k vášmu kľúču.

Skopírujte kľúč a názov udalosti do kódu a nahraďte ním dočasné názvy.

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

Prevrátené čiarky musia zostať, nahraďte iba text.

Medzi zavolaním na connectToWifi () a odoslaním dosky do režimu spánku, vytvorte inštanciu objektu knižnice IFTTTWebhook. LED dióda signalizuje dokončenie úlohy skôr, ako sa opäť začne hlboký spánok.

aplikácia netflix pre Android nefunguje
//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

Spúšťač volania na háčik objekt sa spustí z apletu IFTTT a mal by byť zverejnený na vašom účte Twitter. Uložte svoj náčrt a nahrajte ho. Teraz by ste mali mať plne funkčné tlačidlo tweetovania.

Ak sa zdá, že nefunguje, dôkladne si skontrolujte kód a prihlasovacie údaje, či neobsahujú chyby. Ak sa skutočne zaseknete, získajte celý kód zhora a porovnajte ho so svojim.

Hotový! Ako by ste to mohli ešte vylepšiť?

Toto je základná verzia tlačidla Wi-Fi, ale existuje mnoho spôsobov, ako by sa dalo vylepšiť. Pre jednoduchosť tu slúži na napájanie pripojenie USB. Vďaka batérii by bol úplne mobilný a puzdro s obvodom by bolo perfektným začiatočníckym projektom 3D tlače.

Napriek hlbokému spánku môžete zistiť, že sa batéria vybije dosť rýchlo. Je ich veľa Tipy na úsporu energie Arduino ktoré pomáhajú v týchto typoch projektov. Aj keď je to ťažšie ako tento návod, ak ste si od začiatku vyrobili vlastné Arduino s vedomím napájania, tlačidlo Wi-Fi napájané z batérie môže vydržať niekoľko mesiacov!

Tento projekt by bol perfektný pre diaľkové ovládanie pre inteligentné domáce aplikácie. Existuje ich už značné množstvo aplety pre domácu automatizáciu k dispozícii na IFTTT. Akonáhle máte základy, môžete použiť takmer akýkoľvek senzor alebo prepínač na spustenie prakticky akejkoľvek služby, ktorú si dokážete predstaviť.

Obrazový kredit: Vadmary / Depositphotos

zdieľam zdieľam Tweet E -mail 6 zvukových alternatív: najlepšie bezplatné alebo lacné aplikácie pre zvukové knihy

Ak nechcete platiť za audioknihy, tu je niekoľko skvelých aplikácií, ktoré vám umožnia počúvať ich bezplatne a legálne.

Čítajte ďalej
Súvisiace témy
  • DIY
  • Arduino
  • Návody na projekt DIY
O autorovi Ian Buckley(216 publikovaných článkov)

Ian Buckley je nezávislý novinár, hudobník, performer a producent videa žijúci v Berlíne v Nemecku. Keď nepíše, alebo nie je na javisku, pohráva si s elektronikou alebo kódom pre domácich majstrov v nádeji, že sa stane šialeným vedcom.

Viac od Iana Buckleyho

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné elektronické knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber
Kategórie Diy