Мазмұны:
- 1 -қадам: не қажет
- 2 -қадам: мұнара құрылысы
- 3 -қадам: Сымдардың диаграммасы
- 4 -қадам: жұмыс принципі
- 5 -қадам: Mp3 ойнатқыш
- 6 -қадам: Бағдарламаны Arduino -ға жүктеу
- 7 -қадам: бақылау
- 8 -қадам: URL мекенжайларын пайдалану арқылы хабар жіберу
- 9 -қадам: Хабарлама жіберуге арналған URL мекенжайы
- 10 -қадам: IFTTT 1/7 интеграциясы
- 11 -қадам: IFTTT 2/7 көмегімен интеграция
- 12 -қадам: IFTTT 3/7 көмегімен интеграция
- 13 -қадам: IFTTT 4/7 көмегімен интеграция
- 14 -қадам: IFTTT 5/7 көмегімен интеграция
- 15 -қадам: IFTTT 6/7 көмегімен интеграция
- 16 -қадам: IFTTT 7/7 көмегімен интеграция
- 17 -қадам: Қорытынды
Бейне: Хабарламашы: 17 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Құрылғыны, мысалы, IFTTT жүйесіне қосуға болады және жаңа пошта пайда болған кезде әрекет етеді. App.remoteme.org сайтында біз қоңырау шалғаннан кейін сілтеме жасаймыз, оның байттары Arduino -ға жіберіледі, ал Arduino кейбір жарық эффектісін көрсетеді және SDcard -тан mp3 тыңдайды.
1 -қадам: не қажет
- NodeMCU, WemOS немесе ұқсас нәрсе
- WS2812B диодтары бар екі жарықдиодты сақина (мен 16 -шы светодиодты қолдандым)
- DFRobotDFPlayerMini - бұл mp3 ойнатқыш. Ол SDcard -тен mp3 ойнатады және Arduino -мен RX/TX арқылы байланысады
- Динамик
- SD картасы
- Логикалық түрлендіргіш -Мен мұны қолдандым, mp3 ойнатқыш 5V және Arduino 3.3 пайдаланады, сондықтан бізге бұл түрлендіргіш қажет
- Қарапайым ПХД жасау бойынша білім мен дағды
Мұнара:
- картон - қалыңдығы екі түрлі
- Бақылау қағазы
- алюминий фольга
2 -қадам: мұнара құрылысы
Мұнара жоспарының үстіңгі жағында (менің техникалық суретпен оқиғам бастауыш мектепте аяқталды), барлық өлшемдері миллиметрмен.
Жұмыс принципі
- жарықдиодты жарықдиодты сақина
- Бақылау қағазы
- Картоннан жасалған және алюминий фольгамен қапталған кесілген конус, осылайша ол жетекші сақиналардың шамдарын көрсетеді, 3 суретте '= қиылған тор
- картоннан жасалған түтік - мұнараларды тігінен ұстайды, түтіктің ішінде светодиодтарға арналған кабельдер бар
- Биіктігі сізге байланысты 85 мм
- Электрониканың барлық бөлшектерінің ішіндегі стенд
Барлық көлденең элементтер қалың картоннан жасалуы керек.
3 -қадам: Сымдардың диаграммасы
Mp3 ойнатқыш 5В кернеумен қамтамасыз етілген және Arduino -мен TX / RX арқылы байланысады, логикалық түрлендіргіш қажет, себебі Arduino өзі 3,3В кернеуде жұмыс істейді. Сақиналарды басқару сонымен қатар логикалық түрлендіргіш арқылы Arduino -ға (D5, D6) қосылады.
Репозиторийде сіз ПХД жоспарлары бар бүркіт файлдарын таба аласыз
Мен Arduino мен mp3 ойнатқышты біркелкі дәнекерлемеуді тек әйелдерге арналған алтын түйреуіштерді қолдану үшін ұсынбаймын
4 -қадам: жұмыс принципі
Біздің Arduino app.remoteme.org жүйесіне WebSockets көмегімен қосылады (дайын кітапханалар бар) осы байланыс арқылы 5 байтты хабарламалар жіберіледі:
- жоғарғы жарықдиодты сақина үшін жарық әсерінің бірінші байты
- төменгі жарықдиодты сақина үшін екінші байт жарық әсері
- ойнатылатын mp3 файлының нөмірі
- жарық эффектісі мен mp3 ойнатылатын секунд саны
- mp3 бір рет немесе циклде ойнатылуы керек пе
бастапқы код
Толық бастапқы кодты мына жерден таба аласыз
SingleRing.cpp және SingleRing.h файлдарында жарықдиодты сақиналардың әсерін басқаратын класс бар. Мен setMode (int m) функциясына қарап бастауды ұсынамын:
void SingleRing:: setMode (int m) {switch (m) {case 0: setConfiguration (0, 0, 50, 0, 5, 1); break; // off = 0 1 жағдай: setConfiguration (6, 0, 50, 0, 0, 20); break; // қатты стандартты жасыл корпус 2: setConfiguration (6, 0, 0, 50, 0, 20); үзіліс; // қатты стандартты көк 3 жағдай: setConfiguration (6, 50, 0, 0, 0, 20); break; // қатты стандартты қызыл корпус 4: setConfiguration (6, 50, 10, 0, 0, 20); break; // қатты стандартты қызғылт сары түсті 5 жағдай: setConfiguration (1, 0, 100, 0, 5, 2); break; // полицейлер сағат тілімен жасыл түсті корпус 6: setConfiguration (1, 0, 100, 0, 5, -2); break; // полицейлер 7 жасыл жағдайды қайтарады: setConfiguration (1, 0, 0, 100, 5, 2); үзіліс; // полицейлер сағат тілімен көк түсті корпус 8: setConfiguration (1, 0, 0, 100, 5, -2); break; // полицейлер көк түсті 9 жағдайды қайтарады: setConfiguration (1, 100, 0, 0, 5, 2); break; // полицейлердің қызыл қызыл корпусы 10: setConfiguration (1, 100, 0, 0, 5, -2); break; // полицейлер қызыл түсті 11 жағдайды қайтарады: setConfiguration (1, 100, 20, 0, 5, 2); break; // полиция стандартты қызғылт сары түсті корпус 12: setConfiguration (1, 100, 20, 0, 5, -2); break; // полиция қызғылт сары түсті 13 жағдайды қайтарады: setConfiguration (2, 0, 0, 50, 8, 10); break; // стандартты көк түстің 14 жағдайын қиып алу: setConfiguration (2, 0, 0, 50, 8, -10); break; // көк реңктің қайтуы 15: setConfiguration (5, 0, 50, 0, 0, 20); break; // жыпылықтау стандартты жасыл түсті 16 жағдай: setConfiguration (5, 0, 50, 0, 0, -20); break; // blink odwyrtka green case 17: setConfiguration (5, 0, 0, 50, 0, 20); үзіліс; // жыпылықтау стандартты көк түсті 18 жағдай: setConfiguration (5, 0, 0, 50, 0, -20); break; // blink revert blue blue case 19: setConfiguration (5, 50, 0, 0, 0, 20); break; // жыпылықтау стандартты қызыл 20 жағдай: setConfiguration (5, 50, 0, 0, 0, -20); break; // blink revert red case 21: setConfiguration (5, 50, 10, 0, 0, 20); break; // жыпылықтау стандартты қызғылт сары 22 жағдай: setConfiguration (5, 50, 10, 0, 0, -20); break; // жыпылықтауды қайтару қызғылт сары әдепкі: setConfiguration (0, 0, 50, 0, 5, 1); үзіліс; // өшіру = 0}}
берілген параметрге байланысты сақина әсер көрсетеді. SetConfiguration функциясын жаңа параметрлермен (түсінің өзгеруі, дисплей жылдамдығы) жаңа режимді қосу арқылы немесе мүлде жаңа эффект қосу арқылы шақыру арқылы өз әсеріңізді қосуға болады - немесе маған ұнаса түсініктемелерде хабарлаңыз, мен жаңа әсер қосамын
arduino.ino:
#«Arduino.h» қосу #«SoftwareSerial.h» қосу #«DFRobotDFPlayerMini.h» қосу
#қосу
#қосу #қосу #қосу «SingleRing.h»
#қосу
#қосу #қосу
#қосу
#«WIFI_NAME» анықтаңыз
#WIFI_ПАРОЛЫН анықтаңыз «» #DEVICE_ID 205 анықтаңыз #DEVICE_NAME «сиренасын» анықтаңыз #TOKEN анықтаңыз «»
#DIODES_COUNT анықтаңыз 16
SingleRing top = SingleRing (DIODES_COUNT, D5);
SingleRing түбі = 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)) {// mp3 -мен байланысу үшін softwareSerial пайдаланыңыз.
Serial.println (F («Бастау мүмкін емес:»)); Serial.println (F («1. Қосылымды қайта тексеріңіз!»)); Serial.println (F («2. SD картасын салыңыз!»))); while (true); } Serial.println (F («DFPlayer Mini онлайн.»));
myDFPlayer.setTimeOut (500); // Сериялық байланыс уақытын 500 мс орнатыңыз
myDFPlayer.volume (30);
myDFPlayer. EQ (DFPLAYER_EQ_NORMAL);
myDFPlayer.outputDevice (DFPLAYER_DEVICE_SD); WiFiMulti.addAP (WIFI_NAME, WIFI_PASSWORD); while (WiFiMulti.run ()! = WL_CONNECTED) {кешігу (100); }
remoteMe.setUserMessageListener (onUserMessage);
remoteMe.setupTwoWayCommunication ();
remoteMe.sendRegisterDeviceMessage (DEVICE_NAME);
top.setup ();
bottom.setup (); top.clear (); bottom.clear (); }
логикалық TurnOff = ақиқат;
белгісіз ұзақ turnOffMillis = 0;
жарамсыз onUserMessage (uint16_t senderDeviceId, uint16_t dataSize, uint8_t *деректер) {
uint16_t pos = 0; uint8_t bottomMode = RemoteMeMessagesUtils:: getUint8 (деректер, пос); uint8_t topMode = RemoteMeMessagesUtils:: getUint8 (деректер, пос); uint8_t trackNumber = RemoteMeMessagesUtils:: getUint8 (деректер, пос); uint8_t time = RemoteMeMessagesUtils:: getUint8 (деректер, пос); uint8_t режимі = RemoteMeMessagesUtils:: getUint8 (деректер, пос);
bottom.setMode (bottomMode);
top.setMode (topMode); if (mode == 1) {myDFPlayer.loop (trackNumber); } басқа {myDFPlayer.play (trackNumber); } turnOff = жалған; turnOffMillis = millis () + 1000 * уақыт; }
бос цикл ()
{remoteMe.loop (); top.loop (); bottom.loop (); егер (turnOffMillis
}
түсіндіру:
#анықтаңыз WIFI_NAME «» #WIFI_ПАРОЛЫН анықтаңыз «» #DEVICE_ID 205 анықтаңыз #DEVICE_NAME «хабарландырушысын анықтаңыз» #TOKEN анықтаңыз «»
Біз жоғарыдағы деректерді, егжей -тегжейлі нұсқауларды сілтемеде беруіміз керек, сонымен қатар мен remoteme.org сайтында қалай тіркелу керектігін және токенді қалай жасау керектігін көрсеттім, жарамсыз onUserMessage (uint16_t senderDeviceId, uint16_t dataSize, uint8_t *деректер) {uint16_t pos = 0; uint8_t bottomMode = RemoteMeMessagesUtils:: getUint8 (деректер, пос); uint8_t topMode = RemoteMeMessagesUtils:: getUint8 (деректер, пос); uint8_t trackNumber = RemoteMeMessagesUtils:: getUint8 (деректер, пос); uint8_t time = RemoteMeMessagesUtils:: getUint8 (деректер, пос); uint8_t режимі = RemoteMeMessagesUtils:: getUint8 (деректер, пос);
bottom.setMode (bottomMode);
top.setMode (topMode); if (mode == 1) {myDFPlayer.loop (trackNumber); } басқа {myDFPlayer.play (trackNumber); } turnOff = жалған; turnOffMillis = millis () + 1000 * уақыт; }
Бұл функция хабар Arduino -ға келіп, хабарландыруды көрсеткенде шақырылады. Код соншалықты түсінікті, ол өзін сипаттайды. Мен сабақтардың егжей -тегжейін осы жерде және осы жерде құжаттамаға сілтеме жасаймын
void loop () {remoteMe.loop (); top.loop (); bottom.loop (); if (turnOffMillis <millis ()) {
if (! turnOff) {
top.clear ();
bottom.clear (); myDFPlayer.stop (); turnOff = ақиқат; }}
Циклде біз объектілердің циклдық функцияларын атаймыз, сонымен қатар хабарландыруларды көрсету уақыты өтіп кетсе, біз диодтар мен дыбысты өшіреміз.
5 -қадам: Mp3 ойнатқыш
Ол Arduino -мен TX / RX арқылы байланысады - ойыншының өзі туралы мәліметтер және мұнда кітапхана
Біз mp3 файлдарды SD картасына жүктейміз. Карточкадағы файлдар алфавит бойынша сұрыпталады, содан кейін қоңырау шалу арқылы:
myDFPlayer.play (5);
Біз SD картасынан бесінші файлды түбірлік каталогтан ойнатамыз. Сондықтан SD картасына 01, 02 т.б префикстері бар файлдарды берген дұрыс. Менің жағдайда ол жоғарыдағы экранға ұқсайды.
Дауыстық пәрмендерді жасау үшін Сіз бұл бетті пайдалана аласыз.
6 -қадам: Бағдарламаны Arduino -ға жүктеу
Эскизді Arduino -ға жүктемес бұрын, сізге қажет кітапханаларды жүктеу керек, мұнда сіз толық нұсқауларды таба аласыз
Сонымен қатар, бізге DFRobotDFPlayerMini кітапханасы мен Adafruit_NeoPixel орнату қажет
7 -қадам: бақылау
Біз Arduino -ға бес байтты жібереміз
- жоғарғы жарықдиодты сақина үшін жарық әсерінің бірінші байты
- төменгі жарықдиодты сақина үшін екінші байт жарық әсері
- ойнатылатын mp3 файлының нөмірі
- жарық эффектісі мен mp3 ойнатылатын секунд саны
- mp3 бір рет немесе циклде ойналуы керек пе (егер ол циклде ойналса, 1)
Байт жіберу арқылы
07 0F 01 05 01
Жоғарғы сақина полиция шамдарын көрсетеді (6 режим) төменгі жағы жасыл түспен жыпылықтайды (15 режим) (singleRing.cpp сайтындағы setMode функциясын және оның жанындағы түсініктемелерді қараңыз). SDcard форматындағы бірінші файл 5 секунд бойы ойнатылады. Файл циклде ойнатылады (arduino.ino сайтындағы OnUserMessage функциясын тексеріңіз)
Осы байттарды жіберейік. Жоғарыдағы экранға қараңыз және белгішелерді 1, 2, 3 ретімен басыңыз. Терезе пайда болады
Содан кейін екінші экранды қараңыз - және терезені екінші экрандағыдай толтырыңыз
Пайда болған терезе құрылғыға хабар жіберу үшін қолданылады. 1 -өрісте жіберуші құрылғыны таңдаңыз - бізде бір ғана құрылғы болғандықтан, біз оны таңдаймыз (бұл міндетті өріс және ол хабар жіберетін құрылғы екені маңызды емес) 2 -өрісте біз байттарды береміз. жіберу (қызыл түспен 2 -ге енгізілген мән жол түрінде көрсетіледі), содан кейін Жіберу түймесін басыңыз.
Хабарламаны жібергеннен кейін біздің хабарлаушы тиісті жарық эффектілерін көрсету және таңдалған mp3 ойнату арқылы жауап беруі керек. Мен сізге 0 -ден 22 -ге дейінгі санның алғашқы екі байтын беру арқылы әр түрлі әсерлерді көруге шақырамын (setMode функциясының сипаттамасын қараңыз).
8 -қадам: URL мекенжайларын пайдалану арқылы хабар жіберу
Егер біз сыртқы қосымшадан хабарландыруларды көрсеткіміз келсе, мысалы, IFTTT көмегімен, бізде алдыңғы қадамда терезеде жасағандай дәл солай істейтін URL болуы керек. remoteme.org REST APi ұсынады. Оған сол жақтағы (соңғы) жылжу қойындысын басу арқылы өтіңіз. Бет көрсетіледі, бұл бетте біз URL -мекен -жайымызды көре аламыз.
Бірінші экранда сізде кеңейту қажет функция бар, содан кейін деректерді екінші экрандағыдай толтырыңыз.
деректерді жоғарыдағы скриншоттағыдай толтырыңыз. Орындауды басқаннан кейін біз хабарлама жібереміз
070F010501
Қабылдағыш - 205 идентификаторы бар құрылғы, сол құрылғы да жіберуші болып табылады. «No_RENEVAL» параметрлері бар MessageId маңызды емес. Содан кейін Execute түймешігін басыңыз. REST -ке қоңырау шалғаннан кейін төменде URL деп аталады - үшінші экранға қараңыз. Браузерге URL көшіру және қою жасыл жиекпен белгіленген. Төртінші экранда URL қойылғаннан кейін менің хром браузерім
Менің жағдайда, URL:
app.remoteme.org/api/*/rest/v1/message/sendUserMessageHexString/205/1/NO_RENEWAL/1/070F010501/
9 -қадам: Хабарлама жіберуге арналған URL мекенжайы
Алдыңғы қадамда сіздің құрылғыңызға деректерді жіберетін URL мекенжайы бар. Өкінішке орай, app.remoteme.org жүйесінен шыққаннан кейін ол жұмысын тоқтатады. Себебі, біз аутентификация таңбасын бермедік және біз енді кірмедік. Өз таңбамызды алып (немесе жаңасын жасаңыз) және оны жұлдыздың орнына URL мекенжайына қойыңыз.
Экранға қараңыз және URL мекенжайын * белгісімен ауыстырыңыз
менің жағдайда таңбалауыш:
~ 267_ZxoWtJ) 0ph & 2c
сондықтан менің соңғы URL келесідей көрінеді:
app.remoteme.org/api/~267_ZxoWtJ)0ph&2c/rest/v1/message/sendUserMessageHexString/205/1/NO_RENEWAL/1/070F010501/
Енді біз жүйеге кірмесек те қоңырау шала аламыз. Ол шақырылған кезде біздің құрылғыға 205 хабарлама жіберіледі.
10 -қадам: IFTTT 1/7 интеграциясы
Жоғарыда көрсетілген URL мекенжайы сыртқы қосымшалармен жұмыс жасауға жарамды. Мен оны қалай қолдану керектігін IFTTT -те көрсетемін. Мен оны электрондық пошта мекенжайына (Gmail тіркелгісі) келген кезде хабарлаушы қосылатындай етіп реттеймін.
IFTTT жүйесіне кіріңіз. Содан кейін Менің апплеттерім қойындысына өтіңіз, содан кейін «Жаңа апплет»- бірінші экранға өтіңіз
11 -қадам: IFTTT 2/7 көмегімен интеграция
Әрі қарай «+бұл» түймесін басыңыз
12 -қадам: IFTTT 3/7 көмегімен интеграция
Содан кейін «Іздеу қызметтері» өрісіне «Gmail» деп жазыңыз.
Содан кейін «кіріс жәшігіндегі жаңа электрондық пошта» (Кейбір конфигурация қажет болуы мүмкін).
13 -қадам: IFTTT 4/7 көмегімен интеграция
Енді біз «+ бұл» түймесін басамыз
14 -қадам: IFTTT 5/7 көмегімен интеграция
«Webhooks» табыңыз және оны басыңыз
15 -қадам: IFTTT 6/7 көмегімен интеграция
содан кейін «веб -сұраныс жасаңыз»
16 -қадам: IFTTT 7/7 көмегімен интеграция
біз URL мекен -жайын таңбалауышпен толтырамыз. Application / json үшін мазмұн түрін таңдап, «Әрекет жасау» және Аяқтау түймешігін басыңыз. Енді бізде апплет бар:
17 -қадам: Қорытынды
Бұл оқулықта мен Arduino -ға сыртқы жүйелерден хабарламаларды қалай жіберу керектігін көрсеттім. Біз сондай -ақ IFTTT басқа жүйені ұқсас түрде біріктіреміз. Міндетті түрде «хабарлаушы» болудың қажеті жоқ, мен осы мысалда сыртқы жүйелерден біздің Arduino -ға хабарларды қалай жіберу керектігін көрсеткім келді.
sourcececodesFanPage Facebook желісінде
Сәлем, Макиек
Ұсынылған:
Arduino басқарылатын робот - екі қадам: 13 қадам (суреттермен)
Arduino басқарылатын роботты екіжақты: Мен әрқашан роботтарға қызығатынмын, әсіресе адамның іс -әрекетіне еліктеуге тырысатын. Бұл қызығушылық мені жаяу жүруге және жүгіруге еліктей алатын екіжақты робот құрастыруға және дамытуға талпындырды. Бұл нұсқаулықта мен сізге көрсетемін
Arduino Uno көмегімен акустикалық левитация Қадамдық қадам (8 қадам): 8 қадам
Акустикалық левитация Arduino Uno Қадамдық қадаммен (8-қадам): ультрадыбыстық дыбыс түрлендіргіштері L298N Dc әйелдер адаптерінің ток көзі еркек тоқ сымымен Arduino UNOBreadboard Бұл қалай жұмыс істейді: Біріншіден, сіз кодты Arduino Uno-ға жүктейсіз (бұл сандық жүйемен жабдықталған микроконтроллер) және кодты түрлендіру үшін аналогтық порттар (C ++)
Түймені іске қосатын қадам реттегіші: 4 қадам
Түймені іске қосатын қадам реттегіші:
Тікелей 4G/5G HD бейне ағыны DJI Drone -ден төмен кідірісте [3 қадам]: 3 қадам
Тікелей 4G/5G HD бейне ағыны DJI Drone-ден төмен кідірісте [3 қадам]: Келесі нұсқаулық кез-келген DJI дронынан HD сапалы бейне ағындарын алуға көмектеседі. FlytOS мобильді қосымшасы мен FlytNow веб -қосымшасының көмегімен сіз дроннан бейне ағынды бастай аласыз
Болт - DIY сымсыз зарядтау түнгі сағаты (6 қадам): 6 қадам (суреттермен)
Болт - DIY сымсыз зарядтау түнгі сағаты (6 қадам): Индуктивті зарядтау (сымсыз зарядтау немесе сымсыз зарядтау деп те аталады) - сымсыз қуат беру түрі. Ол портативті құрылғыларды электрмен қамтамасыз ету үшін электромагниттік индукцияны қолданады. Ең көп таралған қолданба - Qi сымсыз зарядтау