Orodha ya maudhui:

Mtaarifu: Hatua 17
Mtaarifu: Hatua 17

Video: Mtaarifu: Hatua 17

Video: Mtaarifu: Hatua 17
Video: Учим цвета Разноцветные яйца на ферме Miroshka Tv 2024, Novemba
Anonim
Mtaarifu
Mtaarifu

Kifaa kinaweza kushikamana kwa mfano kwenye mfumo wa IFTTT na kuguswa wakati barua mpya inaonekana. Katika app.remoteme.org tutazalisha kiunga baada ya kupiga simu ambayo ni kaiti zitatumwa kwa Arduino, na Arduino itaonyesha athari nyepesi na kucheza mp3 kutoka SDcard

Hatua ya 1: Kinachohitajika

Kinachohitajika
Kinachohitajika
Kinachohitajika
Kinachohitajika
  • NodeMCU, WemOS au kitu kama hicho
  • Pete mbili za LED zilizo na diode za WS2812B (nimetumia pete za kuongoza za 16)
  • DFRobotDFPlayerMini - hii ni kicheza mp3. Inacheza mp3 kutoka SDcard, na kuwasiliana na Arduino na RX / TX
  • Spika
  • Kadi ya SD
  • Mtafsiri wa mantiki -Nimetumia hii, kicheza mp3 hutumia 5V na Arduino 3.3 ndio sababu tunahitaji kibadilishaji hiki
  • Maarifa na ujuzi wa kutengeneza PCB rahisi kwa ubinafsi wetu

Mnara:

  • kadibodi - unene mbili tofauti
  • Kufuatilia karatasi
  • karatasi ya alumini

Hatua ya 2: Jengo la Mnara

Jengo la Mnara
Jengo la Mnara
Jengo la Mnara
Jengo la Mnara
Jengo la Mnara
Jengo la Mnara
Jengo la Mnara
Jengo la Mnara

Juu ya mpango wa mnara kwa mtazamo wa kando (adventure yangu na mchoro wa kiufundi uliishia shule ya msingi), vipimo vyote kwa milimita.

Kanuni ya utendaji

  1. pete ya mwangaza wa taa za LED
  2. Kufuatilia karatasi
  3. Koni iliyokatwa, iliyotengenezwa kwa kadibodi na kufunikwa na karatasi ya aluminium, kwa hivyo inaonyesha taa kutoka kwa pete zilizoongozwa, kwenye sura ya 3 ‘= mesh iliyokatwa
  4. tube ya katoni - inashikilia minara kwa wima, ndani ya bomba kuna nyaya za viunzi
  5. Urefu unategemea wewe nina 85mm
  6. Simama ndani ya sehemu zote za elektroniki

Vipengele vyote vya usawa vinapaswa kufanywa kwa kadibodi nene.

Hatua ya 3: Mchoro wa Wiring

Mchoro wa Wiring
Mchoro wa Wiring
Mchoro wa Wiring
Mchoro wa Wiring
Mchoro wa Wiring
Mchoro wa Wiring
Mchoro wa Wiring
Mchoro wa Wiring

Kicheza mp3 hutolewa na voltage ya 5V na inawasiliana na Arduino kupitia TX / RX, kibadilishaji cha mantiki kinahitajika kwa sababu Arduino yenyewe inafanya kazi kwa voltage 3.3V. Udhibiti wa pete pia umeunganishwa na Arduino (D5, D6) kupitia kibadilishaji cha mantiki.

Katika hazina, Utapata faili za tai na mipango ya PCB

Ninashauri sio kuuza Arduino na mchezaji wa mp3 tu kutumia dhahabu za kike

Hatua ya 4: Kanuni ya Uendeshaji

Arduino yetu inaunganisha kwenye mfumo wa app.remoteme.org kwa kutumia WebSocket (kuna maktaba zilizo tayari) kupitia unganisho hili jumbe 5-byte zinatumwa:

  • Byte ya kwanza ya athari nyepesi kwa pete ya juu ya LED
  • athari ya pili ya mwanga kwa pete ya chini ya LED
  • idadi ya faili ya mp3 itakayochezwa
  • idadi ya sekunde muda gani athari nyepesi na mp3 zitachezwa
  • ikiwa mp3 inapaswa kuchezwa mara moja au kwa kitanzi

nambari ya chanzo

Nambari yote ya chanzo Unaweza kupata hapa

katika faili za SingleRing.cpp na SingleRing.h kuna darasa la kudhibiti athari za pete za LED. Ninashauri uanze kwa kuangalia kazi ya setMode (int m):

utupu SingleRing:: setMode (int m) {switch (m) {kesi 0: setConfiguration (0, 0, 50, 0, 5, 1); kuvunja; // off = 0 kesi 1: seti Usanidi (6, 0, 50, 0, 0, 20); kuvunja; // kesi ya kijani kibichi 2: seti Usanidi (6, 0, 0, 50, 0, 20); // kesi ya bluu ya kawaida 3: seti Usanidi (6, 50, 0, 0, 0, 20); kuvunja; // kesi nyekundu nyekundu 4: seti Usanidi (6, 50, 10, 0, 0, 20); kuvunja; // kesi ya kawaida ya machungwa 5: seti Usanidi (1, 0, 100, 0, 5, 2); // polisi kesi ya kijani kibichi saa 6: seti Usanidi (1, 0, 100, 0, 5, -2); // polisi refund kesi ya kijani kibichi 7: seti Usanidi (1, 0, 0, 100, 5, 2); // kesi ya bluu ya saa 8 ya polisi: seti Usanidi (1, 0, 0, 100, 5, -2); kuvunja; // polisi inarudisha kesi ya bluu 9: seti Usanidi (1, 100, 0, 0, 5, 2); kuvunja; // kesi nyekundu 10 ya polisi: seti Usanidi (1, 100, 0, 0, 5, -2); // polisi rejea kesi nyekundu 11: seti Usanidi (1, 100, 20, 0, 5, 2); // kesi ya machungwa ya kiwango cha polisi 12: seti Usanidi (1, 100, 20, 0, 5, -2); // polisi rejea kesi ya machungwa 13: seti Usanidi (2, 0, 0, 50, 8, 10); kuvunja; // msalaba kesi ya bluu wastani 14: seti Usanidi (2, 0, 0, 50, 8, -10); kuvunja; // msalaba rejesha kesi ya bluu 15: seti Usanidi (5, 0, 50, 0, 0, 20); kuvunja; // blink kesi ya kijani ya kawaida 16: setConfiguration (5, 0, 50, 0, 0, -20); kuvunja; // blink odwyrtka kesi ya kijani 17: seti Usanidi (5, 0, 0, 50, 0, 20); // blink kesi ya kawaida ya bluu 18: setConfiguration (5, 0, 0, 50, 0, -20); kuvunja; kuvunja; // blink kesi nyekundu 20: setConfiguration (5, 50, 0, 0, 0, -20); kuvunja; // blink rejea kesi nyekundu 21: seti Usanidi (5, 50, 10, 0, 0, 20); kuvunja; // blink kesi ya machungwa ya kawaida 22: seti Usanidi (5, 50, 10, 0, 0, -20); kuvunja; // blink revert default ya machungwa: setConfiguration (0, 0, 50, 0, 5, 1); kuvunja; // off = 0}}

kulingana na parameter iliyopewa, pete itaonyesha athari. Unaweza kuongeza athari yako mwenyewe kwa kupiga kazi setConfiguration na vigezo vipya (mabadiliko ya rangi, kasi ya kuonyesha) kwa kuongeza hali mpya, au kuongeza athari mpya kabisa - au nijulishe kwenye maoni ikiwa nitaipenda nitaongeza athari mpya

arduino.ino:

# pamoja na "Arduino.h" # pamoja na "SoftwareSerial.h" # pamoja na "DFRobotDFPlayerMini.h"

# pamoja

# pamoja na # pamoja na # pamoja na "SingleRing.h"

# pamoja

#jumuisha #jumuisha

# pamoja

#fafanua WIFI_NAME ""

#fafanua DIODES_COUNT 16

JuuRing juu = SingleRing (DIODES_COUNT, D5);

Chini ya SingleRing = SingleRing (DIODES_COUNT, D6);

SoftwareSerial mySoftwareSerial (D4, D3); // RX, TX

DFRobotDFPlayerMini myDFPlayer; RemoteMe & remoteMe = RemoteMe:: getInstance (TOKEN, DEVICE_ID);

ESP8266WiFiMulti WiFiMulti;

kuanzisha batili () {mySoftwareSerial.begin (9600); Serial. Kuanza (115200);

ikiwa (! myDFPlayer.begin (mySoftwareSerial)) {// Tumia softwareSerial kuwasiliana na mp3.

Serial.println (F ("Haiwezi kuanza:")); Serial.println (F ("1. Tafadhali angalia tena unganisho!")); Serial.println (F ("2. Tafadhali weka kadi ya SD!")); wakati (kweli); } Serial.println (F ("DFPlayer Mini mkondoni."));

myDFPlayer.setTimeOut (500); // Weka muda wa kawaida wa ushirika kati ya 500ms

myDFPlayer.volume (30);

myDFPlayer. EQ (DFPLAYER_EQ_NORMAL);

myDFPlayer.outputDevice (DFPLAYER_DEVICE_SD); WiFiMulti.addAP (WIFI_NAME, WIFI_PASSWORD); wakati (WiFiMulti.run ()! = WL_CONNECTED) {kuchelewa (100); }

kijijiniMe.setUserMessageListener (onUserMessage);

kijijiniMe.setupTwoWayCommunication ();

kijijiniMe.sendRegisterDeviceMessage (DEVICE_NAME);

kuanzisha ();

kuanzisha (); juu. wazi (); chini. wazi (); }

boolean TurnOff = kweli;

turnOffMillis = 0;

utupu kwenyeUserMessage (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); wakati wa uint8_t = RemoteMeMessagesUtils:: getUint8 (data, pos); uint8_t mode = RemoteMeMessagesUtils:: getUint8 (data, pos);

chini.setMode (chiniMode);

top.setMode (topMode); ikiwa (mode == 1) {myDFPlayer.loop (trackNumber); } mwingine {myDFPlayer.play (trackNumber); } TurnOff = uongo; turnOffMillis = millis () + 1000 * wakati; }

kitanzi batili ()

{remoteMe.loop (); juu. kitanzi (); chini. kitanzi (); ikiwa (turnOffMillis

}

maelezo:

#fafanua WIFI_NAME.

Tunahitaji kutoa data hapo juu, maagizo ya kina hapa kwenye kiunga pia nimeonyesha jinsi ya kujiandikisha katika remoteme.org na kutoa ishara, batili 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); wakati wa uint8_t = RemoteMeMessagesUtils:: getUint8 (data, pos); uint8_t mode = RemoteMeMessagesUtils:: getUint8 (data, pos);

chini.setMode (chiniMode);

top.setMode (topMode); ikiwa (mode == 1) {myDFPlayer.loop (trackNumber); } mwingine {myDFPlayer.play (trackNumber); } TurnOff = uongo; turnOffMillis = millis () + 1000 * wakati; }

Kazi hii itaitwa wakati ujumbe unakuja Arduino na kuonyesha arifa. Nambari iko wazi sana kwamba inajielezea yenyewe. Ninataja maelezo ya madarasa kwa nyaraka hapa na hapa

kitanzi batili () {remoteMe.loop (); juu. kitanzi (); chini. kitanzi (); ikiwa (turnOffMillis <millis ()) {

ikiwa (! Amezimwa) {

juu. wazi ();

chini. wazi (); myDFPlayer.stop (); TurnOff = kweli; }}

Katika kitanzi, tunaita kazi za kitanzi za vitu, na pia ikiwa wakati wa kuonyesha wa arifa umepita, tunazima diode na sauti.

Hatua ya 5: Mchezaji wa Mp3

Mchezaji wa Mp3
Mchezaji wa Mp3

Inawasiliana na Arduino kupitia TX / RX - Maelezo ya kicheza yenyewe hapa, na maktaba hapa

Tunapakia faili za mp3 kwenye kadi ya SD. Faili kwenye kadi zimepangwa kwa herufi na kisha kwa kupiga simu:

kucheza (5);

Tunacheza faili ya tano kutoka kwa kadi ya SD kutoka saraka ya mizizi. Ndio sababu ni vizuri kutoa faili kwenye viambishi awali vya kadi ya SD 01, 02 nk. Kwa kesi yangu inaonekana kama skrini ya juu ya kuchapisha

Kutengeneza amri za sauti Unaweza kutumia ukurasa huu.

Hatua ya 6: Kupakia Programu hiyo kwa Arduino

Inapakia Programu hiyo kwa Arduino
Inapakia Programu hiyo kwa Arduino
Inapakia Programu hiyo kwa Arduino
Inapakia Programu hiyo kwa Arduino

Kabla ya kupakia mchoro kwa Arduino, Lazima upakue maktaba zinazohitajika hapa utapata maagizo ya kina

kwa kuongeza, tunahitaji kusanikisha maktaba ya DFRobotDFPlayerMini na Adafruit_NeoPixel

Hatua ya 7: Udhibiti

Udhibiti
Udhibiti
Udhibiti
Udhibiti

Tunatuma kwa Arduino yetu ka tano

  • Byte ya kwanza ya athari nyepesi kwa pete ya juu ya LED
  • athari ya pili ya mwanga kwa pete ya chini ya LED
  • idadi ya faili ya mp3 itakayochezwa
  • idadi ya sekunde muda gani athari nyepesi na mp3 zitachezwa
  • ikiwa mp3 inapaswa kuchezwa mara moja au kwa kitanzi (1 ikiwa inapaswa kuchezwa kwa kitanzi)

Kwa kutuma ka

07 0F 01 05 01

Pete ya juu itaonyesha taa za polisi (mode 6) chini moja ya kijani kibichi (mode 15) (angalia setMode function kwa singleRing.cpp na maoni karibu nayo). Fomu ya kwanza ya faili ya SDcard itachezwa kwa sekunde 5. Na faili itachezwa kitanzi (angalia kazi kwenyeUserMessage kwa arduino.ino)

Hebu tutume ka hizi. Angalia skrini hapo juu, na ubofye ikoni kwa mpangilio ulioandikwa na 1, 2, 3. Dirisha linaonekana

Kisha angalia skrini ya pili - na ujaze dirisha kama kwenye skrini ya pili

Dirisha inayoonekana hutumiwa kutuma ujumbe kwa kifaa. Kwenye uwanja 1, chagua kifaa cha mtumaji - kwa sababu tuna kifaa kimoja tu, tunachagua (hii ni uwanja wa lazima na haijalishi ni kifaa kile kile ambacho tunatuma ujumbe) Kwenye uwanja wa 2 tunapeana ka tuma (kwa nyekundu thamani tuliyoingiza katika 2 itawakilishwa kama kamba) kisha bonyeza kitufe cha Tuma.

Baada ya kutuma ujumbe, arifu wetu anapaswa kuguswa kwa kuonyesha athari zinazofaa za taa na kucheza mp3 iliyochaguliwa. Ninakuhimiza ujaribu athari tofauti kwa kupeana ka mbili za kwanza za nambari kati ya 0 na 22 (angalia maelezo katika kazi ya setMode).

Hatua ya 8: Kutuma Ujumbe Kutumia URL

Kutuma Ujumbe Kutumia URL
Kutuma Ujumbe Kutumia URL
Kutuma Ujumbe Kutumia URL
Kutuma Ujumbe Kutumia URL
Kutuma Ujumbe Kutumia URL
Kutuma Ujumbe Kutumia URL
Kutuma Ujumbe Kutumia URL
Kutuma Ujumbe Kutumia URL

Ikiwa tunataka kuonyesha arifa kutoka kwa programu ya nje kwa mfano na IFTTT, tunahitaji kuwa na URL ambayo itafanya kitu sawa sawa na tulivyofanya kwenye dirisha katika hatua ya awali. remoteme.org hutoa REST APi. Nenda kwa kubonyeza kichupo cha swagger upande wa kushoto (wa mwisho). Ukurasa utaonyeshwa, kwenye ukurasa huu tunaweza pia kujaribu URL zetu.

Kwenye skrini ya kwanza Una kazi Unahitaji kupanua, kisha ujaze data kama kwenye skrini ya pili.

jaza data kama ilivyo kwenye skrini hapo juu. Baada ya kubofya kutekeleza tutatuma ujumbe

070F010501

Mpokeaji ni kifaa kilicho na kitambulisho cha 205, kifaa hicho pia ni mtumaji. MessageId na mipangilio ya "No_RENEVAL" haina maana. Na kisha bonyeza Execute. Notificator itajibu kwa njia sawa na wakati wa kutuma ujumbe kutoka kwa programu. Baada ya kupiga REST chini ni URL ambayo iliitwa - angalia skrini ya tatu. Nakili na ubandike kwenye kivinjari URL iliwekwa alama na mpaka wa kijani kibichi. Kwenye skrini ya nne kivinjari changu cha chrome baada ya URL kubandikwa

Kwa upande wangu, URL ni:

app.remoteme.org/api/*/rest/v1/message/sendUserMessageHexString/205/1/NO_RENEWAL/1/070F010501/

Hatua ya 9: Anymous URL ya Kutuma Ujumbe

URL yoyote ya Kutuma Ujumbe
URL yoyote ya Kutuma Ujumbe

Katika hatua ya awali Una URL ambayo hutuma data kwenye kifaa chako. Kwa bahati mbaya, baada ya kutoka kwa app.remoteme.org, inaacha kufanya kazi. Hii ni kwa sababu hatukutoa ishara ya uthibitishaji, na hatujaingia tena. Wacha tupate ishara (au tuunde mpya) na tuibandike kwenye URL badala ya nyota.

Angalia skrini na ubadilishe * katika URL na ishara yako

kwa upande wangu ishara ni:

~ 267_ZxoWtJ) 0ph & 2c

kwa hivyo URL yangu ya mwisho inaonekana kama:

app.remoteme.org/api/~267_ZxoWtJ)0ph&2c/rest/v1/message/sendUserMessageHexString/205/1/NO_RENEWAL/1/070F010501/

Sasa tunaweza kuipigia simu hata ikiwa hatujaingia. Na ikiitwa, ujumbe utatumwa kwa kifaa chetu 205

Hatua ya 10: Ujumuishaji na IFTTT 1/7

Ujumuishaji na IFTTT 1/7
Ujumuishaji na IFTTT 1/7

Url iliyoundwa kwa hatua hapo juu inafaa kutekelezwa na matumizi ya nje. Jinsi ya kuitumia nitaonyesha kwenye IFTTT. Nitasanidi ili arifu iwashe wakati barua pepe inakuja kwenye anwani ya barua pepe (Akaunti ya Gmail).

Ingia kwenye IFTTT kisha nenda kwenye kichupo cha My Applets na kisha "Applet mpya" - skrini ya kwanza

Hatua ya 11: Ujumuishaji na IFTTT 2/7

Ushirikiano na IFTTT 2/7
Ushirikiano na IFTTT 2/7

Kisha bonyeza "+ hii"

Hatua ya 12: Ujumuishaji na IFTTT 3/7

Ujumuishaji na IFTTT 3/7
Ujumuishaji na IFTTT 3/7

Halafu kwenye uwanja "Huduma za utaftaji" andika "Gmail"

Kisha "barua pepe mpya katika kikasha" (Baadhi ya usanidi unaweza kuhitajika).

Hatua ya 13: Ujumuishaji na IFTTT 4/7

Ushirikiano na IFTTT 4/7
Ushirikiano na IFTTT 4/7

sasa tunabofya "+ hiyo"

Hatua ya 14: Ujumuishaji na IFTTT 5/7

Ushirikiano na IFTTT 5/7
Ushirikiano na IFTTT 5/7

pata "Webhooks" na ubonyeze

Hatua ya 15: Ujumuishaji na IFTTT 6/7

Ushirikiano na IFTTT 6/7
Ushirikiano na IFTTT 6/7

kisha "Fanya ombi la wavuti"

Hatua ya 16: Ujumuishaji na IFTTT 7/7

Ushirikiano na IFTTT 7/7
Ushirikiano na IFTTT 7/7

tunakamilisha URL ya url yetu na ishara. Aina ya yaliyomo kwenye application / json na ubonyeze "unda hatua" na Maliza. Sasa tuna applet yetu:

Hatua ya 17: Muhtasari

Katika mafunzo haya, nilionyesha jinsi ya kutuma kwa ujumbe wetu wa Arduino kutoka kwa mifumo ya nje. Sisi pia tunaunganisha mfumo mwingine kisha IFTTT kwa njia ile ile. Sio lazima iwe "mtambulishaji" nilitaka kuonyesha katika mfano huu jinsi ya kutuma ujumbe kutoka kwa mifumo ya nje kwa Arduino yetu.

nambari za chanzoFanPage kwenye Facebook

Shangwe, Maciek

Ilipendekeza: