Obsah:
- Krok 1: Co je potřeba
- Krok 2: Budova věže
- Krok 3: Schéma zapojení
- Krok 4: Princip činnosti
- Krok 5: Přehrávač MP3
- Krok 6: Nahrání programu do Arduina
- Krok 7: Ovládání
- Krok 8: Odesílání zpráv pomocí adres URL
- Krok 9: Anymous URL to Send Message
- Krok 10: Integrace s IFTTT 1/7
- Krok 11: Integrace s IFTTT 2/7
- Krok 12: Integrace s IFTTT 3/7
- Krok 13: Integrace s IFTTT 4/7
- Krok 14: Integrace s IFTTT 5/7
- Krok 15: Integrace s IFTTT 6/7
- Krok 16: Integrace s IFTTT 7/7
- Krok 17: Shrnutí
Video: Notifikátor: 17 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
Zařízení lze připojit například k systému IFTTT a reagovat, když se objeví nová pošta. Na app.remoteme.org vygenerujeme odkaz po volání, které bajty budou odeslány do Arduina, a Arduino zobrazí nějaký světelný efekt a přehraje mp3 z SD karty
Krok 1: Co je potřeba
- NodeMCU, WemOS nebo něco podobného
- Dva LED kroužky s diodami WS2812B (použil jsem 16. LED diody)
- DFRobotDFPlayerMini - toto je mp3 přehrávač. Přehrává mp3 z SD karty a komunikuje s Arduino od RX/TX
- mluvčí
- SD karta
- Logický převodník -Použil jsem tento, mp3 přehrávač používá 5V a Arduino 3.3, proto potřebujeme tento převodník
- Znalosti a dovednosti pro výrobu jednoduchých PCB vlastními silami
Věž:
- lepenka - dvě různé tloušťky
- Pauzovací papír
- hliníková fólie
Krok 2: Budova věže
Nad půdorysem věže v bočním pohledu (moje dobrodružství s technickým výkresem skončilo na základní škole), všechny rozměry v milimetrech.
Princip činnosti
- kruh LED svítí
- Pauzovací papír
- Zkrácený kužel, vyrobený z lepenky a pokrytý hliníkovou fólií, takže odráží světla z LED kroužků, na obrázku 3 ‘= vyříznutá síťka
- kartonová trubice - drží věže svisle, uvnitř trubice jsou kabely pro ledky
- Výška závisí na vás, mám 85 mm
- Stojan uvnitř všech částí elektroniky
Všechny vodorovné prvky by měly být vyrobeny ze silnější lepenky.
Krok 3: Schéma zapojení
MP3 přehrávač je dodáván s napětím 5V a komunikuje s Arduino přes TX / RX, je potřeba logický převodník, protože samotný Arduino pracuje na napětí 3,3V. Ovládání prstenů je také připojeno k Arduinu (D5, D6) prostřednictvím logického převaděče.
V úložišti najdete orlí soubory s plány PCB
Doporučuji trvale nepájet Arduino a mp3 přehrávač pouze pro použití zlatých pinů
Krok 4: Princip činnosti
Naše Arduino se připojuje k systému app.remoteme.org pomocí WebSockets (existují připravené knihovny) prostřednictvím tohoto připojení jsou odesílány 5bajtové zprávy:
- první bajt světelného efektu pro horní prstenec LED
- světelný efekt druhého bajtu pro spodní prstenec LED
- číslo přehrávaného souboru mp3
- počet sekund, jak dlouho se bude světelný efekt a mp3 přehrávat
- zda se má mp3 přehrávat jednou nebo ve smyčce
zdrojový kód
Celý zdrojový kód najdete zde
v souborech SingleRing.cpp a SingleRing.h existuje třída pro ovládání efektů LED kroužků. Doporučuji začít tím, že se podíváte na funkci setMode (int m):
void SingleRing:: setMode (int m) {switch (m) {case 0: setConfiguration (0, 0, 50, 0, 5, 1); break; // off = 0 případ 1: setConfiguration (6, 0, 50, 0, 0, 20); break; // solid standard green case 2: setConfiguration (6, 0, 0, 50, 0, 20); break; // solid standard blue case 3: setConfiguration (6, 50, 0, 0, 0, 20); break; // plný standardní červený případ 4: setConfiguration (6, 50, 10, 0, 0, 20); break; // plné standardní oranžové pouzdro 5: setConfiguration (1, 0, 100, 0, 5, 2); break; // policie ve směru hodinových ručiček zelený případ 6: setConfiguration (1, 0, 100, 0, 5, -2); break; // policejní návrat zelený případ 7: setConfiguration (1, 0, 0, 100, 5, 2); break; // policie ve směru hodinových ručiček modrý případ 8: setConfiguration (1, 0, 0, 100, 5, -2); break; // police revert blue case 9: setConfiguration (1, 100, 0, 0, 5, 2); break; // policejní standard červený případ 10: setConfiguration (1, 100, 0, 0, 5, -2); break; // police revert red case 11: setConfiguration (1, 100, 20, 0, 5, 2); break; // policejní standardní oranžové pouzdro 12: setConfiguration (1, 100, 20, 0, 5, -2); break; // policie vrátí oranžový pří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; // bliká standardní zelené pouzdro 16: setConfiguration (5, 0, 50, 0, 0, -20); break; // bliknutí odwyrtka zelené pouzdro 17: setConfiguration (5, 0, 0, 50, 0, 20); break; // blikání standardní modrý případ 18: setConfiguration (5, 0, 0, 50, 0, -20); break; // blikání vrátit modrý případ 19: setConfiguration (5, 50, 0, 0, 0, 20); break; // blikání standardní červený případ 20: setConfiguration (5, 50, 0, 0, 0, -20); break; // blikání vrátit červený případ 21: setConfiguration (5, 50, 10, 0, 0, 20); break; // bliká standardní oranžové pouzdro 22: setConfiguration (5, 50, 10, 0, 0, -20); break; // blikání vrátit oranžovou výchozí: setConfiguration (0, 0, 50, 0, 5, 1); break; // off = 0}}
v závislosti na daném parametru prsten zobrazí efekt. Svůj vlastní efekt můžete přidat voláním funkce setConfiguration s novými parametry (změna barvy, rychlost zobrazení) přidáním nového režimu nebo přidáním zcela nového efektu - nebo mi dejte vědět do komentářů, jestli se mi to líbí, přidám nový efekt
arduino.ino:
#include "Arduino.h" #include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h"
#zahrnout
#include #include #include "SingleRing.h"
#zahrnout
#include #include
#zahrnout
#define WIFI_NAME ""
#define WIFI_PASSWORD "" #define DEVICE_ID 205 #define DEVICE_NAME "siréna" #define TOKEN ""
#define DIODES_COUNT 16
SingleRing top = 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é nastavení () {mySoftwareSerial.begin (9600); Serial.begin (115200);
if (! myDFPlayer.begin (mySoftwareSerial)) {// Ke komunikaci s mp3 používejte softwareSerial.
Serial.println (F ("Nelze spustit:")); Serial.println (F („1. Znovu zkontrolujte připojení!“)); Serial.println (F („2. Vložte SD kartu!“)); while (true); } Serial.println (F („DFPlayer Mini online.“));
myDFPlayer.setTimeOut (500); // Nastavte časový limit sériové komunikace 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;
dlouhé znaménko bez znaménka OffMillis = 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ázdná smyčka ()
{remoteMe.loop (); top.loop (); bottom.loop (); if (turnOffMillis
}
vysvětlení:
#define WIFI_NAME "" #define WIFI_PASSWORD "" #define DEVICE_ID 205 #define DEVICE_NAME "oznamovatel" #define TOKEN ""
Musíme poskytnout výše uvedená data, podrobné pokyny zde v odkazu a také jsem ukázal, jak se zaregistrovat na remoteme.org a vygenerovat 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; }
Tato funkce bude vyvolána, když zpráva přijde na Arduino a zobrazí oznámení. Kód je tak jasný, že se sám popisuje. Odkazuji na podrobnosti o třídách v dokumentaci zde a zde
void loop () {remoteMe.loop (); top.loop (); bottom.loop (); if (turnOffMillis <millis ()) {
if (! turnOff) {
top.clear ();
bottom.clear (); myDFPlayer.stop (); turnOff = true; }}
Ve smyčce voláme smyčkové funkce objektů a také pokud uplynul čas zobrazení notifikací, vypneme diody a zvuk.
Krok 5: Přehrávač MP3
Komunikuje s Arduino přes TX / RX - podrobnosti o samotném přehrávači zde a knihovně zde
Nahráváme soubory mp3 na kartu SD. Soubory na kartě jsou seřazeny podle abecedy a poté voláním:
myDFPlayer.play (5);
Přehrajeme pátý soubor z SD karty z kořenového adresáře. Proto je dobré dát souborům na SD kartě předpony 01, 02 atd. V mém případě to vypadá jako na výše uvedeném printscreenu
Generování hlasových příkazů Můžete použít tuto stránku.
Krok 6: Nahrání programu do Arduina
Před nahráním skici do Arduina si zde musíte stáhnout potřebné knihovny, kde najdete podrobné pokyny
dále musíme nainstalovat knihovnu DFRobotDFPlayerMini a Adafruit_NeoPixel
Krok 7: Ovládání
Posíláme našemu Arduinu pět bajtů
- první bajt světelného efektu pro horní prstenec LED
- světelný efekt druhého bajtu pro spodní prstenec LED
- číslo přehrávaného souboru mp3
- počet sekund, jak dlouho se bude světelný efekt a mp3 přehrávat
- zda by měl být mp3 přehráván jednou nebo ve smyčce (1, pokud by měl být přehráván ve smyčce)
Odesláním bajtů
07 0F 01 05 01
Horní prstenec bude ukazovat policejní světla (režim 6), spodní bliká zeleně (režim 15) (podívejte se na funkci setMode na singleRing.cpp a komentáře vedle ní). První soubor z karty SD se přehraje po dobu 5 sekund. A soubor se přehraje ve smyčce (zkontrolujte funkci onUserMessage na arduino.ino)
Pošleme tyto bajty. Podívejte se na obrazovku výše a klikněte na ikony v pořadí zapsaném 1, 2, 3. Zobrazí se okno
Poté se podívejte na druhou obrazovku - a vyplňte okno jako na druhé obrazovce
Okno, které se zobrazí, slouží k odesílání zpráv do zařízení. V poli 1 vyberte odesílací zařízení - protože máme pouze jedno zařízení, vybereme ho (toto je povinné pole a nezáleží na tom, že se jedná o stejné zařízení, kterému posíláme zprávu) V poli 2 dáváme bajty odeslat (červeně bude hodnota, kterou jsme zadali do 2, reprezentována jako řetězec), poté klikněte na tlačítko Odeslat.
Po odeslání zprávy by měl náš oznamovatel reagovat zobrazením příslušných světelných efektů a přehráváním zvoleného mp3. Doporučuji vám vyzkoušet různé efekty zadáním prvních dvou bajtů čísla mezi 0 a 22 (viz popis ve funkci setMode).
Krok 8: Odesílání zpráv pomocí adres URL
Pokud chceme zobrazovat oznámení z externí aplikace např. S IFTTT, potřebujeme mít URL, které bude dělat přesně to samé, co jsme dělali v okně v předchozím kroku. remoteme.org poskytuje REST APi. Přejděte na ni kliknutím na záložku Swagger vlevo (poslední). Zobrazí se stránka, na které můžeme také vyzkoušet naše adresy URL.
Na první obrazovce máte funkci, kterou potřebujete rozbalit, a poté vyplňte data jako na druhé obrazovce.
vyplňte údaje jako na výše uvedeném snímku obrazovky. Po kliknutí na spustit odešleme zprávu
070F010501
Přijímač je zařízení s 205 id, stejné zařízení je také odesílatelem. MessageId s nastavením „No_RENEVAL“není relevantní. A pak klikněte na Execute. Notificator bude reagovat stejným způsobem jako při odesílání zpráv z aplikace. Po volání REST níže je uvedena adresa URL, která byla volána - podívejte se na třetí obrazovku. A zkopírovat a vložit na adresu URL prohlížeče bylo označeno zeleným okrajem. Na čtvrté obrazovce byl vložen můj prohlížeč Chrome po vložení adresy URL
V mém případě je adresa URL:
app.remoteme.org/api/*/rest/v1/message/sendUserMessageHexString/205/1/NO_RENEWAL/1/070F010501/
Krok 9: Anymous URL to Send Message
V předchozím kroku máte adresu URL, která odesílá data do vašeho zařízení. Bohužel po odhlášení z app.remoteme.org přestane fungovat. Důvodem je, že jsme neposkytli ověřovací token a již nejsme přihlášeni. Pojďme získat náš token (nebo vytvořte nový) a vložte jej do adresy URL místo hvězdy.
Podívejte se na obrazovku a nahraďte * v URL svým tokenem
v mém případě je token:
~ 267_ZxoWtJ) 0ph & 2c
moje cílová URL tedy vypadá takto:
app.remoteme.org/api/~267_ZxoWtJ)0ph&2c/rest/v1/message/sendUserMessageHexString/205/1/NO_RENEWAL/1/070F010501/
Nyní jej můžeme zavolat, i když nejsme přihlášeni. A když je vyvolán, bude na naše zařízení odeslána zpráva 205
Krok 10: Integrace s IFTTT 1/7
Adresa URL vytvořená v kroku výše je vhodná pro spuštění externími aplikacemi. Jak jej používat, ukážu na IFTTT. Nakonfiguruji to tak, aby se oznamovatel zapnul, když přijde e -mail na e -mailovou adresu (účet Gmail).
Přihlaste se do IFTTT. Poté přejděte na kartu Moje aplety a poté „Nový aplet“- první obrazovka
Krok 11: Integrace s IFTTT 2/7
Dále klikněte na „+toto“
Krok 12: Integrace s IFTTT 3/7
Poté do pole „Vyhledávací služby“napište „Gmail“
Poté „nový e -mail ve složce Doručená pošta“(Může být potřeba určitá konfigurace).
Krok 13: Integrace s IFTTT 4/7
nyní klikneme na „+ to“
Krok 14: Integrace s IFTTT 5/7
najděte „Webhooks“a klikněte na něj
Krok 15: Integrace s IFTTT 6/7
poté „Vytvořit webový požadavek“
Krok 16: Integrace s IFTTT 7/7
doplníme URL naší adresy URL tokenem. Typ obsahu pro aplikaci / JSON a klikněte na „Vytvořit akci“a Dokončit. Nyní máme náš applet:
Krok 17: Shrnutí
V tomto tutoriálu jsem ukázal, jak odesílat zprávy našim Arduino z externích systémů. Podobným způsobem integrujeme také jiný systém než IFTTT. Nemusí to být nutně „oznamovatel“. Chtěl jsem v tomto příkladu ukázat, jak posílat zprávy z vnějších systémů do našeho Arduina.
sourcecodesFanPage na Facebooku
Na zdraví, Maciku
Doporučuje:
Počitadlo kroků - mikro: bit: 12 kroků (s obrázky)
Počitadlo kroků - Micro: Bit: Tento projekt bude počítadlem kroků. K měření našich kroků použijeme snímač akcelerometru, který je zabudovaný v Micro: Bit. Pokaždé, když se Micro: Bit zatřese, přidáme 2 k počtu a zobrazíme ho na obrazovce
Akustická levitace s Arduino Uno krok za krokem (8 kroků): 8 kroků
Akustická levitace s Arduino Uno krok za krokem (8 kroků): Ultrazvukové měniče zvuku L298N Dc samice napájecí zdroj s mužským DC pinem Arduino UNOBreadboard Jak to funguje: Nejprve nahrajete kód do Arduino Uno (je to mikrokontrolér vybavený digitálním a analogové porty pro převod kódu (C ++)
Bolt - Noční hodiny bezdrátového nabíjení DIY (6 kroků): 6 kroků (s obrázky)
Bolt - Noční hodiny bezdrátového nabíjení DIY (6 kroků): Indukční nabíjení (známé také jako bezdrátové nabíjení nebo bezdrátové nabíjení) je druh bezdrátového přenosu energie. Využívá elektromagnetickou indukci k poskytování elektřiny přenosným zařízením. Nejběžnější aplikací je bezdrátové nabíjení Qi
Jak rozebrat počítač pomocí jednoduchých kroků a obrázků: 13 kroků (s obrázky)
Jak rozebrat počítač pomocí jednoduchých kroků a obrázků: Toto je návod, jak rozebrat počítač. Většina základních komponent je modulární a lze je snadno odstranit. Je však důležité, abyste o tom byli organizovaní. To vám pomůže zabránit ztrátě součástí a také při opětovné montáži
Notifikátor YouTube pro počítače: 11 kroků (s obrázky)
Notifikátor YouTube pro počítače: Máte noční můry ze ztráty svých odběratelů YouTube? Pokud tak učiníte, nejste jediní. Naštěstí jsem vytvořil tento " YouTube Desktop Notifier " abych měl aktuální informace o mých odběratelích kanálů a počtech zhlédnutí. Tento velmi jednoduchý DIY projekt