Hogyan készítsünk saját Wi-Fi csatlakoztatott gombot az ESP8266 segítségével

Hogyan készítsünk saját Wi-Fi csatlakoztatott gombot az ESP8266 segítségével

A tárgyak internetében hatalmas DIY lehetőségek rejlenek. Elegendő know-how-val és néhány olcsó komponenssel összetett rendszert hozhat létre a csatlakoztatott eszközökből.





Néha azonban valami egyszerűre vágyik. Nincsenek harangok vagy sípok, csak egy gomb, amely egyetlen feladatot hajt végre. Lehet, hogy már ismeri az ilyesmit, ha valaha is használt Amazon Dash gombot a mindennapi háztartási cikkek átrendezéséhez.





Ma elkészítünk egy Wi-Fi-kompatibilis gombot egy NodeMCU segítségével, és beprogramozzuk, hogy az IFTTT-t használja ... nos, bármi! Írásbeli utasítások a videó után, ha úgy tetszik.





Amire szüksége lesz

Szükséged lesz:

  • 1 db NodeMCU (ESP8266) kártya, elérhető 2-3 dollár az AliExpressen
  • 1 x nyomógomb
  • 1 x LED (opcionális)
  • 1 x 220 Ohm ellenállás (opcionális)
  • Kenyértábla és csatlakozó vezetékek
  • Micro USB a programozáshoz
  • Számítógép, amelyen telepítve van az Arduino IDE

A NodeMCU -n kívül ezen alkatrészek nagy részét bármely Arduino kezdő készletben megtalálhatja. Ez az oktatóanyag feltételezi, hogy az opcionális LED -et és ellenállást használja, de ezek nem nélkülözhetetlenek.



1. lépés: Az áramkör beállítása

A hardver beállítása nagyon egyszerű ehhez a projekthez. Állítsa be a táblát az ábra szerint.

A lila drót rögzül D0 csap a gomb egyik oldalára. A zöld vezeték a gomb másik oldalát köti össze a RST csap . A kék huzal onnan indul D1 csap az ellenálláshoz és a LED -hez. A LED negatív lába a GND csap a NodeMCU.





A kenyértábla beállításakor valahogy így kell kinéznie:

Hogyan módosíthatom az alapértelmezett Google -fiókot?

Ha kíváncsi arra, hogy miként jutottam a LED -hez a földelőcsaphoz az apró kábelek segítségével, akkor gyorsan kenyértábla összeomlás tanfolyam segítene tisztázni! Ellenőrizze a beállításokat, és csatlakoztassa a NodeMCU -t a számítógéphez USB -n keresztül.





2. lépés: Az IDE beállítása

Mielőtt elkezdené a kódolást, előkészületeket kell tennie. Ha még nem tette meg, állítsa be az Arduino IDE -t, hogy felismerje a NodeMCU kártyát. Hozzáadhatja a táblák listájához a Fájl> Beállítások .

Ennek a lépésnek a részletesebb magyarázatát a NodeMCU bevezető cikkében találja.

A projekthez két könyvtár szükséges. Navigáljon ide Vázlat> Könyvtár bevonása> Könyvtárak kezelése . Keresés a következőre: ESP8266WIFI írta Ivan Grokhotkov és telepítse. Ez a könyvtár a Wi-Fi kapcsolatok létrehozásához készült a NodeMCU kártyával.

Következő keresés a IFTTTWebhook John Romkey és telepítse a legújabb verziót. Ez a könyvtár célja, hogy egyszerűsítse a webhook -ok IFTTT -re küldésének folyamatát.

Ennyi az előkészület, amire szükségünk van, kódoljunk!

Hogyan fog működni a kód

Használjuk a ESP8266WIFI könyvtárban Wi-Fi kapcsolat létrehozásához. Az IFTTTWebhooks A könyvtár kérést tesz az IFTTT-hez-ebben az esetben, hogy tegye közzé a Twitteren. Ezután utasítsa a NodeMCU kártyát alvó állapotba, amikor nincs használatban az energiatakarékosság érdekében.

Ha megnyomja a gombot, akkor összekapcsolja a D0 és RST csapok. Ez visszaállítja a táblát, és a folyamat megismétlődik.

Az oktatóanyag legtöbb kódja elég egyszerű a kezdők számára. Ez azt jelenti, hogy ha elkezdi, sokkal könnyebben megértheti, miután követte a miénk Arduino kezdő útmutató .

Ez az oktatóanyag darabonként végighalad a kódon, hogy segítsen a megértésben. Ha egyenesen az üzlethez szeretne fordulni, megtalálja a teljes kód Pastebin . Vegye figyelembe, hogy a Wi-Fi és az IFTTT hitelesítő adatait még be kell töltenie ebben a kódban, hogy működjön!

3. lépés: A mély alvás tesztelése

Először is készítünk egy egyszerű tesztet, amely megmutatja, hogyan működik a mély alvás. Nyisson meg egy új vázlatot az Arduino IDE -ben. Írja be az alábbi két kódrészletet.

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

Itt a könyvtárainkat, valamint néhány változót definiálunk, amelyekre vázlatunkban szükségünk lesz. Észre fogja venni, hogy a ledPin és a wakePin itt másképpen vannak számozva, mint a fenti Fritzing diagram. A NodeMCU más pinout -al rendelkezik, mint az Arduino táblák. Ez azonban nem probléma a praktikus diagram miatt:

Most hozzon létre egy beállítási funkciót:

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

Itt beállítjuk a soros portunkat, és a while ciklus segítségével várjuk meg, amíg elkezdődik. Mivel ez a kód a reset gomb megnyomása után aktiválódik, nyomtatunk 'Gomb megnyomva' a soros monitorhoz. Ezután azt mondjuk a NodeMCU -nak, hogy menjen mély alvásba, amíg a wakePin hoz RST csap le van nyomva.

Végül a teszteléshez adja hozzá ezt a sajáthoz hurok() módszer:

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

Általában az Arduino vázlatok a beállítás után folyamatosan futtatják a hurok funkciót. Mivel a táblát alvó állapotba küldjük a beállítás befejezése előtt, a ciklus soha nem fut.

Mentse el a vázlatát, és töltse fel a táblára. Nyissa meg a soros monitort, és látnia kell - Gomb megnyomva. Minden alkalommal, amikor a gomb megnyomódik, a tábla alaphelyzetbe áll, és az üzenet újra kinyomtatódik. Működik!

Megjegyzés a soros monitorról

Lehet, hogy néhány projektje során észrevett néhány hülyeség karaktert a soros monitoron. Ez általában annak köszönhető, hogy a soros monitort nem állítja be ugyanazzal az átviteli sebességgel, mint a Serial.begin (XXXX) mérték.

Sok útmutató azt javasolja, hogy egy ilyen projekthez 115200 baud sebességgel indítsa el a soros kapcsolatot. Sok kombinációt kipróbáltam, és mindegyikük különböző fokú hülyeséggel rendelkezett a soros üzenetek előtt és után. A különböző fórumbejegyzések szerint ennek oka lehet a hibás tábla vagy szoftverkompatibilitási probléma. Mivel ez nem befolyásolja rosszul a projektet, úgy döntök, mintha nem így történne.

amazon azt mondta, hogy a csomagomat kézbesítették, de nem

Ha problémái vannak a soros monitorral, próbálja ki a különböző átviteli sebességeket, és nézze meg, melyik működik a legjobban az Ön számára.

4. lépés: Csatlakozás a Wi-Fi-hez

Most hozzon létre egy funkciót a Wi-Fi hálózathoz való csatlakozáshoz.

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

Ez a módszer tízszer próbál csatlakozni a hálózathoz, egy másodperc között. Sikeres vagy sikertelen nyomtatás a soros monitorhoz.

5. lépés: A csatlakozási módszer meghívása

Most, a connectToWifi () soha nem hívják. Hívást adhat a beállítási funkcióhoz a „Gomb megnyomva” üzenet és a tábla alvó állapotba küldése között.

connectToWifi();

Ha kíváncsi, hogy ez hova illik, akkor ennek így kell kinéznie:

A vázlat tetején cserélje ki a ssid és Jelszó változókat a Wi-Fi hitelesítő adataival. Mentse el vázlatát, és töltse fel a táblára.

Most, amikor a tábla elindul, megpróbál csatlakozni a Wi-Fi hálózatához, mielőtt visszatér a beállítási funkcióhoz. Most állítsuk be az IFTTT integrációt.

6. lépés: Az IFTTT integráció beállítása

Az IFTTT lehetővé teszi az integrációt a webszolgáltatások széles skálájával. Ezt használtuk a Wi-Fi PC torony LED oktatóanyagunkban, hogy figyelmeztetést küldjünk, amikor új e-mail érkezik. Ma egy gombnyomásra tweet küldésére használjuk.

Navigáljon a Az én applikáim oldalon, és válassza a lehetőséget Új kisalkalmazás

Kattintson +ezt és csatlakozzon Webhooks . Válassza a lehetőséget 'Internetes kérés fogadása' és nevezze meg az eseményt. Ne komplikáld túl ! Jegyezze fel az esemény nevét, később hozzá kell adnia a NodeMCU kódjához. Kattintson 'Trigger létrehozása' .

Most válassza ki +azt . Keresse meg a Twitter szolgáltatást, és csatlakozzon hozzá --- engedélyeznie kell a Twitter-fiókjába történő közzétételhez. Válassza a lehetőséget 'Tweet közzététele' és válaszd ki az üzenetedet.

A következő képernyőn megkérheti, hogy tekintse át az appletet. Kattintson a Befejezés gombra. Ez az!

7. lépés: IFTTT hitelesítő adatok hozzáadása a kódhoz

Vissza az Arduino IDE -hez hozzá kell adnia az IFTTT API -kulcsot és az eseménynevet a meghatározott változókhoz. Az API -kulcs megkereséséhez navigáljon a Az én applikáim és válassza ki Webhooks alatt Szolgáltatások fülre. Válassza a lehetőséget Dokumentáció hogy hozzáférjen a kulcsához.

Másolja a kulcsot és az esemény nevét a kódjába, és cserélje le a hozzájuk beállított ideiglenes neveket.

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

Megjegyzés: a fordított vesszőknek meg kell maradniuk, csak helyettesíteniük kell a szöveget.

A hívás között connectToWifi () és a tábla alvó állapotba küldése hozzon létre egy példányt az IFTTTWebhook könyvtár objektumból. A LED jelzi a feladat befejezését, mielőtt a mély alvás újra elkezdődik.

(70368744177664), (2)
//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

Hívó trigger a horog objektum kigyullad az IFTTT kisalkalmazásból, és közzé kell tennie a Twitter -fiókjában. Mentse el a vázlatot, és töltse fel. Most már rendelkeznie kell egy teljesen működőképes tweetelő gombbal.

Ha úgy tűnik, hogy nem működik, ellenőrizze alaposan a kódot és a hitelesítő adatokat a hibák miatt. Ha valóban elakad, szerezze be a teljes kódot felülről, és hasonlítsa össze a sajátjával.

Kész! Hogyan javíthatná tovább?

Ez a Wi-Fi gomb alapverziója, de számos módon javítható. Az egyszerűség kedvéért itt az USB -csatlakozót használják az áramellátáshoz. Az akkumulátor teljesen mobilra tenné, és az áramkört tartó tok tökéletes kezdő 3D nyomtatási projekt lenne.

A mély alvás használata ellenére előfordulhat, hogy az akkumulátor elég gyorsan lemerül. Sokan vannak Arduino energiatakarékos tippek amelyek segítenek az ilyen típusú projektekben. Bár nehezebb, mint ez az oktatóanyag, ha a semmiből készítette saját energiatakarékos Arduino-ját, az akkumulátoros Wi-Fi gomb hónapokig tarthat!

Ez a projekt tökéletes lenne az intelligens otthoni alkalmazások távirányítójához. Már most is jelentős mennyiségű otthoni automatizálási kisalkalmazások elérhető az IFTTT -n. Az alapismeretek elvégzése után szinte bármilyen érzékelőt vagy kapcsolót használva gyakorlatilag bármilyen szolgáltatást elindíthat.

Kép jóváírása: Vadmary / Depositphotos

Részvény Részvény Csipog Email 6 hallható alternatíva: A legjobb ingyenes vagy olcsó hangoskönyv -alkalmazások

Ha nem szeretne fizetni a hangoskönyvekért, íme néhány nagyszerű alkalmazás, amelyek segítségével ingyen és legálisan hallgathatja azokat.

Olvassa tovább
Kapcsolódó témák
  • DIY
  • Arduino
  • DIY projekt oktatóanyagok
A szerzőről Ian Buckley(216 megjelent cikk)

Ian Buckley szabadúszó újságíró, zenész, előadó és videó producer, Berlinben, Németországban él. Amikor éppen nem ír vagy a színpadon, barkácsol elektronikával vagy kóddal, abban a reményben, hogy őrült tudós lesz.

Bővebben: Ian Buckley

Iratkozzon fel hírlevelünkre

Csatlakozz hírlevelünkhöz, ahol technikai tippeket, értékeléseket, ingyenes e -könyveket és exkluzív ajánlatokat találsz!

Feliratkozáshoz kattintson ide
Kategória Diy