Sadržaj:
- Korak 1: Šta je potrebno
- Korak 2: Izgradnja tornja
- Korak 3: Shema ožičenja
- Korak 4: Princip 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 sa IFTTT 1/7
- Korak 11: Integracija sa IFTTT 2/7
- Korak 12: Integracija sa IFTTT 3/7
- Korak 13: Integracija sa IFTTT 4/7
- Korak 14: Integracija sa IFTTT 5/7
- Korak 15: Integracija sa IFTTT 6/7
- Korak 16: Integracija sa IFTTT 7/7
- Korak 17: Sažetak
Video: Notificator: 17 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
Uređaj se može spojiti na primjer na IFTTT sistem i reagirati kada se pojavi nova pošta. Na 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: Šta je potrebno
- NodeMCU, WemOS ili nešto slično
- Dva LED prstena sa WS2812B diodama (koristio sam 16. LED diode)
- 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
- Paus papir
- aluminijska folija
Korak 2: Izgradnja tornja
Iznad plana tornja u bočnom pogledu (moja avantura sa tehničkim crtežom završena je u osnovnoj školi), sve dimenzije u milimetrima.
Princip rada
- prsten LED dioda svetli
- Paus papir
- Skraćeni konus, napravljen 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 zavisi od vas. Imam 85 mm
- Postolje unutar svih elektroničkih dijelova
Svi vodoravni elementi trebaju biti izrađeni od debljeg kartona.
Korak 3: Shema ožičenja
MP3 player dobiva 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 je također povezano s Arduinom (D5, D6) putem logičkog pretvarača.
U spremištu ćete pronaći datoteke orla sa planovima za PCB
Predlažem da ne lemite trajno Arduino i mp3 player samo za upotrebu ženskih zlatnih igli
Korak 4: Princip rada
Naš Arduino se povezuje sa sistemom app.remoteme.org koristeći WebSockets (postoje spremne biblioteke) 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
- da li mp3 treba da se reprodukuje 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 efekata LED prstenova. Predlažem da počnete tako što ćete pogledati funkciju 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; // jedno 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; // jedno 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 vrati zeleno kućište 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; // trepće 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; // trepće standardno narandžasto kućište 22: setConfiguration (5, 50, 10, 0, 0, -20); break; // treptanje vraćanje narandžasto podrazumevano: setConfiguration (0, 0, 50, 0, 5, 1); break; // isključeno = 0}}
ovisno o zadanom parametru, prsten će prikazati učinak. Možete dodati vlastiti efekt pozivanjem funkcije setConfiguration s novim parametrima (promjena boje, brzina prikaza) dodavanjem novog načina rada ili dodavanjem potpuno novog efekta - ili me obavijestite u komentarima ako mi se sviđa dodati ću novi efekt
arduino.ino:
#include "Arduino.h" #include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h"
#include
#include #include #include "SingleRing.h"
#include
#include #include
#include
#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 myDFPlayer; 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 sa mp3.
Serial.println (F ("Nije moguće započeti:")); Serial.println (F ("1. Provjerite ponovo 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) {kašnjenje (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 (mode == 1) {myDFPlayer.loop (trackNumber); } else {myDFPlayer.play (trackNumber); } turnOff = false; turnOffMillis = millis () + 1000 * vrijeme; }
void loop ()
{remoteMe.loop (); top.loop (); bottom.loop (); if (turnOffMillis
}
objašnjenje:
#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 (mode == 1) {myDFPlayer.loop (trackNumber); } else {myDFPlayer.play (trackNumber); } turnOff = false; turnOffMillis = millis () + 1000 * vrijeme; }
Ova funkcija će se pozvati kada poruka dođe na Arduino i prikaže obavijest. Kôd je toliko jasan da sam sebe opisuje. Pozivam se na detalje časova na dokumentaciju ovde i ovde
void loop () {remoteMe.loop (); top.loop (); bottom.loop (); if (turnOffMillis <millis ()) {
if (! 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 sortiraju 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 štampanje
Za generiranje glasovnih naredbi Možete koristiti ovu stranicu.
Korak 6: Prijenos programa na Arduino
Prije postavljanja skice na Arduino, morate preuzeti potrebne biblioteke, ovdje ćete pronaći detaljna uputstva
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
- da li mp3 treba da se reprodukuje jednom ili u petlji (1 ako treba da se reprodukuje u petlji)
Slanjem bajtova
07 0F 01 05 01
Gornji prsten će prikazivati policijska svjetla (način 6), donji jedan trepćući zeleno (način 15) (pogledajte funkciju setMode na singleRing.cpp i komentare pored nje). Prva datoteka sa 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 ekran i kliknite ikone po redoslijedu 1, 2, 3. Pojavljuje se prozor
Zatim pogledajte drugi ekran - 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 send (crvenom bojom vrijednost koju smo unijeli u 2 bit će predstavljena kao niz), a zatim kliknite gumb Pošalji.
Nakon slanja poruke, naš dojavljivač bi 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 (pogledajte 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 njega klikom na karticu za hvatanje s lijeve strane (posljednju). Prikazat će se stranica, na kojoj također možemo isprobati naše URL -ove.
Na prvom ekranu imate funkciju Morate proširiti, a zatim popuniti podatke kao na drugom ekranu.
popunite podatke kao na gornjoj snimci ekrana. Nakon klika na izvršiti poslat ćemo poruku
070F010501
Primalac je uređaj sa 205 ID -om, isti uređaj je i pošiljalac. MessageId s postavkama “No_RENEVAL” nije relevantan. A zatim kliknite Izvrši. Notifikator će reagirati na isti način kao i prilikom slanja poruka iz aplikacije. Nakon što pozovete REST, dolje je URL koji je pozvan - pogledajte treći ekran. A kopiranje i lijepljenje u URL preglednika je označeno zelenom ivicom. Na četvrtom ekranu moj Chrome preglednik nakon što je URL 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 naš token (ili kreiramo novi) i zalijepimo ga u URL umjesto u zvjezdicu.
Pogledajte ekran i zamijenite * u URL -u svojim tokenom
u mom slučaju token je:
~ 267_ZxoWtJ) 0ph & 2c
tako da moj krajnji 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 pozvati čak i ako nismo prijavljeni. A kad se pozove, poruka će biti poslana na naš uređaj 205
Korak 10: Integracija sa IFTTT 1/7
Url kreiran 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 dojavljivač 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 ekran
Korak 11: Integracija sa IFTTT 2/7
Zatim kliknite "+ovo"
Korak 12: Integracija sa IFTTT 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 određena konfiguracija).
Korak 13: Integracija sa IFTTT 4/7
sada kliknemo na "+ to"
Korak 14: Integracija sa IFTTT 5/7
pronađite "Webhooks" i kliknite na nju
Korak 15: Integracija sa IFTTT 6/7
zatim "Učinite web zahtjev"
Korak 16: Integracija sa IFTTT 7/7
upotpunjujemo URL našeg URL -a tokenom. Vrsta sadržaja u application / json i kliknite "kreiraj akciju" i Završi. Sada imamo naš aplet:
Korak 17: Sažetak
U ovom vodiču sam pokazao kako slati naše Arduino poruke iz vanjskih sistema. Na sličan način integriramo i neki drugi sistem nego IFTTT. Ne mora nužno biti “notifikator”. U ovom primjeru sam htio pokazati kako slati poruke iz vanjskih sistema na naš Arduino.
sourcecodesFanPage na Facebooku
Živjeli, Maciek
Preporučuje se:
Dizajn igre brzim pokretom u 5 koraka: 5 koraka
Dizajn igre u Flick -u u 5 koraka: Flick je zaista jednostavan način da napravite igru, posebno nešto poput zagonetke, vizuelnog romana ili avanturističke igre
Prepoznavanje lica na Raspberry Pi 4B u 3 koraka: 3 koraka
Prepoznavanje lica na Raspberry Pi 4B u 3 koraka: U ovom uputstvu ćemo izvršiti otkrivanje lica na Raspberry Pi 4 sa Shunya O/S koristeći biblioteku Shunyaface. Shunyaface je biblioteka za prepoznavanje/otkrivanje lica. Cilj projekta je postići najbržu brzinu otkrivanja i prepoznavanja sa
Kako napraviti brojač koraka?: 3 koraka (sa slikama)
Kako napraviti brojač koraka?: Nekada sam se dobro snašao u mnogim sportovima: hodanje, trčanje, vožnja bicikla, igranje badmintona itd. Volim jahanje da bih brzo putovao. Pa, pogledaj moj trbušni trbuh … Pa, u svakom slučaju, odlučujem ponovo početi vježbati. Koju opremu treba pripremiti?
Brojač koraka - Mikro: Bit: 12 koraka (sa slikama)
Brojač koraka - Micro: Bit: Ovaj projekat će biti brojač koraka. Za mjerenje koraka koristit ćemo senzor akcelerometra koji je ugrađen u Micro: Bit. Svaki put kada se Micro: Bit protrese, broju ćemo dodati 2 i prikazati ga na ekranu
Broj koraka / koraka: 3 koraka
পেনড্রাইভ / মেমোরি কার্ডে ভাইরাসের ভাইরাসের হারিয়ে সমাধান সমাধান সমাধান সমাধান সমাধান পেনড্রাইভ পেনড্রাইভ পেনড্রাইভ পেনড্রাইভ মেমোরি মেমোরি মেমোরি মেমোরি মেমোরি মেমোরি মেমোরি এখন এখন এখন।।।।।। Zaštita podataka, pristup prečicama / virusima