Sadržaj:
- Korak 1: Što je potrebno
- Korak 2: Izgradnja tornja
- Korak 3: Shema ožičenja
- Korak 4: Načelo rada
- Korak 5: Mp3 player
- Korak 6: Prijenos programa na Arduino
- Korak 7: Kontrola
- Korak 8: Slanje poruka pomoću URL -ova
- Korak 9: Bilo koji URL za slanje poruke
- Korak 10: Integracija s IFTTT -om 1/7
- Korak 11: Integracija s IFTTT 2/7
- Korak 12: Integracija s IFTTT -om 3/7
- Korak 13: Integracija s IFTTT 4/7
- Korak 14: Integracija s IFTTT -om 5/7
- Korak 15: Integracija s IFTTT -om 6/7
- Korak 16: Integracija s IFTTT 7/7
- Korak 17: Sažetak
Video: Obavijest: 17 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
Uređaj se može spojiti, na primjer, na IFTTT sustav i reagirati kada se pojavi nova pošta. Na adresi app.remoteme.org generirat ćemo vezu nakon poziva koji će bajtove poslati Arduinu, a Arduino će prikazati svjetlosni efekt i reproducirati mp3 sa SD kartice
Korak 1: Što je potrebno
- NodeMCU, WemOS ili nešto slično
- Dva LED prstena s diodama WS2812B (koristio sam 16. prsten sa LED diodama)
- DFRobotDFPlayerMini - ovo je mp3 player. Reproducira mp3 sa SD kartice i komunicira s Arduinom putem RX/TX -a
- Zvučnik
- SD kartica
- Logički pretvarač -Koristio sam ovaj, mp3 player koristi 5V i Arduino 3.3, zato nam je potreban ovaj pretvarač
- Znanje i vještine za izradu jednostavnih PCB -a vlastitim rukama
Toranj:
- karton - dvije različite debljine
- Papir za precrtavanje
- aluminijska folija
Korak 2: Izgradnja tornja
Iznad tlocrta tornja u bočnom pogledu (moja avantura s tehničkim crtežom završila je u osnovnoj školi), sve dimenzije u milimetrima.
Princip rada
- uključen prsten LED dioda koji svjetlucaju
- Papir za precrtavanje
- Skraćeni stožac, izrađen od kartona i prekriven aluminijskom folijom, tako da reflektira svjetla LED dioda, na slici 3 '= izrezana mreža
- kartonska cijev - drži tornjeve okomito, unutar cijevi su kabeli za LED diode
- Visina ovisi o vama imam 85 mm
- Stalak unutar svih elektroničkih dijelova
Svi vodoravni elementi trebaju biti izrađeni od debljeg kartona.
Korak 3: Shema ožičenja
MP3 player ima napon od 5 V i komunicira s Arduinom putem TX / RX -a, potreban je logički pretvarač jer sam Arduino radi na naponu od 3,3 V. Upravljanje prstenovima također je povezano s Arduinom (D5, D6) putem logičkog pretvarača.
U spremištu ćete pronaći datoteke orla s planovima za PCB
Predlažem da ne lemite trajno Arduino i mp3 player samo za upotrebu ženskih zlatnih igli
Korak 4: Načelo rada
Naš Arduino se povezuje sa sustavom app.remoteme.org pomoću WebSockets (postoje spremne knjižnice) putem ove veze šalju se 5-bajtne poruke:
- prvi bajt svjetlosnog efekta za gornji LED prsten
- svjetlosni efekt drugog bajta za donji LED prsten
- broj mp3 datoteke za reprodukciju
- broj sekundi koliko dugo će se reproducirati svjetlosni efekt i mp3
- treba li mp3 reproducirati jednom ili u petlji
izvorni kod
Cijeli izvorni kod možete pronaći ovdje
u datotekama SingleRing.cpp i SingleRing.h postoji klasa za kontrolu učinaka LED prstenova. Predlažem da počnete gledanjem funkcije setMode (int m):
void SingleRing:: setMode (int m) {switch (m) {case 0: setConfiguration (0, 0, 50, 0, 5, 1); break; // isključeno = 0 slučaj 1: setConfiguration (6, 0, 50, 0, 0, 20); break; // čvrsto standardno zeleno kućište 2: setConfiguration (6, 0, 0, 50, 0, 20); break; // jedno standardno plavo kućište 3: setConfiguration (6, 50, 0, 0, 0, 20); break; // jedno standardno crveno kućište 4: setConfiguration (6, 50, 10, 0, 0, 20); break; // čvrsto standardno narančasto kućište 5: setConfiguration (1, 0, 100, 0, 5, 2); break; // policija u smjeru kazaljke na satu zeleno kućište 6: setConfiguration (1, 0, 100, 0, 5, -2); break; // policija vraća zeleni slučaj 7: setConfiguration (1, 0, 0, 100, 5, 2); break; // policija u smjeru kazaljke na satu plavi slučaj 8: setConfiguration (1, 0, 0, 100, 5, -2); break; // policija vrati plavi slučaj 9: setConfiguration (1, 100, 0, 0, 5, 2); break; // policijski standardni crveni slučaj 10: setConfiguration (1, 100, 0, 0, 5, -2); break; // policija vrati crveni slučaj 11: setConfiguration (1, 100, 20, 0, 5, 2); break; // policijski standardni narančasti slučaj 12: setConfiguration (1, 100, 20, 0, 5, -2); break; // policija vrati narančasti slučaj 13: setConfiguration (2, 0, 0, 50, 8, 10); break; // ukrstiti standardno plavo kućište 14: setConfiguration (2, 0, 0, 50, 8, -10); break; // križno vraćanje plavo kućište 15: setConfiguration (5, 0, 50, 0, 0, 20); break; // trepće standardno zeleno kućište 16: setConfiguration (5, 0, 50, 0, 0, -20); break; // treptanje odwyrtka zeleno kućište 17: setConfiguration (5, 0, 0, 50, 0, 20); break; // trepće standardno plavo kućište 18: setConfiguration (5, 0, 0, 50, 0, -20); break; // treptanje vrati plavo kućište 19: setConfiguration (5, 50, 0, 0, 0, 20); break; // treptati standardno crveno kućište 20: setConfiguration (5, 50, 0, 0, 0, -20); break; // treptanje vrati crveno kućište 21: setConfiguration (5, 50, 10, 0, 0, 20); break; // treptati standardno narančasto kućište 22: setConfiguration (5, 50, 10, 0, 0, -20); break; // treptanje vrati narančasto zadano: setConfiguration (0, 0, 50, 0, 5, 1); break; // isključeno = 0}}
ovisno o zadanom parametru, prsten će prikazati učinak. Možete dodati vlastiti učinak pozivanjem funkcije setConfiguration s novim parametrima (promjena boje, brzina prikaza) dodavanjem novog načina rada ili dodavanjem potpuno novog učinka - ili me obavijestite u komentarima ako mi se sviđa, dodat ću novi efekt
arduino.ino:
#include "Arduino.h" #include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h"
#uključi
#include #include #include "SingleRing.h"
#uključi
#include #include
#uključi
#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 bottom = SingleRing (DIODES_COUNT, D6);
SoftwareSerial mySoftwareSerial (D4, D3); // RX, TX
DFRobotDFPlayerMini mojDFPlayer; RemoteMe & remoteMe = RemoteMe:: getInstance (TOKEN, DEVICE_ID);
ESP8266WiFiMulti WiFiMulti;
void setup () {mySoftwareSerial.begin (9600); Serial.begin (115200);
if (! myDFPlayer.begin (mySoftwareSerial)) {// Koristite softwareSerial za komunikaciju s mp3 -om.
Serial.println (F ("Nije moguće započeti:")); Serial.println (F ("1. Provjerite ponovno vezu!")); Serial.println (F ("2. Molim umetnite SD karticu!")); while (istina); } Serial.println (F ("DFPlayer Mini na mreži."));
myDFPlayer.setTimeOut (500); // Postavi vrijeme za serijsku komunikaciju 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) {odgoda (100); }
remoteMe.setUserMessageListener (onUserMessage);
remoteMe.setupTwoWayCommunication ();
remoteMe.sendRegisterDeviceMessage (DEVICE_NAME);
top.setup ();
bottom.setup (); top.clear (); bottom.clear (); }
boolean turnOff = true;
unsigned long turnOffMillis = 0;
void onUserMessage (uint16_t senderDeviceId, uint16_t dataSize, uint8_t *data) {
uint16_t pos = 0; uint8_t bottomMode = RemoteMeMessagesUtils:: getUint8 (podaci, poz); uint8_t topMode = RemoteMeMessagesUtils:: getUint8 (podaci, poz); uint8_t trackNumber = RemoteMeMessagesUtils:: getUint8 (podaci, poz); uint8_t time = RemoteMeMessagesUtils:: getUint8 (podaci, poz); uint8_t način = RemoteMeMessagesUtils:: getUint8 (podaci, poz);
bottom.setMode (bottomMode);
top.setMode (topMode); if (način == 1) {myDFPlayer.loop (trackNumber); } else {myDFPlayer.play (trackNumber); } turnOff = false; turnOffMillis = millis () + 1000 * vrijeme; }
void loop ()
{remoteMe.loop (); top.loop (); bottom.loop (); if (turnOffMillis
}
obrazloženje:
#define WIFI_NAME "" #define WIFI_PASSWORD "" #define DEVICE_ID 205 #define DEVICE_NAME "notifierator" #define TOKEN ""
Moramo pružiti gore navedene podatke, detaljna uputstva ovdje na linku. Također sam pokazao kako se registrirati na remoteme.org i generirati token, void onUserMessage (uint16_t senderDeviceId, uint16_t dataSize, uint8_t *data) {uint16_t pos = 0; uint8_t bottomMode = RemoteMeMessagesUtils:: getUint8 (podaci, poz); uint8_t topMode = RemoteMeMessagesUtils:: getUint8 (podaci, poz); uint8_t trackNumber = RemoteMeMessagesUtils:: getUint8 (podaci, poz); uint8_t time = RemoteMeMessagesUtils:: getUint8 (podaci, poz); uint8_t način = RemoteMeMessagesUtils:: getUint8 (podaci, poz);
bottom.setMode (bottomMode);
top.setMode (topMode); if (način == 1) {myDFPlayer.loop (trackNumber); } else {myDFPlayer.play (trackNumber); } turnOff = false; turnOffMillis = millis () + 1000 * vrijeme; }
Ova funkcija bit će pozvana kada poruka dođe na Arduino i prikaže obavijest. Kôd je toliko jasan da sam sebe opisuje. Pozivam se na detalje klasa na dokumentaciju ovdje i ovdje
void loop () {remoteMe.loop (); top.loop (); bottom.loop (); if (turnOffMillis <millis ()) {
ako (! isključeno) {
top.clear ();
bottom.clear (); myDFPlayer.stop (); turnOff = true; }}
U petlji nazivamo funkcije petlje objekata, a ako je prošlo vrijeme prikaza obavijesti, isključujemo diode i zvuk.
Korak 5: Mp3 player
Komunicira s Arduinom putem TX / RX -a - Detalji samog playera ovdje i biblioteke ovdje
Prenosimo mp3 datoteke na SD karticu. Datoteke na kartici razvrstavaju se po abecedi, a zatim pozivom:
myDFPlayer.play (5);
Puštamo petu datoteku sa SD kartice iz korijenskog direktorija. Zato je dobro dati datoteke na prefiksima SD kartice 01, 02 itd. U mom slučaju to izgleda kao na gornjem ekranu za ispis
Za generiranje glasovnih naredbi Možete koristiti ovu stranicu.
Korak 6: Prijenos programa na Arduino
Prije postavljanja skice na Arduino, morate preuzeti potrebne knjižnice ovdje ćete pronaći detaljne upute
dodatno, moramo instalirati biblioteku DFRobotDFPlayerMini i Adafruit_NeoPixel
Korak 7: Kontrola
Šaljemo našem Arduinu pet bajtova
- prvi bajt svjetlosnog efekta za gornji LED prsten
- svjetlosni efekt drugog bajta za donji LED prsten
- broj mp3 datoteke za reprodukciju
- broj sekundi koliko dugo će se reproducirati svjetlosni efekt i mp3
- treba li mp3 svirati jednom ili u petlji (1 ako ga treba svirati u petlji)
Slanjem bajtova
07 0F 01 05 01
Gornji prsten će pokazivati policijska svjetla (način 6), dolje jedan trepćući zeleno (način 15) (provjerite funkciju setMode na singleRing.cpp i komentare pored nje). Prva datoteka s SD kartice reproducirat će se 5 sekundi. I datoteka će se reproducirati u petlji (provjerite funkciju onUserMessage na arduino.ino)
Pošaljimo ove bajtove. Pogledajte gornji zaslon i kliknite ikone po redoslijedu 1, 2, 3. Pojavljuje se prozor
Zatim pogledajte drugi zaslon - i ispunite prozor kao na drugom ekranu
Prozor koji se pojavi koristi se za slanje poruka na uređaj. U polju 1 odaberite uređaj pošiljatelja - jer imamo samo jedan uređaj, mi ga odabiremo (ovo je obavezno polje i nije važno što je to isti uređaj na koji šaljemo poruku) U polju 2 dajemo bajtove poslati (crvenom bojom vrijednost koju smo unijeli u 2 bit će predstavljena kao niz), a zatim kliknite gumb Pošalji.
Nakon slanja poruke, naš bi dojavitelj trebao reagirati prikazom odgovarajućih svjetlosnih efekata i reprodukcijom odabranog mp3 -a. Potičem vas da isprobate različite efekte dajući prva dva bajta broja između 0 i 22 (vidi opis u funkciji setMode).
Korak 8: Slanje poruka pomoću URL -ova
Ako želimo prikazati obavijesti iz vanjske aplikacije, npr. S IFTTT -om, moramo imati URL koji će raditi potpuno isto što smo učinili u prozoru u prethodnom koraku. remoteme.org pruža REST APi. Idite na nju klikom na karticu za hvalisanje s lijeve strane (zadnju). Prikazat će se stranica, na kojoj također možemo isprobati naše URL -ove.
Na prvom zaslonu imate funkciju Morate proširiti, a zatim popuniti podatke kao na drugom zaslonu.
ispunite podatke kao na gornjoj snimci zaslona. Nakon klika na izvršiti poslat ćemo poruku
070F010501
Primatelj je uređaj s 205 ID -om, isti uređaj je i pošiljatelj. ID poruke s postavkama "No_RENEVAL" nije relevantan. Zatim kliknite Izvrši. Notifikator će reagirati na isti način kao prilikom slanja poruka iz aplikacije. Nakon što pozovete REST, dolje je URL koji je pozvan - pogledajte treći zaslon. Kopiranje i lijepljenje u URL preglednika označeno je zelenim obrubom. Na četvrtom zaslonu moj kromirani preglednik nakon URL -a je zalijepljen
U mom slučaju, URL je:
app.remoteme.org/api/*/rest/v1/message/sendUserMessageHexString/205/1/NO_RENEWAL/1/070F010501/
Korak 9: Bilo koji URL za slanje poruke
U prethodnom koraku imate URL koji šalje podatke na vaš uređaj. Nažalost, nakon odjave s app.remoteme.org, prestaje raditi. To je zato što nismo dali token za provjeru autentičnosti i više nismo prijavljeni. Uzmimo svoj token (ili stvorimo novi) i zalijepimo ga u URL umjesto u zvjezdicu.
Pogledajte zaslon i zamijenite * u URL -u svojim tokenom
u mom slučaju token je:
~ 267_ZxoWtJ) 0ph & 2c
tako da moj završni URL izgleda ovako:
app.remoteme.org/api/~267_ZxoWtJ)0ph&2c/rest/v1/message/sendUserMessageHexString/205/1/NO_RENEWAL/1/070F010501/
Sada ga možemo nazvati čak i ako nismo prijavljeni. A kad se pozove, poruka će biti poslana na naš uređaj 205
Korak 10: Integracija s IFTTT -om 1/7
Url napravljen u prethodnom koraku prikladan je za izvršavanje od strane vanjskih aplikacija. Kako ću ga koristiti pokazat ću na IFTTT -u. Konfigurirat ću ga tako da se obavijest uključi kada poruka e -pošte dođe na adresu e -pošte (Gmail račun).
Prijavite se na IFTTT. Zatim idite na karticu Moji Appleti, a zatim na "Novi applet"- prvi zaslon
Korak 11: Integracija s IFTTT 2/7
Zatim kliknite "+ovo"
Korak 12: Integracija s IFTTT -om 3/7
Zatim u polje "Usluge pretraživanja" napišite "Gmail"
Zatim "nova e -pošta u pristigloj pošti" (Možda će biti potrebna neka konfiguracija).
Korak 13: Integracija s IFTTT 4/7
sada kliknemo na "+ to"
Korak 14: Integracija s IFTTT -om 5/7
pronađite "Webhooks" i kliknite je
Korak 15: Integracija s IFTTT -om 6/7
zatim "Učini web zahtjev"
Korak 16: Integracija s IFTTT 7/7
dopunjujemo URL našeg urla tokenom. Vrsta sadržaja za application / json i kliknite "kreiraj radnju" i Završi. Sada imamo naš applet:
Korak 17: Sažetak
U ovom vodiču sam pokazao kako slati naše Arduino poruke iz vanjskih sustava. Također integriramo neki drugi sustav, zatim IFTTT na sličan način. Ne mora nužno biti “notifikator” koji sam želio pokazati u ovom primjeru kako slati poruke iz vanjskih sustava na naš Arduino.
sourcecodesFanPage na Facebooku
Živjeli, Maciek
Preporučeni:
Bluetooth obavijest o pozivu: 5 koraka (sa slikama)
Bluetooth Call Notifier: Uvod Prije nekoliko dana pregledao sam vijesti s uputama o kad sam naišao na ovaj projekt. Bio je to super projekt. Ali mislio sam Zašto ga ne izgraditi s Bluetoothom umjesto složenim wifi stvarima. Specifikacija ovog Bluetooth obavijesti o pozivu
GMail obavijest pomoću ESP8266 Arduino i OLED: 5 koraka
Obavijest o GMail -u pomoću ESP8266 Arduino i OLED: Danas svaki stroj ima neke podatke za objavljivanje putem oblaka, a podatke mora analizirati i snimati u mnoge svrhe. Istodobno bi podaci trebali biti dostupni i analizatoru. To se može učiniti pomoću IOT koncepta. IOT je internet
Obavijest o zvonu na vratima za osobe oštećenog sluha putem kućne automatizacije (ESP-sada, MQTT, Openhab): 3 koraka
Obavijest o zvonu na vratima za osobe oštećenog sluha putem kućne automatizacije (ESP-sada, MQTT, Openhab): U ovom Instructable-u pokazat ću vam kako sam integrirao svoje normalno zvono na kućnu automatizaciju. Ovo rješenje je vrlo pogodno za osobe s oštećenim sluhom. U mom slučaju koristim ga za dobivanje obavijesti ako je soba zauzeta i bučna na rođendanskoj zabavi djece. Ja
Obavijest posjetitelja web stranice s IFTTT -om: 6 koraka
Obavijest posjetitelja web stranice s IFTTT -om: U ovom uputstvu dobit ćete obavijest za Android kad netko posjeti vašu web stranicu. Pa za ovo morate imati malo znanja o PHP programskom jeziku i osnovno znanje o jednostavnom jeziku C da biste znali kako ova IFTTT aplikacija djela (
Arduino + GPS modul - Obavijest o odredištu: 6 koraka
Arduino + GPS modul - Obavijest o odredištu: Koliko vremena gubimo u prometnim gužvama? Napravio sam obavijest o odredištu s pogonom na Arduinu da ovo vrijeme iskoristim na produktivan način. Svi znaju da prometne gužve mogu biti veliki gubitnik vremena. Nemoguće je predvidjeti koliko će vremena potrajati