Obsah:

Oznamovateľ: 17 krokov
Oznamovateľ: 17 krokov

Video: Oznamovateľ: 17 krokov

Video: Oznamovateľ: 17 krokov
Video: НИЧТО НЕ СЛУЧАЕТСЯ ДВАЖДЫ Продолжение 17 серия | Драма | Детектив 2024, Júl
Anonim
Notifikátor
Notifikátor

Zariadenie je možné pripojiť napríklad k systému IFTTT a reagovať, keď sa objaví nová pošta. Na app.remoteme.org po vygenerovaní vygenerujeme odkaz, ktoré bajty budú odoslané do Arduina, a Arduino zobrazí svetelný efekt a prehrá mp3 z karty SD

Krok 1: Čo je potrebné

Čo je potrebné
Čo je potrebné
Čo je potrebné
Čo je potrebné
  • NodeMCU, WemOS alebo niečo podobné
  • Dva LED krúžky s diódami WS2812B (použil som 16. LED krúžky)
  • DFRobotDFPlayerMini - toto je prehrávač mp3. Prehráva mp3 z karty SD a komunikuje s Arduino od RX/TX
  • Rečník
  • SD karta
  • Logický prevodník -Použil som tento, prehrávač mp3 používa 5 V a Arduino 3.3, preto potrebujeme tento prevodník.
  • Znalosti a zručnosti na výrobu jednoduchých PCB vlastnými rukami

Veža:

  • lepenka - dve rôzne hrúbky
  • Pauzovací papier
  • alobal

Krok 2: Budova veže

Budova veže
Budova veže
Budova veže
Budova veže
Budova veže
Budova veže
Budova veže
Budova veže

Nad pôdorysom veže v bočnom pohľade (moje dobrodružstvo s technickým výkresom sa skončilo na základnej škole), všetky rozmery v milimetroch.

Princíp činnosti

  1. kruh LED diód osvetľujúcich svetlo
  2. Pauzovací papier
  3. Zrezaný kužeľ vyrobený z lepenky a potiahnutý hliníkovou fóliou, ktorý odráža svetlá z LED krúžkov, na obrázku 3 ‘= vyrezaná sieťka
  4. kartónová trubica - drží veže zvisle, vo vnútri trubice sú káble na ledky
  5. Výška závisí od vás, mám 85 mm
  6. Stojan vo všetkých častiach elektroniky

Všetky horizontálne prvky by mali byť vyrobené z hrubšej lepenky.

Krok 3: Schéma zapojenia

Elektrické schéma
Elektrické schéma
Elektrické schéma
Elektrické schéma
Elektrické schéma
Elektrické schéma
Elektrické schéma
Elektrické schéma

Mp3 prehrávač je dodávaný s napätím 5V a komunikuje s Arduino cez TX / RX, je potrebný logický prevodník, pretože samotný Arduino pracuje na napätí 3,3V. Ovládanie krúžkov je pomocou logického prevodníka prepojené aj s Arduino (D5, D6).

V úložisku nájdete súbory orlov s plánmi DPS

Navrhujem, aby sa Arduino a mp3 prehrávač nespájali natrvalo, aby sa používali iba zlaté kolíky

Krok 4: Princíp činnosti

Naše Arduino sa pripája k systému app.remoteme.org pomocou WebSockets (existujú pripravené knižnice) prostredníctvom tohto pripojenia sa odosielajú 5-bajtové správy:

  • prvý bajt svetelného efektu pre horný prstenec LED
  • svetelný efekt druhého bajtu pre spodný prstenec LED
  • číslo súboru mp3, ktorý sa má prehrať
  • počet sekúnd, ako dlho sa bude svetelný efekt a mp3 prehrávať
  • či sa má mp3 prehrať raz alebo v slučke

zdrojový kód

Celý zdrojový kód nájdete tu

v súboroch SingleRing.cpp a SingleRing.h existuje trieda na ovládanie účinkov LED krúžkov. Navrhujem, aby ste sa najskôr pozreli na funkciu setMode (int m):

void SingleRing:: setMode (int m) {switch (m) {case 0: setConfiguration (0, 0, 50, 0, 5, 1); break; // off = 0 prípad 1: setConfiguration (6, 0, 50, 0, 0, 20); break; // plný štandardný zelený prípad 2: setConfiguration (6, 0, 0, 50, 0, 20); break; // pevný štandardný modrý prípad 3: setConfiguration (6, 50, 0, 0, 0, 20); break; // plný štandardný červený prípad 4: setConfiguration (6, 50, 10, 0, 0, 20); break; // plný štandardný oranžový prípad 5: setConfiguration (1, 0, 100, 0, 5, 2); break; // polícia v smere hodinových ručičiek zelený prípad 6: setConfiguration (1, 0, 100, 0, 5, -2); break; // polícia vráti zelený prípad 7: setConfiguration (1, 0, 0, 100, 5, 2); break; // polícia v smere hodinových ručičiek modrý prípad 8: setConfiguration (1, 0, 0, 100, 5, -2); break; // polícia vráti modrý prípad 9: setConfiguration (1, 100, 0, 0, 5, 2); break; // policajný štandard červený prípad 10: setConfiguration (1, 100, 0, 0, 5, -2); break; // polícia vráti červený prípad 11: setConfiguration (1, 100, 20, 0, 5, 2); break; // policajný štandardný oranžový prípad 12: setConfiguration (1, 100, 20, 0, 5, -2); break; // polícia vráti oranžový prípad 13: setConfiguration (2, 0, 0, 50, 8, 10); break; // cross standard blue case 14: setConfiguration (2, 0, 0, 50, 8, -10); break; // cross revert blue case 15: setConfiguration (5, 0, 50, 0, 0, 20); break; // bliknutie štandardné zelené puzdro 16: setConfiguration (5, 0, 50, 0, 0, -20); break; // bliknutie odwyrtka zelený prípad 17: setConfiguration (5, 0, 0, 50, 0, 20); break; // blink štandardné modré puzdro 18: setConfiguration (5, 0, 0, 50, 0, -20); break; // bliknutie vráti modrý prípad 19: setConfiguration (5, 50, 0, 0, 0, 20); break; // bliknutie štandardné červené písmeno 20: setConfiguration (5, 50, 0, 0, 0, -20); break; // bliknutie vráti červený prípad 21: setConfiguration (5, 50, 10, 0, 0, 20); break; // blink štandardné oranžové puzdro 22: setConfiguration (5, 50, 10, 0, 0, -20); break; // bliknutie vrátiť oranžovú predvolenú hodnotu: setConfiguration (0, 0, 50, 0, 5, 1); break; // off = 0}}

v závislosti od daného parametra prsteň zobrazí efekt. Svoj vlastný efekt môžete pridať volaním funkcie setKonfigurácia s novými parametrami (zmena farby, rýchlosť zobrazenia) pridaním nového režimu alebo pridaním úplne nového efektu - alebo mi dajte vedieť v komentároch, či sa mi to páči, pridám nový efekt

arduino.ino:

#include "Arduino.h" #include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h"

#zahrnúť

#include #include #include "SingleRing.h"

#zahrnúť

#include #include

#zahrnúť

#define WIFI_NAME ""

#define WIFI_PASSWORD "" #define DEVICE_ID 205 #define DEVICE_NAME "siréna" #define TOKEN ""

#define DIODES_COUNT 16

SingleRing hore = SingleRing (DIODES_COUNT, D5);

SingleRing dole = SingleRing (DIODES_COUNT, D6);

SoftwareSerial mySoftwareSerial (D4, D3); // RX, TX

DFRobotDFPlayerMini myDFPlayer; RemoteMe & remoteMe = RemoteMe:: getInstance (TOKEN, DEVICE_ID);

ESP8266WiFiMulti WiFiMulti;

neplatné nastavenie () {mySoftwareSerial.begin (9600); Serial.begin (115200);

if (! myDFPlayer.begin (mySoftwareSerial)) {// Na komunikáciu s mp3 používajte softwareSerial.

Serial.println (F ("Nedá sa začať:")); Serial.println (F („1. Zkontrolujte prosím pripojenie!“)); Serial.println (F („2. Vložte kartu SD!“)); while (pravda); } Serial.println (F („DFPlayer Mini online.“));

myDFPlayer.setTimeOut (500); // Nastavte časový limit sériovej komunikácie 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) {delay (100); }

remoteMe.setUserMessageListener (onUserMessage);

remoteMe.setupTwoWayCommunication ();

remoteMe.sendRegisterDeviceMessage (DEVICE_NAME);

top.setup ();

bottom.setup (); top.clear (); bottom.clear (); }

boolean TurnOff = true;

dlhé znamienko bez znamienkaOffMillis = 0;

neplatné onUserMessage (uint16_t senderDeviceId, uint16_t dataSize, uint8_t *data) {

uint16_t pos = 0; uint8_t bottomMode = RemoteMeMessagesUtils:: getUint8 (data, pos); uint8_t topMode = RemoteMeMessagesUtils:: getUint8 (data, pos); uint8_t trackNumber = RemoteMeMessagesUtils:: getUint8 (data, pos); uint8_t time = RemoteMeMessagesUtils:: getUint8 (data, pos); uint8_t mode = RemoteMeMessagesUtils:: getUint8 (data, pos);

bottom.setMode (bottomMode);

top.setMode (topMode); if (mode == 1) {myDFPlayer.loop (trackNumber); } else {myDFPlayer.play (trackNumber); } turnOff = false; turnOffMillis = milis () + 1000 * čas; }

prázdna slučka ()

{remoteMe.loop (); top.loop (); bottom.loop (); ak (turnOffMillis

}

vysvetlenie:

#define WIFI_NAME "" #define WIFI_PASSWORD "" #define DEVICE_ID 205 #define DEVICE_NAME "oznamovateľ" #define TOKEN ""

Musíme poskytnúť vyššie uvedené údaje, podrobné pokyny tu v odkaze a tiež som ukázal, ako sa zaregistrovať na remoteme.org a vygenerovať token, neplatné onUserMessage (uint16_t senderDeviceId, uint16_t dataSize, uint8_t *data) {uint16_t pos = 0; uint8_t bottomMode = RemoteMeMessagesUtils:: getUint8 (data, pos); uint8_t topMode = RemoteMeMessagesUtils:: getUint8 (data, pos); uint8_t trackNumber = RemoteMeMessagesUtils:: getUint8 (data, pos); uint8_t time = RemoteMeMessagesUtils:: getUint8 (data, pos); uint8_t mode = RemoteMeMessagesUtils:: getUint8 (data, pos);

bottom.setMode (bottomMode);

top.setMode (topMode); if (mode == 1) {myDFPlayer.loop (trackNumber); } else {myDFPlayer.play (trackNumber); } turnOff = false; turnOffMillis = milis () + 1000 * čas; }

Táto funkcia sa vyvolá, keď správa príde na Arduino a zobrazí upozornenie. Kód je taký jasný, že sa sám popisuje. Podrobnosti o triedach odkazujem na dokumentáciu tu a tu

void loop () {remoteMe.loop (); top.loop (); bottom.loop (); if (turnOffMillis <millis ()) {

if (! turnOff) {

top.clear ();

bottom.clear (); myDFPlayer.stop (); turnOff = true; }}

V slučke nazývame slučkové funkcie objektov a tiež, ak uplynul čas zobrazenia upozornení, vypneme diódy a zvuk.

Krok 5: Prehrávač MP3

Mp3 prehrávač
Mp3 prehrávač

Komunikuje s Arduino prostredníctvom TX / RX - podrobnosti o samotnom prehrávači tu a knižnici tu

Nahrávame súbory mp3 na kartu SD. Súbory na karte sú zoradené podľa abecedy a potom volaním:

myDFPlayer.play (5);

Piaty súbor prehráme z karty SD z koreňového adresára. Preto je dobré dať súborom na karte SD predpony 01, 02 atď. V mojom prípade to vyzerá ako na vyššie uvedenej printscreen

Generovanie hlasových príkazov Môžete použiť túto stránku.

Krok 6: Nahranie programu do Arduina

Odovzdanie programu do Arduina
Odovzdanie programu do Arduina
Odovzdanie programu do Arduina
Odovzdanie programu do Arduina

Pred nahraním náčrtu do Arduina si musíte stiahnuť potrebné knižnice, kde nájdete podrobné pokyny

dodatočne musíme nainštalovať knižnicu DFRobotDFPlayerMini a Adafruit_NeoPixel

Krok 7: Kontrola

Ovládanie
Ovládanie
Ovládanie
Ovládanie

Posielame do nášho Arduina päť bajtov

  • prvý bajt svetelného efektu pre horný prstenec LED
  • svetelný efekt druhého bajtu pre spodný prstenec LED
  • číslo súboru mp3, ktorý sa má prehrať
  • počet sekúnd, ako dlho sa bude svetelný efekt a mp3 prehrávať
  • či sa má mp3 prehrať raz alebo v slučke (1, ak sa má prehrávať v slučke)

Odoslaním bajtov

07 0F 01 05 01

Horný krúžok bude ukazovať policajné svetlá (režim 6), spodný bliká zelene (režim 15) (pozrite si funkciu setMode na adrese singleRing.cpp a komentáre vedľa nej). Prvý súbor z karty SD sa prehrá 5 sekúnd. A súbor sa bude prehrávať v slučke (skontrolujte funkciu onUserMessage na arduino.ino)

Pošlime tieto bajty. Pozrite sa na obrazovku vyššie a kliknite na ikony v poradí zapísanom 1, 2, 3. Zobrazí sa okno

Potom sa pozrite na druhú obrazovku - a vyplňte okno ako na druhej obrazovke

Okno, ktoré sa zobrazí, slúži na odosielanie správ do zariadenia. V poli 1 vyberte zariadenie na odosielanie - pretože máme iba jedno zariadenie, vyberieme ho (toto je povinné pole a nezáleží na tom, že sa jedná o to isté zariadenie, ktorému odosielame správu) V poli 2 dávame bajty odoslať (červená hodnota, ktorú sme zadali do 2, bude reprezentovaná ako reťazec), potom kliknite na tlačidlo Odoslať.

Po odoslaní správy by mal náš oznamovateľ zareagovať zobrazením príslušných svetelných efektov a prehratím zvoleného mp3. Odporúčame vám vyskúšať rôzne efekty zadaním prvých dvoch bajtov čísla od 0 do 22 (pozri popis vo funkcii setMode).

Krok 8: Odosielanie správ pomocou adries URL

Odosielanie správ pomocou adries URL
Odosielanie správ pomocou adries URL
Odosielanie správ pomocou adries URL
Odosielanie správ pomocou adries URL
Odosielanie správ pomocou adries URL
Odosielanie správ pomocou adries URL
Odosielanie správ pomocou adries URL
Odosielanie správ pomocou adries URL

Ak chceme zobrazovať oznámenia z externej aplikácie, napr. Pomocou IFTTT, potrebujeme URL, ktorá bude robiť presne to isté, čo sme urobili v okne v predchádzajúcom kroku. remoteme.org poskytuje REST APi. Prejdite na ňu kliknutím na kartu naparovania vľavo (posledná). Zobrazí sa stránka, na ktorej si môžeme vyskúšať aj naše adresy URL.

Na prvej obrazovke máte funkciu Potrebujete rozbaliť a potom vyplňte údaje ako na druhej obrazovke.

vyplňte údaje ako na obrázku vyššie. Po kliknutí na tlačidlo Spustiť odošleme správu

070F010501

Prijímač je zariadenie s 205 id, rovnaké zariadenie je tiež odosielateľom. MessageId s nastavením „No_RENEVAL“je irelevantné. A potom kliknite na položku Vykonať. Notifikátor bude reagovať rovnako ako pri odosielaní správ z aplikácie. Po zavolaní REST nižšie je adresa URL, ktorá bola volaná - pozrite sa na tretiu obrazovku. A skopírovať a prilepiť na adresu URL prehliadača bolo označené zeleným okrajom. Na štvrtej obrazovke bol môj prehliadač Chrome po vložení adresy URL prilepený

V mojom prípade je adresa URL:

app.remoteme.org/api/*/rest/v1/message/sendUserMessageHexString/205/1/NO_RENEWAL/1/070F010501/

Krok 9: Rovnaká adresa URL na odoslanie správy

Rovnaká adresa URL na odoslanie správy
Rovnaká adresa URL na odoslanie správy

V predchádzajúcom kroku máte adresu URL, ktorá odosiela údaje do vášho zariadenia. Bohužiaľ, po odhlásení z app.remoteme.org prestane fungovať. Dôvodom je, že sme neposkytli overovací token a už nie sme prihlásení. Zoberme si svoj token (alebo vytvorte nový) a prilepte ho do adresy URL namiesto hviezdičky.

Pozrite sa na obrazovku a nahraďte * v adrese URL svojim tokenom

v mojom prípade je token:

~ 267_ZxoWtJ) 0ph & 2c

takže moja cieľová URL vyzerá takto:

app.remoteme.org/api/~267_ZxoWtJ)0ph&2c/rest/v1/message/sendUserMessageHexString/205/1/NO_RENEWAL/1/070F010501/

Teraz to môžeme nazvať, aj keď nie sme prihlásení. A keď sa to zavolá, na naše zariadenie bude odoslaná správa 205

Krok 10: Integrácia s IFTTT 1/7

Integrácia s IFTTT 1/7
Integrácia s IFTTT 1/7

Adresa URL vytvorená v kroku vyššie je vhodná na spustenie externými aplikáciami. Ako sa používa, ukážem na IFTTT. Nakonfigurujem to tak, aby sa oznamovateľ zapol, keď príde e -mail na e -mailovú adresu (účet Gmail).

Prihláste sa do IFTTT. Potom prejdite na kartu Moje aplety a potom na položku „Nový aplet“- prvá obrazovka

Krok 11: Integrácia s IFTTT 2/7

Integrácia s IFTTT 2/7
Integrácia s IFTTT 2/7

Potom kliknite na „+toto“

Krok 12: Integrácia s IFTTT 3/7

Integrácia s IFTTT 3/7
Integrácia s IFTTT 3/7

Potom do poľa „Vyhľadávacie služby“napíšte „Gmail“

Potom „nový e -mail v doručenej pošte“(môže byť potrebná určitá konfigurácia).

Krok 13: Integrácia s IFTTT 4/7

Integrácia s IFTTT 4/7
Integrácia s IFTTT 4/7

teraz klikneme na „+ to“

Krok 14: Integrácia s IFTTT 5/7

Integrácia s IFTTT 5/7
Integrácia s IFTTT 5/7

nájdite položku „Webhooks“a kliknite na ňu

Krok 15: Integrácia s IFTTT 6/7

Integrácia s IFTTT 6/7
Integrácia s IFTTT 6/7

potom „Vytvoriť webovú žiadosť“

Krok 16: Integrácia s IFTTT 7/7

Integrácia s IFTTT 7/7
Integrácia s IFTTT 7/7

doplníme adresu URL našej adresy URL tokenom. Typ obsahu pre aplikáciu / json a kliknite na „vytvoriť akciu“a dokončiť. Teraz máme náš applet:

Krok 17: Zhrnutie

V tomto návode som ukázal, ako odosielať správy z našich Arduino z externých systémov. Podobným spôsobom integrujeme aj iný systém ako IFTTT. Nemusí to byť nevyhnutne „oznamovateľ“, ktorý som chcel v tomto prípade ukázať, ako odosielať správy z externých systémov do nášho Arduina.

sourcecodesFanPage na Facebooku

Na zdravie, Maciek

Odporúča: