Mündəricat:

IDC2018IOT AC -ni nə vaxt söndürəcəyimi söyləyin: 7 addım
IDC2018IOT AC -ni nə vaxt söndürəcəyimi söyləyin: 7 addım

Video: IDC2018IOT AC -ni nə vaxt söndürəcəyimi söyləyin: 7 addım

Video: IDC2018IOT AC -ni nə vaxt söndürəcəyimi söyləyin: 7 addım
Video: IDC European IoT Summit 2018 2024, Iyul
Anonim
Image
Image

Bir çoxumuz, xüsusən də yay vaxtında, AC -ni demək olar ki, fasiləsiz istifadə edirik, əslində günün müəyyən vaxtlarında sadəcə bir pəncərə açıb gözəl bir küləkdən ləzzət ala bilərik. Ayrıca, şəxsən gördük ki, bəzən hətta otaqdan çıxarkən elektrik enerjisini və pulu israf edərək AC -ni söndürməyi unuduruq.

Yaratacağımız həll daxili temperaturu xarici ilə müqayisə edəcək və kifayət qədər yaxın olduqları zaman bizə Facebook Messanger vasitəsilə bir pəncərə açıb AC -yə istirahət verməyin vaxtı gəldiyini bildirəcək.

Ayrıca, AC -ni unutduğumuzda və otaqdan çıxdığımızda bizi xəbərdar etmək üçün başqa bir mexanizm hazırlayacağıq.

Addım 1: Biraz Ətraflı Məlumat

4 fərqli sensordan məlumat toplayırıq:

  • İki DHT sensoru evin içərisində və evin xaricində temperatur toplayır.
  • Bir PIR sensoru otaqdakı hərəkəti aşkar edir.
  • Bir Electret mikrofonu AC ventilyasiyasından çıxan küləyi aşkar etmək üçün istifadə olunur, AC -nin açıq olub olmadığını müəyyən etmək üçün sadə və etibarlı bir yol.

Sensorlardan gələn məlumatlar işlənəcək və yaradacağımız bir interfeysdə göstəriləcək Blynk -ə göndəriləcək. Ayrıca, istifadəçini AC əvəzinə bir pəncərə aça biləcəyini və AC -ni unudub əvvəlcədən müəyyən bir müddət ərzində otaqdan çıxdığını bildirmək üçün IFTTT tədbirlərini tetikleyeceğiz.

Blynk interfeysi, daha sonra daha ətraflı müzakirə edəcəyimiz üçün istifadəçi seçimlərinə uyğun olaraq müvafiq parametrləri dəyişdirməyimizə də imkan verəcəkdir.

Lazım olan hissələr:

  1. WiFi modulu - ESP8266
  2. PIR sensoru.
  3. DHT11/DHT22 temperatur sensorlar x2.
  4. 10k/4.7k rezistorlar (DHT11 - 4.7k, DHT22 - 10k, PIR - 10k).
  5. Elektret mikrofonu.
  6. Tullananlar.
  7. Uzun kabellər (Telefon teli əla iş görəcək).

Layihənin tam kodu kodun sonunda şərhlərlə birlikdə əlavə olunur.

Məntiqi olaraq, bir neçə fərqli funksional təbəqəyə malikdir:

  • Sensorlardan alınan məlumatlar 3 saniyəlik fasilələrlə oxunur, çünki bu daha dəqiqdir və bundan artığına ehtiyac yoxdur.
  • Kodun bir hissəsi, AC -nin açılışının üstünə qoyulan elektret mikrofonundan gələn dəyərlərə görə AC vəziyyətini izləməkdir.
  • Başqa bir hissə, temperatur sensörlərindən gələn oxunuşu və AC -ni çevirmək və bunun əvəzinə bir pəncərə açmaq üçün məqbul olaraq təyin olunan fərqi izləməkdir. Temperaturun kifayət qədər yaxınlaşdığı anı axtarırıq.
  • Üçüncü hissə otaqdakı hərəkəti izləməkdir. İstifadəçi tərəfindən müəyyən edilmiş müddət ərzində heç bir əsas hərəkət aşkar etməzsə (əsas yoxlama üsulu tezliklə izah ediləcək) və AC vəziyyəti AÇIQ olarsa, istifadəçiyə bildiriş göndəriləcək.
  • Bildirişlər, Facebook Messenger vasitəsi ilə istifadəçiyə əvvəlcədən təyin edilmiş mesajlar göndərən IFTTT Webhooks -un işə salınması yolu ilə idarə olunur.
  • Diqqət yetirməyə dəyər son hissə, həm istifadəçinin dəyişənlərə etdiyi dəyişiklikləri əldə etməklə, həm də digər tərəfdən məlumatları istifadəçinin görməsi üçün Blynk interfeysinə ötürməklə Blynk interfeysini idarə edən hissədir.

Addım 2: Daha Çox Məlumatda - Sensorlar

Daha Çox Ətraflı - Sensorlar
Daha Çox Ətraflı - Sensorlar
Daha Çox Ətraflı - Sensorlar
Daha Çox Ətraflı - Sensorlar

Gəlin başlayaq.

Birincisi, hər iki DHT sensorumuzun eyni yerə yerləşdirildikdə eyni temperaturda oxuduğundan əmin olmalıyıq. Bunun üçün bu hissənin sonunda əlavə edilmiş sadə bir eskiz hazırladıq (CompareSensors.ino). Hər iki sensoru bağlayın və eskizdəki DHT sensörlərinin növünü sahiblərinizə görə dəyişdirdiyinizə əmin olun (standart bir DHT11 və bir DHT22 -dir, buna görə də kodda hər ikisinin necə işlədiyini görə bilərsiniz). Serial monitoru açın və bir müddət işləmələrinə icazə verin, xüsusən də DHT11 sensorlarından istifadə edirsinizsə, çünki temperatur dəyişikliklərinə uyğunlaşmaq üçün daha uzun çəkirlər.

Sensorlar arasındakı fərqi qeyd edin və daha sonra "ofset" dəyişəninin əsas koduna daxil edin.

Sensorların yerləşdirilməsi:

Evin xarici divarına bir DHT sensoru qoyulmalıdır, buna görə də ESP8266 -nı otağın içərisinə çatdırmaq üçün kifayət qədər uzun olan bəzi uzun kabellərə bağlayın və kənarda yerləşdirin (pəncərədən asanlıqla edilə bilər). Digər DHT sensoru, AC istifadə etdiyimiz otağın içərisində, çörək taxtasına yerləşdirilməlidir.

Elektret mikrofonu da kifayət qədər uzun kabellərə bağlanmalı və AC -dən çıxan küləyin ona dəyəcəyi yerə yerləşdirilməlidir.

Nəhayət, PIR sensoru otağın ortasına baxan bir yerə yerləşdirilməlidir ki, otaqdakı hər hərəkəti tutsun. Diqqət yetirin ki, sensorun iki kiçik düyməsi var, biri gecikməni idarə edir (bir hərəkəti aşkar etmək üçün YÜKSEK siqnalı nə qədər YÜKSƏK saxlanılır), digəri isə həssaslığı idarə edir (şəklə baxın).

Məmnun olduğunuzu oxuyana qədər onunla oynamağınız lazım ola bilər. Bizim üçün ən yaxşı nəticə sola qədər gecikmə (ən aşağı dəyər) və ortada həssaslıq idi. Kod, bu cür problemləri düzəltməyi daha da asanlaşdıracaq bütün sensorların oxunuşlarını ehtiva edən seriyalı çapları təmin edir.

Sensorların birləşdirilməsi:

İstifadə etdiyimiz pin nömrələri aşağıdakı kimidir (və əsas kodda dəyişdirilə bilər):

DHT sensoru xaricində - D2.

DHT sensoru içərisində - D3.

Elektret - A0 (analog pin).

PIR - D5.

Hər birini birləşdirmək üçün sxemləri "PIR müqavimətçisi Arduino sxematik" xətləri boyunca bir şey ilə google görüntü axtarışından istifadə edərək asanlıqla tapmaq olar (onları buradan kopyalamaq və heç bir müəllif hüququ xəttini keçmək istəməzdik:)).

Çörək taxtamızın bir şəklini də əlavə etdik, əlaqələri həqiqətən izləmək çətindir, amma bunun üçün yaxşı bir hiss verə bilər.

Yəqin ki, bildiyiniz kimi, nadir hallarda, ilk dəfə bağladığımız zaman işə yarayar. Bu səbəbdən sensorlardan oxunuşları asan oxunan bir şəkildə yazdıran bir funksiya hazırladıq ki, işləmək üçün yollarınızı düzəldə biləsiniz. Hata ayıklama zamanı kodun Blynk -ə qoşulmağa çalışmasını istəmirsinizsə, "Blynk.begin (auth, ssid, pass)" şərhini yazın; Kodun quraşdırma hissəsindən işə salın və izləri görmək üçün serial monitoru açın. Çapların şəklini də əlavə etdik.

Addım 3: Daha Çox Məlumatda - IFTTT Sırası

Daha çox məlumatda - IFTTT Sırası
Daha çox məlumatda - IFTTT Sırası

Beləliklə, iki ssenaridə xəbərdar olmaq istəyirik:

1. Xarici temp, AC işləyərkən içərimizdə olana kifayət qədər yaxındır.

2. Uzun müddət otaqdan çıxdıq və AC hələ də işləyir.

IFTTT, ümumiyyətlə qarşılıqlı təsir göstərməyən bir çox fərqli xidməti çox sadə bir şəkildə bağlamağımıza imkan verir. Bizim vəziyyətimizdə, bir çox xidmət vasitəsilə bildirişləri çox asanlıqla göndərməyimizə imkan verir. Facebook Messanger'i seçdik, ancaq Facebook Messanger ilə işləməyə başladıqdan sonra onu istədiyiniz digər xidmətə asanlıqla dəyişə biləcəksiniz.

Proses:

IFTTT veb saytında istifadəçi adınızı (sağ üst künc) və sonra "Yeni Tətbiq" düyməsini vurun, tətik olaraq "Webhooks" u ("bu") seçin və "Veb sorğusu al" seçin. Bir hadisə adı təyin edin (məsələn, boş otaq).

Tetiklenen xidmət üçün hərəkət ("o") üçün Facebook Messenger> Mesaj göndər seçin və bu hadisə baş verdikdə almaq istədiyiniz mesajı yazın (məsələn, "Salam, AC -ni unutmusunuz kimi görünür:).

Burada olduğumuz müddətdə, kodun uyğun yerinə daxil etməyiniz lazım olan gizli açarınızı da tapmalısınız.

Gizli açarınızı tapmaq üçün https://ifttt.com/services/maker_webhooks/settings ünvanına daxil olun. Açarınızla aşağıdakı formatda bir URL tapa bilərsiniz:

Addım 4: Daha çox məlumatda - Blynk

Image
Image
Daha çox məlumatda - Blynk
Daha çox məlumatda - Blynk
Daha çox məlumatda - Blynk
Daha çox məlumatda - Blynk

Aşağıdakı xüsusiyyətlərə sahib bir interfeys də istəyirik:

1. Bizə məlumat verilməzdən əvvəl AC işləyərkən otaq nə qədər boş qalmalı olduğunu təyin etmək imkanı

2. Xarici temperaturun içəriyə nə qədər yaxın olmasını seçmək imkanı.

3. Temperatur sensorlardakı oxunuşlar üçün ekran

4. Bir AC bizə AC vəziyyətini (açma/söndürmə) izah edir.

5. Və ən əsası, nə qədər $$$ və enerjiyə qənaət etdiyimizi göstərən bir ekran.

Blynk interfeysini necə yaratmaq olar:

Hələ Blynk tətbiqiniz yoxdursa, telefonunuza yükləyin. Tətbiqi açıb yeni bir layihə yaratdığınız zaman, uyğun cihazı seçdiyinizə əmin olun (məsələn, ESP8266).

Doğrulama işarəsi olan bir e -poçt alacaqsınız, kodu uyğun yerə daxil edəcəksiniz (itirdiyiniz təqdirdə daha sonra parametrlərdən özünüzə də göndərə bilərsiniz).

Yeni vidjetləri ekranınıza qoyun, yuxarıdakı + işarəsini vurun. Vidjetləri seçin və parametrlərini daxil etmək üçün bir widgetı vurun. İstifadə etmək üçün istifadə etdiyimiz bütün vidjetlər üçün parametrlərin şəkillərini əlavə etdik.

Tətbiqi bitirdikdən və nəhayət istifadə etmək istədikdən sonra Blynk tətbiqini işə salmaq üçün sağ üst küncdəki "oynat" simgesini vurun. ESP8266 cihazınızın nə vaxt bağlandığını da görə biləcəksiniz.

Qeyd - "yeniləmə" düyməsi, tətbiqdə görmək üçün AC -nin temperaturunu və vəziyyətini əldə etmək üçün istifadə olunur. Parametrləri dəyişdirərkən (məsələn, temperatur fərqi) avtomatik olaraq itələmək lazım deyil.

Addım 5: Kod

Kodun hər bir hissəsini mümkün qədər asan başa düşmək üçün sənədləşdirmək üçün çox səy göstərdik.

İstifadə etməzdən əvvəl dəyişdirməli olduğunuz kod hissələri (Blynk üçün icazə açarı, wifi SSID və şifrəniz və s. Kimi) //* dəyişdir* şərhini izləyir, beləliklə asanlıqla tapa bilərsiniz.

Kodda istifadə olunan kitabxanalara sahib olmalısınız, Arketino IDE vasitəsi ilə Sketch> Kitabxanaları Daxil et> Kitabxanaları İdarə et düymələrinə basaraq quraşdıra bilərsiniz. Orada kitabxana adını axtarıb qura bilərsiniz. Ayrıca, generic8266_ifttt.h faylını ACsaver.ino ilə eyni yerə qoyduğunuzdan əmin olun.

Kodun qarışmasını istəmədiyimiz üçün burada izah edəcəyimiz kodun bir hissəsi, AC -nin vəziyyətini nə vaxtdan dəyişməyə, otağın vəziyyətini boşdan boşa dəyişməyimizə necə qərar verdiyimizdir.

Sensorlardan hər 3 saniyədə bir oxuyuruq, amma sensorlar 100% dəqiq olmadığından, indi bir dəfə oxumağın otaqda olduğuna inandığımız vəziyyəti dəyişməsini istəmirik. Bunu həll etmək üçün kod nə edirsə, "AC aktivdir" lehinə bir oxunuş əldə etdiyimiz zaman ++ sayğacımız varmı, əks halda. Daha sonra, SWITCHAFTER -də təyin olunan dəyərə çatanda (standart olaraq 4 -ə) vəziyyəti "AC aktivdir" vəziyyətinə, -SWITCHAFTER -ə (eyni dəyər mənfi) çatdıqda vəziyyəti "AC söndürüldü" vəziyyətinə keçiririk. ".

Keçmə müddətinə təsir əhəmiyyətsizdir və bunun yalnız düzgün dəyişiklikləri aşkar etməkdə çox etibarlı olduğunu görürük.

Addım 6: Hamısını bir araya gətirmək

Yaxşı, bütün sensorlar yerindədir və düzgün işləyir. Blynk interfeysi qurulur (düzgün virtual pinlərlə!). Və IFTTT hadisələri tetikleyicimizi gözləyir.

IFTTT gizli açarını koda, Blynk -dən təsdiqləmə açarını, WiFi -nin SSID -ni və şifrənizi daxil etdiniz və hətta DHT sensorlarının kalibrlənib -yoxlanılmadığını yoxlamısınızsa, ofsetini buna uyğun olaraq dəyişdiniz (məsələn, bizim DHT xaricində olması lazım olanı 1 dərəcə Celsiusdan yüksək oxudu, buna görə ofset = -1 istifadə etdik.

WiFi -nin işlədiyinə əmin olun, Blynk tətbiqinizi işə salın və kodu ESP8266 -ya yükləyin.

Bu belədir. Hər şey düzgün edildisə, indi oynaya və hərəkətdə görə bilərsiniz.

Və hər şeyi bir araya gətirməkdə çətinlik çəkmədən hərəkətdə görmək istəyirsinizsə … Yaxşı … Yuxarıya fırladın və videoya baxın. (Altyazı ilə baxın! Səs yoxdur)

Addım 7: Düşüncələr

Burada iki əsas problemimiz var idi.

Əvvəlcə AC -nin işlədiyini necə bilirik? AC ilə pult arasındakı əlaqəni "dinləyəcək" bir IR qəbuledicisi istifadə etməyə çalışdıq. Çox mürəkkəb göründü, çünki məlumatlar çox qarışıq idi və "tamam, bu AÇIQ siqnalı" nı anlamaq üçün kifayət qədər tutarlı deyildi. Buna görə başqa yollar axtardıq. Bir fikir, AC küləyindən hərəkət edərkən kiçik bir cərəyan meydana gətirəcək kiçik bir pervane istifadə etmək, başqa bir cəhdimiz, havalandırma dəliklərində fırlanan qanadların bucağını ölçmək və onların OFF mövqedən hərəkətini aşkar etmək idi.

Nəhayət, bunun ən sadə yolunun AC -dən çıxan küləyi çox etibarlı şəkildə algılayan elektret mikrofonu olduğunu başa düşdük.

DHT sensorlarını işə salmaq bir qədər asan idi;), ancaq bir müddət sonra onlardan birinin real temperaturdan bir qədər uzaq olduğunu anladıq. PIR sensoru əvvəllər təsvir edildiyi kimi bəzi düzəlişlər də tələb edirdi.

İkinci problem bütün həlli sadə və etibarlı etmək idi. İstifadə etmək zəhlətökən bir mənada, yalnız orada olmalı və ehtiyac duyduğunuz zaman itələməlidir. Əks təqdirdə, biz özümüzdən istifadə etməyi dayandıra bilərik.

Beləliklə, Blynk interfeysində nə olması lazım olduğunu bir az düşündük və ortaya çıxara biləcəyimiz hər bir kənar vəziyyətə diqqət yetirərək kodu mümkün qədər etibarlı etməyə çalışdıq.

Bu təlimatı yazarkən həll edə bilmədiyimiz başqa bir problem, AC -ni Blynk interfeysindən söndürməyimizə imkan verən bir IR blaster əlavə etmək idi. AC -ni söndürmək imkanı olmadan unutduğunuzu bilməyin nə mənası var? (yaxşı … kiminsə evdə olduğunu soruşa bilərsiniz).

Təəssüf ki, ESP8266 ilə uzaqdan idarəetmədən AC -yə yazdığımız siqnalları təkrarlamaqda çətinlik çəkdik. Təlimatlara uyğun olaraq AC -ni Arduino Uno ilə idarə edə bildik:

www.instructables.com/id/How-to-control-th…

Tezliklə yenidən cəhd edəcəyik və tapıntılarımızla təlimatlandırıcıları yeniləyəcəyik və inşallah bu qabiliyyətin necə əlavə olunacağına dair göstərişlər verəcəyik.

Gördüyümüz digər bir məhdudiyyət, müəyyən vəziyyətlərdə mümkün olmayacaq bir sensoru pəncərədən kənarda bağlamağımız və uzun bir kabelin çölə çıxması deməkdir. Bir həll, İnternetdəki yerinizin hava məlumatlarını əldə etmək ola bilər. Ayrıca AC -dən işləyən elektret sensoru, IR kodlarının daha çox tanınan və ya deşifr edilməsi asan olan AC modelləri üçün yuxarıda təsvir etdiyimiz İR qəbuledicisi ilə əvəz edilə bilər.

Layihə müxtəlif yollarla uzadıla bilər. Yuxarıda dediyimiz kimi, AC üzərində IR nəzarəti daxil etmək üçün bir yol tapmağa çalışacağıq ki, bu da dünyanın istənilən yerindən AC -ni açmaq və ya söndürmək üçün yeni bir fürsət dünyası açar və ya Blynk vasitəsi ilə vaxtları açar və söndürər. başqa bir nümunə olaraq tətbiq. Texniki IR çətinliklərini anladıqdan sonra kodu əlavə etmək olduqca sadə və sadədir və çox vaxt çəkməməlidir.

Həqiqətən böyük xəyallar qurmaq istəyiriksə … Layihə hər hansı bir AC -ni ağıllı bir AC halına gətirən tam bir modula çevrilə bilər. Və bizdən daha çox ehtiyac yoxdur. Daha çox kod, IR -dən daha çox istifadə və kütləvi şəkildə istehsal olunmasını istəyiriksə, bəlkə də hava məlumatlarını yerə görə gətirdiyinizə əmin olun, onda hər şeyi kiçik bir qutuya qoya bilərik.

Həqiqətən, ehtiyacımız olan daxili temperaturun temperatur sensoru, hərəkəti aşkar etmək üçün PIR sensoru və blaster kimi IR LED və AC ilə istifadə etdiyimiz pult arasındakı əlaqəni "dinləmək" üçün İQ qəbuledicisidir.

Blynk, sehrli qutunu idarə etmək üçün lazım olan bütün imkanları çox sadə və etibarlı bir şəkildə təmin edir.

Belə bir tam layihə hazırlamaq, xüsusən özünü konfiqurasiya etmək və əksər AC -ləri avtomatik aşkar etmək və anlamaq üçün onu çox yönlü etmək baxımından bir az vaxt aparacaq.

Ancaq bunu özünüz üçün etmək, boş vaxtınızda etsəniz, təxminən bir və ya iki həftədən çox çəkməməliyik. Nə qədər boş vaxtınızdan asılıdır … Burada əsas problem AC pultunun göndərə biləcəyi bütün fərqli siqnalları saxlamaq və onları anlamaqdır. (Baxmayaraq ki, onları yenidən təkrarlamaq daha da asan olmalıdır).

Tövsiyə: