Kako vlastitim gumbom za Wi-Fi povezati ESP8266

Kako vlastitim gumbom za Wi-Fi povezati ESP8266

Internet stvari ima veliki DIY potencijal. S dovoljno znanja i nekoliko jeftinih komponenti mogli biste izgraditi složen sustav povezanih uređaja.





Ponekad, međutim, želite nešto jednostavno. Bez zvona ili zvižduka, samo gumb koji obavlja jedan zadatak. Možda ste već upoznati s nečim ovakvim ako ste ikada koristili gumb Amazon Dash za promjenu redoslijeda svakodnevnih kućanskih potrepština.





Danas ćemo napraviti gumb s omogućenim Wi-Fi-jem pomoću NodeMCU-a i programirati ga za korištenje IFTTT-a za… pa, bilo što! Pisane upute nakon videozapisa, ako želite.





Što će vam trebati

Trebat će vam:

  • 1 x ploča NodeMCU (ESP8266), dostupna za 2-3 USD na AliExpressu
  • 1 x Tipkalo
  • 1 x LED (opcionalno)
  • 1 x 220 Ohm otpornik (opcionalno)
  • Oglasna ploča i žice za spajanje
  • Mikro USB za programiranje
  • Računalo s instaliranim Arduino IDE -om

Osim NodeMCU -a, većinu ovih dijelova trebali biste pronaći u bilo kojem Arduino početnom setu. Ovaj vodič će pretpostaviti da koristite opcionalnu LED i otpornik, ali oni nisu bitni.



Korak 1: Postavljanje kruga

Postavljanje hardvera za ovaj je projekt vrlo jednostavno. Postavite ploču prema ovom dijagramu.

Ljubičasta žica se pričvršćuje pin D0 s jedne strane gumba. Zelena žica povezuje drugu stranu gumba s RST pin . Plava žica teče od pin D1 na otpornik i LED. Negativni dio LED diode pričvršćuje se na GND pin NodeMCU -a.





Kad je ploča postavljena, trebala bi izgledati otprilike ovako:

igre za više igrača za android i ios

Ako se pitate kako moja LED dioda ide na uzemljenje pomoću samo tih sitnih dijelova kabela, naš je brzi kružni tečaj za ploču trebalo bi pomoći da se to razjasni! Provjerite svoje postavke i priključite svoj NodeMCU na računalo putem USB -a.





Korak 2: Postavljanje IDE -a

Prije nego što nastavite s kodiranjem, morate se pripremiti. Ako već niste, postavite Arduino IDE da prepozna vašu NodeMCU ploču. Možete ga dodati na popis ploča putem Datoteka> Postavke .

Detaljnije objašnjenje ovog koraka možete pronaći u našem uvodnom članku o NodeMCU -u.

Za ovaj projekt potrebne su dvije knjižnice. Dođite do Skica> Uključi knjižnicu> Upravljanje knjižnicama . Traziti ESP8266WIFI autora Ivana Grokhotkova i instalirajte ga. Ova je knjižnica napisana za uspostavljanje Wi-Fi veze s NodeMCU pločom.

Sljedeće pretraživanje za IFTTTWebhook by John Romkey i instalirajte najnoviju verziju. Ova je knjižnica osmišljena kako bi pojednostavila proces slanja web -dojavnika na IFTTT.

To je sve što nam je potrebno za pripremu, kodirajmo!

Kako će Kodeks funkcionirati

Koristit ćemo ESP8266WIFI knjižnicu za uspostavu Wi-Fi veze. The IFTTTWebhooks library upućuje zahtjev IFTTT-u --- u ovom slučaju za postavljanje na Twitter. Zatim, dajte ploči NodeMCU da spava kada se ne koristi radi uštede energije.

Kad pritisnete gumb, povezat će D0 i RST igle. Ovo poništava ploču i proces se ponavlja.

Većina koda u ovom vodiču dovoljno je jednostavna za početnike. Međutim, ako tek počinjete, bit će vam puno lakše razumjeti nakon što slijedite naše Arduino vodič za početnike .

Ovaj vodič vodi kroz komade u komadima radi lakšeg razumijevanja. Ako želite prijeći na posao, možete pronaći potpuni kod na Pastebinu . Imajte na umu da ćete u ovom kodu ipak morati ispuniti svoje vjerodajnice za Wi-Fi i IFTTT kako bi funkcionirao!

Korak 3: Testiranje dubokog sna

Za početak ćemo izraditi jednostavan test koji će pokazati kako funkcionira duboki san. Otvorite novu skicu u Arduino IDE -u. Unesite sljedeća dva dijela koda.

#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'

Ovdje uključujemo naše knjižnice, zajedno s definiranjem nekoliko varijabli koje će nam trebati u skici. Primijetit ćete da su ledPin i wakePin ovdje različito numerirani u odnosu na gornji Fritzingov dijagram. NodeMCU ima drugačiji pinout od Arduino ploča. To ipak nije problem, zbog ovog zgodnog dijagrama:

Sada stvorite funkciju postavljanja:

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

Ovdje postavljamo naš serijski port i koristimo while petlju da čekamo da počne. Budući da će se ovaj kôd aktivirati nakon pritiska na gumb za resetiranje, ispisujemo 'Pritisnite gumb' na serijski monitor. Zatim, kažemo NodeMCU -u da pređe u duboki san dok gumb ne poveže wakePin prema RST pin je pritisnut.

Na kraju, za testiranje, dodajte ovo u svoj petlja() metoda:

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

Obično Arduino skice neprestano pokreću funkciju petlje nakon postavljanja. Budući da šaljemo ploču u stanje mirovanja prije završetka postavljanja, petlja se nikad ne pokreće.

Spremite svoju skicu i postavite je na ploču. Otvorite serijski monitor i trebali biste vidjeti 'Tipka pritisnuta.' Svaki put kad se gumb aktivira, ploča se resetira i poruka se ponovno ispisuje. Radi!

Napomena o serijskom monitoru

Možda ste primijetili neke besmislene likove u serijskom monitoru tijekom nekih svojih projekata. To je obično posljedica ne postavljanja serijskog monitora na istu brzinu prijenosa kao Serial.begin (XXXX) stopa.

Mnogi vodiči predlažu pokretanje serijske veze brzinom prijenosa od 115200 za ovakav projekt. Isprobao sam mnoge kombinacije, a sve su imale različite stupnjeve besmislica prije i poslije serijskih poruka. Prema raznim postovima na forumima, to bi moglo biti posljedica neispravne ploče ili problema s kompatibilnošću softvera. Kako to ne utječe previše na projekt, odlučujem se pretvarati da se to ne događa.

mogu li xbox one koristiti bluetooth slušalice

Ako imate problema sa serijskim monitorom, isprobajte različite brzine prijenosa i pogledajte koja vam najbolje odgovara.

Korak 4: Spajanje na Wi-Fi

Sada stvorite funkciju za povezivanje s vašom Wi-Fi mrežom.

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

Ova metoda pokušava se povezati s vašom mrežom deset puta s sekundom između. Uspjeh ili neuspjeh povezivanja ispisuje se na serijski monitor.

5. korak: Pozivanje načina povezivanja

Upravo sada, connectToWifi () nikad se ne zove. Dodajte poziv svojoj funkciji postavljanja između poruke 'Pritisnuta tipka' i slanja ploče u san.

connectToWifi();

U slučaju da se pitate gdje ovo odgovara, to bi trebalo izgledati ovako:

Na vrhu skice zamijenite ssid i lozinka varijable s vašim vjerodajnicama za Wi-Fi. Spremite svoju skicu i prenesite je na ploču.

Sada, kada se ploča podigne, pokušat će se povezati s vašom Wi-Fi mrežom, prije nego što se vrati na funkciju postavljanja. Sada, postavimo IFTTT integraciju.

Korak 6: Postavljanje IFTTT integracije

IFTTT omogućuje integraciju s velikim brojem web usluga. Koristili smo ga u našem LED vodiču za Wi-Fi PC Tower za slanje upozorenja svaki put kada se primi nova e-poruka. Danas ćemo ga koristiti za slanje tvita pritiskom na gumb.

Idite na Moji jabuci stranicu i odaberite Novi Applet

Kliknite na +ovo i spojite se na Web -udice . Odaberi 'Primite web zahtjev' i imenujte svoj događaj. Neka bude jednostavno ! Zapišite naziv događaja, kasnije ćete ga morati dodati u svoj NodeMCU kôd. Klik 'Stvori okidač' .

Sada odaberite +to . Potražite Cvrkut uslugu i povežite se s njom --- morat ćete je ovlastiti za postavljanje na svoj Twitter račun. Odaberi 'Objavi tweet' i odaberite svoju poruku.

Sljedeći zaslon od vas će tražiti da pregledate aplet. Kliknite završi. To je to!

Korak 7: Dodavanje vjerodajnica IFTTT -a u Kodeks

Natrag u Arduino IDE -u morat ćete dodati IFTTT API ključ i naziv događaja u definirane varijable. Da biste pronašli API ključ, idite na Moji jabuci i odaberite Web -udice ispod Usluge tab. Odaberi Dokumentacija za pristup vašem ključu.

Kopirajte ključ i naziv događaja u svoj kôd, zamjenjujući privremena imena koja su im postavljena.

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

Napomena, obrnuti zarezi moraju ostati, samo zamijeniti tekst.

Između poziva connectToWifi () i slanjem ploče u stanje mirovanja, stvorite instancu objekta knjižnice IFTTTWebhook. LED signalizira dovršetak zadatka prije nego što duboki san ponovno počne.

artikli na veliko za prodaju na veliko
//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

Okidač pozivanja na kuka objekt aktivira IFTTT aplet i trebao bi objaviti na vašem Twitter računu. Spremite svoju skicu i prenesite je. Sada biste trebali imati potpuno funkcionalan gumb za tweetanje.

Ako vam se čini da ne radi, pažljivo provjerite ima li pogrešaka u vašem kodu i vjerodajnicama. Ako zaista zaglavite, nabavite cijeli kôd odozgo i usporedite ga sa svojim.

Gotovo! Kako biste to mogli dodatno poboljšati?

Ovo je osnovna verzija gumba za Wi-Fi, ali postoji mnogo načina na koje se to može poboljšati. Radi jednostavnosti, ovdje se za napajanje koristi USB veza. Baterija bi ga učinila potpuno mobilnim, a kućište koje drži krug bio bi savršen početnički projekt 3D ispisa.

Unatoč dubokom snu, možda ćete otkriti da bi se baterija brzo ispraznila. Ima ih mnogo Arduino savjeti za uštedu energije koji pomažu u ovakvim projektima. Iako je teže od ovog vodiča, ako ste napravili vlastiti Arduino svjestan snage od nule, Wi-Fi gumb na baterije mogao bi trajati mjesecima!

Ovaj bi projekt bio savršen za daljinski upravljač za aplikacije pametne kuće. Već postoji znatna količina apleti za kućnu automatizaciju dostupno na IFTTT -u. Nakon što ste shvatili osnove, možete koristiti gotovo bilo koji senzor ili prekidač za pokretanje praktički bilo koje usluge koju možete zamisliti.

Kredit za sliku: Vadmary / Depositphotos

Udio Udio Cvrkut E -pošta 6 zvučnih alternativa: najbolje besplatne ili jeftine aplikacije za audio knjige

Ako ne volite plaćati audioknjige, evo nekoliko sjajnih aplikacija koje vam omogućuju besplatno i legalno slušanje.

Pročitajte Dalje
Povezane teme
  • Uradi sam
  • Arduino
  • Vodiči za DIY projekte
O autoru Ian Buckley(216 objavljenih članaka)

Ian Buckley je slobodni novinar, glazbenik, izvođač i video producent koji živi u Berlinu, Njemačka. Kad ne piše ili je na pozornici, petlja s DIY elektronikom ili kodom u nadi da će postati ludi znanstvenik.

Više od Iana Buckleyja

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e -knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu