Mündəricat:
- Addım 1: nəzəriyyə
- Addım 2: Dizayn
- Addım 3: Texniki məlumatlar: API
- Addım 4: Texniki məlumatlar: Avadanlıq
- Addım 5: Texniki Təfərrüatlar: Nöqtələri Bağlamaq | Ev avtomatlaşdırılması
- Addım 6: Sarma
Video: Ramazan İşıqları - Ev avtomatlaşdırılması IOT: 6 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
Ramazan ayı qapını döydükcə dünyanın bütün şəhərləri işıq saçır və oruc ayına hazırlaşır. İşıqlar ictimai meydanlarda və şəhər küçələrində, eləcə də səhərlər günəş çıxana qədər gecə yanan evlərin xarici divarlarına asılır.
Bu proyektdə, azan vaxtlarına əsaslanaraq bu bəzəklərin işıqlandırılmasını avtomatlaşdırdığım və bunu ağıllı ev sistemimə əlavə etdiyim töhfəmi bölüşmək istərdim.
Addım 1: nəzəriyyə
Əsasən, məsələn, günəş işığının intensivliyinə əsaslanaraq işıqlandırmanı avtomatlaşdırmaq daha asan və daha çox tətbiq olunur. Ancaq istərdim ki, müqəddəs ayın ruhu olsun, oruc ayında insanların yemək yeməsinə icazə verildiyi müddətcə işıqlar yanacaq. Xüsusilə, işıqlar hər gün Məğrib azanından başlayaraq sübh azanına qədər heç bir insan müdaxiləsi olmadan yanır.
Addım 2: Dizayn
Aşağıda bu layihənin tələblərini/imkanlarını sadalayacağam:
- Sistem açılış zamanı avtomatik olaraq işləməyi bacarmalıdır.
- Sistem vaxtaşırı qərar (ON/OFF) alqoritmini icra edə bilməlidir.
- Sistem gündəlik olaraq API çağıra bilməlidir.
- Sistem planlaşdırılmamış yenidən başladıqdan sonra bərpa edə bilməlidir.
- Sistem dərhal məlumat aldıqdan sonra qərar (ON/OFF) alqoritmini yerinə yetirməlidir.
- Sistem avtomatik pilot rejimini açmaq üçün bir keçid təmin etməlidir (Avtomatik rejim).
- Sistem işıqları əl ilə açmaq/söndürmək üçün bir keçid təmin etməlidir.
- Manuel açarın işə salınması əl rejimini OFF vəziyyətinə qoymalıdır.
- Avtomatik rejim AÇIQ olduqda, qərar alqoritminin nəticəsi manuel ON/OFF düyməsinə əks olunmalıdır.
Addım 3: Texniki məlumatlar: API
Teorinin tətbiq oluna bilməsi üçün, dəyişəndən bəri gündəlik azan vaxtını bilmək və işıqları/bəzəkləri açmaq/söndürmək üçün hərəkət etmək lazımdır.
Bu məqsədlə məlumatlara xidmət etmək üçün yerə əsaslanan bir API istifadə etməyə qərar verdim (Azan vaxtı)
muslimsalat.com/api/#location
- Bu API, yuxarıdakı sənəd linkində təsvir olunan müxtəlif seçimlər və konfiqurasiya parametrləri təqdim edir.
- Qeydiyyat zamanı pulsuz olan öz API_keyinizi istifadə etməyiniz məsləhətdir.
- Dizaynımda gündəlik bir zaman çizelgesi ilə maraqlanıram.
- Geri qaytarılma vaxtı 12 saat formatındadır (AM/PM).
- Məkan baxımından, bu API -nin coğrafi koordinatlar sistemi (Enlem və Boylam) kimi yerlər üçün daha doğru seçimlər təqdim etməsini arzulayırdım. Bu şəkildə bu API, məsələn bir şəhər adı ilə təmin edilə bilər və bu əksər hallarda kifayətdir. Təəssüf ki, xüsusi şəhərimin nəticələri çoxsaylı testlərdə olduqca qərəzli idi və azan vaxtını API nəticələri ilə şəhərimdəki əsil azan vaxtı arasında müqayisə edərkən bir neçə dəqiqəlik fərq var idi. Digər tərəfdən, şimala yaxın bir şəhər verdiyimdə və ona yapışdığımda nəticələr mükəmməl uyğunlaşdı!
- İstifadə etdiyim API url: https://muslimsalat.com/.json? Key =
Addım 4: Texniki məlumatlar: Avadanlıq
Sadəlik üçün, aparatı API ilə sinxronizasiya prosesindən və bu əməliyyatları mənim Ev Avtomatlaşdırma Sisteminə həvalə edərək vaxt hesablamasından kənarda qoyuram. API mənbəyini və hesablama alqoritmini düzəltmək istəsəm bu mənə daha çox nəzarət verəcək.
Bunu söylədikdən sonra WIFI və aktuator olaraq bir röle modulu vasitəsilə yerli şəbəkəyə qoşulmaq üçün ESP8266 (NodeMCU) istifadə etdim. NodeMCU, MQTT protokolundan istifadə edəcək və röleyi açmaq/söndürmək əmrlərini almaq üçün müəyyən bir mövzunu dinləyəcək. Bu qədər sadə!
Addım 5: Texniki Təfərrüatlar: Nöqtələri Bağlamaq | Ev avtomatlaşdırılması
Mənim RaspberryPi -də bu layihə üçün lazım olan hər şeyi idarə edə bilən düyünlü bir nümunə var. Mesajlarımızı dərc etmək üçün quraşdırılmış MQTT serveri də var.
Əvvəlcə API məlumatlarını gündəlik olaraq səhər 9 -da ala biləcəyimi və həm Fəcr, həm də Mahqrib azan vaxtlarını çıxara biləcəyimi və indiki vaxtı bu dəyişənlərlə müqayisə etməyə davam edə biləcəyimi düşündüm:
hər 30 saniyə:
əgər: Mahgrib <NOW <Fəcr doğru | işıqları yandır | göstərilən MQTT mövzusuna başqa bir açıq mesaj yayımlayın: söndürün
Vaxtı müqayisə etmək üçün, tarixin hissəsini tarixdə əhəmiyyətsiz bir tarix olaraq təyin edərək, hh: mm (AM/PM) saatından tam tarix formatına çevirirəm (məsələn, 1/1/1970), çünki vaxtı müqayisə edirik. yalnız cari saata (tarix hissəsi də çevrilir).
Təəssüf ki, bu yalnız düz vəziyyətdə işləyəcək. Fərz edək ki, elektrik enerjisi kəsildikdə və ya sistem planlaşdırılmamış səbəbdən yenidən işə düşür. Bu vəziyyət 12.00 -dan əvvəl baş verərsə, hələ də təhlükəsiz tərəfdəyik, ancaq 12AM -dan sonra bu sadə alqoritmimizi uğursuz edəcək.
Bir nümunə vermək üçün 19:30 da Məğrib Azanı və 4:10 da Fəcr namazını qılaq. Sistem açıldıqda, əvvəllər qeyd olunan məlumatları əldə etmək üçün yeni bir sorğu göndərəcək. Əgər indi saat 1: 45 -dirsə, alqoritmimizin gerçəyə dönməsini gözləyirik, amma əslində belə deyil, çünki 1:45 AM Sübhdən (4:10 AM) azdır, lakin Məğribdən (19:30 PM) daha böyük deyil. Tarixi bütün dəyişənlər arasında birləşdirdiyimiz üçün. Alqoritmin son versiyası (indiyə qədər) aşağıda verilmişdir:
hər 30 saniyə:
if ((magrib.getHours ()> = 12 && fajr.getHours () <= 12) || facr <maghrib) {fajr.setDate (fajr.getDate ()+1); // spanning days endTime if (now.getHours () <= 12) {now.setDate (now.getDate ()+1); // tutan günlər CurrentTime}} // aşağıda əvvəlki kod blokudur, əgər: Mahgrib <NOW <Fajr true | işıqları yandır | göstərilən MQTT mövzusuna başqa bir mesaj göndərin: yalan | söndür
Prosesin tam axını yuxarıdakı görüntüdə qeyd olunur.
UI baxımından, UI/interfeysə 2 açar əlavə etdim:
- Bu prosesi avtomatik və ya əl ilə çevirmək üçün bir keçid.
- İşıqları əl ilə açmaq/söndürmək üçün açar.
Addım 6: Sarma
Zaman heç vaxt xatırlanmır. Belə sadə 1 günlük layihələr etmək, bu sürətli zolaqda nəfəs almağa və zaman keçdikcə yumşaq bacarıqlarınızı canlandırmağa kömək edir.
Bütün dünyada sadə və təkrar istifadə oluna bilməsi üçün bu layihədə çox çalışdım.
Bu layihəyə layiq olduğunu düşünürsünüzsə, bu təlimatlandırıcıya səs verin.
Ramazan bayramınız mübarək!
Tövsiyə:
Esp8266 (aREST, MQTT, IoT) istifadə edərək İnternet/buludla idarə olunan ev avtomatlaşdırılması: 7 addım (şəkillərlə)
Esp8266 (aREST, MQTT, IoT) istifadə edərək İnternet/buludla idarə olunan ev avtomatlaşdırması: BÜTÜN kreditlər http://arest.io/ -da! Bulud xidməti üçün !! Hazırda dünyanın ən çox müzakirə olunan mövzusu IoT !! Bunu mümkün edən bulud serverləri və xidmətlər bugünkü dünyanın cazibə nöqtəsidir … MESAFE BARİERİNİN HÜKÜMƏTİ
IOT əsaslı ev avtomatlaşdırılması: 4 addım
IOT Əsaslı Ev Avtomatlaşdırması: Necə işləyir: esp8266 NodeMcu tərəfindən 4 röleyi idarə etmək üçün xüsusi bir sxem qururam Bu dövrə DC 12 volt 1 amp gücündə işləyir. nodemcu açıldıqda WiFi & amp vasitəsilə routerinizə qoşulur; həmçinin Blynk serverinə qoşulun Ağıllı telefonunuz vergül göndərin
IoT və ya Ev Avtomatlaşdırılması üçün Homie Cihazlarının Qurulması: 7 Addım (Şəkillərlə)
IoT və ya Ev Avtomatlaşdırması üçün Homie Cihazları qurmaq: Bu təlimat, DIY Ev Otomasyonu seriyamın bir hissəsidir, əsas məqaləni "" DIY Ev Otomasyon Sisteminin Planlaşdırılması "na baxın. Hominin nə olduğunu hələ bilmirsinizsə, Marvin Roger-dən homie-esp8266 + homie-yə baxın
İnteraktiv həyət işıqları, keçid işıqları: 3 addım
İnteraktiv həyət işıqları, keçid işıqları: Arxa həyətim üçün bir növ interaktiv həyət işıqları qurmaq istəyirdim. Fikir, kimsə bir tərəfə getdiyi zaman, getdiyin istiqamətdə bir animasiya quracaqdı. Dollar General 1.00 dollarlıq günəş işığı ilə başladım
DIY Milad İşıqları Musiqiyə Quruldu - Xoreoqrafik Ev İşıqları: 15 Addım (Şəkillərlə)
DIY Milad İşıqları Musiqiyə Quruldu - Xoreoqrafiya Edilmiş Ev İşıqları: Musiqiyə Qurulan DIY Milad İşıqları - Xoreoqrafiya Edilmiş Ev İşıqları Bu yeni başlayan DIY deyil. Elektronika, dövrə, BASIC proqramlaşdırma və elektrik təhlükəsizliyi haqqında ümumi müdrikliklərə dair möhkəm bir anlayışa ehtiyacınız olacaq. Bu DIY təcrübəli bir adam üçündür, buna görə də