Kazalo:
- 1. korak: Kaj je potrebno
- 2. korak: Gradnja stolpa
- 3. korak: Shema ožičenja
- 4. korak: Načelo delovanja
- 5. korak: Mp3 predvajalnik
- 6. korak: Nalaganje programa v Arduino
- 7. korak: Nadzor
- 8. korak: pošiljanje sporočil z URL -ji
- 9. korak: Ogromni URL za pošiljanje sporočila
- 10. korak: Integracija z IFTTT 1/7
- 11. korak: Integracija z IFTTT 2/7
- 12. korak: Integracija z IFTTT 3/7
- 13. korak: Integracija z IFTTT 4/7
- Korak 14: Integracija z IFTTT 5/7
- Korak 15: Integracija z IFTTT 6/7
- Korak 16: Integracija z IFTTT 7/7
- 17. korak: Povzetek
Video: Obvestilec: 17 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
Napravo je mogoče povezati na primer s sistemom IFTTT in reagirati, ko se prikaže nova pošta. Na app.remoteme.org bomo po klicu ustvarili povezavo, ki bo bajte poslala Arduinu, Arduino pa bo prikazal nekaj svetlobnega učinka in predvajal nekaj mp3 s kartice SD
1. korak: Kaj je potrebno
- NodeMCU, WemOS ali kaj podobnega
- Dva LED obroča z diodami WS2812B (uporabil sem 16. obroče LED)
- DFRobotDFPlayerMini - to je mp3 predvajalnik. Predvaja mp3 s kartice SD in z RX/TX komunicira z Arduinom
- Zvočnik
- SD kartice
- Logični pretvornik -Uporabil sem tega, predvajalnik mp3 uporablja 5V in Arduino 3.3, zato potrebujemo ta pretvornik
- Znanje in sposobnosti za izdelavo preprostih PCB sami
Stolp:
- karton - dve različni debelini
- Paus papir
- aluminijasta folija
2. korak: Gradnja stolpa
Nad načrtom stolpa v stranskem pogledu (moja pustolovščina s tehnično risbo se je končala v osnovni šoli), vse mere v milimetrih.
Načelo delovanja
- obroč LED prižge luč
- Paus papir
- Odrezan stožec, izdelan iz kartona in prekrit z alu folijo, zato odseva luči iz LED obročev, na sliki 3 '= izrezana mreža
- kartonska cev - drži stolpe navpično, znotraj cevi so kabli za svetleče diode
- Višina je odvisna od vas, imam 85 mm
- Stojalo znotraj vseh elektronskih delov
Vsi vodoravni elementi morajo biti iz debelejšega kartona.
3. korak: Shema ožičenja
Predvajalnik mp3 je dobavljen z napetostjo 5 V in komunicira z Arduinom prek TX / RX, potreben je logični pretvornik, ker sam Arduino deluje na napetosti 3,3 V. Upravljanje obročev je prek logičnega pretvornika povezano tudi z Arduinom (D5, D6).
V skladišču boste našli datoteke eagle z načrti za PCB
Predlagam, da Arduina in predvajalnika mp3 ne spajate trajno samo za uporabo ženskih zlatih čepov
4. korak: Načelo delovanja
Naš Arduino se poveže s sistemom app.remoteme.org s pomočjo WebSockets (obstajajo pripravljene knjižnice) prek te povezave se pošljejo 5-bajtna sporočila:
- prvi bajt svetlobnega učinka za zgornji LED obroč
- svetlobni učinek drugega bajta za spodnji obroček LED
- številko mp3 datoteke za predvajanje
- število sekund, kako dolgo se bo predvajal svetlobni učinek in mp3
- ali naj se mp3 predvaja enkrat ali v zanki
izvorna koda
Celotno izvorno kodo najdete tukaj
v datotekah SingleRing.cpp in SingleRing.h obstaja razred za nadzor učinkov LED obročev. Predlagam, da začnete z ogledom funkcije setMode (int m):
void SingleRing:: setMode (int m) {stikalo (m) {primer 0: setConfiguration (0, 0, 50, 0, 5, 1); break; // off = 0 primer 1: setConfiguration (6, 0, 50, 0, 0, 20); break; // polno standardno zeleno ohišje 2: setConfiguration (6, 0, 0, 50, 0, 20); break; // polno standardno modro ohišje 3: setConfiguration (6, 50, 0, 0, 0, 20); break; // polno standardno rdeče ohišje 4: setConfiguration (6, 50, 10, 0, 0, 20); break; // polno standardno oranžno ohišje 5: setConfiguration (1, 0, 100, 0, 5, 2); break; // policija v smeri urinega kazalca zelena zadeva 6: setConfiguration (1, 0, 100, 0, 5, -2); break; // policija povrne zeleno ohišje 7: setConfiguration (1, 0, 0, 100, 5, 2); break; // policija v smeri urinega kazalca modri primer 8: setConfiguration (1, 0, 0, 100, 5, -2); break; // policija vrne modri primer 9: setConfiguration (1, 100, 0, 0, 5, 2); break; // policijski standardni rdeči primer 10: setConfiguration (1, 100, 0, 0, 5, -2); break; // policija vrne rdeč primer 11: setConfiguration (1, 100, 20, 0, 5, 2); break; // policijski standardni oranžni primer 12: setConfiguration (1, 100, 20, 0, 5, -2); break; // policija povrne oranžni primer 13: setConfiguration (2, 0, 0, 50, 8, 10); break; // prečkamo standardni modri primer 14: setConfiguration (2, 0, 0, 50, 8, -10); break; // navzkrižno povrni modro ohišje 15: setConfiguration (5, 0, 50, 0, 0, 20); break; // utripa standardna zelena črka 16: setConfiguration (5, 0, 50, 0, 0, -20); break; // utripa odwyrtka zeleno ohišje 17: setConfiguration (5, 0, 0, 50, 0, 20); break; // utripa standardno modro ohišje 18: setConfiguration (5, 0, 0, 50, 0, -20); break; // utripanje povrnitev modrega ohišja 19: setConfiguration (5, 50, 0, 0, 0, 20); break; // utripa standardno rdeče ohišje 20: setConfiguration (5, 50, 0, 0, 0, -20); break; // utripanje povrnitev rdečega ohišja 21: setConfiguration (5, 50, 10, 0, 0, 20); break; // utripa standardno oranžno ohišje 22: setConfiguration (5, 50, 10, 0, 0, -20); break; // utripanje povrne oranžno privzeto: setConfiguration (0, 0, 50, 0, 5, 1); break; // izklopljeno = 0}}
glede na dani parameter bo obroč prikazal učinek. Svoj lasten učinek lahko dodate tako, da pokličete funkcijo setConfiguration z novimi parametri (sprememba barve, hitrost prikaza), tako da dodate nov način ali dodate popolnoma nov učinek - ali pa mi v komentarjih sporočite, če mi je všeč, bom dodal nov učinek
arduino.ino:
#include "Arduino.h" #include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h"
#vključi
#include #include #include "SingleRing.h"
#vključi
#include #include
#vključi
#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 bottom = 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)) {// Uporabite softwareSerial za komunikacijo z mp3.
Serial.println (F ("Ne morem začeti:")); Serial.println (F ("1. Prosimo, ponovno preverite povezavo!")); Serial.println (F ("2. Prosimo, vstavite kartico SD!")); medtem ko (res); } Serial.println (F ("DFPlayer Mini na spletu."));
myDFPlayer.setTimeOut (500); // Nastavitev časovne omejitve serijske komunikacije 500 ms
myDFPlayer.volume (30);
myDFPlayer. EQ (DFPLAYER_EQ_NORMAL);
myDFPlayer.outputDevice (DFPLAYER_DEVICE_SD); WiFiMulti.addAP (WIFI_NAME, WIFI_PASSWORD); medtem ko (WiFiMulti.run ()! = WL_CONNECTED) {zakasnitev (100); }
remoteMe.setUserMessageListener (onUserMessage);
remoteMe.setupTwoWayCommunication ();
remoteMe.sendRegisterDeviceMessage (DEVICE_NAME);
top.setup ();
bottom.setup (); top.clear (); bottom.clear (); }
boolean turnOff = true;
brez podpisa dolg turnOffMillis = 0;
void onUserMessage (uint16_t senderDeviceId, uint16_t dataSize, uint8_t *data) {
uint16_t pos = 0; uint8_t bottomMode = RemoteMeMessagesUtils:: getUint8 (podatki, poz); uint8_t topMode = RemoteMeMessagesUtils:: getUint8 (podatki, poz); uint8_t trackNumber = RemoteMeMessagesUtils:: getUint8 (podatki, poz); uint8_t time = RemoteMeMessagesUtils:: getUint8 (podatki, poz); uint8_t mode = RemoteMeMessagesUtils:: getUint8 (podatki, poz);
bottom.setMode (bottomMode);
top.setMode (topMode); if (način == 1) {myDFPlayer.loop (trackNumber); } else {myDFPlayer.play (trackNumber); } turnOff = false; turnOffMillis = millis () + 1000 * čas; }
void loop ()
{remoteMe.loop (); top.loop (); bottom.loop (); if (turnOffMillis
}
razlaga:
#define WIFI_NAME "" #define WIFI_PASSWORD "" #define DEVICE_ID 205 #define DEVICE_NAME "notifierator" #define TOKEN ""
Predložiti moramo zgornje podatke, podrobna navodila tukaj na povezavi. Pokazal sem tudi, kako se registrirati na remoteme.org in ustvariti žeton, void onUserMessage (uint16_t senderDeviceId, uint16_t dataSize, uint8_t *data) {uint16_t pos = 0; uint8_t bottomMode = RemoteMeMessagesUtils:: getUint8 (podatki, poz); uint8_t topMode = RemoteMeMessagesUtils:: getUint8 (podatki, poz); uint8_t trackNumber = RemoteMeMessagesUtils:: getUint8 (podatki, poz); uint8_t time = RemoteMeMessagesUtils:: getUint8 (podatki, poz); uint8_t mode = RemoteMeMessagesUtils:: getUint8 (podatki, poz);
bottom.setMode (bottomMode);
top.setMode (topMode); if (način == 1) {myDFPlayer.loop (trackNumber); } else {myDFPlayer.play (trackNumber); } turnOff = false; turnOffMillis = millis () + 1000 * čas; }
Ta funkcija bo poklicana, ko sporočilo pride v Arduino in prikaže obvestilo. Koda je tako jasna, da opisuje samo sebe. Sklicujem se na podrobnosti razredov na dokumentacijo tukaj in tukaj
void loop () {remoteMe.loop (); top.loop (); bottom.loop (); if (turnOffMillis <millis ()) {
če (! izklopljeno) {
top.clear ();
bottom.clear (); myDFPlayer.stop (); turnOff = res; }}
V zanki pokličemo zančne funkcije objektov in tudi, če je čas prikaza obvestil minil, izklopimo diode in zvok.
5. korak: Mp3 predvajalnik
Z Arduinom komunicira prek TX / RX - Podrobnosti o samem predvajalniku tukaj in knjižnici tukaj
Naložimo mp3 datoteke na kartico SD. Datoteke na kartici so razvrščene po abecedi in nato s klicem:
myDFPlayer.play (5);
Predvajamo peto datoteko s kartice SD iz korenskega imenika. Zato je dobro dati datoteke na predponah kartice SD 01, 02 itd. V mojem primeru je videti kot na zgornjem zaslonu za tiskanje
Za ustvarjanje glasovnih ukazov To stran lahko uporabite.
6. korak: Nalaganje programa v Arduino
Preden naložite skico v Arduino, morate prenesti potrebne knjižnice, tukaj boste našli podrobna navodila
poleg tega moramo namestiti knjižnico DFRobotDFPlayerMini in Adafruit_NeoPixel
7. korak: Nadzor
Na naš Arduino pošljemo pet bajtov
- prvi bajt svetlobnega učinka za zgornji LED obroč
- svetlobni učinek drugega bajta za spodnji obroček LED
- številko mp3 datoteke za predvajanje
- število sekund, kako dolgo se bo predvajal svetlobni učinek in mp3
- ali naj se mp3 predvaja enkrat ali v zanki (1, če naj se predvaja v zanki)
S pošiljanjem bajtov
07 0F 01 05 01
Na zgornjem obroču bodo prikazane policijske luči (način 6), spodaj en utripajoč zelen (način 15) (preverite funkcijo setMode na singleRing.cpp in komentarje zraven). Prva datoteka s kartice SD se bo predvajala 5 sekund. Datoteka se bo predvajala v zanki (preverite funkcijo onUserMessage na arduino.ino)
Pošljimo te bajte. Poglejte zgornji zaslon in kliknite ikone po vrstnem redu, napisanem z 1, 2, 3. Pojavi se okno
Nato poglejte drugi zaslon - in napolnite okno kot na drugem zaslonu
Okno, ki se prikaže, se uporablja za pošiljanje sporočil v napravo. V polju 1 izberite napravo pošiljatelja - ker imamo samo eno napravo, jo izberemo (to je obvezno polje in ni pomembno, da gre za isto napravo, na katero pošiljamo sporočilo) V polju 2 damo bajte pošlji (rdeče bo vrednost, ki smo jo vnesli v 2, predstavljena kot niz), nato kliknite gumb Pošlji.
Po pošiljanju sporočila bi moral naš prijavitelj reagirati tako, da prikaže ustrezne svetlobne učinke in predvaja izbrani mp3. Spodbujam vas, da preizkusite različne učinke tako, da podate prva dva bajta števila med 0 in 22 (glej opis v funkciji setMode).
8. korak: pošiljanje sporočil z URL -ji
Če želimo prikazati obvestila iz zunanje aplikacije, npr. Z IFTTT, moramo imeti URL, ki bo naredil popolnoma enako kot v oknu v prejšnjem koraku. remoteme.org ponuja REST APi. Pojdite nanj s klikom na zavihek na levi strani (zadnji). Prikazala se bo stran, na tej strani lahko preizkusimo tudi svoje URL -je.
Na prvem zaslonu imate funkcijo Morate razširiti, nato pa izpolnite podatke kot na drugem zaslonu.
vnesite podatke kot na zgornjem posnetku zaslona. Po kliku na izvršitev bomo poslali sporočilo
070F010501
Sprejemnik je naprava z 205 ID -jem, ista naprava je tudi pošiljatelj. MessageId z nastavitvami »No_RENEVAL« ni pomemben. Nato kliknite Izvedi. Notifikator se bo odzval enako kot pri pošiljanju sporočil iz aplikacije. Ko pokličete REST, je spodaj naslovljen URL - poglejte tretji zaslon. Kopiranje in lepljenje v URL brskalnika je označeno z zeleno obrobo. Na četrtem zaslonu je bil moj kromirani brskalnik po prilepljenem URL -ju
V mojem primeru je URL:
app.remoteme.org/api/*/rest/v1/message/sendUserMessageHexString/205/1/NO_RENEWAL/1/070F010501/
9. korak: Ogromni URL za pošiljanje sporočila
V prejšnjem koraku imate URL, ki pošilja podatke v vašo napravo. Žal po odjavi iz aplikacije app.remoteme.org preneha delovati. To je zato, ker nismo zagotovili žetona za preverjanje pristnosti in nismo več prijavljeni. Vzemimo svoj žeton (ali ustvarimo novega) in ga prilepimo v URL namesto zvezdice.
Poglejte zaslon in * v URL -ju zamenjajte s svojim žetonom
v mojem primeru je žeton:
~ 267_ZxoWtJ) 0ph & 2c
tako da moj končni URL izgleda tako:
app.remoteme.org/api/~267_ZxoWtJ)0ph&2c/rest/v1/message/sendUserMessageHexString/205/1/NO_RENEWAL/1/070F010501/
Zdaj ga lahko pokličemo, tudi če nismo prijavljeni. In ko je poklican, bo na našo napravo poslano sporočilo 205
10. korak: Integracija z IFTTT 1/7
Url, ustvarjen v zgornjem koraku, je primeren za izvajanje z zunanjimi aplikacijami. Kako ga uporabljati, bom pokazal na IFTTT. Konfiguriral ga bom tako, da se obvestilo vklopi, ko na e -poštni naslov pride e -poštni naslov (račun Gmail).
Prijavite se v IFTTT. Nato pojdite na zavihek Moji jabolki in nato »Nov programček«- prvi zaslon
11. korak: Integracija z IFTTT 2/7
Nato kliknite »+to«
12. korak: Integracija z IFTTT 3/7
Nato v polje »Storitve iskanja« napišite »Gmail«
Nato "nova e -pošta v nabiralniku" (morda bo potrebna določena konfiguracija).
13. korak: Integracija z IFTTT 4/7
zdaj kliknemo na "+ to"
Korak 14: Integracija z IFTTT 5/7
poiščite »Webhooks« in ga kliknite
Korak 15: Integracija z IFTTT 6/7
nato »Ustvari spletno zahtevo«
Korak 16: Integracija z IFTTT 7/7
dokončamo URL svojega urla z žetonom. Vrsta vsebine v aplikacijo / json in kliknite »ustvari dejanje« in Dokončaj. Zdaj imamo naš applet:
17. korak: Povzetek
V tej vadnici sem pokazal, kako pošiljati sporočila iz Arduina iz zunanjih sistemov. Na podoben način integriramo tudi kakšen drug sistem kot IFTTT. Ni nujno, da je "obveščevalec", v tem primeru sem želel pokazati, kako pošiljati sporočila iz zunanjih sistemov v naš Arduino.
sourcecodesFanPage na Facebooku
Na zdravje, Maciek
Priporočena:
Števec korakov - mikro: Bit: 12 korakov (s slikami)
Števec korakov - Micro: Bit: Ta projekt bo števec korakov. Za merjenje korakov bomo uporabili senzor pospeška, ki je vgrajen v Micro: Bit. Vsakič, ko se Micro: Bit trese, bomo štetju dodali 2 in ga prikazali na zaslonu
Akustična levitacija z Arduino Uno Korak po korak (8 korakov): 8 korakov
Akustična levitacija z Arduino Uno Korak po korak (8 korakov): ultrazvočni pretvorniki zvoka L298N Dc ženski adapter z napajalnim vtičem za enosmerni tok Arduino UNOBreadboard Kako to deluje: Najprej naložite kodo v Arduino Uno (to je mikrokrmilnik, opremljen z digitalnim in analogna vrata za pretvorbo kode (C ++)
Vijak - Nočna ura za brezžično polnjenje DIY (6 korakov): 6 korakov (s slikami)
Bolt - Nočna ura za brezžično polnjenje DIY (6 korakov): Induktivno polnjenje (znano tudi kot brezžično polnjenje ali brezžično polnjenje) je vrsta brezžičnega prenosa energije. Za zagotavljanje električne energije prenosnim napravam uporablja elektromagnetno indukcijo. Najpogostejša aplikacija je brezžično polnjenje Qi
Merilnik korakov 1. del: Enobarvni zaslon 128x32 in Arduino: 5 korakov
Pedometer 1. del: Enobarvni zaslon 128x32 in Arduino: To je osnovna vadnica, ki uči, kako uporabljati zaslon OLED s svojim Arduinom. Uporabljam zaslon velikosti 128x32, lahko pa uporabite tudi drugačen zaslon z ločljivostjo in po potrebi spremenite ločljivost/koordinate. V tem delu vam bom pokazal, kako
Blüp: Obvestilec mehurčkov: 11 korakov (s slikami)
Blüp: Bubble Notifier: Iskal sem mehkejši, manj nenaden sistem obveščanja kot obvestilo na podlagi vibracij, zvoka ali svetlobe. Nisem mogel najti ničesar, kar bi ustrezalo tem kriterijem, zato sem se odločil, da naredim svojega. Poleg tega sem želel, da bi moja rešitev vključevala moje osebne