Sisällysluettelo:
- Vaihe 1: Mitä tarvitaan
- Vaihe 2: Tornirakennus
- Vaihe 3: Kytkentäkaavio
- Vaihe 4: Toimintaperiaate
- Vaihe 5: MP3 -soitin
- Vaihe 6: Ohjelman lataaminen Arduinolle
- Vaihe 7: Ohjaus
- Vaihe 8: Viestien lähettäminen URL -osoitteiden avulla
- Vaihe 9: Mikä tahansa URL -osoite viestin lähettämiseen
- Vaihe 10: Integrointi IFTTT 1/7: n kanssa
- Vaihe 11: Integrointi IFTTT 2/7: n kanssa
- Vaihe 12: Integrointi IFTTT 3/7: n kanssa
- Vaihe 13: Integrointi IFTTT 4/7: n kanssa
- Vaihe 14: Integrointi IFTTT 5/7: n kanssa
- Vaihe 15: Integrointi IFTTT 6/7: n kanssa
- Vaihe 16: Integrointi IFTTT 7/7: n kanssa
- Vaihe 17: Yhteenveto
Video: Ilmoittaja: 17 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:03
Laite voidaan yhdistää esimerkiksi IFTTT -järjestelmään ja reagoida uuden sähköpostin ilmestymiseen. Osoitteessa app.remoteme.org luomme puhelun jälkeen linkin, joka tavut lähetetään Arduinolle, ja Arduino näyttää valotehosteita ja toistaa mp3 -tiedostoja SDcardilta
Vaihe 1: Mitä tarvitaan
- NodeMCU, WemOS tai jotain vastaavaa
- Kaksi LED -rengasta WS2812B -diodeilla (olen käyttänyt 16. led -renkaita)
- DFRobotDFPlayerMini - tämä on mp3 -soitin. Se toistaa mp3 -kortin SDcardilta ja kommunikoi Arduinon kanssa RX/TX: llä
- Kaiutin
- Sd-kortti
- Looginen muunnin -Olen käyttänyt tätä, mp3 -soitin käyttää 5 V: ta ja Arduino 3.3: ta, siksi tarvitsemme tämän muuntimen
- Tietoa ja taitoja tehdä yksinkertaisia piirilevyjä itse
Torni:
- pahvi - kaksi eri paksuutta
- Kuultopaperi
- alumiinifolio
Vaihe 2: Tornirakennus
Sivunäkymän tornin suunnitelman yläpuolella (seikkailuni teknisen piirustuksen kanssa päättyi peruskoulussa), kaikki mitat millimetreinä.
Toimintaperiaate
- LED -valot sytyttävät valoa
- Kuultopaperi
- Katkaistu kartio, valmistettu pahvista ja päällystetty alumiinifoliolla, joten se heijastaa led-renkaiden valoja, kuvassa 3 '= katkaistu verkko
- kartonkiputki - pitää tornit pystysuorassa, putken sisällä on johtimien johdot
- Korkeus riippuu sinusta, minulla on 85 mm
- Jalusta kaikkien elektroniikkaosien sisällä
Kaikkien vaakasuorien elementtien tulee olla paksumpaa pahvia.
Vaihe 3: Kytkentäkaavio
MP3 -soittimessa on 5 V: n jännite ja se kommunikoi Arduinon kanssa TX / RX: n kautta, tarvitaan logiikkamuunnin, koska Arduino itse toimii 3,3 V: n jännitteellä. Renkaiden ohjaus on myös kytketty Arduinoon (D5, D6) logiikkamuuntimen kautta.
Varastosta löydät kotkatiedostot, joissa on PCB -suunnitelmat
Ehdotan, ettet juota pysyvästi Arduinoa ja mp3 -soitinta vain naaraskullanappien käyttämiseen
Vaihe 4: Toimintaperiaate
Arduino muodostaa yhteyden app.remoteme.org-järjestelmään WebSocketsin avulla (valmiita kirjastoja) tämän yhteyden kautta lähetetään 5 tavun viestit:
- ylemmän LED -renkaan valotehosteen ensimmäinen tavu
- toisen tavun valotehoste alemmalle LED -renkaalle
- toistettavan mp3 -tiedoston numero
- kuinka monta sekuntia valotehoste ja mp3 toistetaan
- pitääkö mp3 toistaa kerran vai silmukassa
lähdekoodi
Koko lähdekoodi Löydät täältä
SingleRing.cpp- ja SingleRing.h -tiedostoissa on luokka, joka ohjaa LED -renkaiden vaikutuksia. Ehdotan, että aloitat katsomalla setMode (int m) -toimintoa:
void 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); tauko; // kiinteä vihreä vihreä kotelo 2: setConfiguration (6, 0, 0, 50, 0, 20); tauko; // kiinteä tavallinen sininen kotelo 3: setConfiguration (6, 50, 0, 0, 0, 20); tauko; // kiinteä punainen punainen kotelo 4: setConfiguration (6, 50, 10, 0, 0, 20); tauko; // kiinteä oranssi vakiokotelo 5: setConfiguration (1, 0, 100, 0, 5, 2); tauko; // poliisin myötäpäivään vihreä kotelo 6: setConfiguration (1, 0, 100, 0, 5, -2); tauko; // poliisi palauttaa vihreän tapauksen 7: setConfiguration (1, 0, 0, 100, 5, 2); tauko; // poliisin myötäpäivään sininen kotelo 8: setConfiguration (1, 0, 0, 100, 5, -2); tauko; // poliisi palauttaa sinisen tapauksen 9: setConfiguration (1, 100, 0, 0, 5, 2); tauko; // poliisin vakio punainen tapaus 10: setConfiguration (1, 100, 0, 0, 5, -2); tauko; // poliisi palauttaa punaisen tapauksen 11: setConfiguration (1, 100, 20, 0, 5, 2); tauko; // poliisin standardi oranssi kotelo 12: setConfiguration (1, 100, 20, 0, 5, -2); tauko; // poliisi palauttaa oranssin tapauksen 13: setConfiguration (2, 0, 0, 50, 8, 10); break; // cross blue blue case 14: setConfiguration (2, 0, 0, 50, 8, -10); break; // cross revert blue case 15: setConfiguration (5, 0, 50, 0, 0, 20); tauko; // vilkkuu tavallinen vihreä kotelo 16: setConfiguration (5, 0, 50, 0, 0, -20); tauko; // vilkkuu odwyrtka vihreä kotelo 17: setConfiguration (5, 0, 0, 50, 0, 20); tauko; // vilkkuu tavallinen sininen kotelo 18: setConfiguration (5, 0, 0, 50, 0, -20); tauko; // vilkkuu palauta sininen kotelo 19: setConfiguration (5, 50, 0, 0, 0, 20); tauko; // vilkkuu punainen punainen kotelo 20: setConfiguration (5, 50, 0, 0, 0, -20); tauko; // vilkkuu palauta punainen tapaus 21: setConfiguration (5, 50, 10, 0, 0, 20); tauko; // vilkkuu oranssi vakiokotelo 22: setConfiguration (5, 50, 10, 0, 0, -20); break; // vilkkuu palauta oranssi oletus: setConfiguration (0, 0, 50, 0, 5, 1); tauko; // pois = 0}}
annetusta parametrista riippuen rengas näyttää tehosteen. Voit lisätä oman tehosteen kutsumalla toimintoa setConfiguration uusilla parametreilla (värin muutos, näytön nopeus) lisäämällä uuden tilan tai lisäämällä kokonaan uuden tehosteen - tai kerro minulle kommenteissa, jos pidän siitä, lisään uuden tehosteen
arduino.ino:
#Sisällytä "Arduino.h" #Sisällytä "SoftwareSerial.h" #Sisällytä "DFRobotDFPlayerMini.h"
#sisältää
#Sisällytä #Sisällytä #Sisällytä "SingleRing.h"
#sisältää
#Sisällytä #Sisällytä
#sisältää
#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); Sarja.alku (115200);
if (! myDFPlayer.begin (mySoftwareSerial)) {// Käytä softwareSerialia kommunikoidaksesi mp3: n kanssa.
Serial.println (F ("Ei voi aloittaa:")); Serial.println (F ("1. Tarkista yhteys uudelleen!")); Serial.println (F ("2. Aseta SD -kortti!")); kun taas (totta); } Serial.println (F ("DFPlayer Mini online."));
myDFPlayer.setTimeOut (500); // Aseta sarjaliikenteen aikakatkaisu 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;
allekirjoittamaton pitkä turnOffMillis = 0;
void 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 (tila == 1) {myDFPlayer.loop (trackNumber); } else {myDFPlayer.play (trackNumber); } pois päältä = epätosi; turnOffMillis = millis () + 1000 * aika; }
tyhjä silmukka ()
{remoteMe.loop (); top.loop (); bottom.loop (); jos (turnOffMillis
}
selitys:
#define WIFI_NAME "" #define WIFI_PASSWORD "" #define DEVICE_ID 205 #define DEVICE_NAME "notificator" #define TOKEN ""
Meidän on annettava yllä olevat tiedot, yksityiskohtaiset ohjeet tästä linkistä. Olen myös näyttänyt, kuinka rekisteröidyt Remoteme.org -sivustoon ja luon tunnuksen, void 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 (tila == 1) {myDFPlayer.loop (trackNumber); } else {myDFPlayer.play (trackNumber); } pois päältä = epätosi; turnOffMillis = millis () + 1000 * aika; }
Tätä toimintoa kutsutaan, kun viesti tulee Arduinolle ja näyttää ilmoituksen. Koodi on niin selkeä, että se kuvaa itseään. Viittaan luokkien yksityiskohtiin asiakirjoihin täällä ja täällä
void loop () {remoteMe.loop (); top.loop (); bottom.loop (); if (turnOffMillis <millis ()) {
jos (! pois päältä) {
top.clear ();
bottom.clear (); myDFPlayer.stop (); turnOff = totta; }}
Silmukassa kutsumme objektien silmukkafunktioita, ja myös jos ilmoitusten näyttöaika on kulunut, sammutamme diodit ja äänen.
Vaihe 5: MP3 -soitin
Se kommunikoi Arduinon kanssa TX / RX: n kautta - tiedot soittimesta itse ja kirjasto täältä
Lähetämme mp3 -tiedostoja SD -kortille. Kortilla olevat tiedostot lajitellaan aakkosjärjestykseen ja sitten soittamalla:
myDFPlayer.play (5);
Toistamme viidennen tiedoston SD -kortilta juurihakemistosta. Siksi on hyvä antaa tiedostoja SD -kortin etuliitteille 01, 02 jne. Minun tapauksessani se näyttää yllä olevasta tulostusnäytöstä
Äänikomentojen luominen Voit käyttää tätä sivua.
Vaihe 6: Ohjelman lataaminen Arduinolle
Ennen kuin voit ladata luonnoksen Arduinolle, sinun on ladattava tarvittavat kirjastot täältä, josta löydät yksityiskohtaiset ohjeet
Lisäksi meidän on asennettava DFRobotDFPlayerMini -kirjasto ja Adafruit_NeoPixel
Vaihe 7: Ohjaus
Lähetämme Arduinolle viisi tavua
- ylemmän LED -renkaan valotehosteen ensimmäinen tavu
- toisen tavun valotehoste alemmalle LED -renkaalle
- toistettavan mp3 -tiedoston numero
- kuinka monta sekuntia valotehoste ja mp3 toistetaan
- pitääkö mp3 toistaa kerran vai silmukassa (1 jos se toistetaan silmukassa)
Lähettämällä tavuja
07 0F 01 05 01
Ylärengas näyttää poliisin valot (tila 6) alaosa vilkkuu vihreänä (tila 15) (katso setMode -toiminto osoitteessa singleRing.cpp ja kommentit sen vieressä). SD -kortin ensimmäinen tiedosto toistetaan 5 sekunnin ajan. Ja tiedosto toistetaan silmukassa (tarkista toiminto onUserMessage osoitteessa arduino.ino)
Lähetämme nämä tavut. Katso yllä olevaa näyttöä ja napsauta kuvakkeita järjestyksessä 1, 2, 3. Ikkuna tulee näkyviin
Katso sitten toista näyttöä - ja täytä ikkuna kuten toisessa näytössä
Näkyviin tulevaa ikkunaa käytetään viestien lähettämiseen laitteeseen. Valitse kentässä 1 lähettäjälaite - koska meillä on vain yksi laite, valitsemme sen (tämä on pakollinen kenttä eikä sillä ole väliä, että se on sama laite, jolle lähetämme viestin) Kentässä 2 annamme tavuja lähetä (punaisena arvo, jonka annoimme kohtaan 2, esitetään merkkijonona) ja napsauta Lähetä -painiketta.
Viestin lähettämisen jälkeen ilmoittajamme pitäisi reagoida näyttämällä sopivat valotehosteet ja toistamalla valittu mp3. Suosittelen kokeilemaan erilaisia tehosteita antamalla kaksi ensimmäistä tavua numerosta välillä 0 ja 22 (katso kuvaus setMode -toiminnossa).
Vaihe 8: Viestien lähettäminen URL -osoitteiden avulla
Jos haluamme näyttää ilmoituksia ulkoisesta sovelluksesta esim. IFTTT: n avulla, meillä on oltava URL -osoite, joka toimii täsmälleen samalla tavalla kuin edellisessä vaiheessa. remoteme.org tarjoaa REST APi: n. Siirry siihen napsauttamalla vasemmanpuoleista välilehteä (viimeinen). Sivu tulee näkyviin, tällä sivulla voimme myös kokeilla URL -osoitteitamme.
Ensimmäisellä näytöllä sinulla on toiminto, jota sinun on laajennettava, ja täytä sitten tiedot kuten toisessa näytössä.
täytä tiedot yllä olevan kuvakaappauksen mukaisesti. Kun painat suorituspainiketta, lähetämme viestin
070F010501
Vastaanotin on laite, jonka tunnus on 205, sama laite on myös lähettäjä. MessageId”No_RENEVAL” -asetuksilla ei ole merkitystä. Napsauta sitten Suorita. Notificator reagoi samalla tavalla kuin lähettäessään viestejä sovelluksesta. REST -puhelun jälkeen alla on URL -osoite, jota kutsuttiin - katso kolmas näyttö. Kopioi ja liitä selaimen URL -osoite on merkitty vihreällä reunuksella. Neljännellä näytöllä Chrome -selaimeni URL -osoitteen liittämisen jälkeen
Minun tapauksessani URL -osoite on:
app.remoteme.org/api/*/rest/v1/message/sendUserMessageHexString/205/1/NO_RENEWAL/1/070F010501/
Vaihe 9: Mikä tahansa URL -osoite viestin lähettämiseen
Edellisessä vaiheessa sinulla on URL -osoite, joka lähettää tietoja laitteellesi. Valitettavasti, kun kirjaudut ulos sovelluksesta.remoteme.org, se lakkaa toimimasta. Tämä johtuu siitä, että emme toimittaneet todennustunnusta emmekä ole enää kirjautuneet sisään. Hanki tunnuksemme (tai luo uusi) ja liitä se URL -osoitteeseen tähden sijaan.
Katso näyttöä ja korvaa * URL -osoitteessa tunnuksellasi
minun tapauksessani merkki on:
~ 267_ZxoWtJ) 0ph & 2c
joten lopullinen URL -osoitteeni näyttää tältä:
app.remoteme.org/api/~267_ZxoWtJ)0ph&2c/rest/v1/message/sendUserMessageHexString/205/1/NO_RENEWAL/1/070F010501/
Nyt voimme soittaa sille, vaikka emme ole kirjautuneet sisään. Ja kun se kutsutaan, viesti lähetetään laitteellemme 205
Vaihe 10: Integrointi IFTTT 1/7: n kanssa
Yllä olevassa vaiheessa luotu URL -osoite soveltuu ulkoisten sovellusten suorittamiseen. Kuinka käyttää sitä, näytän IFTTT: ssä. Määritän sen niin, että ilmoittaja käynnistyy, kun sähköposti tulee sähköpostiosoitteeseen (Gmail -tili).
Kirjaudu sisään IFTTT: hen. Siirry sitten Omat appletit -välilehdelle ja sitten "New Applet"- ensimmäinen näyttö
Vaihe 11: Integrointi IFTTT 2/7: n kanssa
Napsauta seuraavaksi "+tämä"
Vaihe 12: Integrointi IFTTT 3/7: n kanssa
Kirjoita sitten hakupalvelujen kenttään "Gmail"
Sitten "uusi sähköposti postilaatikkoon" (Jotkut määritykset saattavat olla tarpeen).
Vaihe 13: Integrointi IFTTT 4/7: n kanssa
nyt napsautamme "+ että"
Vaihe 14: Integrointi IFTTT 5/7: n kanssa
Etsi”Webhooks” ja napsauta sitä
Vaihe 15: Integrointi IFTTT 6/7: n kanssa
sitten "Tee verkkopyyntö"
Vaihe 16: Integrointi IFTTT 7/7: n kanssa
täydennämme URL -osoitteemme tunnuksella. Sisältötyyppi sovellukseen / json ja napsauta "Luo toiminto" ja Valmis. Nyt meillä on appletti:
Vaihe 17: Yhteenveto
Tässä opetusohjelmassa näytin kuinka lähettää Arduinon viestejä ulkoisista järjestelmistä. Integroimme myös jonkin muun järjestelmän kuin IFTTT: n samalla tavalla. Sen ei välttämättä tarvitse olla”ilmoittaja”, jonka halusin näyttää tässä esimerkissä kuinka lähettää viestejä ulkopuolisista järjestelmistä Arduinollemme.
sourcecodesFanPage Facebookissa
Terveisin, Maciek
Suositeltava:
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): 8 vaihetta
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): ultraäänikaiuttimet L298N DC-naarasadapterin virtalähde urospuolisella dc-nastalla ja analogiset portit koodin muuntamiseksi (C ++)
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: 3 vaihetta
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: Seuraava opas auttaa sinua saamaan live-HD-videovirtoja lähes mistä tahansa DJI-dronesta. FlytOS -mobiilisovelluksen ja FlytNow -verkkosovelluksen avulla voit aloittaa videon suoratoiston droonilta
Pultti - DIY -langaton latauskello (6 vaihetta): 6 vaihetta (kuvilla)
Pultti - DIY -langaton latausyökello (6 vaihetta): Induktiiviset lataukset (tunnetaan myös nimellä langaton lataus tai langaton lataus) on langattoman voimansiirron tyyppi. Se käyttää sähkömagneettista induktiota sähkön tuottamiseen kannettaville laitteille. Yleisin sovellus on langaton Qi -latauslaite
4 vaihetta akun sisäisen vastuksen mittaamiseksi: 4 vaihetta
4 vaihetta akun sisäisen vastuksen mittaamiseksi: Tässä on 4 yksinkertaista vaihetta, joiden avulla voit mitata taikinan sisäisen vastuksen
Ilmoittaja: 4 vaihetta
Ilmoittaja: Onko sinulla koskaan ollut kokemusta kertoessasi muille, ettei heidän pidä sijoittaa henkilökohtaisia tavaroitaan sinun paikallesi? Useimmiten jokainen on kohdannut tämän tilanteen ja usein tämä ongelma jää ratkaisematta, koska muut eivät usein kuuntele varoitusta. Tämä laite ja quo