Isi kandungan:
- Langkah 1: Teori
- Langkah 2: Reka bentuk
- Langkah 3: Butiran Teknikal: API
- Langkah 4: Butiran Teknikal: Perkakasan
- Langkah 5: Butiran Teknikal: Menghubungkan Titik | Automasi Rumah
- Langkah 6: Mengemas
Video: Lampu Ramadan - Automasi Rumah IOT: 6 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
Ketika Ramadan mengetuk pintu, kota-kota di seluruh dunia menyala dan bersiap untuk bulan puasa. Lampu digantung di dataran umum dan di seberang jalan kota serta di dinding luar rumah yang dinyalakan pada waktu malam hingga matahari terbit pada waktu pagi.
Dalam projek ini, saya ingin berkongsi sumbangan saya, di mana saya mengautomasikan pencahayaan hiasan ini berdasarkan masa Adhan dan menambahkannya ke sistem rumah pintar saya.
Langkah 1: Teori
Pada dasarnya, lebih mudah dan lebih berkesan untuk mengautomasikan pencahayaan berdasarkan intensiti cahaya matahari, misalnya. Namun, saya ingin agar semangat bulan suci itu, lampu akan menyala selagi orang dibenarkan makan pada bulan puasa. Khususnya, lampu mulai dari Maghrib Adhan hingga Fajr Adhan pada setiap hari tanpa interaksi manusia.
Langkah 2: Reka bentuk
Di bawah ini saya akan menyenaraikan keperluan / keupayaan projek ini:
- Sistem harus dapat memproses secara automatik semasa boot up.
- Sistem harus dapat menjalankan algoritma keputusan (ON / OFF) secara berkala.
- Sistem harus dapat memanggil API setiap hari.
- Sistem harus dapat pulih dari mulakan semula yang tidak dirancang.
- Sistem harus melaksanakan algoritma keputusan (ON / OFF) setelah menerima data dengan serta-merta.
- Sistem harus menyediakan suis untuk menghidupkan mod autopilot (Mod automatik).
- Sistem harus menyediakan suis untuk menyalakan / mematikan lampu secara manual.
- Memicu suis manual harus menetapkan mod manual ke MATI.
- Apabila mod Automatik AKTIF, hasil algoritma keputusan harus dicerminkan pada suis manual ON / OFF.
Langkah 3: Butiran Teknikal: API
Untuk membuat teori itu berlaku, perlu mengetahui waktu Adhan pada setiap hari sejak pemboleh ubahnya dan bertindak untuk menghidupkan / mematikan lampu / hiasan.
Untuk tujuan ini, saya memutuskan untuk menggunakan API berdasarkan lokasi untuk melayani data (waktu untuk Adhan)
muslimsalat.com/api/#lokasi
- API ini menyediakan pelbagai pilihan dan parameter konfigurasi yang dijelaskan dalam pautan dokumentasi di atas.
- Sebaiknya gunakan API_key anda sendiri yang percuma semasa pendaftaran.
- Dalam reka bentuk saya, saya berminat dengan garis masa harian.
- Masa yang dikembalikan adalah dalam format 12 jam (AM / PM).
- Dari segi lokasi, saya berharap sekiranya API ini dapat memberikan pilihan yang lebih tepat untuk lokasi seperti sistem koordinat geografi koordinat (Lintang dan Bujur). Dengan cara ini, API ini dapat dibekalkan dengan nama bandar misalnya dan ini cukup banyak dalam kebanyakan kes. Malangnya, keputusan bandar khusus saya agak berat sebelah dalam beberapa ujian dan terdapat beberapa minit perbezaan ketika membandingkan waktu Adhan antara hasil API dan waktu sebenar Adhan di bandar saya. Sebaliknya, hasilnya sangat sesuai ketika saya menyediakan bandar yang dekat dengan utara dan saya tetap berpegang teguh!
- Url API yang saya gunakan ialah: https://muslimsalat.com/.json? Key =
Langkah 4: Butiran Teknikal: Perkakasan
Untuk kesederhanaan, saya meninggalkan perkakasan dari proses penyegerakan dengan API dan pengiraan masa dengan mendelegasikan operasi ini ke Sistem Automasi Rumah saya. Ini akan memberi saya lebih banyak kawalan sekiranya saya ingin mengubah sumber API dan algoritma pengiraan.
Setelah itu, saya menggunakan ESP8266 (NodeMCU) untuk menyambung ke rangkaian tempatan melalui WIFI dan modul relay sebagai penggerak. NodeMCU akan menggunakan protokol MQTT dan mendengar topik tertentu untuk mendapatkan arahan untuk menghidupkan / mematikan geganti. Semudah itu!
Langkah 5: Butiran Teknikal: Menghubungkan Titik | Automasi Rumah
RaspberryPi saya memegang contoh yang mengangguk yang mampu menangani semua yang saya perlukan untuk projek ini. Ia juga mempunyai pelayan MQTT yang dipasang untuk menerbitkan mesej kami.
Pada mulanya, saya berpendapat bahawa saya dapat mengambil data API di pangkalan harian pada pukul 09:00 dan mengekstrak waktu Fajr dan Mahgrib Adhan dan terus membandingkan masa sekarang dengan pemboleh ubah berikut:
setiap 30 saat:
jika: Mahgrib <SEKARANG <Fajr benar | hidupkan lampu | terbitkan mesej ON ke topik MQTT yang ditentukan yang lain: matikan
Untuk membandingkan masa, saya menukar jam yang disediakan oleh API dari jam: mm (AM / PM) ke format tarikh penuh dengan menetapkan bahagian tarikh menjadi tarikh yang tidak dapat diabaikan dalam sejarah misalnya (1/1/1970) kerana kita membandingkan masa hanya ke waktu semasa (bahagian tarikh juga ditukar).
Malangnya, ini hanya akan berfungsi dalam kes lurus ke hadapan. Anggap kes berlaku semasa kuasa elektrik turun atau sistem dimulakan semula kerana alasan yang tidak dirancang. Sekiranya kes ini berlaku sebelum jam 12:00, maka kita masih berada di tempat yang selamat, tetapi selepas jam 12:00 ini akan gagal algoritma mudah kita.
Untuk memberi contoh, mari kita Magrib Adhan pada 7:30 PM dan Fajr pada 4:10 AM. Apabila sistem boot, ia akan menghantar permintaan baru untuk mengambil data yang disebutkan sebelumnya. Sekiranya waktunya sekarang adalah 1:45 AM, kami menjangkakan algoritma kami akan benar, tetapi sebenarnya tidak akan berlaku kerana 1:45 AM kurang dari Fajr (4:10 AM) tetapi tidak lebih besar daripada Magrib (7:30 PM). Ini kerana kita menyatukan tarikh antara semua pemboleh ubah. Berikut adalah versi terakhir algoritma (setakat ini):
setiap 30 saat:
jika ((magrib.getHours ()> = 12 && fajr.getHours () <= 12) || fajr <maghrib) {fajr.setDate (fajr.getDate () + 1); // atur rentang hari endTime if (now.getHours () <= 12) {now.setDate (now.getDate () + 1); // menangani rentang hari sekarangTime}} // di bawah ini adalah blok kod sebelumnya jika: Mahgrib <SEKARANG <Fajr true | hidupkan lampu | menerbitkan mesej ON ke topik MQTT yang ditentukan yang lain: false | matikan
Aliran lengkap proses dijelaskan dalam gambar di atas.
Dari segi UI, saya menambahkan 2 suis ke UI / antara muka:
- Suis untuk menghidupkan proses ini Automatik atau Manual.
- Suis untuk menghidupkan / mematikan lampu secara manual.
Langkah 6: Mengemas
Masa berlalu tidak dapat dikenang. Melakukan projek 1 hari yang mudah ini membolehkan anda menarik nafas lega di jalan pantas ini dan membantu anda menghidupkan kembali kemahiran insaniah anda dari masa ke masa.
Saya berusaha seberapa banyak dalam projek ini untuk menjadikannya mudah dan boleh digunakan semula di seluruh dunia.
Mohon Undian untuk arahan ini jika anda rasa projek ini layak.
Selamat menyambut Ramadan!
Disyorkan:
Lampu Suasana Buatan Rumah: 6 Langkah
Lampu Mood Buatan Rumah: Lampu Mood Una es una lámpara a las cual le puedes personalizar el color de la luz. Como kontinuón se muestra puedes hacer una con un Kit de Principiantes de Arduino y materiales caseros
Kawal Pintu Gelongsor Automatik Anda Dengan Pembantu Rumah dan ESP Rumah: 5 Langkah (dengan Gambar)
Kawal Pintu Gelongsor Automatik Anda Dengan Pembantu Rumah dan ESPRumah: Artikel berikut adalah beberapa maklum balas mengenai pengalaman peribadi saya mengendalikan pintu gelangsar automatik yang telah saya pasangkan di rumah saya. Pintu gerbang ini, berjenama " V2 Alfariss ", telah dilengkapi dengan beberapa alat kawalan jauh Phox V2 untuk mengawalnya. Saya juga ada
Tuchless Switch untuk Peralatan Rumah Tangga -- Kawal Peralatan Rumah Tangga Anda Tanpa Suis: 4 Langkah
Tuchless Switch untuk Peralatan Rumah Tangga || Kawal Peralatan Rumah Tangga Anda Tanpa Suis: Ini Suis Tanpa Tuch Untuk Peralatan Rumah. Anda Boleh Menggunakannya Ke Mana-mana Tempat Umum sehingga Membantu Memerangi Virus. Litar Berdasarkan Litar Sensor Gelap Dibuat Oleh Op-Amp Dan LDR. Bahagian Penting Kedua Litar Ini SR Flip-Flop Dengan Sequencell
UVIL: Lampu Malam Lampu Latar Hitam (atau Lampu Petunjuk SteamPunk): 5 Langkah (dengan Gambar)
UVIL: Lampu Latar Lampu Latar Hitam (atau Lampu Indikator SteamPunk): Cara memasang lampu penunjuk ultraviolet neo-retropostmodern yang menyala yang mengerikan. Ini menunjukkan pembinaan dua yang pertama yang saya buat sebagai kaedah untuk menilai proses etsa PCB yang digariskan dalam Instruktif lain . Idea saya adalah menggunakan ini kerana saya
Lampu Krismas DIY Tetapkan untuk Muzik - Lampu Rumah Koreografi: 15 Langkah (dengan Gambar)
Lampu Krismas DIY Ditetapkan ke Muzik - Lampu Rumah Koreografi: Lampu Krismas DIY Diatur Ke Muzik - Lampu Rumah Koreografi Ini BUKAN DIY pemula. Anda memerlukan pemahaman yang tegas mengenai elektronik, litar, pengaturcaraan ASAS dan kecerdasan umum mengenai keselamatan elektrik. DIY ini untuk orang yang berpengalaman jadi