Sisukord:
- Samm: mida on vaja
- 2. samm: torni ehitamine
- Samm: ühendusskeem
- 4. samm: toimimispõhimõte
- Samm: MP3 -mängija
- Samm: programmi üleslaadimine Arduinosse
- 7. samm: kontrollige
- 8. toiming: sõnumite saatmine URL -ide abil
- Samm: sõnumi saatmiseks ükskõik milline URL
- 10. samm: integreerimine IFTTT 1/7 -ga
- 11. samm: integreerimine IFTTT 2/7 -ga
- 12. samm: integreerimine IFTTT 3/7 -ga
- 13. samm: integreerimine IFTTT -ga 4/7
- 14. samm: integreerimine IFTTT 5/7 -ga
- 15. samm: integreerimine IFTTT 6/7 -ga
- 16. samm: integreerimine IFTTT 7/7 -ga
- 17. samm: kokkuvõte
Video: Teataja: 17 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:49
Seadme saab ühendada näiteks IFTTT -süsteemiga ja reageerida uue kirja ilmumisel. Aadressil app.remoteme.org genereerime pärast helistamist lingi, mille baidid saadetakse Arduinole ning Arduino kuvab valgusefekti ja esitab SDcardilt mp3
Samm: mida on vaja
- NodeMCU, WemOS või midagi sarnast
- Kaks LED -rõngast koos WS2812B dioodidega (olen kasutanud 16. LED -rõngaid)
- DFRobotDFPlayerMini - see on mp3 -mängija. See mängib SDcardilt mp3 -d ja suhtleb Arduinoga RX/TX kaudu
- Kõlar
- SD -kaart
- Loogikamuundur -olen seda kasutanud, mp3 -mängija kasutab 5V ja Arduino 3.3, sellepärast vajame seda muundurit
- Teadmised ja oskused lihtsate trükkplaatide valmistamiseks meie enda poolt
Torn:
- papp - kaks erinevat paksust
- Jälgpaber
- alumiiniumfoolium
2. samm: torni ehitamine
Torni plaani kohal külgvaates (minu seiklus tehnilise joonisega lõppes põhikoolis), kõik mõõtmed millimeetrites.
Toimimispõhimõte
- helendav valgusdioodide rõngas
- Jälgpaber
- Kärbitud koonus, mis on valmistatud papist ja kaetud alumiiniumfooliumiga, peegeldab LED-rõngaste valgust, joonis 3 '= väljalõigatud võrk
- papptoru - hoiab torne vertikaalselt, toru sees on juhtmete kaablid
- Kõrgus sõltub teist, mul on 85 mm
- Alus kõigi elektroonikaseadmete sees
Kõik horisontaalsed elemendid peaksid olema valmistatud paksemast papist.
Samm: ühendusskeem
MP3 -mängija on varustatud 5 V pingega ja suhtleb Arduinoga TX / RX kaudu, vaja on loogikamuundurit, kuna Arduino ise töötab 3,3 V pingel. Rõngaste juhtimine on loogikamuunduri kaudu ühendatud ka Arduinoga (D5, D6).
Hoidlast leiate PCB plaanidega kotkafailid
Ma soovitan Arduinot ja mp3 -mängijat mitte igavesti jootma, et kasutada ainult naissoost kuldnõelu
4. samm: toimimispõhimõte
Meie Arduino ühendub selle ühenduse kaudu rakendusega Web.ocket (on olemas valmis teegid) rakendusega app.remoteme.org (5-baidised sõnumid):
- ülemise LED -rõnga valgusefekti esimene bait
- teise baidi valgusefekt alumisele LED -rõngale
- esitatava mp3 -faili number
- sekundite arv, kui kaua valgusefekti ja mp3 -d esitatakse
- kas mp3 -d tuleks mängida üks kord või ringis
lähtekood
Kogu lähtekoodi leiate siit
failides SingleRing.cpp ja SingleRing.h on klass LED -rõngaste mõju juhtimiseks. Soovitan teil alustada funktsiooni setMode (int m) vaatamisega:
tühine 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); murda; // tahke standardne roheline ümbris 2: setConfiguration (6, 0, 0, 50, 0, 20); break; // tahke tavaline sinine ümbris 3: setConfiguration (6, 50, 0, 0, 0, 20); murda; // tahke standardne punane ümbris 4: setConfiguration (6, 50, 10, 0, 0, 20); murda; // tahke tavaline oranž ümbris 5: setConfiguration (1, 0, 100, 0, 5, 2); break; // politsei päripäeva roheline ümbris 6: setConfiguration (1, 0, 100, 0, 5, -2); break; // politsei tagastab rohelise juhtumi 7: setConfiguration (1, 0, 0, 100, 5, 2); break; // politsei päripäeva sinine ümbris 8: setConfiguration (1, 0, 0, 100, 5, -2); break; // politsei tagastab sinise juhtumi 9: setConfiguration (1, 100, 0, 0, 5, 2); break; // politsei standardne punane ümbris 10: setConfiguration (1, 100, 0, 0, 5, -2); break; // politsei tagastab punase juhtumi 11: setConfiguration (1, 100, 20, 0, 5, 2); break; // politsei standard oranž ümbris 12: setConfiguration (1, 100, 20, 0, 5, -2); break; // politsei tagastab oranži ümbrise 13: setConfiguration (2, 0, 0, 50, 8, 10); break; // rist standardset sinist ümbrist 14: setConfiguration (2, 0, 0, 50, 8, -10); break; // cross revert blue case 15: setConfiguration (5, 0, 50, 0, 0, 20); break; // vilgub standardne roheline ümbris 16: setConfiguration (5, 0, 50, 0, 0, -20); murda; // vilkuma odwyrtka roheline ümbris 17: setConfiguration (5, 0, 0, 50, 0, 20); break; // vilgub tavaline sinine ümbris 18: setConfiguration (5, 0, 0, 50, 0, -20); murda; // vilkuma revert sinine juhtum 19: setConfiguration (5, 50, 0, 0, 0, 20); break; // vilgub standardne punane ümbris 20: setConfiguration (5, 50, 0, 0, 0, -20); murda; // vilkuma tagasi punane juhtum 21: setConfiguration (5, 50, 10, 0, 0, 20); break; // vilgub tavaline oranž ümbris 22: setConfiguration (5, 50, 10, 0, 0, -20); murda; // vilkuma tagasi oranž vaikimisi: setConfiguration (0, 0, 50, 0, 5, 1); vaheaeg; // väljas = 0}}
olenevalt antud parameetrist kuvab rõngas efekti. Saate lisada oma efekti, kutsudes funktsiooni setConfiguration uute parameetritega (värvi muutmine, kuvamiskiirus), lisades uue režiimi või lisades täiesti uue efekti - või andke mulle kommentaarides teada, kui mulle meeldib, lisan uue efekti
arduino.ino:
#include "Arduino.h" #include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h"
#kaasake
#include #include #include "SingleRing.h"
#kaasake
#kaasama #kaasama
#kaasake
#define WIFI_NAME ""
#define WIFI_PASSWORD "" #define DEVICE_ID 205 #define DEVICE_NAME "siren" #define TOKEN ""
#define DIODES_COUNT 16
SingleRing top = SingleRing (DIODES_COUNT, D5);
SingleRing alt=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); Seriaalne algus (115200);
if (! myDFPlayer.begin (mySoftwareSerial)) {// Kasuta mp3 -ga suhtlemiseks softwareSerialit.
Serial.println (F ("Ei saa alustada:")); Serial.println (F ("1. Kontrollige ühendust uuesti!")); Serial.println (F ("2. Palun sisestage SD -kaart!")); samas (tõsi); } Serial.println (F ("DFPlayer Mini võrgus."));
myDFPlayer.setTimeOut (500); // Määrake jadaühenduse aeg 500 ms
myDFPlayer.maht (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 ();
alt.seadistus (); top.clear (); alt.selge (); }
boolean TurnOff = true;
allkirjata pikk turnOffMillis = 0;
void onUserMessage (uint16_t senderDeviceId, uint16_t dataSize, uint8_t *andmed) {
uint16_t pos = 0; uint8_t bottomMode = RemoteMeMessagesUtils:: getUint8 (andmed, pos); uint8_t topMode = RemoteMeMessagesUtils:: getUint8 (andmed, pos); uint8_t trackNumber = RemoteMeMessagesUtils:: getUint8 (andmed, pos); uint8_t time = RemoteMeMessagesUtils:: getUint8 (andmed, pos); uint8_t mode = RemoteMeMessagesUtils:: getUint8 (andmed, pos);
bottom.setMode (bottomMode);
top.setMode (topMode); if (mode == 1) {myDFPlayer.loop (trackNumber); } else {myDFPlayer.play (trackNumber); } välja lülitatud = vale; turnOffMillis = millis () + 1000 * aeg; }
tühine tsükkel ()
{remoteMe.loop (); top.loop (); alt.loop (); kui (turnOffMillis
}
selgitus:
#define WIFI_NAME "" #define WIFI_PASSWORD "" #define DEVICE_ID 205 #define DEVICE_NAME "notificator" #define TOKEN ""
Peame esitama ülaltoodud andmed, üksikasjalikud juhised siin lingil. Samuti olen näidanud, kuidas registreeruda saidil remoteme.org ja luua žetoon, void onUserMessage (uint16_t senderDeviceId, uint16_t dataSize, uint8_t *andmed) {uint16_t pos = 0; uint8_t bottomMode = RemoteMeMessagesUtils:: getUint8 (andmed, pos); uint8_t topMode = RemoteMeMessagesUtils:: getUint8 (andmed, pos); uint8_t trackNumber = RemoteMeMessagesUtils:: getUint8 (andmed, pos); uint8_t time = RemoteMeMessagesUtils:: getUint8 (andmed, pos); uint8_t mode = RemoteMeMessagesUtils:: getUint8 (andmed, pos);
bottom.setMode (bottomMode);
top.setMode (topMode); if (mode == 1) {myDFPlayer.loop (trackNumber); } else {myDFPlayer.play (trackNumber); } välja lülitatud = vale; turnOffMillis = millis () + 1000 * aeg; }
Seda funktsiooni kutsutakse, kui sõnum jõuab Arduinole ja kuvab teate. Kood on nii selge, et kirjeldab ennast. Viitan klasside üksikasjadele dokumentidele siin ja siin
void loop () {remoteMe.loop (); top.loop (); alt.loop (); if (turnOffMillis <millis ()) {
kui (! lülitatud välja) {
top.clear ();
alt.selge (); myDFPlayer.stop (); TurnOff = tõsi; }}
Tsüklis kutsume objektide tsüklifunktsioone ja ka siis, kui märguannete kuvamisaeg on möödas, lülitame dioodid ja heli välja.
Samm: MP3 -mängija
See suhtleb Arduinoga TX / RX kaudu - üksikasjad mängija enda kohta siin ja raamatukogu siin
Laadime mp3 -failid SD -kaardile üles. Kaardil olevad failid sorteeritakse tähestikulises järjekorras ja seejärel helistades:
myDFPlayer.play (5);
Mängime viiendat faili SD -kaardilt juurkataloogist. Seetõttu on hea anda failid SD -kaardi eesliidetele 01, 02 jne. Minu puhul näeb see välja nagu ülaltoodud prindiekraanil
Häälkäskluste genereerimine Seda lehte saate kasutada.
Samm: programmi üleslaadimine Arduinosse
Enne eskiisi Arduinole üleslaadimist peate siit alla laadima vajalikud teegid, kust leiate üksikasjalikud juhised
lisaks peame installima raamatukogu DFRobotDFPlayerMini ja Adafruit_NeoPixel
7. samm: kontrollige
Saadame oma Arduinole viis baiti
- ülemise LED -rõnga valgusefekti esimene bait
- teise baidi valgusefekt alumisele LED -rõngale
- esitatava mp3 -faili number
- sekundite arv, kui kaua valgusefekti ja mp3 -d esitatakse
- kas mp3 -d tuleks esitada üks kord või tsüklina (1, kui seda tuleks esitada silmusena)
Baitide saatmisega
07 0F 01 05 01
Ülemine rõngas näitab politseitulesid (režiim 6), alumine vilgub roheliselt (režiim 15) (vaadake funktsiooni setMode aadressil singleRing.cpp ja selle kõrval olevaid kommentaare). SD -kaardi esimest faili esitatakse 5 sekundit. Ja faili esitatakse silmusena (kontrollige funktsiooni onUserMessage aadressil arduino.ino)
Saadame need baidid. Vaadake ülalolevat ekraani ja klõpsake ikoone järjekorras 1, 2, 3. Ilmub aken
Seejärel vaadake teist ekraani - ja täitke aken nagu teisel ekraanil
Ilmuvat akent kasutatakse seadmesse sõnumite saatmiseks. Valige väljal 1 saatjaseade - kuna meil on ainult üks seade, valime selle (see on kohustuslik väli ja pole oluline, et see on sama seade, millele me sõnumi saadame). Väljal 2 anname baite saatmine (punasena kuvatakse väärtus 2, mille sisestasime stringina), seejärel klõpsake nuppu Saada.
Pärast sõnumi saatmist peaks meie teataja reageerima, näidates sobivaid valgusefekte ja esitades valitud mp3. Soovitan teil proovida erinevaid efekte, andes kahe esimese baidi arvu vahemikus 0 kuni 22 (vt kirjeldust funktsioonis setMode).
8. toiming: sõnumite saatmine URL -ide abil
Kui tahame kuvada välise rakenduse teateid, nt IFTTT abil, peab meil olema URL, mis teeb täpselt sama, mis eelmises etapis. remoteme.org pakub REST APi. Minge selle juurde, klõpsates vasakul asuvat vahekaarti (viimane). Kuvatakse leht, sellel lehel saame proovida ka meie URL -e.
Esimesel ekraanil on funktsioon, mida peate laiendama, seejärel täitke andmed nagu teisel ekraanil.
täitke andmed nagu ülaltoodud ekraanipildil. Pärast käsul Execute klõpsamist saadame sõnumi
070F010501
Vastuvõtja on seade, mille ID on 205, sama seade on ka saatja. MessageId seadetega „No_RENEVAL” ei ole asjakohane. Ja seejärel klõpsake nuppu Käivita. Märkija reageerib samamoodi nagu rakendusest sõnumite saatmisel. Pärast REST -i helistamist on allpool nimetatud URL - vaadake kolmandat ekraani. Ja kopeerimine ja kleepimine brauseri URL -ile on märgitud rohelise äärisega. Neljandal ekraanil minu Chrome'i brauser pärast URL -i kleepimist
Minu puhul on URL järgmine:
app.remoteme.org/api/*/rest/v1/message/sendUserMessageHexString/205/1/NO_RENEWAL/1/070F010501/
Samm: sõnumi saatmiseks ükskõik milline URL
Eelmises etapis on teil URL, mis saadab teie seadmesse andmeid. Kahjuks lakkab see pärast rakendusest app.remoteme.org väljalogimist töötamast. Seda seetõttu, et me ei esitanud autentimismärki ja me pole enam sisse logitud. Võtame oma märgi (või loome uue) ja kleepime selle tähe asemel URL -i.
Vaadake ekraani ja asendage * URL -is oma märgiga
minu puhul on märk:
~ 267_ZxoWtJ) 0ph & 2c
nii et minu lõplik URL näeb välja selline:
app.remoteme.org/api/~267_ZxoWtJ)0ph&2c/rest/v1/message/sendUserMessageHexString/205/1/NO_RENEWAL/1/070F010501/
Nüüd saame sellele helistada isegi siis, kui me pole sisse logitud. Ja kui see helistatakse, saadetakse meie seadmesse sõnum 205
10. samm: integreerimine IFTTT 1/7 -ga
Ülaltoodud sammus loodud URL sobib väliste rakenduste täitmiseks. Kuidas seda kasutada, näitan IFTTT -l. Ma konfigureerin selle nii, et teavitaja lülitub sisse, kui e -posti aadressile (Gmaili kontole) tuleb e -kiri.
Logige sisse IFTTT-sse. Seejärel minge vahekaardile Minu apletid ja seejärel „Uus aplett”- esimene ekraan
11. samm: integreerimine IFTTT 2/7 -ga
Järgmisena klõpsake nuppu "+see"
12. samm: integreerimine IFTTT 3/7 -ga
Seejärel kirjutage väljale „Otsinguteenused” „Gmail”
Seejärel "uus e -kiri postkasti" (võib vaja minna teatud konfiguratsiooni).
13. samm: integreerimine IFTTT -ga 4/7
nüüd klõpsame "+ see"
14. samm: integreerimine IFTTT 5/7 -ga
leidke “Webhooks” ja klõpsake seda
15. samm: integreerimine IFTTT 6/7 -ga
seejärel „Esitage veebipäring”
16. samm: integreerimine IFTTT 7/7 -ga
täiendame oma URL -i märgi abil URL -i. Sisu tüüp rakendusele / json ja klõpsake nuppu „Loo toiming” ja Lõpeta. Nüüd on meil oma aplett:
17. samm: kokkuvõte
Selles õpetuses näitasin, kuidas saata meie Arduino sõnumeid välistest süsteemidest. Samuti integreerime sarnasel viisil mõne muu süsteemi, seejärel IFTTT. See ei pea tingimata olema „märguandja”, mida tahtsin selles näites näidata, kuidas saata sõnumeid välistest süsteemidest meie Arduinole.
sourcecodesFanPage Facebookis
Tervist, Maciek
Soovitan:
IoT-teataja ESP-12E abil: 7 sammu (piltidega)
IoT-teataja, kasutades ESP-12E: kas olete oma kallimast eemal kodus? Sellel keerulisel ajal püüab see lõbus väike projekt kindlasti naeratuse näole tuua. Selles juhendis näitan teile, kuidas kuvada oma mobiiltelefoni märguandeid
Lihtne lugemata e -posti teataja: 7 sammu
Lihtne lugemata e -posti teataja: Tere kõigile, tere tulemast järjekordsesse juhendamisse. Praeguses kodus töötamise olukorras seisan silmitsi mõningate väljakutsetega, kuna sain aeg -ajalt oma ettevõttelt e -kirju. Siis mõtlesin teha töölauateatise, mis anna mulle teada oma
Looge lihtne ISS -i teataja: 5 sammu
Looge lihtne ISS -i teataja: autor TokyLabs | Nõutav aeg: 1–3 tundi | Raskusaste: lihtne | Hind: $ 60–70 $ Saate hõlpsasti luua riistvara teavitaja, mis tõstab paberist astronaudi üles, et teavitada teid iga kord, kui rahvusvaheline kosmosejaam teie asukohast üle läheb. Palju lõbusam kui
Arduino + GPS -moodul - sihtkoha teataja: 6 sammu
Arduino + GPS -moodul - sihtkoha teataja: kui palju aega raiskame liiklusummikutesse? Tegin Arduino toitega sihtkoha teataja, et seda aega produktiivselt kasutada. Kõik teavad, et liiklusummikud võivad olla suur ajaraisk. Ja on võimatu ennustada, kui kaua see aega võtab
Postkast ja garaažiukse teataja: 5 sammu (piltidega)
Postkasti ja garaažiukse teavitaja: see juhend sisaldab Johan Mobergi postkasti teatajat. Võrreldes selle projektiga tegin mõningaid muudatusi: kaugel minu kodust pole mitte ainult postkast, vaid ka garaaž. Nad asuvad ühes kohas tee lähedal ja maja asub umbes 5