Talaan ng mga Nilalaman:
- Hakbang 1: Ano ang Kailangan
- Hakbang 2: Pagbuo ng Tower
- Hakbang 3: Diagram ng Mga Kable
- Hakbang 4: Prinsipyo ng Pagpapatakbo
- Hakbang 5: Mp3 Player
- Hakbang 6: Pag-upload ng Program sa Arduino
- Hakbang 7: Pagkontrol
- Hakbang 8: Pagpapadala ng Mga Mensahe Gamit ang mga URL
- Hakbang 9: Anumang URL upang Magpadala ng Mensahe
- Hakbang 10: Pagsasama Sa IFTTT 1/7
- Hakbang 11: Pagsasama Sa IFTTT 2/7
- Hakbang 12: Pagsasama Sa IFTTT 3/7
- Hakbang 13: Pagsasama Sa IFTTT 4/7
- Hakbang 14: Pagsasama Sa IFTTT 5/7
- Hakbang 15: Pagsasama Sa IFTTT 6/7
- Hakbang 16: Pagsasama Sa IFTTT 7/7
- Hakbang 17: Buod
Video: Tagabatid: 17 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
Ang aparato ay maaaring konektado halimbawa sa IFTTT system at reaksyon kapag lumitaw ang isang bagong mail. Sa app.remoteme.org makakabuo kami ng isang link pagkatapos tumawag kung aling mga byte ang ipapadala sa Arduino, at ang Arduino ay magpapakita ng ilang light effect at maglaro ng ilang mp3 mula sa SDcard
Hakbang 1: Ano ang Kailangan
- NodeMCU, WemOS o katulad na bagay
- Dalawang LED ring na may WS2812B diode (Gumamit ako ng 16th leds ring)
- DFRobotDFPlayerMini - ito ang mp3 player. Nagpe-play ito ng mp3 mula sa SDcard, at nakikipag-usap sa Arduino ng RX / TX
- Tagapagsalita
- SDcard
- Logic converter -Gamit ko ang isang ito, ang mp3 player ay gumagamit ng 5V at Arduino 3.3 kaya nga kailangan namin ng converter na ito
- Kaalaman at kasanayan upang makagawa ng simpleng PCB ng ating mga sarili
Ang tore:
- karton - dalawang magkakaibang kapal
- Pagsubaybay sa papel
- aluminyo palara
Hakbang 2: Pagbuo ng Tower
Sa itaas ng plano ng tower sa view ng gilid (ang aking pakikipagsapalaran sa pagguhit ng panteknikal ay natapos sa pangunahing paaralan), lahat ng mga sukat sa millimeter.
Prinsipyo ng pagpapatakbo
- singsing ng LEDs na nagbibigay ng ilaw sa
- Pagsubaybay sa papel
- Ang pinutol na kono, gawa sa karton at tinakpan ng aluminyo palara, kaya sumasalamin ito ng mga ilaw mula sa mga pinangunahang singsing, sa pigura na 3 ‘= ang pinutol na mata
- karton tube - hinahawakan ang mga tower nang patayo, sa loob ng tubo ay mga cable para sa mga leds
- Ang taas nakasalalay sa iyo mayroon akong 85mm
- Ang Stand sa loob ng lahat ng mga bahagi ng electronics
Ang lahat ng mga pahalang na elemento ay dapat gawin ng mas makapal na karton.
Hakbang 3: Diagram ng Mga Kable
Ang mp3 player ay ibinibigay ng 5V boltahe at nakikipag-usap sa Arduino sa pamamagitan ng TX / RX, kailangan ng isang converter ng lohika sapagkat ang Arduino mismo ay gumagana sa 3.3V boltahe. Ang pagkontrol ng mga singsing ay konektado din sa Arduino (D5, D6) sa pamamagitan ng converter ng lohika.
Sa lalagyan, Makakakita ka ng mga file ng agila na may mga plano sa PCB
Iminumungkahi ko na huwag solder permanenteng Arduino at ang mp3 player lamang na gumamit ng mga babaeng goldpins
Hakbang 4: Prinsipyo ng Pagpapatakbo
Ang aming Arduino ay kumokonekta sa app.remoteme.org system na gumagamit ng WebSockets (may mga handa na mga aklatan) sa pamamagitan ng koneksyon na ito 5-byte na mensahe ay ipinadala:
- ang unang byte ng light effect para sa itaas na singsing na LED
- pangalawang byte light effect para sa ilalim na singsing na LED
- ang bilang ng file na mp3 na ipe-play
- ang bilang ng mga segundo kung gaano katagal i-play ang ilaw na epekto at ang mp3
- kung ang mp3 ay dapat i-play nang isang beses o sa isang loop
source code
Buong source code Maaari mong makita dito
sa mga file na SingleRing.cpp at SingleRing.h mayroong isang klase upang makontrol ang mga epekto ng mga singsing na LED. Iminumungkahi kong magsimula ka sa pamamagitan ng pagtingin sa pagpapaandar ng setMode (int m):
walang bisa ang SingleRing:: setMode (int m) {switch (m) {case 0: setConfiguration (0, 0, 50, 0, 5, 1); masira; // off = 0 kaso 1: setConfiguration (6, 0, 50, 0, 0, 20); masira; // solid standard green case 2: setConfiguration (6, 0, 0, 50, 0, 20); masira; // solid standard na asul na kaso 3: setConfiguration (6, 50, 0, 0, 0, 20); masira; // solid standard red case 4: setConfiguration (6, 50, 10, 0, 0, 20); masira; // solid standard orange case 5: setConfiguration (1, 0, 100, 0, 5, 2); masira; // pulisya na liko sa lindol na kaso 6: setConfiguration (1, 0, 100, 0, 5, -2); masira; // ibalik ng pulisya ang berdeng kaso 7: setConfiguration (1, 0, 0, 100, 5, 2); masira; // pulisya asul pataas na asul na kaso 8: setConfiguration (1, 0, 0, 100, 5, -2); masira; // ibalik ng pulisya ang asul na kaso 9: setConfiguration (1, 100, 0, 0, 5, 2); masira; // pamantayan ng pulisyang pulang kaso 10: setConfiguration (1, 100, 0, 0, 5, -2); masira; // ibalik ng pulisya ang pulang kaso 11: setConfiguration (1, 100, 20, 0, 5, 2); masira; // pamantayan ng pulisya kahel na kaso 12: setConfiguration (1, 100, 20, 0, 5, -2); masira; // ibalik ng pulisya ang kahel na kaso 13: setConfiguration (2, 0, 0, 50, 8, 10); basagin; // cross standard blue case 14: setConfiguration (2, 0, 0, 50, 8, -10); masira; // cross revert blue case 15: setConfiguration (5, 0, 50, 0, 0, 20); masira; // blink standard green case 16: setConfiguration (5, 0, 50, 0, 0, -20); masira; // blink odwyrtka green case 17: setConfiguration (5, 0, 0, 50, 0, 20); masira; // blink standard blue case 18: setConfiguration (5, 0, 0, 50, 0, -20); masira; // blink ibalik ang asul na kaso 19: setConfiguration (5, 50, 0, 0, 0, 20); masira; // blink standard red case 20: setConfiguration (5, 50, 0, 0, 0, -20); masira; // blink ibalik ang pulang kaso 21: setConfiguration (5, 50, 10, 0, 0, 20); masira; // blink standard orange case 22: setConfiguration (5, 50, 10, 0, 0, -20); masira; // blink ibalik ang orange na default: setConfiguration (0, 0, 50, 0, 5, 1); masira; // off = 0}}
depende sa ibinigay na parameter, ipapakita ng singsing ang epekto. Maaari kang magdagdag ng iyong sariling epekto sa pamamagitan ng pagtawag sa setting ng pag-configure gamit ang mga bagong parameter (pagbabago ng kulay, bilis ng pagpapakita) sa pamamagitan ng pagdaragdag ng isang bagong mode, o pagdaragdag ng isang ganap na bagong epekto - o ipaalam sa akin sa mga komento kung gusto ko ito ay magdagdag ako ng bagong epekto
arduino.ino:
# isama ang "Arduino.h" # isama ang "SoftwareSerial.h" # isama ang "DFRobotDFPlayerMini.h"
# isama
#include #include #include "SingleRing.h"
# isama
# isama ang # isama
# isama
#define WIFI_NAME ""
#define WIFI_PASSWORD "" #define DEVICE_ID 205 #define DEVICE_NAME "siren" #define TOKEN ""
# tukuyin ang DIODES_COUNT 16
SingleRing top = SingleRing (DIODES_COUNT, D5);
SingleRing ilalim = 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);
kung (! myDFPlayer.begin (mySoftwareSerial)) {// Gumamit ng softwareSerial upang makipag-usap sa mp3.
Serial.println (F ("Hindi masimulan:")); Serial.println (F ("1. Mangyaring suriin muli ang koneksyon!")); Serial.println (F ("2. Mangyaring ipasok ang SD card!")); habang (totoo); } Serial.println (F ("DFPlayer Mini online."));
myDFPlayer.setTimeOut (500); // Itakda ang serial komunictaion time out 500ms
myDFPlayer.volume (30);
myDFPlayer. EQ (DFPLAYER_EQ_NORMAL);
myDFPlayer.outputDevice (DFPLAYER_DEVICE_SD); WiFiMulti.addAP (WIFI_NAME, WIFI_PASSWORD); habang (WiFiMulti.run ()! = WL_CONNected) {pagkaantala (100); }
remoteMe.setUserMessageListener (onUserMessage);
remoteMe.setupTwoWayCommunication ();
remoteMe.sendRegisterDeviceMessage (DEVICE_NAME);
tuktok.setup ();
ilalim.setup (); tuktok.malinis (); ilalim. malinaw (); }
boolean turnOff = totoo;
unsigned mahabang turnOffMillis = 0;
walang bisa saUserMessage (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);
ilalim.setMode (ilalimMode);
top.setMode (topMode); kung (mode == 1) {myDFPlayer.loop (trackNumber); } iba pa {myDFPlayer.play (trackNumber); } turnOff = false; turnOffMillis = millis () + 1000 * oras; }
walang bisa loop ()
{remoteMe.loop (); tuktok.loop (); ilalim.loop (); kung (turnOffMillis
}
paliwanag:
#define WIFI_NAME "" #define WIFI_PASSWORD "" #define DEVICE_ID 205 #define DEVICE_NAME "notificator" #define TOKEN ""
Kailangan naming magbigay ng data sa itaas, mga detalyadong tagubilin dito sa link na ipinakita ko rin kung paano magparehistro sa remoteme.org at makabuo ng token, walang bisa saUserMessage (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);
ilalim.setMode (ilalimMode);
top.setMode (topMode); kung (mode == 1) {myDFPlayer.loop (trackNumber); } iba pa {myDFPlayer.play (trackNumber); } turnOff = false; turnOffMillis = millis () + 1000 * oras; }
Tatawagan ang pagpapaandar na ito pagdating sa mensahe sa Arduino at ipinapakita ang abiso. Napakalinaw ng code na inilalarawan nito ang sarili. Sumangguni ako sa mga detalye ng mga klase sa dokumentasyon dito at dito
void loop () {remoteMe.loop (); tuktok.loop (); ilalim.loop (); kung (turnOffMillis <millis ()) {
kung (! turnOff) {
tuktok.malinis ();
ilalim. malinaw (); myDFPlayer.stop (); nakaOff = totoo; }}
Sa loop, tinawag namin ang mga pag-andar ng loop ng mga bagay, at din kung ang oras ng pagpapakita ng mga abiso ay lumipas, pinapatay namin ang mga diode at tunog.
Hakbang 5: Mp3 Player
Nakikipag-usap ito sa Arduino sa pamamagitan ng TX / RX - Mga detalye ng mismong manlalaro dito, at ang silid-aklatan dito
Nag-upload kami ng mga mp3 file sa SD card. Ang mga file sa card ay pinagsunod-sunod ayon sa alpabeto at pagkatapos ay sa pamamagitan ng pagtawag:
myDFPlayer.play (5);
Pinatugtog namin ang pang-limang file mula sa SD card mula sa root Directory. Iyon ang dahilan kung bakit magandang magbigay ng mga file sa mga awas ng SD card 01, 02 atbp Sa aking kaso mukhang sa itaas na printscreen
Upang makabuo ng mga utos ng boses Maaari mong gamitin ang pahinang ito.
Hakbang 6: Pag-upload ng Program sa Arduino
Bago mag-upload ng sketch sa Arduino, Kailangan mong mag-download ng mga kinakailangang aklatan dito makikita mo ang mga tagubilin sa detalye
bilang karagdagan, kailangan naming i-install ang DFRobotDFPlayerMini library at Adafruit_NeoPixel
Hakbang 7: Pagkontrol
Nagpadala kami sa aming Arduino ng limang byte
- ang unang byte ng light effect para sa itaas na singsing na LED
- pangalawang byte light effect para sa ilalim na singsing na LED
- ang bilang ng file na mp3 na ipe-play
- ang bilang ng mga segundo kung gaano katagal i-play ang ilaw na epekto at ang mp3
- kung ang mp3 ay dapat i-play nang isang beses o sa isang loop (1 kung dapat itong i-play sa isang loop)
Sa pamamagitan ng pagpapadala ng mga byte
07 0F 01 05 01
Ipinapakita ng tuktok na singsing ang mga ilaw ng pulisya (mode 6) sa ilalim ng isang blink green (mode 15) (tingnan ang pagpapaandar ng setMode sa singleRing.cpp at mga komento sa tabi nito). Ang unang form ng file na SDcard ay i-play sa loob ng 5 segundo. At ang file ay i-play sa loop (suriin ang pagpapaandar saUserMessage sa arduino.ino)
Ipadala natin ang mga byte na ito. Tingnan ang screen sa itaas, at i-click ang mga icon sa pagkakasunud-sunod na nakasulat sa pamamagitan ng 1, 2, 3. Lumilitaw ang window
Pagkatapos ay tingnan ang pangalawang screen - at punan ang window tulad ng sa pangalawang screen
Ang lalabas na window ay ginagamit upang magpadala ng mga mensahe sa aparato. Sa patlang 1, piliin ang aparato ng nagpadala - dahil mayroon lamang kaming isang aparato, pipiliin namin ito (ito ay isang sapilitan na patlang at hindi mahalaga na ito ay ang parehong aparato kung saan kami nagpapadala ng isang mensahe) Sa patlang 2 nagbibigay kami ng mga byte sa ipadala (sa pula ang halagang ipinasok namin sa 2 ay kinakatawan bilang isang string) pagkatapos ay i-click ang Send button.
Matapos maipadala ang mensahe, dapat tumugon ang aming notifier sa pamamagitan ng pagpapakita ng naaangkop na mga epekto sa pag-iilaw at pag-play ng napiling mp3. Hinihimok ko kayo na subukan ang iba't ibang mga epekto sa pamamagitan ng pagbibigay ng unang dalawang byte ng isang numero sa pagitan ng 0 at 22 (tingnan ang paglalarawan sa pagpapaandar ng setMode).
Hakbang 8: Pagpapadala ng Mga Mensahe Gamit ang mga URL
Kung nais naming ipakita ang mga abiso mula sa isang panlabas na application hal. Kasama ang IFTTT, kailangan naming magkaroon ng isang URL na gagawin nang eksakto ang parehong bagay tulad ng ginawa namin sa window sa nakaraang hakbang. nagbibigay ang remoteme.org ng REST APi. Pumunta dito sa pamamagitan ng pag-click sa tab ng swagger sa kaliwa (ang huli). Ipapakita ang isang pahina, sa pahinang ito maaari din naming subukan ang aming mga URL.
Sa unang screen Mayroon kang pagpapaandar Kailangan mong palawakin, pagkatapos punan ang data tulad ng sa pangalawang screen.
punan ang data tulad ng nasa screenshot sa itaas. Pagkatapos ng pag-click sa pagpapatupad magpapadala kami ng isang mensahe
070F010501
Ang tatanggap ay ang aparato na may 205 id, ang parehong aparato ay isang nagpadala din. Ang MessageId na may mga setting na "No_RENEVAL" ay hindi nauugnay. At pagkatapos ay i-click ang Ipatupad. Makikilala ang reaksyon sa parehong paraan tulad ng kapag nagpapadala ng mga mensahe mula sa application. Matapos tawagan ang REST sa ibaba ay ang URL na tinawag - tingnan ang pangatlong screen. At ang kopya at i-paste sa browser URL ay minarkahan ng berdeng hangganan. Sa ika-apat na screen ang aking chrome browser pagkatapos na nai-paste ang URL
Sa aking kaso, ang URL ay:
app.remoteme.org/api/*/rest/v1/message/sendUserMessageHexString/205/1/NO_RENEWAL/1/070F010501/
Hakbang 9: Anumang URL upang Magpadala ng Mensahe
Sa nakaraang hakbang Mayroon kang isang URL na nagpapadala ng data sa iyong aparato. Sa kasamaang palad, pagkatapos ng pag-log out sa app.remoteme.org, huminto ito sa paggana. Ito ay dahil hindi namin naibigay ang token ng pagpapatotoo, at hindi na kami naka-log in. Kunin ang aming token (o lumikha ng bago) at i-paste ito sa URL sa halip na ang bituin.
Tumingin sa screen at palitan ang * sa URL ng iyong token
sa aking kaso token ay:
~ 267_ZxoWtJ) 0ph & 2c
kaya ang aking panghuling URL ay parang:
app.remoteme.org/api/~267_ZxoWtJ)0ph&2c/rest/v1/message/sendUserMessageHexString/205/1/NO_RENEWAL/1/070F010501/
Ngayon ay maaari na natin itong tawagan kahit na hindi tayo naka-log in. At kapag tinawag ito, isang mensahe ang ipapadala sa aming aparato 205
Hakbang 10: Pagsasama Sa IFTTT 1/7
Ang url na nilikha sa hakbang sa itaas ay angkop para sa pagpapatupad ng mga panlabas na application. Paano gamitin ito ay ipapakita ko sa IFTTT. Ise-configure ko ito upang ang notifier ay nakabukas pagdating ng isang email sa email address (Gmail account).
Mag-log in sa IFTTT. Pagkatapos ay pumunta sa tab na My Applets at pagkatapos ay "Bagong Applet" - unang screen
Hakbang 11: Pagsasama Sa IFTTT 2/7
Susunod na pag-click sa "+ ito"
Hakbang 12: Pagsasama Sa IFTTT 3/7
Pagkatapos sa larangan na "Mga serbisyo sa paghahanap" isulat ang "Gmail"
Pagkatapos "bagong email sa inbox" (Maaaring kailanganin ang ilang pagsasaayos).
Hakbang 13: Pagsasama Sa IFTTT 4/7
ngayon nag-click kami sa "+ iyon"
Hakbang 14: Pagsasama Sa IFTTT 5/7
hanapin ang "Webhooks" at i-click ito
Hakbang 15: Pagsasama Sa IFTTT 6/7
pagkatapos ay "Gumawa ng isang kahilingan sa web"
Hakbang 16: Pagsasama Sa IFTTT 7/7
kinumpleto namin ang URL ng aming url gamit ang token. Uri ng nilalaman sa application / json at i-click ang "lumikha ng aksyon" at Tapusin. Ngayon mayroon kaming aming applet:
Hakbang 17: Buod
Sa tutorial na ito, ipinakita ko kung paano magpadala sa aming mga mensahe ng Arduino mula sa mga panlabas na system. Isinasama din namin ang ilang iba pang system pagkatapos ng IFTTT sa katulad na paraan. Hindi ito kinakailangang maging isang "notificator" na nais kong ipakita sa halimbawang ito kung paano magpadala ng mga mensahe mula sa labas ng mga system sa aming Arduino.
sourcecodesFanPage sa Facebook
Cheers, Maciek
Inirerekumendang:
Mga Soldering Surface Mount Component - Mga Pangunahing Kaalaman sa Paghinang: 9 Mga Hakbang (na may Mga Larawan)
Mga Soldering Surface Mount Component | Mga Pangunahing Kaalaman sa Paghinang: Sa ngayon sa aking Serye ng Mga Pangunahing Kaalaman sa Soldering, tinalakay ko ang sapat na mga pangunahing kaalaman tungkol sa paghihinang para masimulan mong magsanay. Sa Ituturo na ito kung ano ang tatalakayin ko ay medyo mas advanced, ngunit ito ay ilan sa mga pangunahing kaalaman para sa paghihinang sa Surface Mount Compo
Mga Laruang Switch-Adapt: Mga Paglalakad sa Tubig na Lumalakad sa Tubig na Naa-access !: 7 Mga Hakbang (na may Mga Larawan)
Mga Laruang Switch-Adapt: Mga Paglalakad sa Tubig na Lumalakad sa Dragon na Naa-access !: Ang pagbagay ng laruan ay nagbubukas ng mga bagong paraan at na-customize na solusyon upang payagan ang mga bata na may limitadong mga kakayahan sa motor o mga kapansanan sa pag-unlad na makipag-ugnay sa mga laruan nang nakapag-iisa. Sa maraming mga kaso, ang mga bata na nangangailangan ng inangkop na mga laruan ay hindi maaring
Paano Kumuha ng 18650 Mga Cell Mula sa Mga Patay na Baterya ng Laptop !: 7 Mga Hakbang (na may Mga Larawan)
Paano Kumuha ng 18650 Mga Cell Mula sa Mga Patay na Baterya ng Laptop !: Pagdating sa mga proyekto ng pagbuo sa pangkalahatan ay gumagamit kami ng isang supply ng kuryente para sa prototyping, ngunit kung ito ay isang portable na proyekto kailangan namin ng isang mapagkukunan ng kuryente tulad ng 18650 li-ion cells, ngunit ang mga cell na ito ay minsan mahal o karamihan sa mga nagbebenta ay hindi nagbebenta
Mga Larong Pang-tunog ng Mga Hayop para sa Mga Bata: 4 na Mga Hakbang
Mga Larong Pang-tunog ng Mga Hayop para sa Mga Bata: Ang hayop ay tunog sa sarili nitong tinig kapag ang puzzle ng hayop na ito ay inilagay nang tama para sa mga bata sa ilalim ng 24 na buwan. Masisiyahan ang iyong mga anak na lalaki kapag narinig nila ang lahat ng anim na tunog na ibinubuga ng hayop niya. Ang proyektong ito ay batay sa isang produktong komersyal, ngunit nais ko
10 Mga kahalili sa DIY sa Mga Off-The-Shelf na Elektroniko na Mga Bahagi: 11 Mga Hakbang (na may Mga Larawan)
10 Mga Kahalili sa DIY sa Mga Off-The-Shelf na Mga Elektroniko na Bahagi: Maligayang pagdating sa aking kauna-unahang itinuro! Sa palagay mo ba ang ilang mga bahagi mula sa mga tagatingi sa online ay masyadong mahal o may mababang kalidad? Kailangan bang makakuha ng isang prototype nang mabilis at tumatakbo nang mabilis at hindi makapaghintay linggo para sa pagpapadala? Walang mga lokal na electronics distributor? Ang fol