Sisukord:

Teataja: 17 sammu
Teataja: 17 sammu

Video: Teataja: 17 sammu

Video: Teataja: 17 sammu
Video: 2019.11.28 Татьяна Гордеева - Трудовое право Эстонии: кто, что, где и как 2024, November
Anonim
Teataja
Teataja

Seadme saab ühendada näiteks IFTTT -süsteemiga ja reageerida uue kirja ilmumisel. Aadressil app.remoteme.org genereerime pärast helistamist lingi, mille baidid saadetakse Arduinole ning Arduino kuvab valgusefekti ja esitab SDcardilt mp3

Samm: mida on vaja

Mida on vaja
Mida on vaja
Mida on vaja
Mida on vaja
  • NodeMCU, WemOS või midagi sarnast
  • Kaks LED -rõngast koos WS2812B dioodidega (olen kasutanud 16. LED -rõngaid)
  • DFRobotDFPlayerMini - see on mp3 -mängija. See mängib SDcardilt mp3 -d ja suhtleb Arduinoga RX/TX kaudu
  • Kõlar
  • SD -kaart
  • Loogikamuundur -olen seda kasutanud, mp3 -mängija kasutab 5V ja Arduino 3.3, sellepärast vajame seda muundurit
  • Teadmised ja oskused lihtsate trükkplaatide valmistamiseks meie enda poolt

Torn:

  • papp - kaks erinevat paksust
  • Jälgpaber
  • alumiiniumfoolium

2. samm: torni ehitamine

Tornihoone
Tornihoone
Tornihoone
Tornihoone
Tornihoone
Tornihoone
Tornihoone
Tornihoone

Torni plaani kohal külgvaates (minu seiklus tehnilise joonisega lõppes põhikoolis), kõik mõõtmed millimeetrites.

Toimimispõhimõte

  1. helendav valgusdioodide rõngas
  2. Jälgpaber
  3. Kärbitud koonus, mis on valmistatud papist ja kaetud alumiiniumfooliumiga, peegeldab LED-rõngaste valgust, joonis 3 '= väljalõigatud võrk
  4. papptoru - hoiab torne vertikaalselt, toru sees on juhtmete kaablid
  5. Kõrgus sõltub teist, mul on 85 mm
  6. Alus kõigi elektroonikaseadmete sees

Kõik horisontaalsed elemendid peaksid olema valmistatud paksemast papist.

Samm: ühendusskeem

Juhtmestiku skeem
Juhtmestiku skeem
Juhtmestiku skeem
Juhtmestiku skeem
Juhtmestiku skeem
Juhtmestiku skeem
Juhtmestiku skeem
Juhtmestiku skeem

MP3 -mängija on varustatud 5 V pingega ja suhtleb Arduinoga TX / RX kaudu, vaja on loogikamuundurit, kuna Arduino ise töötab 3,3 V pingel. Rõngaste juhtimine on loogikamuunduri kaudu ühendatud ka Arduinoga (D5, D6).

Hoidlast leiate PCB plaanidega kotkafailid

Ma soovitan Arduinot ja mp3 -mängijat mitte igavesti jootma, et kasutada ainult naissoost kuldnõelu

4. samm: toimimispõhimõte

Meie Arduino ühendub selle ühenduse kaudu rakendusega Web.ocket (on olemas valmis teegid) rakendusega app.remoteme.org (5-baidised sõnumid):

  • ülemise LED -rõnga valgusefekti esimene bait
  • teise baidi valgusefekt alumisele LED -rõngale
  • esitatava mp3 -faili number
  • sekundite arv, kui kaua valgusefekti ja mp3 -d esitatakse
  • kas mp3 -d tuleks mängida üks kord või ringis

lähtekood

Kogu lähtekoodi leiate siit

failides SingleRing.cpp ja SingleRing.h on klass LED -rõngaste mõju juhtimiseks. Soovitan teil alustada funktsiooni setMode (int m) vaatamisega:

tühine 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); murda; // tahke standardne roheline ümbris 2: setConfiguration (6, 0, 0, 50, 0, 20); break; // tahke tavaline sinine ümbris 3: setConfiguration (6, 50, 0, 0, 0, 20); murda; // tahke standardne punane ümbris 4: setConfiguration (6, 50, 10, 0, 0, 20); murda; // tahke tavaline oranž ümbris 5: setConfiguration (1, 0, 100, 0, 5, 2); break; // politsei päripäeva roheline ümbris 6: setConfiguration (1, 0, 100, 0, 5, -2); break; // politsei tagastab rohelise juhtumi 7: setConfiguration (1, 0, 0, 100, 5, 2); break; // politsei päripäeva sinine ümbris 8: setConfiguration (1, 0, 0, 100, 5, -2); break; // politsei tagastab sinise juhtumi 9: setConfiguration (1, 100, 0, 0, 5, 2); break; // politsei standardne punane ümbris 10: setConfiguration (1, 100, 0, 0, 5, -2); break; // politsei tagastab punase juhtumi 11: setConfiguration (1, 100, 20, 0, 5, 2); break; // politsei standard oranž ümbris 12: setConfiguration (1, 100, 20, 0, 5, -2); break; // politsei tagastab oranži ümbrise 13: setConfiguration (2, 0, 0, 50, 8, 10); break; // rist standardset sinist ümbrist 14: setConfiguration (2, 0, 0, 50, 8, -10); break; // cross revert blue case 15: setConfiguration (5, 0, 50, 0, 0, 20); break; // vilgub standardne roheline ümbris 16: setConfiguration (5, 0, 50, 0, 0, -20); murda; // vilkuma odwyrtka roheline ümbris 17: setConfiguration (5, 0, 0, 50, 0, 20); break; // vilgub tavaline sinine ümbris 18: setConfiguration (5, 0, 0, 50, 0, -20); murda; // vilkuma revert sinine juhtum 19: setConfiguration (5, 50, 0, 0, 0, 20); break; // vilgub standardne punane ümbris 20: setConfiguration (5, 50, 0, 0, 0, -20); murda; // vilkuma tagasi punane juhtum 21: setConfiguration (5, 50, 10, 0, 0, 20); break; // vilgub tavaline oranž ümbris 22: setConfiguration (5, 50, 10, 0, 0, -20); murda; // vilkuma tagasi oranž vaikimisi: setConfiguration (0, 0, 50, 0, 5, 1); vaheaeg; // väljas = 0}}

olenevalt antud parameetrist kuvab rõngas efekti. Saate lisada oma efekti, kutsudes funktsiooni setConfiguration uute parameetritega (värvi muutmine, kuvamiskiirus), lisades uue režiimi või lisades täiesti uue efekti - või andke mulle kommentaarides teada, kui mulle meeldib, lisan uue efekti

arduino.ino:

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

#kaasake

#include #include #include "SingleRing.h"

#kaasake

#kaasama #kaasama

#kaasake

#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 alt=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); Seriaalne algus (115200);

if (! myDFPlayer.begin (mySoftwareSerial)) {// Kasuta mp3 -ga suhtlemiseks softwareSerialit.

Serial.println (F ("Ei saa alustada:")); Serial.println (F ("1. Kontrollige ühendust uuesti!")); Serial.println (F ("2. Palun sisestage SD -kaart!")); samas (tõsi); } Serial.println (F ("DFPlayer Mini võrgus."));

myDFPlayer.setTimeOut (500); // Määrake jadaühenduse aeg 500 ms

myDFPlayer.maht (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 ();

alt.seadistus (); top.clear (); alt.selge (); }

boolean TurnOff = true;

allkirjata pikk turnOffMillis = 0;

void onUserMessage (uint16_t senderDeviceId, uint16_t dataSize, uint8_t *andmed) {

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

bottom.setMode (bottomMode);

top.setMode (topMode); if (mode == 1) {myDFPlayer.loop (trackNumber); } else {myDFPlayer.play (trackNumber); } välja lülitatud = vale; turnOffMillis = millis () + 1000 * aeg; }

tühine tsükkel ()

{remoteMe.loop (); top.loop (); alt.loop (); kui (turnOffMillis

}

selgitus:

#define WIFI_NAME "" #define WIFI_PASSWORD "" #define DEVICE_ID 205 #define DEVICE_NAME "notificator" #define TOKEN ""

Peame esitama ülaltoodud andmed, üksikasjalikud juhised siin lingil. Samuti olen näidanud, kuidas registreeruda saidil remoteme.org ja luua žetoon, void onUserMessage (uint16_t senderDeviceId, uint16_t dataSize, uint8_t *andmed) {uint16_t pos = 0; uint8_t bottomMode = RemoteMeMessagesUtils:: getUint8 (andmed, pos); uint8_t topMode = RemoteMeMessagesUtils:: getUint8 (andmed, pos); uint8_t trackNumber = RemoteMeMessagesUtils:: getUint8 (andmed, pos); uint8_t time = RemoteMeMessagesUtils:: getUint8 (andmed, pos); uint8_t mode = RemoteMeMessagesUtils:: getUint8 (andmed, pos);

bottom.setMode (bottomMode);

top.setMode (topMode); if (mode == 1) {myDFPlayer.loop (trackNumber); } else {myDFPlayer.play (trackNumber); } välja lülitatud = vale; turnOffMillis = millis () + 1000 * aeg; }

Seda funktsiooni kutsutakse, kui sõnum jõuab Arduinole ja kuvab teate. Kood on nii selge, et kirjeldab ennast. Viitan klasside üksikasjadele dokumentidele siin ja siin

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

kui (! lülitatud välja) {

top.clear ();

alt.selge (); myDFPlayer.stop (); TurnOff = tõsi; }}

Tsüklis kutsume objektide tsüklifunktsioone ja ka siis, kui märguannete kuvamisaeg on möödas, lülitame dioodid ja heli välja.

Samm: MP3 -mängija

Mp3 mängija
Mp3 mängija

See suhtleb Arduinoga TX / RX kaudu - üksikasjad mängija enda kohta siin ja raamatukogu siin

Laadime mp3 -failid SD -kaardile üles. Kaardil olevad failid sorteeritakse tähestikulises järjekorras ja seejärel helistades:

myDFPlayer.play (5);

Mängime viiendat faili SD -kaardilt juurkataloogist. Seetõttu on hea anda failid SD -kaardi eesliidetele 01, 02 jne. Minu puhul näeb see välja nagu ülaltoodud prindiekraanil

Häälkäskluste genereerimine Seda lehte saate kasutada.

Samm: programmi üleslaadimine Arduinosse

Programmi üleslaadimine Arduinosse
Programmi üleslaadimine Arduinosse
Programmi üleslaadimine Arduinosse
Programmi üleslaadimine Arduinosse

Enne eskiisi Arduinole üleslaadimist peate siit alla laadima vajalikud teegid, kust leiate üksikasjalikud juhised

lisaks peame installima raamatukogu DFRobotDFPlayerMini ja Adafruit_NeoPixel

7. samm: kontrollige

Kontroll
Kontroll
Kontroll
Kontroll

Saadame oma Arduinole viis baiti

  • ülemise LED -rõnga valgusefekti esimene bait
  • teise baidi valgusefekt alumisele LED -rõngale
  • esitatava mp3 -faili number
  • sekundite arv, kui kaua valgusefekti ja mp3 -d esitatakse
  • kas mp3 -d tuleks esitada üks kord või tsüklina (1, kui seda tuleks esitada silmusena)

Baitide saatmisega

07 0F 01 05 01

Ülemine rõngas näitab politseitulesid (režiim 6), alumine vilgub roheliselt (režiim 15) (vaadake funktsiooni setMode aadressil singleRing.cpp ja selle kõrval olevaid kommentaare). SD -kaardi esimest faili esitatakse 5 sekundit. Ja faili esitatakse silmusena (kontrollige funktsiooni onUserMessage aadressil arduino.ino)

Saadame need baidid. Vaadake ülalolevat ekraani ja klõpsake ikoone järjekorras 1, 2, 3. Ilmub aken

Seejärel vaadake teist ekraani - ja täitke aken nagu teisel ekraanil

Ilmuvat akent kasutatakse seadmesse sõnumite saatmiseks. Valige väljal 1 saatjaseade - kuna meil on ainult üks seade, valime selle (see on kohustuslik väli ja pole oluline, et see on sama seade, millele me sõnumi saadame). Väljal 2 anname baite saatmine (punasena kuvatakse väärtus 2, mille sisestasime stringina), seejärel klõpsake nuppu Saada.

Pärast sõnumi saatmist peaks meie teataja reageerima, näidates sobivaid valgusefekte ja esitades valitud mp3. Soovitan teil proovida erinevaid efekte, andes kahe esimese baidi arvu vahemikus 0 kuni 22 (vt kirjeldust funktsioonis setMode).

8. toiming: sõnumite saatmine URL -ide abil

Sõnumite saatmine URL -ide abil
Sõnumite saatmine URL -ide abil
Sõnumite saatmine URL -ide abil
Sõnumite saatmine URL -ide abil
Sõnumite saatmine URL -ide abil
Sõnumite saatmine URL -ide abil
Sõnumite saatmine URL -ide abil
Sõnumite saatmine URL -ide abil

Kui tahame kuvada välise rakenduse teateid, nt IFTTT abil, peab meil olema URL, mis teeb täpselt sama, mis eelmises etapis. remoteme.org pakub REST APi. Minge selle juurde, klõpsates vasakul asuvat vahekaarti (viimane). Kuvatakse leht, sellel lehel saame proovida ka meie URL -e.

Esimesel ekraanil on funktsioon, mida peate laiendama, seejärel täitke andmed nagu teisel ekraanil.

täitke andmed nagu ülaltoodud ekraanipildil. Pärast käsul Execute klõpsamist saadame sõnumi

070F010501

Vastuvõtja on seade, mille ID on 205, sama seade on ka saatja. MessageId seadetega „No_RENEVAL” ei ole asjakohane. Ja seejärel klõpsake nuppu Käivita. Märkija reageerib samamoodi nagu rakendusest sõnumite saatmisel. Pärast REST -i helistamist on allpool nimetatud URL - vaadake kolmandat ekraani. Ja kopeerimine ja kleepimine brauseri URL -ile on märgitud rohelise äärisega. Neljandal ekraanil minu Chrome'i brauser pärast URL -i kleepimist

Minu puhul on URL järgmine:

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

Samm: sõnumi saatmiseks ükskõik milline URL

Sõnumi saatmiseks ükskõik milline URL
Sõnumi saatmiseks ükskõik milline URL

Eelmises etapis on teil URL, mis saadab teie seadmesse andmeid. Kahjuks lakkab see pärast rakendusest app.remoteme.org väljalogimist töötamast. Seda seetõttu, et me ei esitanud autentimismärki ja me pole enam sisse logitud. Võtame oma märgi (või loome uue) ja kleepime selle tähe asemel URL -i.

Vaadake ekraani ja asendage * URL -is oma märgiga

minu puhul on märk:

~ 267_ZxoWtJ) 0ph & 2c

nii et minu lõplik URL näeb välja selline:

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

Nüüd saame sellele helistada isegi siis, kui me pole sisse logitud. Ja kui see helistatakse, saadetakse meie seadmesse sõnum 205

10. samm: integreerimine IFTTT 1/7 -ga

Integreerimine IFTTT 1/7 -ga
Integreerimine IFTTT 1/7 -ga

Ülaltoodud sammus loodud URL sobib väliste rakenduste täitmiseks. Kuidas seda kasutada, näitan IFTTT -l. Ma konfigureerin selle nii, et teavitaja lülitub sisse, kui e -posti aadressile (Gmaili kontole) tuleb e -kiri.

Logige sisse IFTTT-sse. Seejärel minge vahekaardile Minu apletid ja seejärel „Uus aplett”- esimene ekraan

11. samm: integreerimine IFTTT 2/7 -ga

Integreerimine IFTTT -ga 2/7
Integreerimine IFTTT -ga 2/7

Järgmisena klõpsake nuppu "+see"

12. samm: integreerimine IFTTT 3/7 -ga

Integreerimine IFTTT -ga 3/7
Integreerimine IFTTT -ga 3/7

Seejärel kirjutage väljale „Otsinguteenused” „Gmail”

Seejärel "uus e -kiri postkasti" (võib vaja minna teatud konfiguratsiooni).

13. samm: integreerimine IFTTT -ga 4/7

Integreerimine IFTTT -ga 4/7
Integreerimine IFTTT -ga 4/7

nüüd klõpsame "+ see"

14. samm: integreerimine IFTTT 5/7 -ga

Integreerimine IFTTT -ga 5/7
Integreerimine IFTTT -ga 5/7

leidke “Webhooks” ja klõpsake seda

15. samm: integreerimine IFTTT 6/7 -ga

Integreerimine IFTTT -ga 6/7
Integreerimine IFTTT -ga 6/7

seejärel „Esitage veebipäring”

16. samm: integreerimine IFTTT 7/7 -ga

Integreerimine IFTTT -ga 7/7
Integreerimine IFTTT -ga 7/7

täiendame oma URL -i märgi abil URL -i. Sisu tüüp rakendusele / json ja klõpsake nuppu „Loo toiming” ja Lõpeta. Nüüd on meil oma aplett:

17. samm: kokkuvõte

Selles õpetuses näitasin, kuidas saata meie Arduino sõnumeid välistest süsteemidest. Samuti integreerime sarnasel viisil mõne muu süsteemi, seejärel IFTTT. See ei pea tingimata olema „märguandja”, mida tahtsin selles näites näidata, kuidas saata sõnumeid välistest süsteemidest meie Arduinole.

sourcecodesFanPage Facebookis

Tervist, Maciek

Soovitan: