Kako napraviti svoj vlastiti gumb spojen na Wi-Fi pomoću ESP8266

  • William Charles
  • 1
  • 1668
  • 292
Oglas

Internet stvari ima ogroman potencijal radi. 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 takvim ako ste ikada koristili Amazon Dash tipku za preuređivanje svakodnevnih predmeta u domaćinstvu.

Danas ćemo napraviti gumb omogućen za Wi-Fi pomoću NodeMCU i programirati ga za upotrebu IFTTT-a za ... dobro, bilo što! Pismene upute koje slijede nakon videozapisa, ako želite.

Što će vam trebati

Trebat će vam:

  • 1 x NodeMCU (ESP8266) ploča, dostupna za 2-3 dolara na AliExpressu
  • 1 x tipka
  • 1 x LED (opcionalno)
  • Otpornik 1 x 220 Ohm (opcija)
  • Žice za ploču i žice za spajanje
  • Micro USB za programiranje
  • Računalo s instaliranim Arduino IDE

Osim NodeMCU, većinu ovih dijelova trebali biste moći pronaći u bilo kojem Arduino startnom kompletu 4 Najbolja starterska seta za Arduino početnike 4 najbolja starterska seta za Arduino početnike Postoji puno sjajnih Arduino početnika koji možete koristiti za početak rada, ali prvo će vam trebati Arduino i neke komponente. Evo našeg 4 najbolje opreme za…. Ovaj će tutorial pretpostaviti da koristite opcionalni LED i otpornik, ali oni nisu bitni.

Korak 1: Postavljanje kruga

Postavljanje hardvera vrlo je jednostavno za ovaj projekt. Postavite ploču u skladu s ovim dijagramom.

Ljubičasta žica se pričvršćuje pin D0 na jednu stranu gumba. Zelena žica povezuje drugu stranu gumba s RST pin. Plava žica teče od pin D1 na otpornik i LED. Negativna LED dioda pričvršćuje se na GND pin NodeMCU.

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

Ako se pitate kako sam postigao da moj LED ide na uzemljenje pomoću samo tih sitnih komadića kabela, naš tečaj brzog rušenja ploče Što je krušna ploča i kako to radi? Brzi tečaj rušenja Što je ploča i kako djeluje? Tečaj brzog sudara Želite li naučiti samostalnu elektroniku? Možda ste dobili osnovnu ploču u svom priboru. Ali što je to daska i kako to funkcionira? trebao bi pomoći da to raščisti! Provjerite vaše postavke i priključite NodeMCU na računalo putem USB-a.

2. korak: Postavljanje IDE-a

Prije nego što započnete s kodiranjem, morate napraviti neke pripreme. Ako već niste, postavite Arduino IDE da prepozna vašu NodeMCU ploču. Možete ga dodati na svoj popis putem Datoteka> Postavke.

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

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


Sljedeća pretraga IFTTTWebhook John Romkey i instalirajte najnoviju verziju. Ova je knjižnica osmišljena kako bi pojednostavila postupak slanja web-kukica na IFTTT.

To je sve što nam je potrebno, pripremimo kod!

Kako će kodeks raditi

Koristit ćemo se ESP8266WIFI knjižnica za uspostavljanje Wi-Fi veze. IFTTTWebhooks knjižnica podnosi zahtjev IFTTT-u, u ovom slučaju za objavu na Twitteru. Zatim uputite ploči NodeMCU da spava kad se ne koristi za uštedu energije.

Kada pritisnete gumb, povezat će D0 i RST igle. To resetira ploču, a proces se ponavlja.

Većina koda u ovom vodiču dovoljno je početna. Rečeno je, ako započinjete, mnogo ćete lakše razumjeti nakon što slijedite naš Arduino vodič za početnike.

Ovaj će vodič kroz kôd pronaći komade kako bi vam pomogao u razumijevanju. Ako se želite odmah baviti poslom, kompletan kod možete pronaći na Pastebinu. Imajte na umu da ćete i dalje morati ispuniti svoje Wi-Fi i IFTTT vjerodajnice u ovom kodu da bi one mogle funkcionirati!

Korak 3: Ispitivanje dubokog sna

Za početak, napravit ćemo jednostavan test koji će pokazati kako djeluje dubok san. Otvorite novu skicu u ID-u Arduino. Unesite sljedeća dva dijela koda.

#include #include #define ledPin 5 #define wakePin 16 #define ssid "YOUR_WIFI_SSID" #define lozinka "YOUR_WIFI_PASSWORD" #define IFTTT_API_KEY "IFTTT_KEY_GOES_HERE" #define IFTT_NAME IFTT_NAME IFTTENT IFTT_NAME IFTT_NAME IFTT_NAME IFTTENT IFTT_NAME 

Ovdje uključujemo naše biblioteke, zajedno s definiranjem nekoliko varijabli koje će nam biti potrebne u našoj skici. Primijetit ćete da su ledPin i wakePin ovdje numerirani drugačije u odnosu na gornji dijagram Fritzing. NodeMCU ima drugačiji pinout na Arduino ploče. To, međutim, nije problem zbog ovog zgodnog dijagrama:

Sada stvorite funkciju postavljanja:

void setup () Serial.begin (115200); while (! Serial)  Serial.println (""); // ispisati prazan redak prije i nakon gumba Pritisnite Serial.println ("Pritisnut gumb"); Serial.println (""); // ispisati praznu liniju ESP.deepSleep (wakePin);  

Ovdje smo postavili svoj serijski ulaz i koristili petlju za čekanje dok ne počne. Budući da će se ovaj kôd pokrenuti nakon pritiska na tipku za resetiranje, ispisujemo “Pritisnut gumb” na serijski monitor. Zatim, kažemo NodeMCU da ide u dubok san dok gumb koji povezuje wakePin prema RST pin je pritisnut.

Konačno, za testiranje dodajte ovo u svoj petlja() metoda:

void loop () // ako duboko spavanje radi, ovaj se kôd nikad neće pokrenuti. Serial.println ("Ovo se ne smije tiskati");  

Obično, Arduino skice pokreću funkciju petlje nakon postavljanja. Budući da šaljemo ploču da spava prije nego što se postavljanje završi, petlja se nikada ne pokreće.

Spremite svoju skicu i prenesite je na ploču. Otvorite serijski monitor i trebali biste vidjeti “Pritisnut gumb.” Svaki put kada se gumb aktivira, ploča se resetira i poruka se ponovo ispisuje. Radi!

Napomena o serijskom monitoru

Možda ste primijetili neke gluposti u serijskom monitoru tijekom nekih vaših projekata. To je obično zbog toga što serijski monitor nije postavljen na istu brzinu prijenosa kao na Serial.begin (XXXX) stopa.

Mnogi vodiči sugeriraju pokretanje serijske veze brzinom prijenosa od 115200 za ovakav projekt. Pokušao sam s mnogim kombinacijama, a svi su imali različit stupanj grozljivosti prije i nakon serijskih poruka. Prema različitim postovima na forumu, to bi moglo biti ograničeno na problem kompatibilnosti ploče ili softvera. Kako to ne utječe previše na projekt, odlučujem se da se pravim da se on ne događa.

Ako imate problema sa serijskim monitorom, pokušajte s različitim brzinama prijenosa i pogledajte koji 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 ("Spajanje na: SSID NAME"); // komentirati sljedeći redak za prikaz SSID imena //Serial.print(ssid); WiFi.begin (ssid, lozinka); Serial.println (""); // ispisati prazan redak Serial.print ("Pokušaj povezivanja:"); // pokušajte se povezati 10 sekundi int i = 10; dok je (WiFi.status ()! = WL_CONNECTED && i> = 0) kašnjenje (1000); Serial.print (i); Serial.print (","); i--;  Serial.println (""); // ispisati prazan redak // rezultat veze s ispisom if (WiFi.status () == WL_CONNECTED) Serial.print ("Povezano."); Serial.println (""); // ispisati prazan redak Serial.print ("ip adresa NodeMCU:"); Serial.println (WiFi.localIP ());  else Serial.println ("Veza nije uspjela - provjerite vjerodajnice ili vezu");  

Ova se metoda pokušava spojiti na vašu mrežu deset puta s razmakom između. Uspjeh ili neuspjeh veze ispisuje na serijski monitor.

Korak 5: Pozivanje metode povezivanja

Upravo sada connectToWifi () nikad se ne zove. Dodajte poziv svojoj funkciji postavljanja između “Pritisnut gumb” poruka i slanje ploče na spavanje.

connectToWifi (); 

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


Na vrhu skice zamijenite SSID i zaporka varijable s vašim Wi-Fi vjerodajnicama. Spremite svoju skicu i prenesite na ploču.

Sad kad se ploča čizma pokušati se povezati na vašu Wi-Fi mrežu, prije nego što se vrati na funkciju postavljanja. E sad, postavimo IFTTT integraciju.

Korak 6: Postavljanje IFTTT integracije

IFTTT omogućuje integraciju s velikim nizom web usluga. Koristili smo ga u našem Wi-Fi PC tutorialu za slanje upozorenja kad god primimo novu e-poštu. Danas ćemo ga koristiti za slanje tvita pritiskom na gumb.

Dođite do odjeljka Moji Appleti stranicu i odaberite Novi applet

Kliknite na +ovaj i povezati se Webhooks. Odaberi “Primite web zahtjev” i imenovati svoj događaj. Neka bude jednostavno! Zapišite naziv događaja, trebat ćete ga kasnije dodati u svoj NodeMCU kôd. Klik “Stvorite okidač”.


Sada odaberite +da. Potražite Cvrkut uslugu i povezivanje s njom - trebat ćete je autorizirati da objavljuje na svom Twitter računu. Odaberi “Objavi tweet” i odaberite svoju poruku.


Sljedeći će se ekran tražiti da pregledate aplet. Kliknite završi. To je to!

Korak 7: Dodavanje IFTTT vjerodajnica u kôd

Natrag u Arduino IDE morat ćete dodati svoj IFTTT API ključ i naziv događaja vašim definiranim varijablama. Da biste pronašli ključ API-ja, idite na Moji Appleti i odaberite Webhooks ispod usluge kartica. Odaberi Dokumentacija za pristup vašem ključu.

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

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

Napominjemo da preokrenuti zarezi moraju ostati, samo zamijeniti tekst.

Između pozivanja connectToWifi () i slanjem ploče u stanje mirovanja stvorite instancu objekta knjižnice IFTTTWebhook. LED signalizira završetak zadatka prije nego što se duboko spavanje ponovo započne.

// upravo spojen na Wi-Fi IFTTTWebhook kuku (IFTTT_API_KEY, IFTTT_EVENT_NAME); hook.trigger (); pinMode (ledPin, OUTPUT); digitalWrite (ledPin, HIGH); kašnjenja (200); digitalWrite (ledPin, LOW); // koja sada šalje ploču u stanje mirovanja 

Pozivanje okidača na kuka objekt aktivira IFTTT aplet i trebao bi ga objaviti na vašem Twitter računu. Spremite svoju skicu i prenesite je. Sada biste trebali imati potpuno funkcionalan gumb za tweet.

Ako vam se čini da ne funkcionira, pažljivo provjerite svoj kôd i vjerodajnice za pogreške. Ako se stvarno zaglavite, uzmite puni kod odozgo i usporedite ga sa svojim.

Gotovo! Kako biste to mogli poboljšati?

Ovo je osnovna inačica gumba Wi-Fi, ali postoji mnogo načina da se ona može poboljšati. Radi jednostavnosti, ovdje se za napajanje koristi USB veza. Baterija bi ga učinila u potpunosti mobilnim, a futrola koja drži krug bio bi savršen početnički projekt 3D ispisa.

Unatoč dubokom snu, možda će vam se isprazniti baterija prilično brzo. Postoji mnogo savjeta za uštedu energije u Arduinu koji pomažu u ovakvim projektima. Iako je teže od ovog vodiča, ako ste napravili vlastiti Arduino svjestan napajanja ispočetka, gumb Wi-Fi na baterije akumulatora mogao bi trajati mjesecima!

Ovaj bi projekt bio savršen za daljinski pristup za pametne kućne aplikacije. Već postoji znatna količina alata za kućnu automatizaciju 10 najboljih IFTTT recepata za pametnu automatizaciju kuće 10 najboljih IFTTT recepata za pametnu automatizaciju kuće Pravi IFTTT recepti za vaš pametni dom mogu uštedjeti vrijeme, trud i energiju. Evo deset naših favorita za početak. dostupno na IFTTT-u. Kad vam se dopadnu osnove, možete upotrijebiti gotovo bilo koji senzor ili prekidač da biste pokrenuli praktički bilo koju uslugu koju možete zamisliti.

Kreditna slika: Vadmary / Depositphotos




01.04.23 08:57
Hi~! This is Bin. Greetings from KINGTOM, hope you find this mail well. Let's go straight to the point. KINGTOM specialized in exporting and manufacturing rubber parts since 1996. The reason I'm writing this mail to you is that I'm wondering whether we can have some business relationship at present or in the near future. We have rich experience in cooperating with GM, FORD, TELSA and BYD, and many other countries with complete certificates, it's truly that we could be your reliable partner. Should you have any interest, pls be kindly to let me know. If I didn't get the right person, it'd be appreciated for you to transfer the message to your purchasing or procurement department. Wait for your kindly further reply. Sorry bothering and thanks in advance. Bin WhatsApp : https://wa.me/8618922481856 https://wordpressbindotcom.mystrikingly.com
O modernoj tehnologiji, jednostavnoj i pristupačnoj.
Vaš vodič u svijetu moderne tehnologije. Naučite kako koristiti tehnologije i uređaje koji nas okružuju svaki dan i naučite kako otkriti zanimljivosti na Internetu.