Taula de continguts:
- Pas 1: què cal
- Pas 2: construcció de la torre
- Pas 3: Esquema de cablejat
- Pas 4: Principi de funcionament
- Pas 5: reproductor de Mp3
- Pas 6: Càrrega del programa a Arduino
- Pas 7: control
- Pas 8: enviament de missatges mitjançant URL
- Pas 9: URL anímic per enviar el missatge
- Pas 10: integració amb IFTTT 1/7
- Pas 11: Integració amb IFTTT 2/7
- Pas 12: integració amb IFTTT 3/7
- Pas 13: integració amb IFTTT 4/7
- Pas 14: integració amb IFTTT 5/7
- Pas 15: integració amb IFTTT 6/7
- Pas 16: integració amb IFTTT 7/7
- Pas 17: resum
Vídeo: Notificador: 17 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
El dispositiu es pot connectar, per exemple, al sistema IFTTT i reaccionar quan apareix un nou correu. A app.remoteme.org generarem un enllaç després de trucar a quins bytes s’enviaran a Arduino i Arduino mostrarà algun efecte de llum i reproduirà alguns mp3 de la targeta SD
Pas 1: què cal
- NodeMCU, WemOS o alguna cosa similar
- Dos anells LED amb díodes WS2812B (he utilitzat 16 anells LED)
- DFRobotDFPlayerMini: es tracta d’un reproductor de mp3. Reprodueix mp3 des de la targeta SD i es comunica amb Arduino mitjançant RX / TX
- Altaveu
- Targeta SD
- Convertidor lògic: l’he utilitzat, el reproductor de mp3 utilitza 5V i Arduino 3.3, per això necessitem aquest convertidor
- Coneixements i habilitats per fer PCB senzill per nosaltres mateixos
La torre:
- cartró: dos gruixos diferents
- Paper de calç
- paper d'alumini
Pas 2: construcció de la torre
Per sobre del pla de la torre en vista lateral (la meva aventura amb el dibuix tècnic va acabar a l'escola primària), totes les dimensions en mil·límetres.
Principi de funcionament
- anell de LED que il·lumina
- Paper de calç
- El con truncat, de cartró i cobert amb paper d’alumini, reflecteix les llums dels anells led, a la figura 3 ‘= la malla retallable
- tub de cartró: sosté les torres verticalment, a l'interior del tub hi ha cables per a leds
- L'alçada depèn de tu. Tinc 85 mm
- El suport dins de totes les peces de l’electrònica
Tots els elements horitzontals han de ser de cartró més gruixut.
Pas 3: Esquema de cablejat
El reproductor mp3 es subministra amb voltatge de 5 V i es comunica amb Arduino mitjançant TX / RX, es necessita un convertidor lògic perquè el propi Arduino funciona amb voltatge de 3,3 V. El control dels anells també està connectat a Arduino (D5, D6) mitjançant el convertidor lògic.
Al dipòsit, trobareu fitxers àguila amb plans de PCB
Suggereixo no soldar permanentment Arduino i el reproductor de mp3 només per utilitzar pines d'or femenines
Pas 4: Principi de funcionament
El nostre Arduino es connecta al sistema app.remoteme.org mitjançant WebSockets (hi ha llibreries preparades) mitjançant aquesta connexió s’envien missatges de 5 bytes:
- el primer byte de l'efecte de llum de l'anell LED superior
- efecte de llum de segon byte per a l'anell LED inferior
- el número del fitxer mp3 que es reproduirà
- el nombre de segons quant de temps es reproduirà l’efecte de llum i el mp3
- si s'ha de reproduir mp3 una vegada o en bucle
codi font
Codi font sencer Podeu trobar aquí
als fitxers SingleRing.cpp i SingleRing.h hi ha una classe per controlar els efectes dels anells LED. Us suggerim que comenceu mirant la funció setMode (int m):
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; // caixa verda estàndard sòlida 2: setConfiguration (6, 0, 0, 50, 0, 20); break; // caixa blava estàndard sòlida 3: setConfiguration (6, 50, 0, 0, 0, 20); break; // caixa vermella estàndard sòlida 4: setConfiguration (6, 50, 10, 0, 0, 20); break; // caixa taronja estàndard sòlida 5: setConfiguration (1, 0, 100, 0, 5, 2); break; // policia cas verd de les agulles del rellotge 6: setConfiguration (1, 0, 100, 0, 5, -2); break; // la policia reverteix el cas verd 7: setConfiguration (1, 0, 0, 100, 5, 2); break; // policia cas blau de les agulles del rellotge 8: setConfiguration (1, 0, 0, 100, 5, -2); break; // la policia reverteix el cas blau 9: setConfiguration (1, 100, 0, 0, 5, 2); break; // cas vermell estàndard de la policia 10: setConfiguration (1, 100, 0, 0, 5, -2); break; // la policia reverteix el cas vermell 11: setConfiguration (1, 100, 20, 0, 5, 2); break; // cas normal taronja policial 12: setConfiguration (1, 100, 20, 0, 5, -2); break; // la policia reverteix el cas taronja 13: setConfiguration (2, 0, 0, 50, 8, 10); break; // creuar la caixa blava estàndard 14: setConfiguration (2, 0, 0, 50, 8, -10); break; // creuar revertir la caixa blava 15: setConfiguration (5, 0, 50, 0, 0, 20); break; // parpelleja cas verd estàndard 16: setConfiguration (5, 0, 50, 0, 0, -20); // parpelleja odwyrtka cas verd 17: setConfiguration (5, 0, 0, 50, 0, 20); break; // parpelleja cas blau estàndard 18: setConfiguration (5, 0, 0, 50, 0, -20); break; // parpelleja reverteix el cas blau 19: setConfiguration (5, 50, 0, 0, 0, 20); break; // parpelleja cas vermell estàndard 20: setConfiguration (5, 50, 0, 0, 0, -20); break; // parpelleja reverteix majúscules i minúscules 21: setConfiguration (5, 50, 10, 0, 0, 20); break; // parpelleja caixa taronja estàndard 22: setConfiguration (5, 50, 10, 0, 0, -20); trencar; // parpellejar revertir taronja per defecte: setConfiguration (0, 0, 50, 0, 5, 1); break; // off = 0}}
depenent del paràmetre donat, l'anell mostrarà l'efecte. Podeu afegir el vostre propi efecte trucant a la funció setConfiguration amb nous paràmetres (canvi de color, velocitat de visualització) afegint un mode nou o afegint un efecte completament nou.
arduino.ino:
#include "Arduino.h" #include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h"
#incloure
#include #include #include "SingleRing.h"
#incloure
#include #include
#incloure
#define WIFI_NAME ""
#define WIFI_PASSWORD "" #define DEVICE_ID 205 #define DEVICE_NAME "sirena" #define TOKEN ""
#define DIODES_COUNT 16
SingleRing top = SingleRing (DIODES_COUNT, D5);
SingleRing inferior = 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)) {// Utilitzeu softwareSerial per comunicar-vos amb mp3.
Serial.println (F ("No es pot començar:")); Serial.println (F ("1. Torneu a comprovar la connexió!")); Serial.println (F ("2. Introduïu la targeta SD!")); mentre que (cert); } Serial.println (F ("DFPlayer Mini en línia"));
myDFPlayer.setTimeOut (500); // Estableix el temps d'espera de la comunicació en sèrie de 500 ms
myDFPlayer.volume (30);
myDFPlayer. EQ (DFPLAYER_EQ_NORMAL);
myDFPlayer.outputDevice (DFPLAYER_DEVICE_SD); WiFiMulti.addAP (WIFI_NAME, WIFI_PASSWORD); while (WiFiMulti.run ()! = WL_CONNECTED) {demora (100); }
remoteMe.setUserMessageListener (onUserMessage);
remoteMe.setupTwoWayCommunication ();
remoteMe.sendRegisterDeviceMessage (DEVICE_NAME);
top.setup ();
bottom.setup (); top.clear (); bottom.clear (); }
booleà tornatOff = cert;
turn long OffOffMillis sense signar = 0;
void onUserMessage (uint16_t senderDeviceId, uint16_t dataSize, uint8_t * data) {
uint16_t pos = 0; uint8_t bottomMode = RemoteMeMessagesUtils:: getUint8 (dades, pos); uint8_t topMode = RemoteMeMessagesUtils:: getUint8 (dades, pos); uint8_t trackNumber = RemoteMeMessagesUtils:: getUint8 (dades, pos); uint8_t time = RemoteMeMessagesUtils:: getUint8 (dades, pos); mode uint8_t = RemoteMeMessagesUtils:: getUint8 (dades, pos);
bottom.setMode (bottomMode);
top.setMode (topMode); if (mode == 1) {myDFPlayer.loop (trackNumber); } else {myDFPlayer.play (trackNumber); } tornatOff = fals; turnOffMillis = millis () + 1000 * temps; }
bucle buit ()
{remoteMe.loop (); top.loop (); bottom.loop (); if (turnOffMillis
}
explicació:
#define WIFI_NAME "" #define WIFI_PASSWORD "" #define DEVICE_ID 205 #define DEVICE_NAME "notificator" #define TOKEN ""
Hem de proporcionar les dades anteriors, instruccions detallades aquí a l’enllaç. També he mostrat com registrar-vos a remoteme.org i generar el testimoni, void onUserMessage (uint16_t senderDeviceId, uint16_t dataSize, uint8_t * data) {uint16_t pos = 0; uint8_t bottomMode = RemoteMeMessagesUtils:: getUint8 (dades, pos); uint8_t topMode = RemoteMeMessagesUtils:: getUint8 (dades, pos); uint8_t trackNumber = RemoteMeMessagesUtils:: getUint8 (dades, pos); uint8_t time = RemoteMeMessagesUtils:: getUint8 (dades, pos); mode uint8_t = RemoteMeMessagesUtils:: getUint8 (dades, pos);
bottom.setMode (bottomMode);
top.setMode (topMode); if (mode == 1) {myDFPlayer.loop (trackNumber); } else {myDFPlayer.play (trackNumber); } tornatOff = fals; turnOffMillis = millis () + 1000 * temps; }
Aquesta funció es cridarà quan el missatge arribi a Arduino i mostri la notificació. El codi és tan clar que es descriu a si mateix. Em refereixo als detalls de les classes a la documentació aquí i aquí
bucle buit () {remoteMe.loop (); top.loop (); bottom.loop (); if (turnOffMillis <millis ()) {
si (! desactivat) {
top.clear ();
bottom.clear (); myDFPlayer.stop (); tornatOff = cert; }}
Al bucle, anomenem funcions de bucle dels objectes, i també si ha passat el temps de visualització de les notificacions, desactivem els díodes i el so.
Pas 5: reproductor de Mp3
Es comunica amb Arduino a través de TX / RX: detalls del propi reproductor aquí i de la biblioteca aquí
Penjem fitxers mp3 a la targeta SD. Els fitxers de la targeta s’ordenen alfabèticament i després trucant a:
myDFPlayer.play (5);
Reproduïm el cinquè fitxer des de la targeta SD del directori arrel. Per això, és bo donar fitxers als prefixos 01, 02 de la targeta SD, etc.
Per generar ordres de veu Podeu utilitzar aquesta pàgina.
Pas 6: Càrrega del programa a Arduino
Abans de carregar l’esbós a Arduino, heu de descarregar les biblioteques necessàries aquí, trobareu instruccions detallades
a més, hem d’instal·lar la biblioteca DFRobotDFPlayerMini i Adafruit_NeoPixel
Pas 7: control
Enviem al nostre Arduino cinc bytes
- el primer byte de l'efecte de llum de l'anell LED superior
- efecte de llum de segon byte per a l'anell LED inferior
- el número del fitxer mp3 que es reproduirà
- el nombre de segons quant de temps es reproduirà l’efecte de llum i el mp3
- si s'ha de reproduir mp3 una vegada o en bucle (1 si s'ha de reproduir en bucle)
En enviar bytes
07 0F 01 05 01
L'anell superior mostrarà els llums de la policia (mode 6) a la part inferior d'un color verd parpellejant (mode 15) (consulteu la funció setMode a singleRing.cpp i els comentaris al costat). El primer fitxer de la targeta SD es reproduirà durant 5 segons. I el fitxer es reproduirà al bucle (comproveu la funció onUserMessage a arduino.ino)
Enviem aquests bytes. Mireu la pantalla superior i feu clic a les icones per ordre escrit per 1, 2, 3. Apareixerà la finestra
A continuació, mireu la segona pantalla i empleneu la finestra com a la segona pantalla
La finestra que apareix s'utilitza per enviar missatges al dispositiu. Al camp 1, seleccioneu el dispositiu remitent: perquè només tenim un dispositiu, el seleccionem (és un camp obligatori i no importa que sigui el mateix dispositiu al qual enviem un missatge) Al camp 2 donem bytes a enviar (en vermell el valor que vam introduir a 2 es representarà com una cadena) i després fer clic al botó Envia.
Després d’enviar el missatge, el nostre notificador hauria de reaccionar mostrant els efectes d’il·luminació adequats i reproduint el mp3 seleccionat. Us animo a provar efectes diferents donant els dos primers bytes d’un número entre 0 i 22 (vegeu la descripció a la funció setMode).
Pas 8: enviament de missatges mitjançant URL
Si volem mostrar notificacions d'una aplicació externa, per exemple, amb IFTTT, hem de tenir un URL que faci exactament el mateix que vam fer a la finestra del pas anterior. remoteme.org proporciona REST APi. Aneu-hi fent clic a la pestanya swagger de l'esquerra (l'última). Es mostrarà una pàgina, en aquesta pàgina també podem provar els nostres URL.
A la primera pantalla teniu la funció que necessiteu ampliar i, a continuació, empleneu les dades com a la segona pantalla.
empleneu les dades com a la captura de pantalla anterior. Després de fer clic a l'executa, enviarem un missatge
070F010501
El receptor és el dispositiu amb 205 id, el mateix dispositiu també és un remitent. MessageId amb la configuració "No_RENEVAL" és irrellevant. A continuació, feu clic a Executa. El notificador reaccionarà de la mateixa manera que quan s’enviaven missatges des de l’aplicació. Després de trucar a REST, a continuació es mostra l'URL que es va cridar: mireu la tercera pantalla. I copiar i enganxar a l'URL del navegador es va marcar amb una vora verda. A la quarta pantalla, el meu navegador Chrome després d’enganxar l’URL
En el meu cas, l’URL és:
app.remoteme.org/api/*/rest/v1/message/sendUserMessageHexString/205/1/NO_RENEWAL/1/070F010501/
Pas 9: URL anímic per enviar el missatge
Al pas anterior, teniu un URL que envia dades al vostre dispositiu. Malauradament, després de tancar la sessió a app.remoteme.org, deixa de funcionar. Això es deu al fet que no hem proporcionat el testimoni d'autenticació i ja no hem iniciat la sessió. Aconseguim el testimoni (o en creem un de nou) i enganxem-lo a l'URL en lloc de l'estrella.
Mireu la pantalla i substituïu * a l'URL pel vostre testimoni
en el meu cas, el testimoni és:
~ 267_ZxoWtJ) 0ph i 2c
per tant, el meu URL final té el següent aspecte:
app.remoteme.org/api/~267_ZxoWtJ)0ph&2c/rest/v1/message/sendUserMessageHexString/205/1/NO_RENEWAL/1/070F010501/
Ara el podem trucar encara que no estiguem connectats. I quan es cridi, s'enviarà un missatge al nostre dispositiu 205
Pas 10: integració amb IFTTT 1/7
L'URL creada al pas anterior és adequada per a l'execució d'aplicacions externes. Com utilitzar-lo mostraré a l'IFTTT. Ho configuraré perquè el notificador s'activi quan un correu electrònic arribi a l'adreça de correu electrònic (compte de Gmail).
Inicieu sessió a IFTTT. A continuació, aneu a la pestanya Els meus applets i, a continuació, a "Nova aplicació": primera pantalla
Pas 11: Integració amb IFTTT 2/7
A continuació, feu clic a "+ això"
Pas 12: integració amb IFTTT 3/7
A continuació, al camp "Serveis de cerca" escriviu "Gmail"
A continuació, "correu electrònic nou a la safata d'entrada" (pot ser necessària alguna configuració).
Pas 13: integració amb IFTTT 4/7
ara fem clic a "+ allò"
Pas 14: integració amb IFTTT 5/7
cerqueu "Webhooks" i feu-hi clic
Pas 15: integració amb IFTTT 6/7
després "Feu una sol·licitud web"
Pas 16: integració amb IFTTT 7/7
completem l'URL de la nostra URL amb el testimoni. Escriviu contingut a application / json i feu clic a "crea acció" i a Finalitza. Ara tenim el nostre applet:
Pas 17: resum
En aquest tutorial, he mostrat com enviar missatges al nostre Arduino des de sistemes externs. També integrem algun altre sistema que després IFTTT d’una manera similar. No necessàriament ha de ser un "notificador" que volia mostrar en aquest exemple com enviar missatges de sistemes externs al nostre Arduino.
codi fontFanPage a Facebook
Ànims, Maciek
Recomanat:
Notificador de trucades Bluetooth: 5 passos (amb imatges)
Notificador de trucades Bluetooth: Introducció Fa uns dies, quan em vaig trobar amb aquest Projecte, estava navegant per les notícies instructives, quan em vaig trobar amb aquest Projecte. Va ser un projecte interessant. Però vaig pensar Per què no construir-lo amb un Bluetooth en lloc de coses complicades de wifi. Especificació d’aquest notificador de trucades Bluetooth
Notificador automàtic de rentat de mans: 5 passos
Notificador automàtic de rentat de mans: és una màquina que pot avisar algú quan entra per la porta. El seu propòsit és recordar a algú que es renti les mans quan torni a casa. Hi ha un sensor d’ultrasons a la part frontal de la caixa que detecta algú que hi entra
Notificador IoT mitjançant ESP-12E: 7 passos (amb imatges)
Notificador d’IoT que utilitza ESP-12E: us heu quedat atrapats a casa lluny de la vostra persona estimada? Durant aquest moment difícil, aquest divertit petit projecte definitivament intentarà portar un somriure als vostres rostres. En aquest instructiu, us mostraré com mostrar notificacions des del vostre telèfon mòbil en forma de
Notificador de correu electrònic fàcil de llegir: 7 passos
Notificador de correu electrònic fàcil de llegir: Hola a tots, us donem la benvinguda a un altre instructiu. Amb la situació actual de treballar des de casa, m’enfronto a alguns reptes perquè rebia correus electrònics de la meva empresa de tant en tant. Llavors estava pensant en fer un notificador d’escriptori que notifica'm sobre el meu
Construeix un notificador ISS fàcil: 5 passos
Construeix un notificador ISS fàcil: per TokyLabs | Temps requerit: 1–3 hores | Dificultat: Fàcil | Preu: entre 60 i 70 dòlars Podeu crear fàcilment un notificador de maquinari que aixequi un astronauta de paper per avisar-vos cada vegada que l'Estació Espacial Internacional passa per sobre de la vostra ubicació. Molt més divertit que