Kuidas luua oma ühendatud WiFi-nupp ESP8266 abil

Kuidas luua oma ühendatud WiFi-nupp ESP8266 abil

Asjade Internetil on tohutu DIY potentsiaal. Piisava oskusteabe ja mõne odava komponendi abil saate luua ühendatud seadmete keeruka süsteemi.





Vahel aga tahad midagi lihtsat. Ei mingeid kellasid ega vilesid, vaid nupp, mis täidab ühte ülesannet. Võib -olla olete sellise asjaga juba tuttav, kui olete kunagi kasutanud Amazon Dashi nuppu igapäevaste majapidamistarvete ümberjärjestamiseks.





Täna teeme NodeMCU abil Wi-Fi toega nupu ja programmeerime selle IFTTT kasutamiseks ... noh, kõike! Videole järgnevad kirjalikud juhised, kui soovite.





Mida vajate

Sa vajad:

  • 1 x NodeMCU (ESP8266) plaat, saadaval 2-3 dollarit AliExpressis
  • 1 x nupp
  • 1 x LED (valikuline)
  • 1 x 220 oomi takisti (valikuline)
  • Leivalaud ja ühenduskaablid
  • Micro USB programmeerimiseks
  • Arvuti, kuhu on installitud Arduino IDE

Lisaks NodeMCU -le peaksite enamiku neist osadest leidma mis tahes Arduino stardikomplektist. See õpetus eeldab, et kasutate valikulist LED -i ja takistit, kuid need pole hädavajalikud.



Samm: vooluringi seadistamine

Riistvara seadistamine on selle projekti jaoks väga lihtne. Seadistage oma plaat vastavalt sellele skeemile.

Lilla traat kinnitub tihvt D0 ühele poole nuppu. Roheline juhe ühendab nupu teise külje RST tihvt . Sinine juhe jookseb tihvt D1 takisti ja LED -i külge. LED -i negatiivne jalg kinnitub GND tihvt NodeMCU -st.





Kui leivaplaat on üles seatud, peaks see välja nägema umbes selline:

kuidas häkkida kellegi pangakontot

Kui te ei tea, kuidas ma saan oma LED -i maapinnale, kasutades neid pisikesi kaablitükke, siis meie kiire leivaplaadi kiirkursus peaks aitama asja selgeks teha! Kontrollige seadistusi ja ühendage NodeMCU arvutiga USB kaudu.





2. samm: IDE seadistamine

Enne kodeerimisega alustamist peate tegema mõned ettevalmistused. Kui te pole seda veel teinud, seadistage Arduino IDE oma NodeMCU plaati ära tundma. Saate selle oma tahvlite loendisse lisada Fail> Eelistused .

Selle sammu üksikasjalikuma selgituse leiate meie NodeMCU tutvustusartiklist.

Selle projekti jaoks on vaja kahte raamatukogu. Liikuge lehele Visand> Kaasa raamatukogu> Teekide haldamine . Otsima ESP8266WIFI Ivan Grokhotkov ja installige see. See raamatukogu on kirjutatud WiFi-ühenduste loomiseks NodeMCU tahvliga.

Järgmisena otsige IFTTTWebhook John Romkey ja installige uusim versioon. See raamatukogu on loodud veebihaakide IFTTT -le saatmise lihtsustamiseks.

See on kõik ettevalmistus, mida vajame, laseme koodida!

Kuidas kood töötab?

Me kasutame ESP8266WIFI raamatukogu, et luua WiFi-ühendus. The IFTTTWebhooks raamatukogu esitab IFTTT-le taotluse --- sel juhul Twitterisse postitamiseks. Seejärel juhendage NodeMCU plaati unerežiimi, kui seda ei kasutata, et säästa energiat.

Kui nuppu vajutatakse, ühendab see D0 ja RST tihvtid. See lähtestab tahvli ja protsess kordub.

Enamik selle õpetuse koodi on algajatele piisavalt lihtne. See tähendab, et kui alustate, on pärast meie järgimist palju lihtsam aru saada Arduino algajate juhend .

See õpetus läbib koodi tükkidena, et aidata teil aru saada. Kui soovite otse äri alustada, leiate selle täielik kood Pastebinis . Pange tähele, et selle funktsioneerimiseks peate selles koodis endiselt täitma oma WiFi ja IFTTT mandaadi!

3. samm: sügava une testimine

Alustuseks loome lihtsa testi, mis näitab sügava une toimimist. Avage Arduino IDE -s uus visand. Sisestage järgmised kaks kooditükki.

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

Siia kaasame oma teegid ja määratleme mõned muutujad, mida me oma visandis vajame. Märkate, et ledPin ja wakePin on siin nummerdatud erinevalt võrreldes ülaltoodud Fritzingi diagrammiga. NodeMCU -l on Arduino tahvlitel erinev pistikupesa. Selle käepärase diagrammi tõttu pole see siiski probleem:

Nüüd looge seadistusfunktsioon:

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

Siin seadistame oma jadapordi ja kasutame mõnda aega, et oodata, kuni see algab. Kuna see kood käivitub pärast lähtestamisnupu vajutamist, prindime 'Nupule vajutatud' jadamonitorile. Seejärel käsime NodeMCU -l minna sügavasse unne, kuni nuppu ühendab wakePin juurde RST tihvt on vajutatud.

Lõpuks lisage testimiseks see oma silmus () meetod:

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

Tavaliselt käivitavad Arduino visandid pärast seadistamist silmuse funktsiooni pidevalt. Kuna me saadame plaadi enne seadistamise lõppu magama, siis tsükkel ei tööta kunagi.

Salvestage oma visand ja laadige see tahvlile. Avage jadamonitor ja peaksite nägema 'Nupule vajutatud.' Iga kord, kui nupp käivitub, lähtestatakse tahvel ja teade prinditakse uuesti. See töötab!

Märkus jadamonitori kohta

Võib -olla olete mõne projekti ajal jadamonitoris märganud mõttetuid tegelasi. See on tavaliselt tingitud sellest, et jadamonitori pole samale andmeedastuskiirusele seadistatud Serial.begin (XXXX) määra.

Paljud juhendid soovitavad sellise projekti puhul alustada jadaühendust andmeedastuskiirusega 115200. Proovisin paljusid kombinatsioone ja neil kõigil oli enne ja pärast jadateateid erineval määral jama. Erinevate foorumipostituste kohaselt võib see olla vigase plaadi või tarkvara ühilduvuse probleem. Kuna see ei mõjuta projekti liiga halvasti, otsustan teeselda, et seda ei toimu.

Windows 10 ilmnes probleem arvuti lähtestamisel, muudatusi ei tehtud

Kui teil on jadamonitoriga probleeme, proovige erinevaid edastuskiirusi ja vaadake, mis teie jaoks kõige paremini sobib.

Samm 4: WiFi-ga ühenduse loomine

Nüüd looge funktsioon oma WiFi-võrguga ühenduse loomiseks.

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

See meetod proovib võrguga ühenduse luua kümme korda, vaheaeg on sekund. Seeriamonitoriga ühenduse printimine õnnestus või ebaõnnestus.

Samm 5: Ühendusmeetodi helistamine

Praegu, connectToWifi () ei kutsuta kunagi. Lisage kõne häälestusfunktsioonile sõnumi „Nupp vajutatud” ja tahvli unerežiimi vahele.

connectToWifi();

Kui te ei tea, kuhu see sobib, peaks see välja nägema järgmine:

Visandi ülaosas asendage ssid ja parool muutujaid teie WiFi mandaadiga. Salvestage oma visand ja laadige tahvlile.

Nüüd, kui plaat käivitub, proovib see enne seadistusfunktsiooni juurde naasmist teie Wi-Fi-võrguga ühenduse luua. Nüüd seadistame IFTTT integratsiooni.

6. samm: IFTTT integratsiooni seadistamine

IFTTT võimaldab integreerida suure hulga veebiteenustega. Kasutasime seda oma Wi-Fi PC torni LED-i õpetuses, et saata hoiatus iga uue e-kirja saamise korral. Täna kasutame seda säutsu saatmiseks ühe nupuvajutusega.

Liikuge lehele Minu apletid lehel ja valige Uus aplett

Kliki +see ja ühendage Veebikonksud . Valige „Veebipäringu saamine” ja nimetage oma sündmus. Olgu see lihtne ! Märkige sündmuse nimi üles, peate selle hiljem oma NodeMCU koodile lisama. Klõpsake nuppu „Loo päästik” .

Nüüd valige +see . Otsige Twitter teenust ja looge sellega ühendus-peate selle oma Twitteri kontole postitamiseks volitama. Valige 'Postita säuts' ja valige oma sõnum.

Järgmisel ekraanil palutakse teil aplett läbi vaadata. Klõpsake nuppu Lõpeta. See on kõik!

Samm: IFTTT mandaadi lisamine koodile

Tagasi Arduino IDE -s peate oma määratletud muutujatele lisama oma IFTTT API võtme ja sündmuse nime. API võtme leidmiseks liikuge lehele Minu apletid ja valige Veebikonksud all Teenused vahekaart. Valige Dokumentatsioon oma võtmele juurde pääseda.

Kopeerige võti ja sündmuse nimi oma koodi, asendades neile määratud ajutised nimed.

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

Pange tähele, et ümberpööratud komad peavad jääma, asendama ainult teksti.

Helistamise vahel connectToWifi () ja tahvli unerežiimi saatmine, looge IFTTTWebhooki raamatukogu objekti eksemplar. LED näitab töö lõpetamist enne sügava une algust.

netflixi rakendus Androidile ei tööta
//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

Helistamine käivitab konks objekt käivitatakse IFTTT apleti kaudu ja see tuleb postitada teie Twitteri kontole. Salvestage oma visand ja laadige see üles. Nüüd peaks teil olema täielikult toimiv säutsumise nupp.

Kui see ei tundu toimivat, kontrollige oma koodi ja mandaati hoolikalt vigade osas. Kui tõesti jänni jääte, hankige ülevalt täielik kood ja võrrelge seda enda omaga.

Valmis! Kuidas saaksite seda veelgi parandada?

See on Wi-Fi nupu põhiversioon, kuid seda saab täiustada mitmel viisil. Lihtsuse huvides kasutatakse siin toiteallikaks USB -ühendust. Aku muudaks selle täielikult mobiilseks ja vooluringi hoidev ümbris oleks ideaalne algaja 3D -printimise projekt.

Vaatamata sügava une kasutamisele võib aku tühjeneda üsna kiiresti. Seal on palju Arduino energiasäästu näpunäited mis aitavad seda tüüpi projektides. Kuigi see õpetus on keerulisem, kui teete oma energiasäästliku Arduino nullist, võib akutoitega WiFi-nupp kesta kuid!

See projekt sobiks ideaalselt nutikate kodurakenduste kaugjuhtimispuldiks. Neid on juba märkimisväärses koguses koduautomaatika apletid saadaval IFTTT -s. Kui olete põhitõed saanud, saate peaaegu iga anduri või lüliti abil käivitada praktiliselt kõik teenused, mida võite ette kujutada.

Pildi krediit: Vadmary / Depositphotos

Jaga Jaga Piiksuma E -post 6 kuuldavat alternatiivi: parimad tasuta või odavad audioraamaturakendused

Kui teile ei meeldi heliraamatute eest maksta, siis siin on mõned suurepärased rakendused, mis võimaldavad teil neid tasuta ja seaduslikult kuulata.

Loe edasi
Seotud teemad
  • DIY
  • Arduino
  • DIY projektiõpetused
Autori kohta Ian Buckley(Avaldatud 216 artiklit)

Ian Buckley on vabakutseline ajakirjanik, muusik, esineja ja videoprodutsent, kes elab Saksamaal Berliinis. Kui ta parasjagu ei kirjuta ega laval, nokitseb ta isetehtud elektroonika või koodi kallal, lootuses saada hulluks teadlaseks.

Rohkem Ian Buckleylt

Telli meie uudiskiri

Liituge meie uudiskirjaga, et saada tehnilisi näpunäiteid, ülevaateid, tasuta e -raamatuid ja eksklusiivseid pakkumisi!

Tellimiseks klõpsake siin
Kategooria Diy