Satura rādītājs:
- 1. darbība. Kas nepieciešams
- 2. solis: Torņa celtniecība
- 3. darbība: elektroinstalācijas shēma
- 4. solis: darbības princips
- 5. darbība: MP3 atskaņotājs
- 6. darbība: augšupielādējiet programmu Arduino
- 7. darbība: kontrole
- 8. darbība: ziņojumu sūtīšana, izmantojot vietrāžus URL
- 9. darbība: jebkurš URL ziņojuma sūtīšanai
- 10. darbība: integrācija ar IFTTT 1/7
- 11. darbība. Integrācija ar IFTTT 2/7
- 12. solis: integrācija ar IFTTT 3/7
- 13. darbība. Integrācija ar IFTTT 4/7
- 14. darbība. Integrācija ar IFTTT 5/7
- 15. darbība. Integrācija ar IFTTT 6/7
- 16. darbība. Integrācija ar IFTTT 7/7
- 17. darbība. Kopsavilkums
Video: Paziņotājs: 17 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
Ierīci var savienot, piemēram, ar IFTTT sistēmu un reaģēt, kad parādās jauns pasts. Vietnē app.remoteme.org pēc izsaukšanas mēs ģenerēsim saiti, kura baiti tiks nosūtīti uz Arduino, un Arduino parādīs gaismas efektu un atskaņos dažus mp3 no SDcard
1. darbība. Kas nepieciešams
- NodeMCU, WemOS vai kaut kas līdzīgs
- Divi LED gredzeni ar WS2812B diodēm (esmu izmantojis 16. gaismas diodes)
- DFRobotDFPlayerMini - tas ir mp3 atskaņotājs. Tas atskaņo mp3 no SDcard un sazinās ar Arduino, izmantojot RX/TX
- Runātājs
- SD karte
- Loģikas pārveidotājs -es izmantoju šo, mp3 atskaņotājs izmanto 5V un Arduino 3.3, tāpēc mums ir nepieciešams šis pārveidotājs
- Zināšanas un prasmes, lai mūsu pašu spēkos būtu izgatavot vienkāršu PCB
Tornis:
- kartons - divi dažādi biezumi
- Pauspapīrs
- alumīnija folijs
2. solis: Torņa celtniecība
Virs torņa plāna sānu skatā (mans piedzīvojums ar tehnisko zīmējumu beidzās pamatskolā), visi izmēri milimetros.
Darbības princips
- iedegas gaismas diodes gredzens
- Pauspapīrs
- Atgrieztais konuss, izgatavots no kartona un pārklāts ar alumīnija foliju, tāpēc tas atspoguļo gaismu no led gredzeniem, 3. attēlā '= izgrieztais siets
- kartona caurule - tur torņus vertikāli, caurules iekšpusē ir LED kabeļi
- Augstums ir atkarīgs no jums, man ir 85 mm
- Statīvs visu elektronikas detaļu iekšpusē
Visiem horizontālajiem elementiem jābūt izgatavotiem no biezāka kartona.
3. darbība: elektroinstalācijas shēma
MP3 atskaņotājs tiek piegādāts ar 5 V spriegumu un sazinās ar Arduino, izmantojot TX / RX, ir nepieciešams loģiskais pārveidotājs, jo pats Arduino darbojas ar 3.3 V spriegumu. Gredzenu vadība ir arī savienota ar Arduino (D5, D6), izmantojot loģisko pārveidotāju.
Krātuvē atradīsit ērgļa failus ar PCB plāniem
Es iesaku nepārtraukti lodēt Arduino un mp3 atskaņotāju, lai izmantotu tikai sieviešu zelta tapas
4. solis: darbības princips
Mūsu Arduino izveido savienojumu ar sistēmu app.remoteme.org, izmantojot WebSockets (ir gatavas bibliotēkas), izmantojot šo savienojumu, tiek nosūtīti 5 baitu ziņojumi:
- pirmais gaismas efekta baits augšējam LED gredzenam
- otrā baita gaismas efekts apakšējam LED gredzenam
- atskaņojamā mp3 faila numurs
- sekunžu skaits, cik ilgi tiks atskaņots gaismas efekts un mp3
- vai mp3 ir jāspēlē vienu reizi vai ciklā
avota kods
Viss avota kods Jūs varat atrast šeit
failos SingleRing.cpp un SingleRing.h ir klase LED gredzenu efektu kontrolei. Es iesaku jums vispirms apskatīt funkciju setMode (int m):
void SingleRing:: setMode (int m) {switch (m) {case 0: setConfiguration (0, 0, 50, 0, 5, 1); pārtraukums; // izslēgts = 0 1. gadījums: setConfiguration (6, 0, 50, 0, 0, 20); pārtraukums; // cietais standarta zaļais korpuss 2: setConfiguration (6, 0, 0, 50, 0, 20); pārtraukums; // ciets standarta zils korpuss 3: setConfiguration (6, 50, 0, 0, 0, 20); pārtraukums; // ciets standarta sarkans korpuss 4: setConfiguration (6, 50, 10, 0, 0, 20); pārtraukums; // ciets standarta oranžs korpuss 5: setConfiguration (1, 0, 100, 0, 5, 2); pārtraukums; // policijas pulksteņrādītāja virzienā zaļš korpuss 6: setConfiguration (1, 0, 100, 0, 5, -2); pārtraukums; // policija atgriež zaļo lietu 7: setConfiguration (1, 0, 0, 100, 5, 2); pārtraukums; // policijas pulksteņrādītāja virzienā zilais korpuss 8: setConfiguration (1, 0, 0, 100, 5, -2); pārtraukums; // policija atjauno zilo lietu 9: setConfiguration (1, 100, 0, 0, 5, 2); pārtraukums; // policijas standarta sarkanā lieta 10: setConfiguration (1, 100, 0, 0, 5, -2); pārtraukums; // policija atjauno sarkano lietu 11: setConfiguration (1, 100, 20, 0, 5, 2); pārtraukums; // policijas standarta oranžais korpuss 12: setConfiguration (1, 100, 20, 0, 5, -2); pārtraukums; // policija atjauno oranžo lietu 13: setConfiguration (2, 0, 0, 50, 8, 10); pārtraukums; // šķērsot standarta zilo lietu 14: setConfiguration (2, 0, 0, 50, 8, -10); break; // cross revert blue case 15: setConfiguration (5, 0, 50, 0, 0, 20); pārtraukums; // mirgo standarta zaļais korpuss 16: setConfiguration (5, 0, 50, 0, 0, -20); pārtraukums; // mirgot odwyrtka zaļā lieta 17: setConfiguration (5, 0, 0, 50, 0, 20); pārtraukums; // mirgo standarta zils korpuss 18: setConfiguration (5, 0, 0, 50, 0, -20); pārtraukums; // mirgot atgriezties zils gadījums 19: setConfiguration (5, 50, 0, 0, 0, 20); pārtraukums; // mirgo standarta sarkanais korpuss 20: setConfiguration (5, 50, 0, 0, 0, -20); pārtraukums; // mirgot atgriezt sarkano lietu 21: setConfiguration (5, 50, 10, 0, 0, 20); pārtraukums; // mirgo standarta oranžais korpuss 22: setConfiguration (5, 50, 10, 0, 0, -20); pārtraukums; // mirgot atgriezt oranžo noklusējumu: setConfiguration (0, 0, 50, 0, 5, 1); pārtraukums; // izslēgts = 0}}
atkarībā no dotā parametra gredzens parādīs efektu. Jūs varat pievienot savu efektu, izsaucot funkciju setConfiguration ar jauniem parametriem (krāsas maiņa, displeja ātrums), pievienojot jaunu režīmu vai pievienojot pilnīgi jaunu efektu - vai paziņojiet man komentāros, ja man tas patīk, es pievienošu jaunu efektu
arduino.ino:
#include "Arduino.h" #include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h"
#iekļaut
#include #include #include "SingleRing.h"
#iekļaut
#iekļaut #iekļaut
#iekļaut
#define WIFI_NAME ""
#define WIFI_PASSWORD "" #define DEVICE_ID 205 #define DEVICE_NAME "sirēna" #define TOKEN ""
#define DIODES_COUNT 16
SingleRing top = SingleRing (DIODES_COUNT, D5);
SingleRing dibens = 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); Serial.begin (115200);
if (! myDFPlayer.begin (mySoftwareSerial)) {// Izmantojiet softwareSerial, lai sazinātos ar mp3.
Serial.println (F ("Nevar sākt:")); Serial.println (F ("1. Lūdzu, vēlreiz pārbaudiet savienojumu!")); Serial.println (F ("2. Lūdzu, ievietojiet SD karti!")); kamēr (taisnība); } Serial.println (F ("DFPlayer Mini tiešsaistē."));
myDFPlayer.setTimeOut (500); // Iestatiet sērijas sakaru taimautu 500 ms
myDFPlayer.sējums (30);
myDFPlayer. EQ (DFPLAYER_EQ_NORMAL);
myDFPlayer.outputDevice (DFPLAYER_DEVICE_SD); WiFiMulti.addAP (WIFI_NAME, WIFI_PASSWORD); while (WiFiMulti.run ()! = WL_CONNECTED) {kavēšanās (100); }
remoteMe.setUserMessageListener (onUserMessage);
remoteMe.setupTwoWayCommunication ();
remoteMe.sendRegisterDeviceMessage (DEVICE_NAME);
top.setup ();
bottom.setup (); top.clear (); apakšā.skaidrs (); }
Būla vērtība Izslēgts = true;
neparakstīts garš turnOffMillis = 0;
void onUserMessage (uint16_t senderDeviceId, uint16_t dataSize, uint8_t *dati) {
uint16_t pos = 0; uint8_t bottomMode = RemoteMeMessagesUtils:: getUint8 (dati, poz); uint8_t topMode = RemoteMeMessagesUtils:: getUint8 (dati, poz); uint8_t trackNumber = RemoteMeMessagesUtils:: getUint8 (dati, poz); uint8_t time = RemoteMeMessagesUtils:: getUint8 (dati, poz); uint8_t mode = RemoteMeMessagesUtils:: getUint8 (dati, poz);
bottom.setMode (bottomMode);
top.setMode (topMode); ja (režīms == 1) {myDFPlayer.loop (trackNumber); } cits {myDFPlayer.play (trackNumber); } izslēgts = nepatiess; turnOffMillis = milis () + 1000 * laiks; }
tukša cilpa ()
{remoteMe.loop (); top.loop (); bottom.loop (); ja (turnOffMillis
}
skaidrojums:
#define WIFI_NAME "" #define WIFI_PASSWORD "" #define DEVICE_ID 205 #define DEVICE_NAME "notificator" #define TOKEN ""
Mums ir jāsniedz iepriekš minētie dati, detalizēti norādījumi šeit, saitē, kā arī esmu parādījis, kā reģistrēties vietnē remoteme.org un ģenerēt marķieri, void onUserMessage (uint16_t senderDeviceId, uint16_t dataSize, uint8_t *dati) {uint16_t pos = 0; uint8_t bottomMode = RemoteMeMessagesUtils:: getUint8 (dati, poz); uint8_t topMode = RemoteMeMessagesUtils:: getUint8 (dati, poz); uint8_t trackNumber = RemoteMeMessagesUtils:: getUint8 (dati, poz); uint8_t time = RemoteMeMessagesUtils:: getUint8 (dati, poz); uint8_t mode = RemoteMeMessagesUtils:: getUint8 (dati, poz);
bottom.setMode (bottomMode);
top.setMode (topMode); ja (režīms == 1) {myDFPlayer.loop (trackNumber); } cits {myDFPlayer.play (trackNumber); } izslēgts = nepatiess; turnOffMillis = milis () + 1000 * laiks; }
Šī funkcija tiks izsaukta, kad ziņojums nonāks Arduino un parādīs paziņojumu. Kods ir tik skaidrs, ka raksturo sevi. Es atsaucos uz nodarbību detaļām uz dokumentāciju šeit un šeit
void loop () {remoteMe.loop (); top.loop (); bottom.loop (); ja (turnOffMillis <milis ()) {
ja (! izslēgts) {
top.clear ();
apakšā.skaidrs (); myDFPlayer.stop (); ieslēgts = patiess; }}
Ciklā mēs izsaucam objektu cilpas funkcijas, un arī tad, ja paziņojumu parādīšanas laiks ir pagājis, mēs izslēdzam diodes un skaņu.
5. darbība: MP3 atskaņotājs
Tas sazinās ar Arduino, izmantojot TX / RX - sīkāka informācija par pašu atskaņotāju šeit un bibliotēka šeit
Mēs augšupielādējam mp3 failus SD kartē. Faili kartē tiek sakārtoti alfabētiskā secībā un pēc tam zvanot:
myDFPlayer.play (5);
Mēs atskaņojam piekto failu no SD kartes no saknes direktorija. Tāpēc ir labi dot failus SD kartes prefiksos 01, 02 utt. Manā gadījumā tas izskatās kā iepriekšējā izdrukas ekrānā
Lai ģenerētu balss komandas Varat izmantot šo lapu.
6. darbība: augšupielādējiet programmu Arduino
Pirms skices augšupielādes Arduino, jums ir jālejupielādē nepieciešamās bibliotēkas, šeit atradīsit detalizētus norādījumus
Turklāt mums ir jāinstalē bibliotēka DFRobotDFPlayerMini un Adafruit_NeoPixel
7. darbība: kontrole
Mēs nosūtām uz mūsu Arduino piecus baitus
- pirmais gaismas efekta baits augšējam LED gredzenam
- otrā baita gaismas efekts apakšējam LED gredzenam
- atskaņojamā mp3 faila numurs
- sekunžu skaits, cik ilgi tiks atskaņots gaismas efekts un mp3
- vai mp3 ir jāspēlē vienu reizi vai ciklā (1, ja tas jāspēlē ciklā)
Nosūtot baitus
07 0F 01 05 01
Augšējā gredzenā būs redzamas policijas gaismas (6. režīms), apakšējais mirgo zaļā krāsā (15. režīms) (pārbaudiet funkciju setMode vietnē singleRing.cpp un komentārus blakus). SDcard pirmais fails tiks atskaņots 5 sekundes. Un fails tiks atskaņots ciklā (pārbaudiet funkciju onUserMessage vietnē arduino.ino)
Nosūtīsim šos baitus. Apskatiet iepriekš redzamo ekrānu un noklikšķiniet uz ikonām secībā, kas rakstīta ar 1, 2, 3. Parādās logs
Pēc tam apskatiet otro ekrānu un aizpildiet logu tāpat kā otrajā ekrānā
Parādītais logs tiek izmantots ziņojumu sūtīšanai uz ierīci. 1. laukā atlasiet sūtītāja ierīci - tā kā mums ir tikai viena ierīce, mēs to izvēlamies (tas ir obligāts lauks, un nav svarīgi, ka tā ir tā pati ierīce, uz kuru mēs nosūtām ziņojumu) 2. laukā mēs dodam baitus nosūtīt (sarkanā krāsā vērtība, kuru ievadījām 2, tiks attēlota kā virkne), pēc tam noklikšķiniet uz pogas Sūtīt.
Pēc ziņojuma nosūtīšanas mūsu paziņotājam vajadzētu reaģēt, parādot atbilstošos apgaismojuma efektus un atskaņojot izvēlēto mp3. Es iesaku izmēģināt dažādus efektus, norādot pirmos divus baitus no skaitļa no 0 līdz 22 (skatiet aprakstu funkcijā setMode).
8. darbība: ziņojumu sūtīšana, izmantojot vietrāžus URL
Ja mēs vēlamies parādīt paziņojumus no ārējas lietojumprogrammas, piemēram, izmantojot IFTTT, mums ir jābūt vietrādim URL, kas darīs tieši to pašu, ko iepriekšējā solī. remoteme.org nodrošina REST APi. Dodieties uz to, noklikšķinot uz cilnes kreisajā pusē (pēdējā). Tiks parādīta lapa, šajā lapā mēs varam arī izmēģināt savus URL.
Pirmajā ekrānā ir funkcija, kas jums jāizvērš, pēc tam aizpildiet datus tāpat kā otrajā ekrānā.
aizpildiet datus, kā parādīts iepriekš redzamajā ekrānuzņēmumā. Pēc noklikšķināšanas uz Izpildīt mēs nosūtīsim ziņojumu
070F010501
Uztvērējs ir ierīce ar 205 id, tā pati ierīce ir arī sūtītājs. MessageId ar iestatījumiem “No_RENEVAL” nav nozīmes. Un pēc tam noklikšķiniet uz Izpildīt. Notificator reaģēs tāpat kā nosūtot ziņojumus no lietojumprogrammas. Pēc tam, kad esat izsaucis REST, zemāk ir izsauktais URL - apskatiet trešo ekrānu. Kopēt un ielīmēt pārlūkprogrammā URL tika atzīmēts ar zaļu apmali. Ceturtajā ekrānā mans Chrome pārlūks pēc URL ielīmēšanas
Manā gadījumā URL ir šāds:
app.remoteme.org/api/*/rest/v1/message/sendUserMessageHexString/205/1/NO_RENEWAL/1/070F010501/
9. darbība: jebkurš URL ziņojuma sūtīšanai
Iepriekšējā solī jums ir URL, kas sūta datus uz jūsu ierīci. Diemžēl pēc pieteikšanās no lietotnes.remoteme.org tas pārstāj darboties. Tas ir tāpēc, ka mēs neesam nodrošinājuši autentifikācijas marķieri un mēs vairs neesam pierakstījušies. Saņemsim savu marķieri (vai izveidosim jaunu) un ielīmēsim to vietrādī URL, nevis zvaigznīti.
Paskatieties uz ekrānu un vietrādī URL aizstājiet * ar savu marķieri
manā gadījumā žetons ir:
~ 267_ZxoWtJ) 0ph & 2c
tāpēc mans gala URL izskatās šādi:
app.remoteme.org/api/~267_ZxoWtJ)0ph&2c/rest/v1/message/sendUserMessageHexString/205/1/NO_RENEWAL/1/070F010501/
Tagad mēs varam to saukt pat tad, ja neesam pierakstījušies. Un, kad tas tiks izsaukts, uz mūsu ierīci tiks nosūtīts ziņojums 205
10. darbība: integrācija ar IFTTT 1/7
Iepriekšējā darbībā izveidotais URL ir piemērots izpildei ārējās lietojumprogrammās. Kā to izmantot, es parādīšu IFTTT. Es to konfigurēšu tā, lai paziņotājs ieslēgtos, kad uz e -pasta adresi (Gmail kontu) tiek nosūtīts e -pasts.
Piesakieties IFTTT. Pēc tam dodieties uz cilni Mani sīpoli un pēc tam “Jaunais sīklietotne”- pirmais ekrāns
11. darbība. Integrācija ar IFTTT 2/7
Tālāk noklikšķiniet uz “+tas”
12. solis: integrācija ar IFTTT 3/7
Pēc tam laukā “Meklēšanas pakalpojumi” ierakstiet “Gmail”
Pēc tam "jauns e -pasts iesūtnē" (var būt nepieciešama noteikta konfigurācija).
13. darbība. Integrācija ar IFTTT 4/7
tagad mēs noklikšķiniet uz "+ tas"
14. darbība. Integrācija ar IFTTT 5/7
atrodiet “Webhooks” un noklikšķiniet uz tā
15. darbība. Integrācija ar IFTTT 6/7
pēc tam “Izveidot tīmekļa pieprasījumu”
16. darbība. Integrācija ar IFTTT 7/7
mēs aizpildām sava URL URL ar marķieri. Satura tips uz application / json un noklikšķiniet uz “Izveidot darbību” un Pabeigt. Tagad mums ir mūsu sīklietotne:
17. darbība. Kopsavilkums
Šajā apmācībā es parādīju, kā nosūtīt ziņojumus uz mūsu Arduino no ārējām sistēmām. Līdzīgā veidā mēs integrējam arī kādu citu sistēmu, nevis IFTTT. Tam nav obligāti jābūt “paziņotājam”, kuru šajā piemērā vēlējos parādīt, kā nosūtīt ziņojumus no ārējām sistēmām uz mūsu Arduino.
sourcecodesFanPage vietnē Facebook
Sveiks, Maciek
Ieteicams:
Bluetooth zvanu paziņotājs: 5 soļi (ar attēliem)
Bluetooth zvanu paziņotājs: Ievads Pirms dažām dienām, kad es saskāros ar šo projektu, es pārlūkoju pamācību ziņu plūsmu. Tas bija foršs projekts. Bet es domāju, kāpēc neveidot to ar Bluetooth, nevis sarežģītām wifi lietām. Šī Bluetooth zvanu paziņotāja specifikācija
IoT paziņotājs, izmantojot ESP-12E: 7 soļi (ar attēliem)
IoT Notifier, izmantojot ESP-12E: Vai esat iestrēdzis mājās prom no mīļotā? Šajā grūtajā laikā šis jautrais mazais projekts noteikti centīsies radīt smaidu jūsu sejās. Šajā instrukcijā es parādīšu, kā parādīt paziņojumus no sava mobilā tālruņa
Arduino + GPS modulis - galamērķa paziņotājs: 6 soļi
Arduino + GPS modulis - galamērķa paziņotājs: Cik daudz laika mēs tērējam satiksmes sastrēgumos? Es izveidoju ar Arduino darbināmu galamērķa paziņotāju, lai šo laiku izmantotu produktīvi. Ikviens zina, ka satiksmes sastrēgumi var būt liels laika kavēklis. Un nav iespējams paredzēt, cik ilgi tas prasītu
Pastkastes un garāžas durvju paziņotājs: 5 soļi (ar attēliem)
Pastkastes un garāžas durvju paziņotājs: šīs instrukcijas pamatā ir Johana Moberga pastkastes paziņotājs. Salīdzinot ar šo projektu, es izdarīju dažas izmaiņas: tālu no manas mājas atrodas ne tikai pastkaste, bet arī garāža. Tie atrodas vienā vietā netālu no ceļa, un māja atrodas apmēram 5
Paziņotājs par svaigu gaļu: 7 soļi
Paziņotājs par svaigu gaļu: ierīce svaigu tikšanos uzturēšanai. Šis projekts sākās, jo vienā no manām klasēm mani izaicināja atrisināt problēmu, izmantojot klasē apgūtās prasmes. Es uzreiz domāju par kaut ko, kas notika ar manu ģimeni pirms dažiem gadiem. Viena summa