Daftar Isi:
- Langkah 1: Apa yang Dibutuhkan
- Langkah 2: Bangunan Menara
- Langkah 3: Diagram Pengkabelan
- Langkah 4: Prinsip Operasi
- Langkah 5: Pemutar Mp3
- Langkah 6: Mengunggah Program ke Arduino
- Langkah 7: Kontrol
- Langkah 8: Mengirim Pesan Menggunakan URL
- Langkah 9: URL Anymous untuk Mengirim Pesan
- Langkah 10: Integrasi Dengan IFTTT 1/7
- Langkah 11: Integrasi Dengan IFTTT 2/7
- Langkah 12: Integrasi Dengan IFTTT 3/7
- Langkah 13: Integrasi Dengan IFTTT 4/7
- Langkah 14: Integrasi Dengan IFTTT 5/7
- Langkah 15: Integrasi Dengan IFTTT 6/7
- Langkah 16: Integrasi Dengan IFTTT 7/7
- Langkah 17: Ringkasan
Video: Notifikasi: 17 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
Perangkat dapat terhubung misalnya ke sistem IFTTT dan bereaksi ketika email baru muncul. Di app.remoteme.org kami akan membuat tautan setelah memanggil byte mana yang akan dikirim ke Arduino, dan Arduino akan menampilkan beberapa efek cahaya dan memutar beberapa mp3 dari SDcard
Langkah 1: Apa yang Dibutuhkan
- NodeMCU, WemOS atau yang serupa
- Dua cincin LED dengan dioda WS2812B (Saya telah menggunakan cincin led ke-16)
- DFRobotDFPlayerMini – ini adalah pemutar mp3. Memutar mp3 dari SDcard, dan berkomunikasi dengan Arduino oleh RX/TX
- Pembicara
- Kartu SD
- Konverter logika -Saya pernah menggunakan yang ini, pemutar mp3 menggunakan 5V dan Arduino 3.3 itu sebabnya kami membutuhkan konverter ini
- Pengetahuan dan keterampilan membuat PCB sederhana sendiri
Menara:
- karton – dua ketebalan berbeda
- Menjiplak
- alumunium foil
Langkah 2: Bangunan Menara
Di atas denah menara tampak samping (petualangan saya dengan gambar teknik berakhir di sekolah dasar), semua dimensi dalam milimeter.
Prinsip operasi
- cincin lampu LED menyala
- Menjiplak
- Kerucut terpotong, terbuat dari karton dan ditutup dengan aluminium foil, sehingga memantulkan cahaya dari cincin led, pada gambar 3 ' = jaring pemutus
- tabung karton - memegang menara secara vertikal, di dalam tabung ada kabel untuk led
- Tingginya tergantung pada Anda, saya punya 85mm
- Stand di dalam semua bagian elektronik
Semua elemen horizontal harus terbuat dari karton yang lebih tebal.
Langkah 3: Diagram Pengkabelan
Pemutar mp3 disuplai dengan tegangan 5V dan berkomunikasi dengan Arduino melalui TX / RX, diperlukan konverter logika karena Arduino sendiri bekerja pada tegangan 3,3V. Kontrol cincin juga terhubung ke Arduino (D5, D6) melalui konverter logika.
Di repositori, Anda akan menemukan file elang dengan paket PCB
Saya sarankan untuk tidak menyolder Arduino dan pemutar mp3 secara permanen hanya untuk menggunakan pin emas wanita
Langkah 4: Prinsip Operasi
Arduino kami terhubung ke sistem app.remoteme.org menggunakan WebSockets (ada perpustakaan siap pakai) melalui koneksi ini, pesan 5 byte dikirim:
- byte pertama dari efek cahaya untuk cincin LED atas
- efek cahaya byte kedua untuk cincin LED bawah
- jumlah file mp3 yang akan diputar
- jumlah detik berapa lama efek cahaya dan mp3 akan diputar
- apakah mp3 harus diputar sekali atau dalam satu lingkaran
Kode sumber
Seluruh kode sumber Anda dapat menemukan di sini
di file SingleRing.cpp dan SingleRing.h ada kelas untuk mengontrol efek cincin LED. Saya sarankan Anda mulai dengan melihat fungsi setMode(int m):
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); break;//kasus hijau standar solid 2:setConfiguration(6, 0, 0, 50, 0, 20); break;//kasus biru standar solid 3:setConfiguration(6, 50, 0, 0, 0, 20); break;//kasus merah standar solid 4:setConfiguration(6, 50, 10, 0, 0, 20); break;//kasus oranye standar solid 5:setConfiguration(1, 0, 100, 0, 5, 2); break;//polisi hijau searah jarum jam 6:setConfiguration(1, 0, 100, 0, 5, -2); break;// polisi mengembalikan kasus hijau 7:setConfiguration(1, 0, 0, 100, 5, 2); break;//polisi searah jarum jam biru case 8:setConfiguration(1, 0, 0, 100, 5, -2); break;// polisi mengembalikan kasus biru 9:setConfiguration(1, 100, 0, 0, 5, 2); break;//kasus merah standar polisi 10:setConfiguration(1, 100, 0, 0, 5, -2); break;// polisi mengembalikan kasus merah 11:setConfiguration(1, 100, 20, 0, 5, 2); break;//kasus oranye standar polisi 12:setConfiguration(1, 100, 20, 0, 5, -2); break;// polisi mengembalikan kasus oranye 13:setConfiguration(2, 0, 0, 50, 8, 10); break;//cross standard blue case 14:setConfiguration(2, 0, 0, 50, 8, -10); break;// cross revert case biru 15:setConfiguration(5, 0, 50, 0, 0, 20); break;//blink kotak hijau standar 16:setConfiguration(5, 0, 50, 0, 0, -20); break;// blink odwyrtka green case 17:setConfiguration(5, 0, 0, 50, 0, 20); break;//blink kotak biru standar 18:setConfiguration(5, 0, 0, 50, 0, -20); break;// blink mengembalikan huruf biru 19:setConfiguration(5, 50, 0, 0, 0, 20); break;//blink standar merah case 20:setConfiguration(5, 50, 0, 0, 0, -20); break;// blink mengembalikan huruf merah 21:setConfiguration(5, 50, 10, 0, 0, 20); break;//blink case oranye standar 22:setConfiguration(5, 50, 10, 0, 0, -20); break;// blink mengembalikan oranye default: setConfiguration(0, 0, 50, 0, 5, 1); istirahat;//mati =0 } }
tergantung pada parameter yang diberikan, cincin akan menampilkan efeknya. Anda dapat menambahkan efek Anda sendiri dengan memanggil fungsi setConfiguration dengan parameter baru (perubahan warna, kecepatan tampilan) dengan menambahkan mode baru, atau menambahkan efek yang sama sekali baru – atau beri tahu saya di komentar jika saya suka, saya akan menambahkan efek baru
arduino.ino:
#sertakan "Arduino.h"#sertakan "SoftwareSerial.h" #sertakan "DFRobotDFPlayerMini.h"
#termasuk
#include #include #include "SingleRing.h"
#termasuk
#sertakan #sertakan
#termasuk
#tentukan WIFI_NAME ""
#define WIFI_PASSWORD "" #define DEVICE_ID 205 #define DEVICE_NAME "sirene" #define TOKEN ""
#tentukan DIODES_COUNT 16
SingleRing atas = SingleRing(DIODES_COUNT, D5);
SingleRing bawah = 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)) { //Gunakan softwareSerial untuk berkomunikasi dengan mp3.
Serial.println(F("Tidak dapat memulai:")); Serial.println(F("1. Silakan periksa kembali koneksi!")); Serial.println(F("2. Silakan masukkan kartu SD!")); sementara (benar); } Serial.println(F("DFPlayer Mini online."));
myDFPlayer.setTimeOut(500); //Tetapkan waktu komunikasi serial 500ms
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();
bawah.setup(); atas.bersih(); bawah.bersih(); }
boolean dimatikan = benar;
turnOffMillis panjang yang tidak ditandatangani = 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 waktu = RemoteMeMessagesUtils::getUint8(data, pos); mode uint8_t = RemoteMeMessagesUtils::getUint8(data, pos);
bottom.setMode(Mode bawah);
top.setMode(Mode atas); if (mode == 1) { myDFPlayer.loop(trackNumber); } else { myDFPlayer.play(trackNumber); } dimatikan = salah; turnOffMillis = milis() + 1000 * waktu; }
lingkaran kosong()
{ remoteMe.loop(); atas.loop(); bawah.loop(); jika (matikanMillis
}
penjelasan:
#define WIFI_NAME ""#define WIFI_PASSWORD "" #define DEVICE_ID 205 #define DEVICE_NAME "notificator" #define TOKEN ""
Kami perlu memberikan data di atas, instruksi terperinci di sini di tautan juga saya telah menunjukkan cara mendaftar di remoteme.org dan menghasilkan token, 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 waktu = RemoteMeMessagesUtils::getUint8(data, pos); mode uint8_t = RemoteMeMessagesUtils::getUint8(data, pos);
bottom.setMode(Mode bawah);
top.setMode(Mode atas); if (mode == 1) { myDFPlayer.loop(trackNumber); } else { myDFPlayer.play(trackNumber); } dimatikan = salah; turnOffMillis = milis() + 1000 * waktu; }
Fungsi ini akan dipanggil ketika pesan masuk ke Arduino dan menampilkan notifikasi. Kodenya sangat jelas sehingga menggambarkan dirinya sendiri. Saya merujuk ke detail kelas ke dokumentasi di sini dan di sini
void loop(){ remoteMe.loop(); atas.loop(); bawah.loop(); if (turnOffMillis<millis()){
jika (!dimatikan) {
atas.bersih();
bawah.bersih(); myDFPlayer.stop(); dimatikan = benar; } }
Dalam loop, kami memanggil fungsi loop objek, dan juga jika waktu tampilan notifikasi telah berlalu, kami mematikan dioda dan suara.
Langkah 5: Pemutar Mp3
Ini berkomunikasi dengan Arduino melalui TX / RX – Detail pemain itu sendiri di sini, dan perpustakaan di sini
Kami mengunggah file mp3 ke kartu SD. File pada kartu diurutkan menurut abjad dan kemudian dengan memanggil:
myDFPlayer.play(5);
Kami memainkan file kelima dari kartu SD dari direktori root. Itu sebabnya ada baiknya memberikan file pada awalan kartu SD 01, 02 dll. Dalam kasus saya, tampilannya seperti pada layar cetak di atas
Untuk menghasilkan perintah suara Anda dapat menggunakan halaman ini.
Langkah 6: Mengunggah Program ke Arduino
Sebelum mengunggah sketsa ke Arduino, Anda harus mengunduh perpustakaan yang diperlukan di sini Anda akan menemukan instruksi detail
selain itu, kita perlu menginstal perpustakaan DFRobotDFPlayerMini dan Adafruit_NeoPixel
Langkah 7: Kontrol
Kami mengirim ke Arduino kami lima byte
- byte pertama dari efek cahaya untuk cincin LED atas
- efek cahaya byte kedua untuk cincin LED bawah
- jumlah file mp3 yang akan diputar
- jumlah detik berapa lama efek cahaya dan mp3 akan diputar
- apakah mp3 harus dimainkan sekali atau dalam satu lingkaran (1 jika harus diputar dalam satu lingkaran)
Dengan mengirimkan byte
07 0F 01 05 01
Dering atas akan menunjukkan lampu polisi (mode 6) hijau satu kedipan bawah (mode 15) (lihat fungsi setMode di singleRing.cpp dan komentar di sebelahnya). File pertama dari SDcard akan diputar selama 5 detik. Dan file tersebut akan diputar secara looping (cek fungsi onUserMessage di arduino.ino)
Mari kita kirim byte ini. Lihat layar di atas, dan klik ikon dalam urutan yang ditulis oleh 1, 2, 3. Jendela muncul
Kemudian lihat layar kedua - dan isi jendela seperti pada layar kedua
Jendela yang muncul digunakan untuk mengirim pesan ke perangkat. Di bidang 1, pilih perangkat pengirim – karena kami hanya memiliki satu perangkat, kami memilihnya (ini adalah bidang wajib dan tidak masalah bahwa itu adalah perangkat yang sama dengan yang kami kirimi pesan) Di bidang 2 kami memberikan byte ke kirim (berwarna merah nilai yang kita masukkan di 2 akan direpresentasikan sebagai string) lalu klik tombol Kirim.
Setelah mengirim pesan, pemberi tahu kami akan bereaksi dengan menampilkan efek pencahayaan yang sesuai dan memutar mp3 yang dipilih. Saya mendorong Anda untuk mencoba efek yang berbeda dengan memberikan dua byte pertama dari angka antara 0 dan 22 (lihat deskripsi dalam fungsi setMode).
Langkah 8: Mengirim Pesan Menggunakan URL
Jika kita ingin menampilkan notifikasi dari aplikasi eksternal, misalnya dengan IFTTT, kita perlu memiliki URL yang akan melakukan hal yang persis sama seperti yang kita lakukan di jendela pada langkah sebelumnya. remoteme.org menyediakan REST API. Pergi ke sana dengan mengklik tab angkuh di sebelah kiri (yang terakhir). Sebuah halaman akan ditampilkan, di halaman ini kita juga dapat mencoba URL kita.
Pada layar pertama Anda memiliki fungsi Anda perlu memperluas, lalu mengisi data seperti pada layar kedua.
isi data seperti pada gambar di atas. Setelah mengklik eksekusi, kami akan mengirim pesan
070F010501
Penerima adalah perangkat dengan 205 id, perangkat yang sama juga merupakan pengirim. MessageId dengan pengaturan “No_RENEVAL” tidak relevan. Dan kemudian klik Execute. Notificator akan bereaksi dengan cara yang sama seperti saat mengirim pesan dari aplikasi. Setelah memanggil REST di bawah ini adalah URL yang dipanggil - lihat layar ketiga. Dan salin dan tempel ke URL browser ditandai dengan batas hijau. Di layar keempat browser chrome saya setelah URL ditempelkan
Dalam kasus saya, URL-nya adalah:
app.remoteme.org/api/*/rest/v1/message/sendUserMessageHexString/205/1/NO_RENEWAL/1/070F010501/
Langkah 9: URL Anymous untuk Mengirim Pesan
Pada langkah sebelumnya Anda memiliki URL yang mengirimkan data ke perangkat Anda. Sayangnya, setelah keluar dari app.remoteme.org, itu berhenti berfungsi. Ini karena kami tidak menyediakan token autentikasi, dan kami tidak lagi masuk. Mari ambil token kami (atau buat yang baru) dan tempelkan ke URL alih-alih bintang.
Lihat layar dan ganti * di URL dengan token Anda
dalam kasus saya token adalah:
~267_ZxoWtJ)0ph&2c
jadi URL final saya terlihat seperti:
app.remoteme.org/api/~267_ZxoWtJ)0ph&2c/rest/v1/message/sendUserMessageHexString/205/1/NO_RENEWAL/1/070F010501/
Sekarang kita dapat memanggilnya bahkan jika kita tidak masuk. Dan ketika dipanggil, sebuah pesan akan dikirim ke perangkat kita 205
Langkah 10: Integrasi Dengan IFTTT 1/7
Url yang dibuat pada langkah di atas cocok untuk dieksekusi oleh aplikasi eksternal. Cara menggunakannya akan saya tunjukkan di IFTTT. Saya akan mengkonfigurasinya agar notifier menyala ketika email masuk ke alamat email (akun Gmail).
Masuk ke IFTTT. Kemudian buka tab Applet Saya dan kemudian "Applet Baru" - layar pertama
Langkah 11: Integrasi Dengan IFTTT 2/7
Selanjutnya klik “+ini”
Langkah 12: Integrasi Dengan IFTTT 3/7
Kemudian di bidang "Layanan pencarian" tulis "Gmail"
Kemudian "email baru di kotak masuk" (Beberapa konfigurasi mungkin diperlukan).
Langkah 13: Integrasi Dengan IFTTT 4/7
sekarang kita klik "+ itu"
Langkah 14: Integrasi Dengan IFTTT 5/7
temukan "Webhook" dan klik itu
Langkah 15: Integrasi Dengan IFTTT 6/7
lalu "Buat permintaan web"
Langkah 16: Integrasi Dengan IFTTT 7/7
kami melengkapi URL url kami dengan token. Jenis konten ke aplikasi / json dan klik "buat tindakan" dan Selesai. Sekarang kita memiliki applet kita:
Langkah 17: Ringkasan
Dalam tutorial ini, saya menunjukkan cara mengirim pesan ke Arduino dari sistem eksternal. Kami juga mengintegrasikan beberapa sistem lain kemudian IFTTT dengan cara yang sama. Itu tidak harus menjadi "pemberitahu" yang ingin saya tunjukkan dalam contoh ini bagaimana mengirim pesan dari sistem luar ke Arduino kami.
sourcecodesFanPage di Facebook
Salam, Maciek
Direkomendasikan:
Kirim Notifikasi ThingSpeak ke Mi Band 4: 6 Langkah
Kirim Notifikasi ThingSpeak ke Mi Band 4: Sejak saya membeli Xiaomi Mi Band 4, saya memikirkan kemungkinan melacak beberapa data dari Weather Station saya yang tersedia di ThingSpeak melalui Mi Band 4 saya. Namun, setelah beberapa penelitian, saya menemukan bahwa kemampuan Mi Band 4 di
ForgetMeNot - Platform Notifikasi Rumah Pintar: 14 Langkah (dengan Gambar)
ForgetMeNot - Platform Pemberitahuan Rumah Pintar: Sebagai mahasiswa yang sibuk, berlarian di antara kelas, pekerjaan, dan kewajiban keluarga, kita cenderung melupakan hal-hal kecil. Ulang tahun datang dan pergi tanpa kita sadari, tenggat waktu penting terlewatkan karena kelupaan belaka dan terkadang, hanya
Notifikasi GMail Menggunakan ESP8266 Arduino dan OLED: 5 Langkah
Pemberitahuan GMail Menggunakan ESP8266 Arduino dan OLED: Saat ini, Setiap mesin memiliki beberapa data untuk dikirim melalui cloud dan Data harus dianalisis dan harus direkam untuk berbagai tujuan. Pada saat yang sama, data juga harus dapat diakses oleh Analyzer. Hal ini dapat dilakukan dengan menggunakan konsep IoT. IOT adalah internet dari
Singkirkan Notifikasi Upgrade Window 10!!: 10 Langkah
Singkirkan Notifikasi Upgrade Window 10!!: Bosan diminta upgrade ke windows 10 terus menerus? Jangan khawatir, Anda dapat menyingkirkan pemberitahuan yang mengganggu ini untuk selamanya, saya akan menunjukkan caranya. Silakan berlangganan saluran saya, Terima kasih
Lampu Notifikasi Kodak Pi tahun 1930-an: 6 Langkah (dengan Gambar)
Lampu Pemberitahuan Kodak Pi tahun 1930-an: Ini adalah Penampil Tabel Kodak tahun 1930-an yang telah saya sesuaikan untuk menampilkan pemberitahuan dan peringatan menggunakan berbagai warna cerah. Sumber cahayanya adalah Unicorn pHAT, matriks LED terang yang dapat diprogram, dan ini dikendalikan oleh Raspberry Pi Zero W, yang