Mündəricat:

Güclü Bağımsız Ev Avtomatlaşdırma Sistemi - Pi, Sonoff, ESP8266 və Node -Red: 9 addım (şəkillərlə)
Güclü Bağımsız Ev Avtomatlaşdırma Sistemi - Pi, Sonoff, ESP8266 və Node -Red: 9 addım (şəkillərlə)

Video: Güclü Bağımsız Ev Avtomatlaşdırma Sistemi - Pi, Sonoff, ESP8266 və Node -Red: 9 addım (şəkillərlə)

Video: Güclü Bağımsız Ev Avtomatlaşdırma Sistemi - Pi, Sonoff, ESP8266 və Node -Red: 9 addım (şəkillərlə)
Video: 40 полезных автотоваров с Aliexpress, которые упростят жизнь любому автовладельцу #6 2024, Noyabr
Anonim
Güclü Bağımsız Ev Avtomatlaşdırma Sistemi - Pi, Sonoff, ESP8266 və Node -Red
Güclü Bağımsız Ev Avtomatlaşdırma Sistemi - Pi, Sonoff, ESP8266 və Node -Red

Bu bələdçi, yerli şəbəkənizə qoşula bilən hər hansı bir cihazla və əla bir özelleştirilebilir veb interfeysi ilə bir işığı və ya cihazı aça/söndürə biləcəyiniz ilk bazaya gətirməlidir. E -poçt göndərmək, twitter mesajları göndərmək, oxu sensorları (məsələn, temperatur) daxil olmaqla genişləndirmə/ əlavə etmə imkanları genişdir. Qaydaları asanlıqla təyin edə bilərsiniz, məsələn. - 23C -də temperatur 15C -dən aşağı olarsa, elektrikli yorğanı 30 dəqiqə yandırın. Sistem, UDP -dən xeyli daha etibarlı olan TCP ilə MQTT protokolundan istifadə edir - təəccüblü olaraq bəzi ticarət ev avtomatlaşdırma cihazları tərəfindən istifadə olunur. Burada təsvir olunan sistemi qurmaq üçün çətin işlər edildikdən sonra əyləncəyə başlaya bilərsiniz. Node Red, intuitiv, sürətli və asan qurulan və inanılmaz qabiliyyət təmin edən fantastik bir istifadəçi interfeysi təqdim edir.

Nəticə, tamamilə öz nəzarətində olan və tamamilə yerli bir şəbəkədə olan güclü bir ev avtomatlaşdırma sistemidir. Instructables -da göstərilən sistemlərin bir çoxu bulud əsaslı serverlərlə işləyir və bu səbəbdən bir təhlükəsizlik riskidir və abunə olmağı tələb edə bilər. Bunları qurmaq daha asandır, lakin daha yüksək təhlükəsizlik riski və potensial olaraq daha yüksək qiymətə malikdir. Əlavə etməliyəm ki, kənardan giriş faydalı olarsa ev şəbəkəsinə/sisteminə etibarlı bir əlaqə qurmaq üçün Pi -yə VPN (virtual özəl şəbəkə) qura bilərsiniz (təlimatlar üçün Google Pi OpenVPN).

Bu sistem, Sonoff cihazlarının Sonoff-Tasmoda adlı böyük bir açıq mənbə sistemi ilə yenidən proqramlaşdırılmasını tələb edir. Bu xüsusi bir Arduino qurğusu və USB -dən serial çeviricisindən istifadə etməklə edilə bilər. Sonoff cihazları ESP8266 Wi-Fi çipini istifadə edir, buna görə də ESP8266 modullarından istifadə edərək öz cihazlarınızı düzəldə və ya simsiz əlaqə təmin etmək üçün onları digər əşyalara yerləşdirə bilərsiniz.

Ən böyük vəzifə bir Raspberry Pi qurmaqdır. Bu, əlaqəli qurğularla əlaqəni idarə edən MQTT brokerini (və ya serverini) idarə edir. Pi, Node-Red adlı bir sistemi də idarə edir ki, bu da mesajları, məlumatları və çıxış əmrlərini ələ keçirə bilər-məsələn, elektrik örtüyünün nə vaxt açılacağı. Node-Red eyni zamanda smartfon/planşet/PC/Laptop vasitəsi ilə daxil ola biləcəyiniz veb səhifəyə xidmət etmək, baş verənləri görmək və işıqların əl ilə dəyişdirilməsini və s.

Bu təlimatlandırmada məqsədim, hər bir addımı yeni başlayanın sistemi işə sala biləcəyi qədər ətraflı şəkildə verməkdir.

Adımlar bunlardır:

  • Rasbian Stretch ilə Pi yükləyin
  • Node-Red-ə xüsusiyyətləri yeniləyin və əlavə edin
  • Mosquitto MQTT brokerini quraşdırın
  • Sonoff-Tasmota firmware yükləmək üçün Arduino mühitini qurun
  • Sonoff açarını yenidən proqramlaşdırın
  • Node-Red interfeysini qurun
  • Test edin, hamısı işləyir.

Lazım olacaq avadanlıq:

  • Raspberry Pi və enerji təchizatı (və ilkin qurulma üçün klaviatura və monitor) (burada B modeli istifadə olunur)
  • Sonoff açarı
  • USB Serial çeviricisi
  • İsteğe bağlı - NodeMCU kimi ESP inkişaf lövhəsi.

Raspberry Pi ilə təcrübəm, bir şeyin qurulmasının, işləməyəcəyi və ya izahının daha yaxşı ola biləcəyi bəzi əhəmiyyətsiz bir addımda ilişib qalması ilə təsəvvür edə biləcəyinizdən daha çox ağrını ehtiva etdiyi görünür. Forumlar həmişə işləyən məsləhətlər almır! Bu və ya digər səbəbdən işləməyən bir neçə marşrut tapdım. Bu 3 günə başa gəldi! Sonra hər şeyi sildim və yenidən başladım və (uzun) bir gündən az müddətdə tamamladım. Bununla birlikdə daha yaşlı Raspian Jessie istifadə etdi. Bundan sonra, mövcud və bu yaxınlarda buraxılmış versiyanı (Stretch) istifadə etmək üçün bir yol tapdım və hər şeyi yenidən etdim. Bu təlimat təlimatların Pi -yə kopyalanmasını və yapışdırılmasını təmin edir. Buna görə bir neçə saat ərzində bunu etməlisiniz. Hər halda, ümid edirəm ki, bu, öyrənmə əyrisini daha sürətli və daha az ağrıyla sürətləndirəcək. İnanın son nəticə üçün buna dəyər.

Addım 1: Rasbian Stretch ilə Pi yükləyin

Bu olduqca sadə olmalıdır. 8Gb və ya 16Gb SD kartla başlayın. Ən son versiyanı buradan yükləyin:

www.raspberrypi.org/downloads/

Buradakı əsas mövzu tam versiyanın yükləndiyini düşünür. Ancaq yer qənaət etmək üçün sadə versiyadan istifadə edə bilərsiniz. Raspbian Stretch Lite istifadə edirsinizsə, bu addımı keçin və sonunda 9 -cu addıma keçin.

Yüklənmiş faylın açılması.img faylı olan bir qovluq verir. 7Zip Windows (və Unarchiver Mac) üçün tövsiyə olunur. Şəkil SD karta yazılmalıdır - ancaq fayl sistemi Windows ilə uyğun olmadığı üçün xüsusi bir proqram istifadə edilməlidir. Tövsiyə olunan proqram Etcher adlanır və buradan yükləyə bilərsiniz:

etcher.io/

Etcher üçün təlimatlar veb saytında var və çətin ola bilər. Şəkli və sürücünü seçin və Flash düyməsini basın.

İndi yanan SD kartımızla Pi işləyə bilər.

Pi -nin istifadə etdiyi IP ünvanını bilirsinizsə və ya marşrutlaşdırıcınıza daxil olaraq onu tapmaqdan xoşbəxtsinizsə, klaviatura və monitor ehtiyacından qaçın və dərhal SSH -dən istifadə edə bilərsiniz. Sadəcə SD karta SSH adlı boş bir fayl əlavə edin, daxil edin, Ethernet -ə qoşulun və işə salın. Əks təqdirdə, aşağıdakı təlimatı izləyin.

Pi -ni internetə, ekrana, siçana və klaviaturaya qoşun və gücə qoşun. Etəcəyimiz ilk şey, SSH -ni aktivləşdirməkdir ki, qurulmanın böyük bir hissəsini kompüterdəki rahatlıqdan edə bilək. Əlbəttə ki, birbaşa edilə bilər, ancaq Pi -ni idarə edən bir cihazda bu təlimatı izləmək və təlimatların çoxu üçün kopyala və yapışdırmaqdan istifadə etmək çox kömək edir. Həm də mənim vəziyyətimdə PC iş stansiyam gözəl və rahatdır, amma pi üçün kifayət qədər böyük deyil.

Bir YouTube videosunda yaxşı bir iş üçün bir bələdçi var. Bura başladığım yerdir. Videonu bu təlimatlara uyğun olaraq işlədə bilərsiniz. Ancaq bunu yazarkən prosesi yenidən davam etdirərkən buradakı təlimatları izləməyi daha asan gördüm. Bəzi əhəmiyyətli sapmalar var. Buradakı addımları sadalamaqdansa, videonu izləməyi məsləhət gördüyüm bəzi bölmələr də var. Bununla birlikdə, MQTT, Node-Red və geniş quraşdırma prosesini başa düşmək üçün ona baxmağı məsləhət görürəm. Videonun uzunluğu 38 dəqiqədir, buna görə özünüzü rahat hiss edin. Video, Node Red -in nə edə biləcəyini göstərməklə başlayır və sonra Pi quraşdırma və quruluşunu əhatə edir, sonra Node Red -in təkmilləşdirilməsi və son olaraq Mosquitto'nun quraşdırılması. Bir hissəyə qayıtmaq istəsəniz əsas vaxtlar:

00:00 Videoya Giriş

03:00 Qırmızı Node nümayişi

14:14 Node Red -ə tablosuna elementlərin idxalı

21:05 SSH daxil olmaqla Pi ilkin quruluşu

23:35 Node Red dəstəkləyici kodun quraşdırılması

27:00 MQTT -yə giriş

29:12 Mosquitto (MQTT) quraşdırılması (Qeyd yalnız Raspian Jessie üçün işləyir)

33:00 Node Red nümunələri

Əmrləri qalın kursivlə yazacağam (“” istifadə etmək əvəzinə). Kopyalayaraq Pi -yə yapışdırdığınız zaman bu formatlaşdırma nəzərə alınmır.

Node Red -ə giriş, sistemin nələr edə biləcəyi haqqında bir fikir verəcək və sona çatacağımız yerin bir şəklini verəcəkdir.

YouTube videosu:

21: 05 -dən 23: 35 -dək quraşdırma proseduruna əməl edin. Varsayılan girişin istifadəçi olduğunu unutmayın: pi və parol: moruq. Yenidən başlamazdan əvvəl pi -nin IP ünvanını tapın. Masaüstünün üst çubuğundakı 'yuxarı+aşağı ox' simgesini basın və ya terminal/terminal pəncərəsinə aşağıdakı təlimatı daxil edin:

sudo ifconfig ünvanı

Sonra IP ünvanını qeyd edin: inet addr:. 192.168.x.y şəklində olacaq

Bu ünvanı qeyd edin və yenidən başladın (daxil edin: sudo shutdown –r indi)

Bu nöqtədəki əsas şey, SSH -nin aktiv olması və bir kompüterdən Pi -yə bir keçid qurmaqdır (Mac və Linux -da SSH interfeysləri var). Bunu etmək üçün yaxşı bir proqram PuTTY adlı pulsuz bir yükləmə proqramıdır, bu da serial interfeysi olaraq istifadə edilə bilər və Telnet -i edə bilər. Macun aşağıdakılardan əldə edilə bilər:

www.chiark.greenend.org.uk/~sgtatham/putty…

PuTTY yükləyin və quraşdırın.

İndi, Pi yenidən başladıqda, PuTTY -yə başlayın və əvvəllər qeyd etdiyiniz IP ünvanını daxil edin. Aşağıdakı nümunəyə baxın:

İndi Aç düyməsini basın

Girişdən sonra: pi daxil edin

Sonra şifrənizi daxil edin.

İndi buradakı təlimatları izləyin və isteğe bağlı olaraq 23: 35 -dən başlayaraq videoya başlayın. Əksər hallarda kopyalayıb yapışdıra bilərsiniz. Mətni vurğulayın və kopyalamaq üçün ctrl+C istifadə edin. Sonra yapışdırmaq üçün PuTTY düyməsini sağ vurun. Bəzən mətn dərhal görünmür, buna görə bir neçə saniyə gözləyin. İki dəfə daxil etsəniz, ikinci girişi silmək üçün backspace düyməsini istifadə edin. Hər bir əmri yerinə yetirmək üçün enter düyməsini basın.

sudo raspi-yeniləmə

Tapılmayan bir əmr aldım və buna və aşağıdakı bağlama/yenidən başlatma təlimatına məhəl qoymadım:

sudo kapatma -r indi

sudo apt -get -y yeniləməsi

sudo apt -get -y təkmilləşdirilməsi

Bu bir az vaxt aparır ….

sudo apt-get avtomatik silin

sudo apt -get -y yeniləməsi

sudo kapatma -r indi

Bu nöqtədə, növbəti addıma hazır olan Pi əməliyyat sistemini yüklədik və yenilədik.

Addım 2: Yeniləmə və Node-Red-ə Xüsusiyyətlər əlavə edin

PuTTY bağlantısı əvvəlki addımın sonunda yenidən başladıqda itiriləcək. PuTTY -ni bağlayın və Pi -nin açılmasını gözlədikdən sonra əvvəlki kimi yenidən daxil olun.

Node-Red yükləmək üçün daha sadə və daha etibarlı bir üsula keçdim-https://nodered.org/docs/hardware/raspberrypi ünvanından istifadə edərək. Bu bir skriptdən istifadə edir və Node-Red-i quraşdıracaq və ya təkmilləşdirəcək-buna görə də yanaşma Raspbian Stretch-in tam və ya sadə versiyalarında işləyir. Buna görə daxil olun:

bash <(curl -sL

İstənildikdə Y daxil edin (iki dəfə). Bu skript, Node-Red-in avtomatik başlamasını təmin etmək üçün lazım olan faylları da yükləyir.

Beləliklə, bu nöqtədə pi -ni yüklədik və yenilədik və Node Red üçün lazım olan yeniləmələri əldə etdik. Növbəti mərhələdən əvvəl yenidən başlamağın heç bir ziyanı yoxdur.

sudo kapatma -r indi

Addım 3: Mosquitto MQTT Quraşdırması

Əgər hələ belə etməmisinizsə, saat 27: 00 -dan etibarən videoda MQTT -nin video girişini izləməyə dəyər.

Fərqli bir yol tutmalı olduğumuz yer budur. Videoda göstərilən prosedur yalnız Raspianın köhnə Jessie versiyası üçün işləyir. Ağcaqanad yerində bir müzakirə var, ancaq aydın bir nəticə göstərilmir və bu səbəbdən daha sadə və daha təhlükəsiz bir yola sadiq qalacaq.

Buna görə PuTTY istifadə edərək daxil olun və aşağıdakıları daxil edin:

sudo apt-get yeniləməsi

sudo apt-get mosquitto mosquitto-clients qurun

Y

sudo /etc/init.d/mosquitto dayandırın

sudo /etc/init.d/mosquitto başlayın

Son iki təlimat ağcaqanadları dayandırır və işə salır və MQTT brokerimizin işlədiyini göstərir.

Sürətli bir test üçün daha iki PuTTY sessiyası açın və hər birinə daxil olun.

Artıq biləcəksiniz ki, MQTT cihazla işləyərək 'mövzuya' abunə olan məlumatlara ehtiyac duyur. Broker eyni 'mövzu' ilə hər hansı bir məlumat göndərəcək. Sonra məlumat/təlimat göndərmək istəyən cihaz bunu eyni 'mövzudan' istifadə edərək brokerə dərc edir.

Beləliklə, bir PuTTY sessiyasına daxil olun:

mosquitto_sub -d -t salam/dünya

Bu mövzuya abunə olmaq üçün bir təlimatdır: salam/dünya.

Digərinə daxil edin:

mosquitto_pub -d -t salam/dünya -m "Terminal 2 pəncərəsindən salam!"

Bu, bir mövzu ilə eyni mövzuda bir nəşr təlimatıdır. Mətn: "Terminal 2 pəncərəsindən salam!" indi digər terminalda görünməlidir.

Bu yerə qədər getməyiniz yaxşıdır. İndi Pi Node-Red üçün lazım olan yeniləmələrlə yüklənmiş və yenilənmiş və ağcaqanad MQTT brokerinin quraşdırılıb sınanmışdır. Bundan sonra həyat bir az daha əyləncəli olur. MQTT testi üçün istifadə olunan iki PuTTY sessiyasını bağlayın.

Addım 4: Qırmızı Node Arayüzünün Qurulması

Əvvəlcə Node Red -ə başlamalıyıq. Təlimatı daxil edin:

node-red-pi --max-old-space-size = 256

Çalışmasını gözləyin və "Başlanğıc axınlar" yazısını görürsünüz.

İndi bir brauzer açın, Chrome -dan istifadə edirəm və əvvəllər qeyd olunan pi IP ünvanını daxil edin: 1880 yəni 192.168.0.8:1880 kimi bir şey

İndi Node Red proqramlaşdırma səhifəsinə aşağıdakı kimi baxmalısınız:

İndi Node Red nümunələrini saat 33: 00 -dan başlayaraq izləyə bilərsiniz və ya birbaşa kiçik bir əlavə quruluşa keçə və MQTT bağlantısını göstərən və keçidimizi idarə etməyə hazır olacaq ilk axını yükləyə bilərsiniz.

Lazım olan əlavə quraşdırma, veb interfeysini təmin edən tablosuna maddələr əlavə etməkdir.

Bunlar videoda 14: 14 -də göstərilir.

Node-red-tablosunu yükləmək üçün təlimatları izləyin.

İndi bir az oyun oynaya və MQTT-nin Node-Red tərəfindən işlədildiyini və idarə olunduğunu göstərə bilərik. Bu videoda deyil, bu layihənin açarıdır. Təlimatlarımı izləyə və/və ya əlavə edilmiş NRtest1.txt faylından axınları idxal edə bilərsiniz.

Əvvəlcə bir giriş enjeksiyon nodu və bir çıxış mqtt nodu əlavə edin və onları bir -birinə bağlayın.

Enjeksiyon düyməsini iki dəfə vurun (əvvəlcə zaman damgası olaraq etiketlənir). Payload bölümündə twiddly -dən istifadə edərək string -ə keçin və daxil edin: Salam məndən. MQTT qovşağına daxil edə biləcəyimiz üçün mövzunu boş buraxın. Bitti düyməsini basın

İndi MQTT düyününü iki dəfə vurun. Server bölməsinin sağındakı qələm simgesini vurun. Bu yeni bir dialoq açır. Daxil edin: Server bölməsində localhost. Əlavə et vurun. İndi yenidən mqtt çıxartma qovşağında, mövzumuza Mövzu bölümünə daxil olun: salam/dünya. QoS -u 1 -ə təyin edin. Bitti düyməsini basın. İndi Deploy vurun. Mqtt nodunun altında yaşıl bir ləkə və "bağlı" görməlisiniz.

İndi daha iki qovşaq əlavə edin - mqtt daxil edin və çıxış ayıklayın və bunları bir -birinə bağlayın. İndi mqtt giriş düyməsini iki dəfə vurun və mövzu hissəsinə salam/dünya daxil edin. Server artıq localhost göstərməlidir: 1883. QoS -u 1 -ə təyin edin. Bitti düyməsini basın. Sonra "Dağıt" düyməsini basın və sağ paneldəki ayıklama sekmesini basın. İndi 'Məndən Salam' enjeksiyon düyününün solundakı boz kvadratı vurun. Bu, mətn yükünü MQTT brokerinə salam/dünya mövzusunda göndərir. Vasitəçi, mqtt giriş düyününün eyni mövzuya abunə olduğunu bilir və buna görə də yükü ötürür. Mqtt giriş nodu daha sonra bunu ayıklama sekmesine (RHS) göndərir və 'Məndən salam' yazısı görünməlidir.

Node Red -in MQTT brokerimizlə danışdığı üçün bu başqa bir qutuya işarədir. Diqqət yetirin ki, Node Red, brokerin yalnız bir müştərisidir - daha sonra bağlayacağımız Sonoff cihazları kimi. Bununla birlikdə inkişaf etmiş bir avtomatlaşdırma təmin edir və əla bir istifadəçi interfeysi təmin edir.

İndi bir neçə kiçik dəyişiklik edə və Sonoff keçidimiz üçün axını qura bilərik.

Beləliklə, giriş vurma düyməsini silin (vurğulamaq üçün basın və sil düyməsini basın). İndi paneldən bir keçid əlavə edin və mqtt çıxışına qoşun. İki dəfə keçid düyməsini basın. Qrupun sağındakı qələmi vurun. Adı daxil edin: İşıq. Sonra Tabın sağındakı qələmi vurun və Ad bölməsinə daxil olun: Lounge. Əlavə et/Yeniləyin və Yenidən Əlavə et/Yeniləyin. İndi, Düzenle keçid qovluğunda, Yüklərin açılmasını və sönməsini təyin edin. Simli seçmək üçün twidlys istifadə edin və On yükü üçün ON və OFF yükü üçün OFF yazın. Bitti düyməsini basın

İndi mqtt qovşaqlarının hər birinə gedin və mövzunu cmnd/sonoff/POWER olaraq dəyişdirin. Kopyalayıb yapışdırırsınızsa, sonunda boşluq qoymadığınızı yoxlayın. Bu fərqli bir mövzudur və Sonoff ilə işləməyəcək. Sahibsiz bir yer tapmaq bir saat çəkə bilər - inanın! Mən də tablosuna keçdim> Mövzu və seçdim: Qaranlıq. Deploy düyməsini basın və debug sekmesini seçin.

İndi yeni bir pəncərədə yeni bir brauzer iclası açın və Node Red seansının üzərində cib telefonu kimi ölçüsünü verin. Ünvanı daxil edin: Pi IP ünvanınız: 1880/ui/#/0 yəni 192.168.0.8:1880/ui/#/0. Lounge və Light ilə bir ekran görməlisiniz və keçid etməlisiniz. Açarı və sonra söndürmə düyməsini basın. Debug pəncərəsində ON və OFF yükləri göstərilməlidir. İstəyirsinizsə, cib telefonu ilə də daxil olun. Qeyd edək ki, keçid mövqeyi sinxronlaşdırılır. Sonoff -un hələ də bağlı olmaması vacib deyil. O zaman, Mövzuya abunə olaraq mesajı/yükü götürəcək və buna uyğun hərəkət edəcək.

Son bir kiçik addım, Pi çəkildikdən sonra Node Red -in avtomatik olaraq işə salınmasıdır.

Node Red -in bir bələdçisi var:

Ancaq lazım olan fayllar artıq yüklənmişdir, buna görə heç bir quraşdırma tələb olunmur.

Node-RED-in hər açılışda avtomatik işləməsini təmin etmək üçün və qəzalar zamanı daxil olun (PuTTY sessiyasını açın):

sudo systemctl nodered.service imkan verir

Bunu aradan qaldırmaq lazımdırsa, daxil olun:

sudo systemctl nodered.service'i deaktiv edin

İndi pi -ni sudo ilə bağlayın və enerjini kəsin.

Bu artıq Pi -ni kilidləyib işə hazır vəziyyətə gətirdi. Node Red -ə qoşulan PC/mobil telefonumuz var və bu MQTT serverimizlə danışır. Bu uzun bir yol idi və arxada böyük bir vuruşa dəyər. Əla. Növbəti Arduino bitini daha yaxşı tapdım!

Addım 5: Sonoff Cihazlarının Yenidən Proqramlaşdırılması üçün Arduino Sisteminin Qurulması

Bunu etmək üçün bütün məlumatlar Sonoff-Tasmota GitHubdadır. Çətinliklə qarşılaşdığım yeganə mövzu Mövzu mətni idi - amma hiyləgərliklə bu işə girməyinizə icazə verdim!

Https://github.com/arendst/Sonoff-Tasmota saytına daxil olun

Quraşdırma təlimatlarını Yükləmə vasitələri bölməsində Wiki sekmesinde tapa bilərsiniz:

Hər addımı keçmək əvəzinə, vacib hiss etdiyim və ya yapışdığım əsas cəhətləri qeyd edəcəyəm.

Təlimatlar yaxşıdır, amma detallara diqqətlə yanaşmaq lazımdır. ESP8266 adlı başqa bir qovluğun içərisində olan bir qovluqda bir ESP8266 qovluğuna ehtiyac duyduğum üçün iki səviyyəni qaçırdım.

Tamamilə ayrı bir Arduino qurğusu üçün tövsiyələrə əməl etdim. Mövcud Arduino qovluğumdan ayrı olan 'ArduinoSonoff' adlı yeni bir qovluq yaratdım. Quraşdırma olduqca inkişaf etmişdir və buna görə də ayrı saxlamaq çox yaxşı bir fikirdir. Bu ilk Arduino quruluşunuzdursa, ESP8266s üzərində iş də daxil olmaqla digər Arduino işləri üçün 'Arduino' ya da başqa bir qovluğa ikinci dəfə quraşdırdığınızdan əmin olun.

Ən son Arduino IDE -ni https://www.arduino.cc/en/Main/Software saytından yükləyin. Faylı yeni qovluğa açın.

Təlimatlara Sonoff-Tasmoda sistemini https://github.com/arendst/Sonoff-Tasmota ana səhifəsindən: Clone və ya Yüklə> ZIP yükləyin. Faylı yeni qovluğa açın.

Təlimatları diqqətlə izləyin. İsteğe bağlı etmədim: OTA yükləmə hissəsinə hazırlaşın. Bunu başqa bir gün tərk edəcəyik.

İndi Arduino IDE -ni işə salın (arduino.exe -ə iki dəfə vurun). Sonoff-Tasmota eskizini Fayl> Sketchbook> sonoff vasitəsilə yükləyin. Heç bir düzəliş etməyə ehtiyac yoxdur. Firmware yükləndikdən sonra bütün parametrlər serial bağlantısı ilə edilir. Bunlar EEPROM -da saxlanılır. Beləliklə, proqram təminatı yenilənə və bütün parametrlər saxlanıla bilər. Bu olduqca ağıllı şeylərdir. Bununla birlikdə, user-config.h faylına daxil olaraq wifi SSID və şifrənizi və MQTT_HOST daxil edərək bir neçə addımı atmaq ehtiyacından qaça bilərsiniz ("domus1"-ikinci istinadı Pi IP ünvanınızla əvəz edin). Daha sonra bir MQTT istifadəçisi və şifrənizi də daxil etmək istəyə bilərsiniz. Yükləməzdən əvvəl Alətlər altından lövhə parametrlərini yoxlayın. Vikilikdə göstərilən tələblərə uyğun gəlmək üçün bunlar bir neçə dəyişikliyə ehtiyac duyacaq. İndi tərtib edin (işarəni işarələyin). Tamam tərtib etməlidir. Lazım deyilsə və ya lazımi lövhə parametrləri yoxdursa, geri qayıdın və quraşdırmanın hər bir addımını yoxlayın.

Addım 6: Sonoff Switch -in yenidən proqramlaşdırılması

İndi yükləməyə hazırıq. Bu mərhələdə ya birbaşa irəli gedə bilər, ya da Sonoff açarını yandıra bilər və ya əvvəlcə bir ESP8266 modulunu yandıra bilər. İkincisini, qismən açarlarım hələ gəlməmiş olduğu üçün etdim (yalnız bunu yazdığım zaman gəldi!), Həm də Sonoff açarının yanıb -sönməsi bir tədbir olaraq orijinal proqram təminatı ictimaiyyətə açıq olmadığı üçün bir tərəfli addımdır. Xəbərim var. Bir neçə NodeMCU lövhəm var. Güclü USB-ni seriya çeviricisinə malik olaraq bağlamaq asandır. Ancaq nodemcu sıfırlama üsulu bu sistemlə işləmir. Beləliklə, Alətlər> Sıfırlama Metodunu "ck" olaraq təyin edin. Sıfırla (Zəminə sıfırla) düyməsini basaraq sərbəst buraxarkən Flaş düyməsini (yerə GPIO 0) basıb normal manuel flaş qurğusunu edin. Bunun bir zaman aşımı olub -olmadığını və ya bəlkə də GPIO 0 -u kifayət qədər uzun müddət saxlamadığımdan əmin deyiləm, amma Arduino IDE tərtib edilərkən bunu etmək də daxil olmaqla bir neçə cəhdə ehtiyacım var idi!

Cavabları yoxlamaq istəyirsinizsə - NodeMCU lövhələrində röle çıxışı D6 -dır. ESP12 -də bu GPIO 12 -dir. LED çıxışı D7 (NodeMCU) və ya GPIO 13 (ESP12 -lər) dir.

Sonoff açarı.

XƏBƏRDARLIQ: "Qutunun açıq olduğu heç bir halda elektrik şəbəkəsinə qoşulmayın" deməliyəm. Diqqət yetirin ki, PCB (ən azı Sonoff Basic-də (xətti açarda) yalnız aşağı gərginlikli bölmə ilə şəbəkə arasında "tək izolyasiya" məsafələrinə malikdir. Buna görə də Sonoff dövrəsinin hər hansı bir hissəsini elektrik gərginliyi kimi qəbul etmək lazımdır. Sonoff- Tasmota GitHub, temperatur və rütubət sensorunun Sonoff S20 ilə əlaqəsini göstərir. İzolyasiya narahatlığından ötəri bunu etməzdim - buna görə də bunu etmək istəyirsinizsə ESP12 və ya NodeMCU modulunu əldə edin və uyğun bir cüt izolyasiya ilə ayrıca qurun. və ya topraklanmış enerji təchizatı.

Sonoff S20 plug-in açarı yaxşı bir başlanğıc nöqtəsidir, çünki heç bir elektrik kabelinə ehtiyac yoxdur. Bu, bir vidayı (təhlükəsizlik möhürünün altındakı) çıxarıb və korpusu açıq qoyaraq açıla bilər. Aşağıdakı fotoşəkil etiketlərin harada olduğunu göstərir. Davanın bu nöqtələrdə sıxılması kömək edir.

USB seriya çeviricisi

Ən çox sevdiyim çevirici FTDI versiyasıdır. Ancaq bunun Sonoff 3.3v ehtiyaclarını təmin etmək üçün kifayət qədər qabiliyyəti yoxdur. FTDI spesifikasiyasında maksimum 50ma deyilir. Növbəti ən yaxşı alternativ CP2102 çipindən istifadə etməkdir. Bununla birlikdə hələ də kifayət qədər olmayan 100ma limiti var. Aydındır ki, çoxları bu çeviricini birbaşa istifadə edir, lakin yüklənmənin uğursuz olduğu barədə məlumatlar da var. Yükün altında istiləşəcəyi üçün bağlandığı vaxtı məhdudlaşdırardım. Bunu öz riski ilə edin. İdeal həll yolu 3.3v tənzimləyiciyə sahib olmaqdır. bir AMS1117 3.3. Bunu təmin etmək üçün kiçik bir PCB hazırladım. Sonoff cihazları üçün Proqramçıya baxın.

Proqramlaşdırma ardıcıllığım belədir:

Arduino IDE -ni açın.

Alətlər altında parametrlərin Vikilikdəki kimi olduğunu yoxlayın.

User_config.h üçün lazım olan hər hansı bir düzəliş edin. Wifi SSID və şifrəni və MQTT broker ünvanını və saat qurşağı/gün işığına qənaət təfərrüatlarını təyin etdim.

Tamamlandığını yoxlamaq üçün 'Doğrula' düyməsini basın.

USB serial çeviricisini (tək başına) PC -yə qoşun. Liman nömrəsinə diqqət yetirin.

İndi USB seriyalı kabelini PC -dən ayırın və Sonoff açarına qoşun. Torpağı yoxlayın və 3v3 əlaqələri düzgün istiqamətdədir (torpaq Sonoff PCB -də yer müstəvisinə bağlıdır).

Proqramçı düyməni basarkən kontaktların etibarlı olması üçün saxlayın.

İndi USB kabelini PC -yə qoşun, port nömrəsinin düzgün olduğunu yoxlayın (Alətlərdə), sonra Yüklə düyməsini basın.

Proqram boyunca düyməni basıb saxlamağa davam edirəm, çünki əlaqələri pozmaq istəmirəm.

Bitirdikdə aşağıdakı kimi bir ekran görməlisiniz:

Şəkil
Şəkil

Sonoff sistemimizə qoşulmaq üçün bir neçə bit məlumata ehtiyac duyur: yerli şəbəkə wifi SSID və parol və Pi IP ünvanı. Bunun bir neçə yolu var, onlardan biri config.ino faylını əvvəl qeyd edildiyi kimi dəyişdirməkdir. Bir smartfonunuz varsa (açarı yenidən yığdıqdan sonra) veb-server rejiminə keçmək üçün Sonoff düyməsini kifayət qədər tez 4 dəfə basa bilərsiniz. LED yanıb -sönəcək. Bunu işə salmaq üçün bir neçə dəfə cəhd etməli oldum. Sonra, smartfonunuzda yeni Sonoff şəbəkəsini axtarın və qoşulun. Lazımi məlumatları təyin edə biləcəyiniz bir veb səhifəsi görünəcək. Pi IP ünvanı host adına daxil olur. İkinci SSID və şifrəni də uzun və əsasən yararsız hala gətirdim.

Alternativ olaraq, yükləndikdən dərhal sonra serial bağlantısı ilə qurula bilər. Arduino Serial Monitorunu açın (Alətlər altında).

Daxil etmək əmrləri:

Wi -FiSSID -ni SSId edin

Wi -Fi şifrənizi parolunuza daxil edin

MqttHost 192.168.x.y (PI IP ünvanı)

Bunu effektiv şəkildə aradan qaldırmaq üçün uzun və yararsız bir şey izlədikdən sonra SSId1 və Password1 daxil edə bilərsiniz.

İndi Sonoff keçidini bağlaya, Node-Red və Node-red tablosunu aça və keçid düyməsini basa bilərsiniz və indi Sonoff-un cavablarını ehtiva edən ayıklama sekmesine baxa bilərsiniz. Başqa bir böyük addımımız var - ilk açarımız PC/smartfondan idarə olunur.

İndiyə qədər təhlükəsizlikdən bəhs etməmişik. Şifrəli ünsiyyətdən istifadə etmək imkanı var. Qurmaq olduqca mürəkkəbdir və bulud əsaslı bir brokerin istifadə edildiyi yerlərdə daha uyğundur. Anonim istifadəçilərə icazə verməyən bütün bağlı cihazlar üçün istifadəçi adları və şifrələr əlavə etmək imkanı da var. Bu qurmaq olduqca sadədir. Və indi Təhlükəsizliyə.

Addım 7: Təhlükəsizlik

MQTT, hər bir müştəri üçün istifadəçi adlarına və parollara icazə verir. Bu qurmaq asandır. Əvvəlcə hər bir cihazın adını dəyişdirmək və sonra istifadəçi adlarını və şifrələrini təyin etmək daha asandır. Bu MQTT əmrləri ilə edilə bilər və Node-Red, ehtimal ki, bunları göndərməyin ən asan yoludur. Əvvəlcə bir adlandırma konvensiyasına qərar verin. Seçimlərdən biri də adları məkana və funksiyaya əsaslandırmaqdır. Sonra geri mövzu ilə birlikdə adı (Mövzu) istifadəçi adını və şifrəni qeyd etmək istəyəcəksiniz. Sonoff parametrlərini orijinal yükləməyə qaytarmaq üçün 'sıfırlama seçimi' də var (Wiki İstifadəsi> Düymə İşlevselliğine baxın).

Pi'yi gücləndirin və bir neçə saniyədən sonra Node-Red üçün bir brauzer açın (IP ünvanı: 1880).

Node-Red-də bir enjeksiyon düyünü qurun və bunu bir mqtt çıxışına bağlayın və mqtt serverini localhost olaraq təyin edin. Mövzu, istifadəçi və şifrəni boş buraxın, çünki bunları enjeksiyon qovşağına qoyacağıq. Bir mqtt giriş düyünü qurun və cavabları görə biləcəyimiz üçün bunu bir debug düyünə bağlayın. Mqtt giriş qeydini localhost olaraq təyin edin (artıq qurulmalıdır) və mövzu üçün+/+/+daxil edin ki, bütün trafiki tutsun.

Enjeksiyon qovşağına aşağıdakı parametrlər ardıcıllığını daxil edin.

Əvvəlcə əlaqəni yoxlayın

Mövzu: cmnd/sonoff/Status

Mesaj: 6

'Başlanğıcda bir dəfə enjekte et' düyməsini basın. Yerləşdirmək. Stat/sonoff/STATUS6 -dan 7 sətir məlumat daxil olmaqla debug görməliyik

Mövzu daxil edin: cmnd/sonoff/Mövzu və Mesaj: loungelight. Yerləşdirmək. Bu keçid adını sonoff -dan loungelight -a dəyişir

Ayıklama sekmesinde cihazın yeni adı/mövzusu ilə yenidən başladığını göstərməlidir

Mövzu: cmnd/loungelight/MqttUser

Mesaj: salon işığı

Dağıtma düyməsini basın. {"MtqqUser": "loungelight"} ilə stat/loungelight/RESULT -dan bir ayıklama görülməlidir

Mövzu: cmnd/loungelight/MqttPassword

Mesaj: loungelightPW (qeyd bundan daha təsəvvürlü olsun!)

Ayıklama sekmesini təmizləyin və yerləşdirin.

Stat "/loungelight/RESULT" dan {"MqttPassword": "loungelightPW"} ilə bir cavab görülməlidir.

İndi mqtt out node -da istifadəçi adı və şifrə olaraq NodeRed və NodeRedPW daxil edin. Bu, açılan pəncərədə Server qələmi simvolu və təhlükəsizlik nişanı vasitəsilədir. Bu avtomatik olaraq digər MQTT qovşaqlarına köçürülür.

İlə yenidən yoxlayın

Mövzu: cmnd/loungelight/Status və Mesaj: 6. Yerləşdirmək.

Və cavab göndərilir.

Beləliklə, bu nöqtədə Sonof cihazımızı yenidən adlandırdıq ki, cmnd/loungelight/…… mövzularını dinləsin və istifadəçi adı loungelight və parol loungelightPW ilə MQTT bölməsinə daxil olacaq. Node-Red üçün bir istifadəçi adı və şifrə də təyin etdik.

Sonra ağcaqanad MQTT serverinə yalnız istifadəçi adları olan müştəriləri qəbul etməsini və qəbul ediləcək istifadəçi adlarını və şifrələrini siyahıya almasını bildirməliyik.

Prosedur belədir:

  • Ağcaqanadı dayandırın
  • Öz konfiqurasiya faylını yaradın
  • Konfiqurasiya faylını redaktə edin
  • Şifrə faylı yaradın
  • İstifadəçilər/şifrələr əlavə edin.

Yeni bir PuTTY sessiyası ilə daxil olun və aşağıdakı əmrləri yerinə yetirin:

sudo /etc/init.d/mosquitto dayandırın

cd /etc/mosquitto/conf.d/

sudo nano mosquitto.conf Bu redaktoru işə salır.

Xətlər əlavə edin:

icazə_anonim saxta

parol_file /etc/mosquitto/conf.d/passwd

tələb_sertifikatı yalan

Saxla və çıx (Ctrl+X), Y, daxil et.

sudo touch passwd Bu bir parol faylı yaradır və aşağıdakı təlimatlar ad və şifrələr əlavə edir.

sudo mosquitto_passwd -b /etc/mosquitto/conf.d/passwd loungelight loungelightPW

sudo mosquitto_passwd -b /etc/mosquitto/conf.d/passwd NodeRed NodeRedPW

sudo /etc/init.d/mosquitto yenidən başladın

Yeni bir cihaz əlavə edərkən ya istifadəçi və şifrəni seriya portu vasitəsilə daxil etməli və bunları parol faylına əlavə etməli və ya sivrisinek konfiqurasiya faylını müvəqqəti olaraq dəyişdirib "satırın əvvəlində # əlavə etməlisiniz" sətirlərində "allow_anonymous false" yazmalısınız. "və" password_file /etc/mosquitto/conf.d/passwd "və sonra detallar cihaza göndərildikdə və yuxarıdakı kimi parol faylına əlavə edildikdə bunları sıfırlayın.

Sonoff adını loungelight olaraq dəyişdirdik və buna görə də cmnd/loungelight/POWER mövzusunu istifadə etmək üçün mqtt çıxış qovşağını (keçidlə əlaqəli) yenilədik.

"Dağıt" düyməsini basın və "bağlı" mqtt qovşaqlarının olduğunu yoxlayın.

Sonra keçid düyməsini sınayın və Sonoff keçidinin cavab verdiyini göstərən hata ayıklamasını axtarın. Cihazın dəyişikliyi bir mövzu ilə göstərdiyini görəcəksiniz: stat/loungelight/POWER. İndi cmnd/sonoff/POWER olaraq təyin olunan giriş düyməsini stat/loungelight/POWER olaraq dəyişdirin. Bu örtüyü funksionallığımızda bir boşluqdan istifadə edə bilərik. Başlanğıc olaraq qurulan sistem, daxil olan bütün istifadəçilərlə sinxronizasiya ediləcək, lakin Sonoff düyməsindəki düyməni basaraq edilən keçid dəyişiklikləri ilə sinxronizasiya edilməyəcək. İndi stat/loungelight/POWER mqtt giriş qovşağının çıxışını keçid girişinə (LHS) bağlayın. İndi düyməni iki dəfə vurun və "msg girişə gəlirsə, çıxışa keçin" işarəsini çıxarın. Bu, bəzi yeni seçimlər gətirir - 'keçid işarəsi girişin vəziyyətini göstərir' seçin. Yerləşdirmək. Beləliklə, indi yaxşı bir geribildirim döngəmiz var. Dəyişikliyin harada başladığından asılı olmayaraq, Sonoff açarı dəyişəndə tablosuna keçid mövqeyi həmişə dəyişəcək.

Beləliklə, indi təhlükəsiz və müstəqil bir ev avtomatlaşdırma sistemimiz var və istədiyiniz hər şeyi genişləndirməyə hazırıq. Növbəti hissədə indiyə qədər etdiyim bəzi təcrübələrimi və həll etməyi planlaşdırdığım çətinlikləri əhatə edəcəyəm.

Adım 8: Genişləndirmə üçün ilk addımlar

Sonoff-Tasmota firmware proqramının bəzi digər imkanlarını göstərən Sonoff-Tasmota Sensor LEDləri İnkişaf etdirmə lövhəsi var:

Rütubət və temperaturun ölçülməsi

Intruder aşkarlanması (keçid girişi)

IR uzaqdan idarəetmə (TV və s. Üçün)

LED xətləri - həm RGB, həm də NeoPixel (fərdi ünvanlı)

I2C sensorlar

Yuxarıda göstərilənlər üçün bir ESP12F və xüsusi bir PCB istifadə edirəm. NodeMCU və çörək taxtası eyni dərəcədə istifadə edilə bilər. Bu, Sonoff cihazına qoşulmadan bu əlavə funksiyaları təmin edir və buna görə də daha təhlükəsiz bir yanaşmadır. Temperaturun daxil olması ilə elektrik örtüklü avtomatlaşdırmanı tamamlaya bildim.

Musiqi və İnternet Radio asanlıqla əlavə edilə bilər. Bu, müəyyən stansiyaların və ya albomların müəyyən vaxtlarda və ya bəlkə də bir ziyarətçinin (telefonun) aşkar edilməsinə cavab olaraq gəlməsi üçün seçimlər açır. Bu əlaqəli təlimat Yüksək keyfiyyətli Musiqi Pleyerində və Smartfon Nəzarəti olan İnternet Radioda. Bu da Node-RED tərəfindən idarə olunduğundan, hətta birdən çox səs sisteminə sahib olmaq və onları idarə etmək üçün MQTT ünsiyyətindən istifadə etmək mümkün olmalıdır.

E-poçt göndərmək və səsli siqnallar vermək də daxil olmaqla Node-Red-i araşdırıram. Sistemin daxil olduğunuzda/çıxdığınızda - cib telefonunuzun IP ünvanına ping vuraraq aşkar etmə potensialı da var. Node -Red hava və xəbərlərə də daxil ola bilər - beləliklə məlumat əlavə etməklə yanaşı avtomatlaşdırma da edə bilərsiniz.

Öyrənilməli olan bir neçə fənd var - amma bunlar ikinci dəfə asanlıqla ölür.

Başqa bir prospekt, tablosunu göstərmək üçün pi -yə bir ekran əlavə etməkdir. Bu 'davam edən işdir' - ya da başqa sözlə çox xoşbəxt deyiləm. Əldə etdiyim ekranı portret rejiminə çevirmək çətindir və Chromium brauzeri ağrılı şəkildə yavaşlayır. Alternativ ebaydan köhnə bir planşet götürüb ondan istifadə etmək olar. Bir Pi 2 ilə sınaya bilərəm və bunun kifayət qədər bir yaxşılaşma təmin edib -etmədiyini öyrənə bilərəm (bu inkişaf üçün istifadə olunan B modeli).

Ümid edirəm ki, bu sizi işə salacaq və təsəvvürünüzə səs -küy salacaq. Potensial əhatə dairəsi çox böyükdür. Lazım gələrsə, digər sensorlar üçün Sonoff kodunu belə dəyişdirə bilərik.

Ümumiyyətlə, bu sistemin nə edə biləcəyinə təəccübləndim. Əsl məqsədim, müstəqil bir sistem vasitəsilə etibarlı bir şəkildə bir smartfondan bir keçid idarə etmək idi. Serverləri və müştəriləri idarə etməyə ehtiyac duyduğumu və istifadəçi interfeysi üçün html yazmağı xəyal edirdim. Bunun sona çatdığı yer, daha çox təhlükəsizlik, əla etibarlılıq, fantastik istifadəçi interfeysi, sürüklə -buraxma proqramlaşdırması və genişlənmə üçün böyük potensiala sahibdir. Və bütün bunlar daha az səylə.

Mike

Addım 9: Əlavə - Raspbian Stretch Lite -dən yüklənir

Bu seçim, tam Raspbian Stretch versiyası ilə birlikdə gələn şişirdilmiş proqramlardan qaçınır. Ev avtomatlaşdırılması üçün bir Pi istifadə edərkən bunun çoxuna ehtiyac olmayacaq. Ancaq Node-Red quraşdırılmalıdır.

Addım 1 -də olduğu kimi davam edin, ancaq Raspbian Stretch -dən çox Raspbian Stretch Lite istifadə edin.

Addım 2 əvəzinə aşağıdakıları edin:

sudo apt -y npm qurun

npm -v qayıtmalıdır: 1.4.21 və ya daha sonra

sudo npm quraşdırma -g n

sudo n 8.9.0

İndi Node-Red qurmaq üçün node paket menecerindən istifadə edə bilərik:

sudo npm node-red --global --unsafe-perm qurun

Səhv ünvan səbəbiylə bir neçə səhv mesajı verəcəkdir. Bununla birlikdə sistem bu problemi həll etmək üçün "mənbə tərtib edir". Yuxarıdakı təlimatı təkrar etsəniz (lazım deyil) səhvlər baş vermir.

İndi Node-Red və dəstəkləyici paketlərimiz var və ağcaqanad yükləyərək 3-cü addıma keçə bilərik.

Simsiz Müsabiqə
Simsiz Müsabiqə
Simsiz Müsabiqə
Simsiz Müsabiqə

Simsiz Müsabiqədə 2 -ci yeri tutdu

Tövsiyə: