Sisällysluettelo:

Ilmoittaja: 17 vaihetta
Ilmoittaja: 17 vaihetta

Video: Ilmoittaja: 17 vaihetta

Video: Ilmoittaja: 17 vaihetta
Video: Oma-asiointi: Työnhakuvelvollisuuden ilmoittaminen 2024, Marraskuu
Anonim
Ilmoittaja
Ilmoittaja

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

Mitä tarvitaan
Mitä tarvitaan
Mitä tarvitaan
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

Tornirakennus
Tornirakennus
Tornirakennus
Tornirakennus
Tornirakennus
Tornirakennus
Tornirakennus
Tornirakennus

Sivunäkymän tornin suunnitelman yläpuolella (seikkailuni teknisen piirustuksen kanssa päättyi peruskoulussa), kaikki mitat millimetreinä.

Toimintaperiaate

  1. LED -valot sytyttävät valoa
  2. Kuultopaperi
  3. Katkaistu kartio, valmistettu pahvista ja päällystetty alumiinifoliolla, joten se heijastaa led-renkaiden valoja, kuvassa 3 '= katkaistu verkko
  4. kartonkiputki - pitää tornit pystysuorassa, putken sisällä on johtimien johdot
  5. Korkeus riippuu sinusta, minulla on 85 mm
  6. Jalusta kaikkien elektroniikkaosien sisällä

Kaikkien vaakasuorien elementtien tulee olla paksumpaa pahvia.

Vaihe 3: Kytkentäkaavio

Kytkentäkaavio
Kytkentäkaavio
Kytkentäkaavio
Kytkentäkaavio
Kytkentäkaavio
Kytkentäkaavio
Kytkentäkaavio
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

Mp3-soitin
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

Ohjelman lataaminen Arduinolle
Ohjelman lataaminen Arduinolle
Ohjelman lataaminen Arduinolle
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

Ohjaus
Ohjaus
Ohjaus
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

Viestien lähettäminen URL -osoitteiden avulla
Viestien lähettäminen URL -osoitteiden avulla
Viestien lähettäminen URL -osoitteiden avulla
Viestien lähettäminen URL -osoitteiden avulla
Viestien lähettäminen URL -osoitteiden avulla
Viestien lähettäminen URL -osoitteiden avulla
Viestien lähettäminen URL -osoitteiden avulla
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

Mikä tahansa URL -osoite viestin lähettämiseen
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

Integrointi IFTTT 1/7: n kanssa
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

Integrointi IFTTT 2/7: n kanssa
Integrointi IFTTT 2/7: n kanssa

Napsauta seuraavaksi "+tämä"

Vaihe 12: Integrointi IFTTT 3/7: n kanssa

Integrointi IFTTT 3/7: n kanssa
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

Integrointi IFTTT 4/7: n kanssa
Integrointi IFTTT 4/7: n kanssa

nyt napsautamme "+ että"

Vaihe 14: Integrointi IFTTT 5/7: n kanssa

Integrointi IFTTT 5/7: n kanssa
Integrointi IFTTT 5/7: n kanssa

Etsi”Webhooks” ja napsauta sitä

Vaihe 15: Integrointi IFTTT 6/7: n kanssa

Integrointi IFTTT 6/7: n kanssa
Integrointi IFTTT 6/7: n kanssa

sitten "Tee verkkopyyntö"

Vaihe 16: Integrointi IFTTT 7/7: n kanssa

Integrointi IFTTT 7/7: n kanssa
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: