Tartalomjegyzék:
- 1. lépés: Amire szükség van
- 2. lépés: Toronyépítés
- 3. lépés: bekötési rajz
- 4. lépés: Működési elv
- 5. lépés: MP3 lejátszó
- 6. lépés: A program feltöltése az Arduino programba
- 7. lépés: Vezérlés
- 8. lépés: Üzenetek küldése URL -ek használatával
- 9. lépés: Bármilyen URL -cím az üzenetküldéshez
- 10. lépés: Integráció az IFTTT 1/7 programmal
- 11. lépés: Integráció az IFTTT 2/7 programmal
- 12. lépés: Integráció az IFTTT 3/7 programmal
- 13. lépés: Integráció az IFTTT 4/7 programmal
- 14. lépés: Integráció az IFTTT 5/7 programmal
- 15. lépés: Integráció az IFTTT 6/7 programmal
- 16. lépés: Integráció az IFTTT 7/7 programmal
- 17. lépés: Összefoglalás
Videó: Értesítő: 17 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:43
Az eszköz csatlakoztatható például az IFTTT rendszerhez, és reagálhat, ha új levél jelenik meg. Az app.remoteme.org oldalon hívás után létrehozunk egy linket, amelyet a bájtok elküldnek az Arduino -nak, az Arduino pedig fényeffektust jelenít meg, és mp3 -t játszik le az SDcardról
1. lépés: Amire szükség van
- NodeMCU, WemOS vagy valami hasonló
- Két LED -gyűrű WS2812B diódákkal (16. LED -es gyűrűket használtam)
- DFRobotDFPlayerMini - ez az mp3 lejátszó. MP3 -t játszik le az SD -kártyáról, és kommunikál az Arduino -val RX/TX segítségével
- Hangszóró
- SD kártya
- Logikai átalakító -Én ezt használtam, az mp3 lejátszó 5 V -ot és Arduino 3.3 -at használ, ezért van szükségünk erre az átalakítóra
- Tudás és készségek egyszerű PCB -k készítéséhez önmagunk által
A torony:
- karton - két különböző vastagságú
- Pauszpapír
- alufólia
2. lépés: Toronyépítés
A torony terve felett, oldalnézetben (kalandom a műszaki rajzzal az általános iskolában ért véget), minden méret milliméterben.
Működés elve
- világító LED -ek gyűrűje
- Pauszpapír
- A csonkakúp, kartonból készült és alumínium fóliával borított, így visszaveri a LED-es gyűrűk fényeit, a 3. ábrán '= a kivágott háló
- kartondoboz - függőlegesen tartja a tornyokat, a cső belsejében kábelek vannak a ledekhez
- A magasság tőled függ, nekem 85 mm van
- Az állvány minden elektronikai alkatrészen belül
Minden vízszintes elemet vastagabb kartonból kell készíteni.
3. lépés: bekötési rajz
Az mp3 lejátszó 5 V feszültséggel van ellátva, és TX / RX -en keresztül kommunikál az Arduino -val, logikai átalakítóra van szükség, mert maga az Arduino 3,3 V feszültségen működik. A gyűrűk vezérlése szintén az Arduino -hoz (D5, D6) kapcsolódik a logikai átalakítón keresztül.
A tárolóban sas fájlokat talál PCB tervekkel
Azt javaslom, hogy az Arduino -t és az mp3 -lejátszót ne forraszthassák véglegesen, csak női aranycsapokat használva
4. lépés: Működési elv
Az Arduino ezen a kapcsolaton keresztül csatlakozik az app.remoteme.org rendszerhez a WebSockets segítségével (vannak kész könyvtárak): 5 bájtos üzeneteket küld:
- a fényeffektus első bájtja a felső LED -gyűrűhöz
- második bájtos fényhatás az alsó LED -gyűrűhöz
- a lejátszandó mp3 fájl száma
- a fényhatás és az mp3 lejátszási ideje
- hogy az mp3 -t egyszer kell -e lejátszani vagy ciklusban
forráskód
A teljes forráskód itt található
a SingleRing.cpp és SingleRing.h fájlokban van egy osztály, amely a LED -gyűrűk hatásait vezérli. Javaslom, hogy kezdje a setMode (int m) függvény megtekintésével:
void SingleRing:: setMode (int m) {switch (m) {case 0: setConfiguration (0, 0, 50, 0, 5, 1); break; // off = 0 case 1: setConfiguration (6, 0, 50, 0, 0, 20); break; // szilárd standard zöld tok 2: setConfiguration (6, 0, 0, 50, 0, 20); break; // szilárd kék kék tok 3: setConfiguration (6, 50, 0, 0, 0, 20); break; // szilárd standard piros tok 4: setConfiguration (6, 50, 10, 0, 0, 20); break; // szilárd standard narancssárga tok 5: setConfiguration (1, 0, 100, 0, 5, 2); break; // rendőrség az óramutató járásával megegyező irányban zöld tok 6: setConfiguration (1, 0, 100, 0, 5, -2); break; // a rendőrség visszaállítja a zöld esetet 7: setConfiguration (1, 0, 0, 100, 5, 2); break; // rendőrség óramutató járásával megegyező irányban kék tok 8: setConfiguration (1, 0, 0, 100, 5, -2); break; // a rendőrség visszaállítja a kék esetet 9: setConfiguration (1, 100, 0, 0, 5, 2); break; // rendőrségi standard piros tok 10: setConfiguration (1, 100, 0, 0, 5, -2); break; // a rendőrség visszaállítja a piros esetet 11: setConfiguration (1, 100, 20, 0, 5, 2); break; // rendőrségi standard narancssárga tok 12: setConfiguration (1, 100, 20, 0, 5, -2); break; // a rendőrség visszaállítja a narancssárga tokot 13: setConfiguration (2, 0, 0, 50, 8, 10); break; // cross standard blue case 14: setConfiguration (2, 0, 0, 50, 8, -10); break; // cross revert blue case 15: setConfiguration (5, 0, 50, 0, 0, 20); break; // villog a szabványos zöld tok 16: setConfiguration (5, 0, 50, 0, 0, -20); break; // blink odwyrtka green case 17: setConfiguration (5, 0, 0, 50, 0, 20); break; // villog a szabványos kék tok 18: setConfiguration (5, 0, 0, 50, 0, -20); break; // blink revert blue case 19: setConfiguration (5, 50, 0, 0, 0, 20); break; // blink standard vörös eset 20: setConfiguration (5, 50, 0, 0, 0, -20); break; // blink revert red case 21: setConfiguration (5, 50, 10, 0, 0, 20); break; // villog a standard narancssárga tok 22: setConfiguration (5, 50, 10, 0, 0, -20); break; // blink revert narancs alapértelmezett: setConfiguration (0, 0, 50, 0, 5, 1); szünet; // ki = 0}}
a megadott paramétertől függően a gyűrű megjeleníti az effektust. Hozzáadhatja saját hatását a setConfiguration függvény meghívásával új paraméterekkel (színváltozás, megjelenítési sebesség) új mód hozzáadásával vagy teljesen új effektus hozzáadásával - vagy ha tetszik, jelezze a megjegyzésekben
arduino.ino:
#include "Arduino.h" #include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h"
#befoglalni
#include #include #include "SingleRing.h"
#befoglalni
#befoglalni #befoglalni
#befoglalni
#define WIFI_NAME ""
#define WIFI_PASSWORD "" #define DEVICE_ID 205 #define DEVICE_NAME "sziréna" #define TOKEN ""
#define DIODES_COUNT 16
SingleRing top = SingleRing (DIODES_COUNT, D5);
SingleRing alsó = SingleRing (DIODES_COUNT, D6);
SoftwareSerial mySoftwareSerial (D4, D3); // RX, TX
DFRobotDFPlayerMini myDFPlayer; RemoteMe & remoteMe = RemoteMe:: getInstance (TOKEN, DEVICE_ID);
ESP8266WiFiMulti WiFiMulti;
void setup () {mySoftwareSerial.begin (9600); Sorozat.kezdet (115200);
if (! myDFPlayer.begin (mySoftwareSerial)) {// A softwareSerial használata az mp3 -al való kommunikációhoz.
Serial.println (F ("Nem lehet elkezdeni:")); Serial.println (F ("1. Kérem, ellenőrizze újra a kapcsolatot!")); Serial.println (F ("2. Kérem helyezze be az SD kártyát!")); míg (igaz); } Serial.println (F ("DFPlayer Mini online."));
myDFPlayer.setTimeOut (500); // Soros kommunikációs időt állítson be 500 ms -ra
myDFPlayer.volumen (30);
myDFPlayer. EQ (DFPLAYER_EQ_NORMAL);
myDFPlayer.outputDevice (DFPLAYER_DEVICE_SD); WiFiMulti.addAP (WIFI_NAME, WIFI_PASSWORD); while (WiFiMulti.run ()! = WL_CONNECTED) {delay (100); }
remoteMe.setUserMessageListener (onUserMessage);
remoteMe.setupTwoWayCommunication ();
remoteMe.sendRegisterDeviceMessage (DEVICE_NAME);
top.setup ();
bottom.setup (); top.clear (); bottom.clear (); }
boolean TurnOff = igaz;
előjel nélküli hosszú turnOffMillis = 0;
void onUserMessage (uint16_t senderDeviceId, uint16_t dataSize, uint8_t *data) {
uint16_t pos = 0; uint8_t bottomMode = RemoteMeMessagesUtils:: getUint8 (adatok, pos); uint8_t topMode = RemoteMeMessagesUtils:: getUint8 (adatok, pos); uint8_t trackNumber = RemoteMeMessagesUtils:: getUint8 (adatok, pos); uint8_t time = RemoteMeMessagesUtils:: getUint8 (adatok, pos); uint8_t mode = RemoteMeMessagesUtils:: getUint8 (adatok, pos);
bottom.setMode (bottomMode);
top.setMode (topMode); if (mód == 1) {myDFPlayer.loop (trackNumber); } else {myDFPlayer.play (trackNumber); } kikapcsolva = hamis; turnOffMillis = millis () + 1000 * idő; }
üres hurok ()
{remoteMe.loop (); top.loop (); bottom.loop (); ha (turnOffMillis
}
magyarázat:
#define WIFI_NAME "" #define WIFI_PASSWORD "" #define DEVICE_ID 205 #define DEVICE_NAME "notificator" #define TOKEN ""
Meg kell adnunk a fenti adatokat, részletes utasításokat itt a linken, és azt is megmutattam, hogyan kell regisztrálni a remoteme.org -on és létrehozni a tokent, void onUserMessage (uint16_t senderDeviceId, uint16_t dataSize, uint8_t *data) {uint16_t pos = 0; uint8_t bottomMode = RemoteMeMessagesUtils:: getUint8 (adatok, pos); uint8_t topMode = RemoteMeMessagesUtils:: getUint8 (adatok, pos); uint8_t trackNumber = RemoteMeMessagesUtils:: getUint8 (adatok, pos); uint8_t time = RemoteMeMessagesUtils:: getUint8 (adatok, pos); uint8_t mode = RemoteMeMessagesUtils:: getUint8 (adatok, pos);
bottom.setMode (bottomMode);
top.setMode (topMode); if (mód == 1) {myDFPlayer.loop (trackNumber); } else {myDFPlayer.play (trackNumber); } kikapcsolva = hamis; turnOffMillis = millis () + 1000 * idő; }
Ezt a funkciót hívják meg, amikor az üzenet az Arduino -hoz érkezik, és megjeleníti az értesítést. A kód annyira világos, hogy leírja magát. Az osztályok részleteire hivatkozom a dokumentációban itt és itt
void loop () {remoteMe.loop (); top.loop (); bottom.loop (); if (turnOffMillis <millis ()) {
ha (! kikapcsolva) {
top.clear ();
bottom.clear (); myDFPlayer.stop (); TurnOff = igaz; }}
A ciklusban az objektumok ciklusfüggvényeit hívjuk, és ha az értesítések megjelenítési ideje lejárt, akkor kikapcsoljuk a diódákat és a hangot.
5. lépés: MP3 lejátszó
TX / RX -en keresztül kommunikál az Arduino -val - A lejátszó részletei itt, a könyvtár pedig itt
Mp3 fájlokat töltünk fel az SD kártyára. A kártyán lévő fájlok ábécé sorrendbe vannak rendezve, majd a következő hívással:
myDFPlayer.play (5);
Lejátsszuk az ötödik fájlt az SD kártyáról a gyökérkönyvtárból. Ezért jó fájlokat adni az SD -kártya előtagjaira, 01, 02 stb. Esetemben úgy néz ki, mint a fenti nyomtatási képernyőn
Hangutasítások generálása Ezt az oldalt használhatja.
6. lépés: A program feltöltése az Arduino programba
Mielőtt feltöltené a vázlatot az Arduino -ba, le kell töltenie a szükséges könyvtárakat, és itt talál részletes utasításokat
ezenkívül telepítenünk kell a DFRobotDFPlayerMini könyvtárat és az Adafruit_NeoPixelt
7. lépés: Vezérlés
Elküldünk az Arduino -nak öt bájtot
- a fényeffektus első bájtja a felső LED -gyűrűhöz
- második bájtos fényhatás az alsó LED -gyűrűhöz
- a lejátszandó mp3 fájl száma
- a fényhatás és az mp3 lejátszási ideje
- hogy az mp3 -t egyszer vagy ciklusban kell -e lejátszani (1, ha ciklusban kell lejátszani)
Bájtok küldésével
07 0F 01 05 01
A felső gyűrű a rendőrségi fényeket (6. mód) mutatja, az alsó zölden villog (15. mód) (nézze meg a setMode funkciót a singleRing.cpp oldalon és a megjegyzéseket mellette). Az SD -kártya első fájlja 5 másodpercig lejátszásra kerül. És a fájl lejátszásra kerül a ciklusban (ellenőrizze az onUserMessage címet az arduino.ino oldalon)
Küldjük el ezeket a bájtokat. Nézze meg a fenti képernyőt, és kattintson az ikonokra 1, 2, 3 sorrendben. Megjelenik az ablak
Ezután nézze meg a második képernyőt - és töltse ki az ablakot, mint a második képernyőt
A megjelenő ablak üzeneteket küld az eszközre. Az 1. mezőben válassza ki a feladó eszközt - mivel csak egy eszközünk van, ezt választjuk ki (ez kötelező mező, és nem mindegy, hogy ugyanaz az eszköz, amelyhez üzenetet küldünk) A 2. mezőben bájtokat adunk küldés (pirossal a 2 -ben megadott érték karakterláncként jelenik meg), majd kattintson a Küldés gombra.
Az üzenet elküldése után értesítőnknek reagálnia kell a megfelelő fényhatások megjelenítésével és a kiválasztott mp3 lejátszásával. Javaslom, hogy próbálja ki a különböző hatásokat, ha megadja a 0 és 22 közötti szám első két bájtját (lásd a setMode függvény leírását).
8. lépés: Üzenetek küldése URL -ek használatával
Ha külső alkalmazások értesítéseit szeretnénk megjeleníteni, pl. IFTTT -vel, akkor rendelkeznünk kell olyan URL -címmel, amely pontosan ugyanazt fogja tenni, mint az előző lépés ablakában. A remoteme.org REST APi -t biztosít. Ehhez kattintson a bal oldalon található swagger fülre (az utolsó). Megjelenik egy oldal, ezen az oldalon kipróbálhatjuk az URL -einket is.
Az első képernyőn megjelenik a Bővítendő funkció, majd töltse ki az adatokat, mint a második képernyőn.
töltse ki az adatokat a fenti képernyőkép szerint. A végrehajtás gombra kattintás után üzenetet küldünk
070F010501
A vevő a 205 azonosítójú eszköz, ugyanaz az eszköz egyben küldő is. A MessageId a „No_RENEVAL” beállításokkal nem releváns. Ezután kattintson a Végrehajtás gombra. A Notificator ugyanúgy reagál, mint amikor üzeneteket küld az alkalmazásból. A REST hívása után az alábbiakban látható a meghívott URL - nézze meg a harmadik képernyőt. A másolás és beillesztés a böngészőbe URL -t zöld szegéllyel jelöltük. A negyedik képernyőn a Chrome böngészőm az URL beillesztése után
Esetemben az URL:
app.remoteme.org/api/*/rest/v1/message/sendUserMessageHexString/205/1/NO_RENEWAL/1/070F010501/
9. lépés: Bármilyen URL -cím az üzenetküldéshez
Az előző lépésben Van egy URL -címe, amely adatokat küld az eszközére. Sajnos, miután kijelentkezett az app.remoteme.org webhelyről, leáll. Ennek az az oka, hogy nem adtuk meg a hitelesítési jogkivonatot, és már nem vagyunk bejelentkezve. Szerezzük be a tokenünket (vagy hozzunk létre újat), és illesszük be a csillag helyett az URL -be.
Nézze meg a képernyőt, és cserélje le a * -ot az URL -ben a tokenjére
az én esetemben a jelző:
~ 267_ZxoWtJ) 0ph & 2c
így a végső URL így néz ki:
app.remoteme.org/api/~267_ZxoWtJ)0ph&2c/rest/v1/message/sendUserMessageHexString/205/1/NO_RENEWAL/1/070F010501/
Most már akkor is hívhatjuk, ha nem vagyunk bejelentkezve. És amikor hívják, üzenetet küldünk a készülékünkre 205
10. lépés: Integráció az IFTTT 1/7 programmal
A fenti lépésben létrehozott URL alkalmas külső alkalmazások általi végrehajtásra. Hogyan kell használni, megmutatom az IFTTT -n. Úgy konfigurálom, hogy a bejelentő bekapcsoljon, ha e -mail érkezik az e -mail címre (Gmail -fiók).
Jelentkezzen be az IFTTT-be. Ezután lépjen a Saját alkalmazások fülre, majd az „Új kisalkalmazás”- első képernyőre
11. lépés: Integráció az IFTTT 2/7 programmal
Ezután kattintson a "+ez" gombra
12. lépés: Integráció az IFTTT 3/7 programmal
Ezután a „Keresési szolgáltatások” mezőbe írja be a „Gmail” szót
Ezután "új e -mail a beérkező levelek között" (Szükség lehet bizonyos konfigurációra).
13. lépés: Integráció az IFTTT 4/7 programmal
most rákattintunk a "+" gombra
14. lépés: Integráció az IFTTT 5/7 programmal
keresse meg a „Webhooks” elemet, és kattintson rá
15. lépés: Integráció az IFTTT 6/7 programmal
majd „Webes kérés”
16. lépés: Integráció az IFTTT 7/7 programmal
kiegészítjük URL -címünket a tokennel. Tartalomtípus az application / json -ba, majd kattintson a „művelet létrehozása” és a Befejezés gombra. Most megvan az appletünk:
17. lépés: Összefoglalás
Ebben az oktatóanyagban megmutattam, hogyan küldhetünk Arduino üzeneteinket külső rendszerekből. Hasonló módon integrálunk egy másik rendszert is, majd az IFTTT -t. Ennek nem feltétlenül „értesítőnek” kell lennie, ebben a példában meg akartam mutatni, hogyan kell üzeneteket küldeni külső rendszerekről Arduino -nkhoz.
sourcecodesFanPage a Facebookon
Üdv Maciek
Ajánlott:
Értesítő e -mail fogadása, ha a ThingSpeak csatornáját egy ideig nem frissítették: 16 lépés
Értesítő e -mail fogadása, amikor a ThingSpeak csatornáját egy ideig nem frissítették: Háttér -történet Hat automatizált üvegházam van Dublinban, Írországban. Egyedi mobilalkalmazás használatával távolról figyelemmel kísérhetem az egyes üvegházakban található automatizált funkciókat, és kölcsönhatásba léphetek velük. Kézzel megnyithatom / bezárom a nyerést
Automatikus kézmosó értesítő: 5 lépés
Automatikus kézmosó értesítő: Ez a gép képes értesíteni valakit, amikor belép az ajtón. Célja, hogy emlékeztesse valakit, hogy hazatérve mosson kezet. Van egy ultrahangos érzékelő a doboz elején, amely érzékeli azt, aki belép
Egyszerű olvasatlan e -mail értesítő: 7 lépés
Könnyű olvasatlan e -mail értesítő: Sziasztok, üdvözöllek egy újabb Instructable -ban. Az otthoni munkavégzés jelenlegi helyzetében némi kihívással kell szembenéznem, mert időnként kaptam e -maileket a vállalattól. Akkor arra gondoltam, hogy készítek egy asztali értesítőt, amely értesíts engem a
Egyszerű ISS -értesítő létrehozása: 5 lépés
Készítsen egyszerű ISS -értesítőt: TokyLabs | Szükséges idő: 1-3 óra | Nehézségi fok: Könnyű | Ár: 60–70 dollár Sokkal szórakoztatóbb, mint
Arduino + GPS modul - Cél értesítő: 6 lépés
Arduino + GPS modul - Cél értesítő: Mennyi időt vesztegetünk a forgalmi dugókban? Készítettem egy Arduino-alapú célállomás-értesítőt, hogy ezt az időt produktív módon kihasználhassuk. Mindenki tudja, hogy a forgalmi dugók jelentős időveszteségek lehetnek. És lehetetlen megjósolni, hogy mennyi ideig tart