Përmbajtje:
- Hapi 1: Çfarë është e nevojshme
- Hapi 2: Ndërtimi i Kullës
- Hapi 3: Diagrami i telave
- Hapi 4: Parimi i funksionimit
- Hapi 5: Mp3 Player
- Hapi 6: Ngarkimi i Programit në Arduino
- Hapi 7: Kontrolli
- Hapi 8: Dërgimi i Mesazheve duke Përdorur URL -të
- Hapi 9: URL Anime për të Dërguar Mesazh
- Hapi 10: Integrimi me IFTTT 1/7
- Hapi 11: Integrimi me IFTTT 2/7
- Hapi 12: Integrimi me IFTTT 3/7
- Hapi 13: Integrimi me IFTTT 4/7
- Hapi 14: Integrimi me IFTTT 5/7
- Hapi 15: Integrimi me IFTTT 6/7
- Hapi 16: Integrimi me IFTTT 7/7
- Hapi 17: Përmbledhje
Video: Njoftuesi: 17 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:27
Pajisja mund të lidhet për shembull me sistemin IFTTT dhe të reagojë kur shfaqet një postë e re. Në app.remoteme.org ne do të krijojmë një lidhje pas thirrjes se cilat bajtë do të dërgohen në Arduino, dhe Arduino do të shfaqë një efekt drite dhe do të luajë disa mp3 nga SDcard
Hapi 1: Çfarë është e nevojshme
- NodeMCU, WemOS ose diçka e ngjashme
- Dy unaza LED me dioda WS2812B (kam përdorur unaza të 16 -ta leds)
- DFRobotDFPlayerMini - ky është mp3 player. Luan mp3 nga SDcard dhe komunikon me Arduino nga RX/TX
- Folës
- Kartë SD
- Konvertuesi logjik -Unë e kam përdorur këtë, mp3 player përdor 5V dhe Arduino 3.3 kjo është arsyeja pse ne kemi nevojë për këtë konvertues
- Njohuri dhe aftësi për të bërë PCB të thjeshta nga vetja jonë
Kulla:
- kartoni - dy trashësi të ndryshme
- Letër gjurmuese
- fletë alumini
Hapi 2: Ndërtimi i Kullës
Mbi planin e kullës në pamje anësore (aventura ime me vizatimin teknik përfundoi në shkollën fillore), të gjitha dimensionet në milimetra.
Parimi i funksionimit
- unaza e LEDs që hedhin dritë
- Letër gjurmuese
- Koni i cunguar, i bërë nga kartoni dhe i mbuluar me fletë alumini, kështu që reflekton dritat nga unazat e led, në figurën 3 ‘= rrjeta e prerë
- tub kartoni - mban kullat vertikalisht, brenda tubit janë kabllo për led
- Lartësia varet nga ju kam 85mm
- Qëndrimi brenda të gjitha pjesëve elektronike
Të gjithë elementët horizontalë duhet të jenë prej kartoni më të trashë.
Hapi 3: Diagrami i telave
MP3 player furnizohet me tension 5V dhe komunikon me Arduino përmes TX / RX, nevojitet një konvertues logjik sepse vetë Arduino punon në tension 3.3V. Kontrolli i unazave është gjithashtu i lidhur me Arduino (D5, D6) përmes konvertuesit logjik.
Në depo, do të gjeni skedarë shqiponje me plane PCB
Unë sugjeroj që të mos lidhni përgjithmonë Arduino dhe mp3 player vetëm për të përdorur kunjat e arta femra
Hapi 4: Parimi i funksionimit
Arduino ynë lidhet me sistemin app.remoteme.org duke përdorur WebSockets (ka biblioteka të gatshme) përmes kësaj lidhje dërgohen mesazhe 5-bajtëshe:
- bajti i parë i efektit të dritës për unazën e sipërme LED
- efekti i dritës së bajtit të dytë për unazën LED të poshtme
- numri i skedarit mp3 që do të luhet
- numri i sekondave sa kohë do të luhet efekti i dritës dhe mp3
- nëse mp3 duhet të luhet një herë ose në një lak
Kodi i burimit
Kodi i plotë burimor Mund ta gjeni këtu
në skedarët SingleRing.cpp dhe SingleRing.h ekziston një klasë për të kontrolluar efektet e unazave LED. Unë sugjeroj që të filloni duke parë funksionin setMode (int m):
void SingleRing:: setMode (int m) {switch (m) {case 0: setConfiguration (0, 0, 50, 0, 5, 1); pushim; // off = 0 rast 1: setConfiguration (6, 0, 50, 0, 0, 20); pushim; // rast standard i ngurtë jeshil 2: setConfiguration (6, 0, 0, 50, 0, 20); pushim; // rast standard i ngurtë blu 3: setConfiguration (6, 50, 0, 0, 0, 20); pushim; // rast i fortë i kuq standard 4: setConfiguration (6, 50, 10, 0, 0, 20); pushim; // rast standard i ngurtë portokalli 5: setConfiguration (1, 0, 100, 0, 5, 2); pushim; // policia rast jeshil 6: setConfiguration (1, 0, 100, 0, 5, -2); pushim; // policia kthen rastin e gjelbër 7: setConfiguration (1, 0, 0, 100, 5, 2); pushim; // policia rast blu në drejtim të akrepave të orës 8: setConfiguration (1, 0, 0, 100, 5, -2); pushim; // policia kthen rastin blu 9: setConfiguration (1, 100, 0, 0, 5, 2); pushim; // rasti i kuq standard i policisë 10: setConfiguration (1, 100, 0, 0, 5, -2); pushim; // policia kthen rastin e kuq 11: setConfiguration (1, 100, 20, 0, 5, 2); pushim; // rasti standard i policisë portokalli 12: setConfiguration (1, 100, 20, 0, 5, -2); pushim; // policia rikthen rastin portokalli 13: setConfiguration (2, 0, 0, 50, 8, 10); pushim; // kryq rast blu standard 14: setConfiguration (2, 0, 0, 50, 8, -10); pushim; // kryq ktheje rastin blu 15: setConfiguration (5, 0, 50, 0, 0, 20); pushim; // blink rast i gjelbër standard 16: setConfiguration (5, 0, 50, 0, 0, -20); pushim; // blink odwyrtka rasti jeshil 17: setConfiguration (5, 0, 0, 50, 0, 20); pushim; // vezullimi i rastit blu standard 18: setConfiguration (5, 0, 0, 50, 0, -20); pushim; // blink ktheje rastin blu 19: setConfiguration (5, 50, 0, 0, 0, 20); pushim; // mbyll dritaren standarde të kuqe 20: setConfiguration (5, 50, 0, 0, 0, -20); pushim; // blink ktheje rastin e kuq 21: setConfiguration (5, 50, 10, 0, 0, 20); pushim; // vezullimi i rastit portokalli standard 22: setConfiguration (5, 50, 10, 0, 0, -20); break; // blink ktheje portokalli default: setConfiguration (0, 0, 50, 0, 5, 1); pushim; // joaktiv = 0}}
në varësi të parametrit të dhënë, unaza do të shfaqë efektin. Ju mund të shtoni efektin tuaj duke thirrur funksionin e vendosur Konfigurimi me parametra të rinj (ndryshimi i ngjyrës, shpejtësia e shfaqjes) duke shtuar një mënyrë të re, ose duke shtuar një efekt krejtësisht të ri - ose më tregoni në komente nëse më pëlqen do të shtoj efekt të ri
arduino.ino:
#include "Arduino.h" #include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h"
#përfshi
#include #include #include "SingleRing.h"
#përfshi
#përfshi #përfshi
#përfshi
#përcakto WIFI_NAME ""
#define WIFI_PASSWORD "" #përcaktoni DEVICE_ID 205 #përcaktoni sirenën e DEVICE_NAME "#define TOKEN""
#përcakto DIODES_COUNT 16
SingleRing top = SingleRing (DIODES_COUNT, D5);
SingleRing fund = 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.fillo (115200);
nëse (! myDFPlayer.begin (mySoftwareSerial)) {// Përdorni softwareSerial për të komunikuar me mp3.
Serial.println (F ("Në pamundësi për të filluar:")); Serial.println (F ("1. Ju lutem kontrolloni përsëri lidhjen!")); Serial.println (F ("2. Ju lutemi futni kartën SD!")); ndërsa (e vërtetë); } Serial.println (F ("DFPlayer Mini online."));
myDFPlayer.setTimeOut (500); // Vendosni kohën e komunikimit serik 500ms
vëllimi i myDFPlayer (30);
myDFPlayer. EQ (DFPLAYER_EQ_NORMAL);
myDFPlayer.outputDevice (DFPLAYER_DEVICE_SD); WiFiMulti.addAP (WIFI_NAME, WIFI_PASSWORD); ndërsa (WiFiMulti.run ()! = WL_CONNECTED) {vonesë (100); }
remoteMe.setUserMessageListener (onUserMessage);
remoteMe.setupTwoWayCommunication ();
remoteMe.sendRegisterDeviceMessage (DEVICE_NAME);
top.setup ();
fund.setup (); lart.i qartë (); fundi.i qartë (); }
boolean turnOff = e vërtetë;
turn i gjatë i panënshkruarOffMillis = 0;
void onUserMessage (uint16_t dërguesiDeviceId, uint16_t dataSize, uint8_t *data) {
uint16_t pos = 0; uint8_t bottomMode = RemoteMeMessagesUtils:: getUint8 (të dhëna, pos); uint8_t topMode = RemoteMeMessagesUtils:: getUint8 (të dhëna, pos); uint8_t trackNumber = RemoteMeMessagesUtils:: getUint8 (të dhëna, pos); koha uint8_t = RemoteMeMessagesUtils:: getUint8 (të dhëna, pos); mënyra uint8_t = RemoteMeMessagesUtils:: getUint8 (të dhëna, pos);
bottom.setMode (fundMode);
top.setMode (topMode); if (modaliteti == 1) {myDFPlayer.loop (trackNumber); } else {myDFPlayer.play (trackNumber); } turnOff = false; turnOffMillis = millis () + 1000 * kohë; }
lak void ()
{remoteMe.loop (); top.loop (); fund.loop (); nëse (turnOffMillis
}
shpjegim:
#define WIFI_NAME "" #përcakto WIFI_PASSWORD "" #përcakto DEVICE_ID 205 #define DEVICE_NAME "njoftues" #define TOKEN ""
Ne duhet të sigurojmë të dhënat e mësipërme, udhëzime të hollësishme këtu në lidhjen gjithashtu kam treguar se si të regjistroheni në remoteme.org dhe të gjeneroni shenjën, void onUserMessage (uint16_t senderDeviceId, uint16_t dataSize, uint8_t *data) {uint16_t pos = 0; uint8_t bottomMode = RemoteMeMessagesUtils:: getUint8 (të dhëna, pos); uint8_t topMode = RemoteMeMessagesUtils:: getUint8 (të dhëna, pos); uint8_t trackNumber = RemoteMeMessagesUtils:: getUint8 (të dhëna, pos); koha uint8_t = RemoteMeMessagesUtils:: getUint8 (të dhëna, pos); mënyra uint8_t = RemoteMeMessagesUtils:: getUint8 (të dhëna, pos);
bottom.setMode (fundMode);
top.setMode (topMode); if (modaliteti == 1) {myDFPlayer.loop (trackNumber); } else {myDFPlayer.play (trackNumber); } turnOff = false; turnOffMillis = millis () + 1000 * kohë; }
Ky funksion do të thirret kur mesazhi të vijë tek Arduino dhe të shfaqë njoftimin. Kodi është aq i qartë sa përshkruan veten. Unë i referohem detajeve të klasave në dokumentacion këtu dhe këtu
void loop () {remoteMe.loop (); top.loop (); fund.loop (); nëse (turnOffMillis <millis ()) {
nëse (! TurnOff) {
lart.i qartë ();
fundi.i qartë (); myDFPlayer.stop (); turnOff = e vërtetë; }}
Në lak, ne i quajmë funksionet e lakut të objekteve, dhe gjithashtu nëse koha e shfaqjes së njoftimeve ka kaluar, fikim diodat dhe zërin.
Hapi 5: Mp3 Player
Ai komunikon me Arduino përmes TX / RX - Detajet e vetë lojtarit këtu, dhe bibliotekën këtu
Ne ngarkojmë skedarë mp3 në kartën SD. Skedarët në kartelë renditen sipas alfabetit dhe më pas duke telefonuar:
myDFPlayer.play (5);
Ne luajmë skedarin e pestë nga karta SD nga drejtoria rrënjësore. Kjo është arsyeja pse është mirë të jepni skedarë në parashtesat e kartës SD 01, 02 etj. Në rastin tim duket si në ekranin e printimit të mësipërm
Për të gjeneruar komanda zanore Mund të përdorni këtë faqe.
Hapi 6: Ngarkimi i Programit në Arduino
Para se të ngarkoni skicën në Arduino, Ju duhet të shkarkoni bibliotekat e nevojshme këtu do të gjeni udhëzime të hollësishme
përveç kësaj, ne duhet të instalojmë bibliotekën DFRobotDFPlayerMini dhe Adafruit_NeoPixel
Hapi 7: Kontrolli
Ne i dërgojmë Arduino -s tonë pesë bajtë
- bajti i parë i efektit të dritës për unazën e sipërme LED
- efekti i dritës së bajtit të dytë për unazën LED të poshtme
- numri i skedarit mp3 që do të luhet
- numri i sekondave sa kohë do të luhet efekti i dritës dhe mp3
- nëse mp3 duhet të luhet një herë ose në një lak (1 nëse duhet të luhet në një lak)
Duke dërguar byte
07 0F 01 05 01
Unaza e sipërme do të tregojë dritat e policisë (mënyra 6) e poshtme një dritë jeshile (modaliteti 15) (shikoni funksionin e setMode në singleRing.cpp dhe komentet pranë tij). Skedari i parë nga karta SD do të luhet për 5 sekonda. Dhe skedari do të luhet në lak (kontrolloni funksioninUserMessage në arduino.ino)
Le t'i dërgojmë këto byte. Shikoni ekranin e mësipërm dhe klikoni ikonat sipas rendit të shkruar nga 1, 2, 3. Dritarja shfaqet
Pastaj shikoni ekranin e dytë - dhe mbushni dritaren si në ekranin e dytë
Dritarja që shfaqet përdoret për të dërguar mesazhe në pajisje. Në fushën 1, zgjidhni pajisjen dërguese - sepse kemi vetëm një pajisje, ne e zgjedhim atë (kjo është një fushë e detyrueshme dhe nuk ka rëndësi se është e njëjta pajisje për të cilën ne dërgojmë një mesazh) Në fushën 2 ne i japim byte send (me të kuqe vlera që kemi futur në 2 do të përfaqësohet si një varg) pastaj klikoni butonin Dërgo.
Pas dërgimit të mesazhit, njoftuesi ynë duhet të reagojë duke shfaqur efektet e duhura të ndriçimit dhe duke luajtur mp3 -in e zgjedhur. Ju inkurajoj të provoni efekte të ndryshme duke dhënë dy bajtët e parë të një numri midis 0 dhe 22 (shikoni përshkrimin në funksionin setMode).
Hapi 8: Dërgimi i Mesazheve duke Përdorur URL -të
Nëse duam të shfaqim njoftimet nga një aplikacion i jashtëm p.sh. me IFTTT, duhet të kemi një URL që do të bëjë saktësisht të njëjtën gjë siç bëmë në dritare në hapin e mëparshëm. remoteme.org siguron REST APi. Shkoni tek ajo duke klikuar në skedën swagger në të majtë (e fundit). Një faqe do të shfaqet, në këtë faqe ne gjithashtu mund të provojmë URL -të tona.
Në ekranin e parë Ju keni funksionin Ju duhet të zgjeroni, pastaj mbushni të dhënat si në ekranin e dytë.
plotësoni të dhënat si në pamjen e mësipërme të ekranit. Pasi të klikojmë ekzekutimin do të dërgojmë një mesazh
070F010501
Marrësi është pajisja me 205 id, e njëjta pajisje është gjithashtu një dërgues. MesazhiId me cilësimet "Jo_RENEVAL" është i parëndësishëm. Dhe pastaj klikoni Ekzekuto. Njoftuesi do të reagojë në të njëjtën mënyrë si kur dërgoni mesazhe nga aplikacioni. Pasi të keni thirrur REST më poshtë është URL -ja që u thirr - shikoni ekranin e tretë. Dhe kopjimi dhe ngjitja në URL -në e shfletuesit është shënuar me kufi jeshil. Në ekranin e katërt shfletuesi im i kromit pasi URL ishte ngjitur
Në rastin tim, URL -ja është:
app.remoteme.org/api/*/rest/v1/message/sendUserMessageHexString/205/1/NO_RENEWAL/1/070F010501/
Hapi 9: URL Anime për të Dërguar Mesazh
Në hapin e mëparshëm Ju keni një URL e cila dërgon të dhëna në pajisjen tuaj. Fatkeqësisht, pasi të dilni nga app.remoteme.org, ai ndalon së punuari. Kjo ndodh sepse ne nuk siguruam shenjën e vërtetimit dhe nuk jemi më të kyçur. Le të marrim shenjën tonë (ose të krijojmë një të re) dhe ta ngjisim në URL në vend të yllit.
Shikoni ekranin dhe zëvendësoni * në URL me shenjën tuaj
në rastin tim shenja është:
~ 267_ZxoWtJ) 0ph & 2c
kështu që URL -ja ime përfundimtare duket si:
app.remoteme.org/api/~267_ZxoWtJ)0ph&2c/rest/v1/message/sendUserMessageHexString/205/1/NO_RENEWAL/1/070F010501/
Tani mund ta quajmë edhe nëse nuk jemi të kyçur. Dhe kur të thirret, një mesazh do të dërgohet në pajisjen tonë 205
Hapi 10: Integrimi me IFTTT 1/7
Url e krijuar në hapin e mësipërm është e përshtatshme për ekzekutim nga aplikacione të jashtme. Si ta përdor do ta tregoj në IFTTT. Unë do ta konfiguroj atë në mënyrë që njoftuesi të ndizet kur një email vjen në adresën e postës elektronike (llogari Gmail).
Hyni në IFTTT. Pastaj shkoni te skeda Apletet e Mia dhe më pas "Apleti i ri"- ekrani i parë
Hapi 11: Integrimi me IFTTT 2/7
Tjetra klikoni "+këtë"
Hapi 12: Integrimi me IFTTT 3/7
Pastaj në fushën "Shërbimet e kërkimit" shkruani "Gmail"
Pastaj "email i ri në kutinë hyrëse" (Mund të nevojiten disa konfigurime).
Hapi 13: Integrimi me IFTTT 4/7
Tani ne klikojmë në "+ atë"
Hapi 14: Integrimi me IFTTT 5/7
gjeni "Webhooks" dhe klikoni mbi të
Hapi 15: Integrimi me IFTTT 6/7
pastaj "Bëni një kërkesë në internet"
Hapi 16: Integrimi me IFTTT 7/7
ne plotësojmë URL -në e url -it tonë me shenjën. Lloji i përmbajtjes në aplikacion / json dhe klikoni "krijoni veprim" dhe Përfundo. Tani kemi apletin tonë:
Hapi 17: Përmbledhje
Në këtë tutorial, unë tregova se si t'i dërgojmë mesazhe Arduino -s tonë nga sistemet e jashtme. Ne gjithashtu integrojmë një sistem tjetër pastaj IFTTT në një mënyrë të ngjashme. Jo domosdoshmërisht duhet të jetë një "njoftues" që doja të tregoja në këtë shembull se si të dërgoni mesazhe nga sistemet e jashtme në Arduino -n tonë.
kodet e burimeveFanPage në Facebook
Urime, Maciek
Recommended:
Njoftuesi i thirrjeve Bluetooth: 5 hapa (me fotografi)
Njoftuesi i Thirrjeve Bluetooth: Hyrje Unë po shfletoja burimet e lajmeve udhëzuese disa ditë më parë kur hasa në këtë Projekt. Ishte një projekt i lezetshëm. Por mendova Pse të mos e ndërtojmë me një Bluetooth në vend të gjërave të komplikuara wifi. Specifikimi i këtij Njoftuesi të Thirrjeve Bluetooth
Njoftuesi automatik i larjes së duarve: 5 hapa
Njoftuesi automatik i larjes së duarve: Kjo është një makinë që mund të njoftojë dikë kur kalon nëpër derë. Qëllimi i tij është t'i kujtojë dikujt që të lajë duart kur ai ose ajo kthehet në shtëpi. Ekziston një sensor tejzanor në pjesën e përparme të kutisë që ndjen për dikë që hyn në
Njoftuesi IoT duke përdorur ESP-12E: 7 hapa (me fotografi)
Njoftuesi IoT Duke përdorur ESP-12E: Keni mbetur në shtëpi larg të dashurit tuaj? Gjatë kësaj kohe të vështirë, ky projekt argëtues i vogël patjetër do të përpiqet të sjellë një buzëqeshje në fytyrat tuaja. Në këtë udhëzues, unë do t'ju tregoj se si të shfaqni njoftimet nga telefoni juaj celular në formën e
Njoftuesi i lehtë i e -mail i palexuar: 7 hapa
Njoftues i lehtë i palexuar i postës elektronike: Përshëndetje të gjithëve, mirë se vini në një tjetër Udhëzues. Me situatën aktuale të punës nga shtëpia, unë jam duke u përballur me disa sfida sepse kam marrë email nga Kompania ime herë pas here. Pastaj po mendoja të bëja një Njoftues tavoline i cili do më njofto për
Treguesi i Nivelit të Ujit Njoftuesi i spermës: 4 hapa
Treguesi i Nivelit të Ujit Njoftuesi i spermës: Njoftuesi i treguesit të nivelit të ujit është një pajisje e cila monitoron vazhdimisht nivelin e ujit në rezervuarin e ujit dhe ju njofton nëse është e nevojshme. Ju njofton nëse rezervuari është i plotë ose i zbrazët, në mënyrë që të ndizni ose fikni pompën për të ndaluar humbjen e ujit