Mündəricat:
- Addım 1: Nə lazımdır
- Addım 2: Tower Building
- Addım 3: Bağlama Şeması
- Addım 4: Əməliyyat prinsipi
- Addım 5: Mp3 Pleyer
- Addım 6: Proqramı Arduino -ya yükləyin
- Addım 7: Nəzarət
- Addım 8: URL -lərdən istifadə edərək mesaj göndərin
- Addım 9: Mesaj Göndərmək üçün Animous URL
- Addım 10: IFTTT 1/7 ilə inteqrasiya
- Addım 11: IFTTT 2/7 ilə inteqrasiya
- Addım 12: IFTTT 3/7 ilə inteqrasiya
- Addım 13: IFTTT 4/7 ilə inteqrasiya
- Addım 14: IFTTT 5/7 ilə inteqrasiya
- Addım 15: IFTTT 6/7 ilə inteqrasiya
- Addım 16: IFTTT 7/7 ilə inteqrasiya
- Addım 17: Xülasə
Video: Bildirici: 17 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:47
Cihaz, məsələn, IFTTT sisteminə qoşula bilər və yeni bir poçt görünəndə reaksiya verə bilər. App.remoteme.org saytında zəng etdikdən sonra bir link yaradacağıq ki, hansı baytlar Arduinoya göndəriləcək və Arduino bəzi işıq effekti göstərəcək və SDcarddan mp3 səsləndirəcək.
Addım 1: Nə lazımdır
- NodeMCU, WemOS və ya bənzər bir şey
- WS2812B diodlu iki LED üzük (16 -cı led üzüklərdən istifadə etmişəm)
- DFRobotDFPlayerMini - bu mp3 pleyerdir. SDcarddan mp3 çalır və Arduino ilə RX/TX ilə əlaqə qurur
- Dinamik
- SD kart
- Məntiq çeviricisi -Bunu istifadə etdim, mp3 pleyer 5V və Arduino 3.3 istifadə edir, bu səbəbdən bu çeviriciyə ehtiyacımız var
- Özümüz tərəfindən sadə bir PCB etmək üçün bilik və bacarıqlar
Qala:
- karton - iki fərqli qalınlıq
- İzləmə kağızı
- alüminium folqa
Addım 2: Tower Building
Yan görünüşdə qüllənin planının üstündə (texniki rəsmlə macəram ibtidai məktəbdə başa çatdı), bütün ölçülər millimetrdə.
Əməliyyat prinsipi
- işıq saçan LED halqaları
- İzləmə kağızı
- Kartondan hazırlanmış və alüminium folqa ilə örtülmüş kəsilmiş konus, şəkil 3 ‘də kəsilmiş meshdə, üzüklərdən gələn işıqları əks etdirir.
- karton boru - qüllələri şaquli tutur, borunun içərisində ledlər üçün kabellər var
- Hündürlük məndən asılıdır 85 mm
- Bütün elektronik hissələrin içərisində dayaq
Bütün üfüqi elementlər daha qalın kartondan hazırlanmalıdır.
Addım 3: Bağlama Şeması
Mp3 pleyer 5V gərginliklə təmin edilir və Arduino ilə TX / RX vasitəsilə əlaqə qurur, Arduino özü 3.3V gərginlikdə işlədiyi üçün məntiq çeviriciyə ehtiyac var. Üzüklərin idarə edilməsi də məntiq çeviricisi vasitəsi ilə Arduino (D5, D6) ilə əlaqələndirilir.
Depoda PCB planları olan qartal faylları tapa bilərsiniz
Arduino və mp3 pleyerin daimi olaraq qızıl sancaqlar istifadə etməsi üçün lehimləməməyi təklif edirəm
Addım 4: Əməliyyat prinsipi
Arduino, WebSockets istifadə edərək app.remoteme.org sisteminə qoşulur (hazır kitabxanalar var), bu əlaqə vasitəsi ilə 5 baytlıq mesajlar göndərilir:
- yuxarı LED halqası üçün işıq effektinin ilk baytı
- alt LED halqası üçün ikinci bayt işıq effekti
- çalınacaq mp3 faylının sayı
- işıq effekti və mp3 nə qədər çalınacaq saniyə sayı
- mp3 bir dəfə və ya bir döngədə çalınmalıdır
mənbə kodu
Bütün mənbə kodunu burada tapa bilərsiniz
SingleRing.cpp və SingleRing.h fayllarında LED halqalarının təsirlərini idarə etmək üçün bir sinif var. SetMode (int m) funksiyasına baxaraq başlamağı təklif edirəm:
vahid SingleRing:: setMode (int m) {switch (m) {case 0: setConfiguration (0, 0, 50, 0, 5, 1); break; // off = 0 halda 1: setConfiguration (6, 0, 50, 0, 0, 20); break; // bərk standart yaşıl qutu 2: setConfiguration (6, 0, 0, 50, 0, 20); break; // bərk standart mavi hal 3: setConfiguration (6, 50, 0, 0, 0, 20); break; // bərk standart qırmızı hal 4: setConfiguration (6, 50, 10, 0, 0, 20); break; // bərk standart narıncı hal 5: setConfiguration (1, 0, 100, 0, 5, 2); break; // polis saat yönünde yaşıl qutu 6: setConfiguration (1, 0, 100, 0, 5, -2); break; // polis yaşıl işi 7 -yə qaytarır: setConfiguration (1, 0, 0, 100, 5, 2); break; // polis saat yönünde mavi hal 8: setConfiguration (1, 0, 0, 100, 5, -2); break; // polis mavi iş 9 -u geri qaytardı: setConfiguration (1, 100, 0, 0, 5, 2); break; // polis standart qırmızı hal 10: setConfiguration (1, 100, 0, 0, 5, -2); break; // polis qırmızı işi 11 -ə qaytardı: setConfiguration (1, 100, 20, 0, 5, 2); break; // polis standart narıncı hal 12: setConfiguration (1, 100, 20, 0, 5, -2); break; // polis narıncı hal 13 -ü geri qaytardı: setConfiguration (2, 0, 0, 50, 8, 10); break; // cross blue blue case 14: setConfiguration (2, 0, 0, 50, 8, -10); break; // mavi qaydanın 15 -ə keçməsi: setConfiguration (5, 0, 50, 0, 0, 20); break; // yanıb -sönən standart yaşıl qutu 16: setConfiguration (5, 0, 50, 0, 0, -20); break; // odwyrtka yaşıl rəngli qutu 17: setConfiguration (5, 0, 0, 50, 0, 20); break; // standart mavi qutu 18 yanıb -sönür: setConfiguration (5, 0, 0, 50, 0, -20); fasilə; // mavi işığı geri qaytarmaq 19: setConfiguration (5, 50, 0, 0, 0, 20); break; // standart qırmızı qutu 20 yanıb -sönür: setConfiguration (5, 50, 0, 0, 0, -20); break; // qırmızı yanıb -sönən geri dönmə 21: setConfiguration (5, 50, 10, 0, 0, 20); break; // standart portağal qutusu 22: yanıb sönür setConfiguration (5, 50, 10, 0, 0, -20); break; // blink revert narıncı default: setConfiguration (0, 0, 50, 0, 5, 1); fasilə; // söndürmə = 0}}
verilən parametrdən asılı olaraq üzük effekti göstərəcək. Yeni bir rejim əlavə etməklə və ya tamamilə yeni bir effekt əlavə etməklə yeni parametrlər (rəng dəyişikliyi, ekran sürəti) ilə funksiya setConfiguration -a zəng edərək öz effektinizi əlavə edə bilərsiniz - və ya xoşuma gəlsə şərhlərdə mənə bildirin yeni effekt əlavə edəcəm
arduino.ino:
#"Arduino.h" daxil edin "" SoftwareSerial.h "daxil edin" "DFRobotDFPlayerMini.h" daxil edin
#daxil edin
#include #include #include "SingleRing.h"
#daxil edin
#daxil edin #daxil edin
#daxil edin
#"WIFI_NAME" "təyin edin
#WIFI_ŞİFRİNİ təyin et "" #DEVICE_ID 205 #DEVICE_NAME "sirenini" təyin et #TOKENi təyin et ""
#DIODES_COUNT təyin edin 16
SingleRing top = SingleRing (DIODES_COUNT, D5);
SingleRing alt=SingleRing (DIODES_COUNT, D6);
SoftwareSerial mySoftwareSerial (D4, D3); // RX, TX
DFRobotDFPlayerMini myDFPlayer; RemoteMe & remoteMe = RemoteMe:: getInstance (TOKEN, DEVICE_ID);
ESP8266WiFiMulti WiFiMulti;
boş quraşdırma () {mySoftwareSerial.begin (9600); Serial.begin (115200);
if (! myDFPlayer.begin (mySoftwareSerial)) {// mp3 ilə ünsiyyət qurmaq üçün softwareSerial istifadə edin.
Serial.println (F ("Başlamaq mümkün deyil:")); Serial.println (F ("1. Zəhmət olmasa əlaqəni yenidən yoxlayın!")); Serial.println (F ("2. Zəhmət olmasa SD kartı daxil edin!"))); while (doğru); } Serial.println (F ("DFPlayer Mini online."));
myDFPlayer.setTimeOut (500); // Serial kommunikasiya vaxtını 500 ms olaraq təyin edin
myDFPlayer.volume (30);
myDFPlayer. EQ (DFPLAYER_EQ_NORMAL);
myDFPlayer.outputDevice (DFPLAYER_DEVICE_SD); WiFiMulti.addAP (WIFI_NAME, WIFI_PASSWORD); while (WiFiMulti.run ()! = WL_CONNECTED) {gecikmə (100); }
remoteMe.setUserMessageListener (onUserMessage);
remoteMe.setupTwoWayCommunication ();
remoteMe.sendRegisterDeviceMessage (DEVICE_NAME);
top.setup ();
bottom.setup (); top.clear (); bottom.clear (); }
boolean turnOff = doğru;
işarəsiz uzun turnOffMillis = 0;
etibarsız 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 rejimi = RemoteMeMessagesUtils:: getUint8 (data, pos);
bottom.setMode (bottomMode);
top.setMode (topMode); əgər (rejim == 1) {myDFPlayer.loop (trackNumber); } başqa {myDFPlayer.play (trackNumber); } turnOff = yalan; turnOffMillis = millis () + 1000 * vaxt; }
boşluq döngəsi ()
{remoteMe.loop (); top.loop (); alt.loop (); əgər (turnOffMillis
}
izahat:
#define WIFI_NAME "" #WIFI_ŞİFRƏSİNİ təyin et "" #DEVICE_ID 205 #DEVINE DEVICE_NAME "bildirişçisini təyin et # #TOKEN təyin et""
Yuxarıdakı məlumatları, ətraflı təlimatları buradakı linkdə təqdim etməliyik, eyni zamanda remoteme.org saytında necə qeydiyyatdan keçəcəyinizi və token yaratmağınızı göstərdim, etibarsız 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 rejimi = RemoteMeMessagesUtils:: getUint8 (data, pos);
bottom.setMode (bottomMode);
top.setMode (topMode); əgər (rejim == 1) {myDFPlayer.loop (trackNumber); } başqa {myDFPlayer.play (trackNumber); } turnOff = yalan; turnOffMillis = millis () + 1000 * vaxt; }
Mesaj Arduinoya gəldikdə və bildirişi göstərəndə bu funksiya çağırılacaq. Kod o qədər aydındır ki, özünü təsvir edir. Buradakı və buradakı sənədlərə dərslərin təfərrüatlarına müraciət edirəm
boşluq döngəsi () {remoteMe.loop (); top.loop (); alt.loop (); if (turnOffMillis <millis ()) {
əgər (! çevrildi) {
top.clear ();
bottom.clear (); myDFPlayer.stop (); turnOff = doğru; }}
Döngüdə, obyektlərin döngə funksiyalarını çağırırıq və bildirişlərin göstərilmə müddəti keçərsə, diodları və səsi söndürürük.
Addım 5: Mp3 Pleyer
Arduino ilə TX / RX vasitəsilə əlaqə qurur - Oyunçunun özünün təfərrüatları və buradakı kitabxana
Mp3 fayllarını SD karta yükləyirik. Kartdakı fayllar əlifba sırası ilə sıralanır və sonra zəng edərək:
myDFPlayer.play (5);
SD kartdan beşinci faylı kök qovluğundan oynayırıq. Buna görə SD kartda 01, 02 və s. Faylları vermək yaxşıdır, mənim vəziyyətim yuxarıdakı çap ekranında olduğu kimi görünür.
Səs əmrləri yaratmaq üçün bu səhifədən istifadə edə bilərsiniz.
Addım 6: Proqramı Arduino -ya yükləyin
Arduino -ya eskiz yükləməzdən əvvəl, lazım olan kitabxanaları buradan yükləməlisiniz, burada ətraflı təlimatlar tapa bilərsiniz
əlavə olaraq, DFRobotDFPlayerMini kitabxanasını və Adafruit_NeoPixel qurmalıyıq.
Addım 7: Nəzarət
Arduino -ya beş bayt göndəririk
- yuxarı LED halqası üçün işıq effektinin ilk baytı
- alt LED halqası üçün ikinci bayt işıq effekti
- çalınacaq mp3 faylının sayı
- işıq effekti və mp3 nə qədər çalınacaq saniyə sayı
- mp3 bir dəfə və ya döngədə çalınmalıdır (1 döngədə çalınırsa)
Bayt göndərməklə
07 0F 01 05 01
Üst üzükdə polis işıqları (6 -cı rejim) aşağıda bir yaşıl yanıb -sönən (15 -ci rejim) göstəriləcək (singleRing.cpp -də setMode funksiyasına və yanındakı şərhlərə baxın). SDcard formasından ilk fayl 5 saniyə ərzində çalınacaq. Və fayl döngədə oxunacaq (arduino.inoda onUserMessage funksiyasını yoxlayın)
Gəlin bu baytları göndərək. Yuxarıdakı ekrana baxın və 1, 2, 3 ilə yazılmış nişanları vurun. Pəncərə görünür
Sonra ikinci ekrana baxın və ikinci ekrandakı kimi pəncərəni doldurun
Görünən pəncərə cihaza mesaj göndərmək üçün istifadə olunur. 1 -ci sahədə göndərən cihazı seçin - yalnız bir cihazımız olduğu üçün onu seçirik (bu məcburi bir sahədir və mesaj göndərdiyimiz cihazın eyni olması önəmli deyil) 2 -ci sahədə bayt veririk. göndər (qırmızıda 2 -yə daxil etdiyimiz dəyər simli olaraq göstəriləcək) sonra Göndər düyməsini basın.
Mesajı göndərdikdən sonra xəbərdar edənimiz uyğun işıq effektlərini göstərərək və seçilmiş mp3 səsləndirərək reaksiya verməlidir. 0 ilə 22 arasında bir ədədin ilk iki baytını verərək fərqli effektləri sınamağı məsləhət görürəm (setMode funksiyasındakı təsvirə baxın).
Addım 8: URL -lərdən istifadə edərək mesaj göndərin
IFTTT ilə xarici bir tətbiqdən bildirişlər göstərmək istəyirsinizsə, əvvəlki addımdakı pəncərədə etdiyimiz kimi eyni şeyi edəcək bir URL -ə sahib olmalıyıq. remoteme.org, REST APi təmin edir. Solda (sonuncu) sürüşmə sekmesine tıklayarak gedin. Bir səhifə göstəriləcək, bu səhifədə URL -lərimizi də sınaya bilərik.
İlk ekranda genişləndirmək lazım olan funksiyaya sahibsiniz, sonra ikinci ekrandakı kimi məlumatları doldurun.
yuxarıdakı ekran görüntüsündə olduğu kimi məlumatları doldurun. İcra düyməsini basdıqdan sonra bir mesaj göndərəcəyik
070F010501
Alıcı 205 id olan cihazdır, eyni cihaz da göndəricidir. "No_RENEVAL" parametrləri olan MessageId əlaqəsizdir. Və sonra İcra et düyməsini basın. Tətbiq mesaj göndərərkən eyni şəkildə reaksiya verəcək. Aşağıdakı REST -ə zəng vurduqdan sonra URL - üçüncü ekrana baxın. Və kopyalayın və brauzer URL -sinə yapışdırın yaşıl haşiyə ilə qeyd edildi. Dördüncü ekranda URL yapışdırıldıqdan sonra xrom brauzerim
Mənim vəziyyətimdə, URL:
app.remoteme.org/api/*/rest/v1/message/sendUserMessageHexString/205/1/NO_RENEWAL/1/070F010501/
Addım 9: Mesaj Göndərmək üçün Animous URL
Əvvəlki addımda cihazınıza məlumat göndərən bir URL var. Təəssüf ki, app.remoteme.org saytından çıxdıqdan sonra işləmir. Bunun səbəbi, doğrulama nişanı vermədiyimiz və artıq daxil olmadığımızdır. Gəlin nişanımızı əldə edək (və ya yenisini yaradaq) və ulduz yerinə URL -ə yapışdıraq.
Ekrana baxın və URL -də * işarənizlə əvəz edin
mənim vəziyyətimdə simvol:
~ 267_ZxoWtJ) 0ph & 2c
buna görə son URL -ə bənzəyir:
app.remoteme.org/api/~267_ZxoWtJ)0ph&2c/rest/v1/message/sendUserMessageHexString/205/1/NO_RENEWAL/1/070F010501/
İndi daxil olmasaq belə zəng edə bilərik. Çağırıldıqda cihazımıza 205 bir mesaj göndəriləcək.
Addım 10: IFTTT 1/7 ilə inteqrasiya
Yuxarıdakı addımda yaradılan URL, xarici tətbiqlər tərəfindən yerinə yetirmək üçün uyğundur. Necə istifadə edəcəyimi IFTTT -də göstərəcəyəm. E -poçt ünvanına bir e -poçt gəldikdə (Gmail hesabı) bildiricinin işə salınması üçün konfiqurasiya edəcəyəm.
IFTTT-ə daxil olun. Sonra Mənim Appletlərim sekmesine, sonra isə "Yeni Applet" ə gedin- ilk ekran
Addım 11: IFTTT 2/7 ilə inteqrasiya
Sonrakı "+bu" düyməsini basın
Addım 12: IFTTT 3/7 ilə inteqrasiya
Sonra "Axtarış xidmətləri" sahəsinə "Gmail" yazın
Sonra "gələn qutusuna yeni e -poçt" (Bəzi konfiqurasiya lazım ola bilər).
Addım 13: IFTTT 4/7 ilə inteqrasiya
İndi "+ o" düyməsini basın
Addım 14: IFTTT 5/7 ilə inteqrasiya
"Webhooks" tapın və üzərinə vurun
Addım 15: IFTTT 6/7 ilə inteqrasiya
sonra "Veb sorğusu göndərin"
Addım 16: IFTTT 7/7 ilə inteqrasiya
url -in URL -ni mö'cüzə ilə tamamlayırıq. Application / json -a məzmun yazın və "hərəkət et" düyməsini basın və Bitirin. İndi appletimiz var:
Addım 17: Xülasə
Bu təlimatda xarici sistemlərdən Arduino mesajlarımızı necə göndərəcəyimizi göstərdim. IFTTT -dən sonra başqa bir sistemi oxşar şəkildə inteqrasiya edirik. Bu nümunədə Arduino sistemimizə xarici sistemlərdən mesajların necə göndəriləcəyini göstərmək istədiyim bir "bildirişçi" olmaq məcburiyyətində deyil.
qaynaq kodlarıFanPage Facebook -da
Sağol Maciek
Tövsiyə:
Arduino Avtomobil Ters Park Diqqət Sistemi - Addım -addım: 4 addım
Arduino Avtomobil Ters Park Diqqət Sistemi | Addım-addım: Bu layihədə, Arduino UNO və HC-SR04 Ultrasonik Sensoru istifadə edərək sadə bir Arduino Car Reverse Park Sensor Dövrü dizayn edəcəyəm. Bu Arduino əsaslı Avtomobil Ters siqnal sistemi Avtonom Naviqasiya, Robot Aralığı və digər diapazonlarda istifadə edilə bilər
Addım -addım PC qurulması: 9 addım
Addım -addım PC Bina: Təchizat: Təchizat: MotherboardCPU & CPU soyuducu PSU (Enerji təchizatı vahidi) Yaddaş (HDD/SSD) RAMGPU (tələb olunmur) Kassa Alətləri: Tornavida ESD bilərzik/mattermal pasta/aplikator
Üç Hoparlör Devresi -- Addım-addım təlimat: 3 addım
Üç Hoparlör Devresi || Addım-addım Təlimat: Dinamik Dövrə, ətraf mühitdən alınan səs siqnallarını MIC-ə gücləndirir və gücləndirilmiş səsin çıxarıldığı yerdən Dinamikə göndərir.Burada bu Hoparlör Devrini düzəltməyin üç fərqli yolunu göstərəcəyəm:
Robot texnikasında bir dəst ilə addım-addım təhsil: 6 addım
Bir dəst ilə Robototexnikada Addım-addım Təhsil: Öz robotumu düzəltdikdən bir neçə ay sonra (zəhmət olmasa bunların hamısına baxın) və iki dəfə hissələri arızalandıqdan sonra bir addım geri çəkilmək və öz fikrimi yenidən düşünmək qərarına gəldim. strategiya və istiqamət. Bir neçə aylıq təcrübə bəzən çox mükafatlandırıcı idi və
Arduino Uno ilə Akustik Levitasiya Addım-addım (8 addım): 8 addım
Arduino Uno ilə Akustik Levitasiya Adım Adım (8 addım): ultrasəs səs ötürücüləri L298N Dc dişi qadın adapteri kişi dc pinli Arduino UNOBreadboard Bu necə işləyir: Əvvəlcə Arduino Uno-ya kod yükləyirsiniz (rəqəmsal ilə təchiz edilmiş bir mikro nəzarətçidir) və kodu çevirmək üçün analog portlar (C ++)