Mündəricat:

Raspberry Pi tərəfindən Ağıllı Ev: 5 addım (şəkillərlə)
Raspberry Pi tərəfindən Ağıllı Ev: 5 addım (şəkillərlə)

Video: Raspberry Pi tərəfindən Ağıllı Ev: 5 addım (şəkillərlə)

Video: Raspberry Pi tərəfindən Ağıllı Ev: 5 addım (şəkillərlə)
Video: Raspberry PI 4B, Nəzarət olunan Ev Köməkçisi RaspiOS 64-də Asan Quraşdırma - Oktyabr 2022 Yeniləmə 2024, Iyul
Anonim
Raspberry Pi tərəfindən Ağıllı Ev
Raspberry Pi tərəfindən Ağıllı Ev

Artıq evinizi daha ağıllı edən bir neçə məhsul var, lakin əksəriyyəti özəl həllərdir. Bəs smartfonunuzla işığı dəyişdirmək üçün niyə internet bağlantısına ehtiyacınız var? Öz ağıllı ev həllimi qurmağımın bir səbəbi idi.

Raspberry Pi üzərində işləyən bir server tətbiqini proqramlaşdırdım. Bu, mənzilinizi konfiqurasiya etməyə və bir neçə müştərini və 'idarə oluna bilən vahidləri' birləşdirməyə imkan verən java əsaslı açıq mənbə layihəsidir. Rc enerji təchizatı açarlarını idarə edən, Raspberry Pi -də musiqi və video oynayan, ağıllı güzgüdəki vəziyyəti göstərən və bir Android tətbiqi və iki çınqıl tətbiq ilə idarə oluna bilən bir həll göstərirəm. Mənbə github -da yerləşdirilir

Addım 1: Lazım olan şeylər

Ehtiyacınız olan şeylər
Ehtiyacınız olan şeylər

Ağıllı Evi qurmaq üçün aşağıdakı 'maddələrə' ehtiyacınız var

  • Raspberry Pi ən azı model 2 B
  • 433 MHz ötürücü, buna bənzər bir şey
  • Raspberry Pi və göndərəni birləşdirən 3 keçid kabeli
  • Bəzi radio nəzarət rozetkaları 433 MHz -də
  • Müştəri tətbiqini işə salmaq üçün Android smartfonu

Əlavə olaraq, Ağıllı Evi bu kimi daha çox isteğe bağlı müştəri və vahidlərlə genişləndirə bilərsiniz

  • Pebble ağıllı saatı
  • Smart Mirror, bu layihəyə baxın
  • 433 MHz idarə olunan LED şeridi, buna baxın

Addım 2: 433 MHz üçün Raspberry Pi hazırlayın

433 MHz üçün Raspberry Pi hazırlayın
433 MHz üçün Raspberry Pi hazırlayın
433 MHz üçün Raspberry Pi hazırlayın
433 MHz üçün Raspberry Pi hazırlayın

Aşağıdakı addımlarda Raspberry Pi -də əmr satırına daxil olmalısınız. Giriş əldə etmək üçün bu təlimatı oxuya bilərsiniz

Yuxarıdakı şəkildə göstərildiyi kimi 433 MHz göndəricini Raspberry Pi ilə bağlayın

  • GND (göndərən) 6 GND (raspi)
  • VCC (göndərən) 2 +5V (raspi)
  • DATA (göndərən) 11 GPIO 17 (raspi)

Zəhmət olmasa ANT (göndərən) pininə 17 sm uzunluğunda bir anten bağlayın. Bu, siqnalı əhəmiyyətli dərəcədə artırır.

Digər git depolarından bəzi kitabxanalara ehtiyacımız olduğu üçün git qurmalıyıq

sudo apt-get install-core -y qurun

433 MHz rabitə üçün Raspberry Pi qurmaq üçün GPIO -ları daha yaxşı idarə etmək üçün kabellər kitabxanasına ehtiyacımız var.

git klon git: //git.drogon.net/wiringPi

cd wiringPi./build

Sonra adətən rc enerji təchizatı protokollarını tətbiq edən bir kitabxanaya ehtiyacımız var.

git klon git: //github.com/dabastynator/rcswitch-pi.git

cd rcswitch-pi cp göndərmək/usr/bin/etmək

'Göndər' icra edilə bilən proqramı, mövcud enerji mənbələrinin çoxunu dəyişdirmək üçün kod göndərməyə imkan verir.

Ağıllı Ev quruluşumda, bu təlimatla izah edilən bir rc LED şeridi də var: https://www.instructables.com/id/RC-controlled-LED… Bu LED şeridi üçün rəngləri təyin etmək üçün sizə imkan verən başqa bir göndərmə icra proqramına ehtiyacınız var. hər hansı bir Tam ədəd göndərmək üçün (Rəngi kodlaşdıran).

Buna görə, sendInt.cpp-i rcswitch-pi repo-da tərtib edin və/usr/bin/sendInt-ə köçürün.

sudo g ++ sendInt.cpp -o/usr/bin/sendInt /home/pi/rcswitch-pi/RCSwitch.o -I/home/pi/rcswitch -pi -lwiringPi

İndi iki icraedici/usr/bin/send və/usr/bin/sendInt ilə rc əmrləri göndərə bilməlisiniz.

Addım 3: Smart Home Server qurun

Əvvəlcə bir neçə paket quraşdırmalısınız. Smart Home proqramı java əsaslıdır və openjdk-11 ilə yaxşı işləyir. Digər java iş vaxtı mühitlərindən əmin deyiləm. Mplayer, minimalist bir əmr satırı musiqi pleyeridir. Omxplayer, video kodlaşdırma üçün Raspberry Pi qrafikindən istifadə edir, buna görə də bu videolar üçün istifadə olunmalıdır. Java proqramı qurmaq üçün qarışqa proqramı lazımdır.

sudo apt-get install mplayer omxplayer openjdk-11-jdk qarışqa -y

Jar faylı və qeydlər üçün qovluqlar qurun.

sudo mkdir /opt /neo

sudo chown pi: pi/opt/neo mkdir/home/pi/Logs

Tətbiqi açılışda avtomatik olaraq başlatmaq üçün başlanğıc skriptini konfiqurasiya edin. Buna görə də əlavə edilmiş ağıllı ev skriptini /etc/init.d/ qovluğuna kopyalayın/əmrləri əlavə edilmiş skriptə ötürən/usr/bin/də bir skript yaratdım, buna görə əmrləri yerinə yetirmək üçün ağıllı evə konsola daxil oluram..

sudo cp smart-home /etc/init.d/smart-home

sudo chmod +x /etc/init.d/smart-home sudo sh -c "echo '#!/bin/bash'>/usr/bin/smart -home" sudo sh -c "echo '/etc/init. d/smart-home / $ 1 '>>/usr/bin/smart-home "sudo chmod +x/usr/bin/smart-home sudo update-rc.d smart-home defoltları

İndi anbarı yoxlamaq və tətbiqi qurmaq vaxtıdır. Özünüz tərtib etmək istəmirsinizsə, əlavə edilmiş smarthome.jar faylını yükləyib/opt/neo/ünvanına köçürə bilərsiniz.

git klon [email protected]: dabastynator/SmartHome.git

qarışqa -f SmartHome/de.neo.smarthome.build/build.ant build_remote cp SmartHome/de.neo.smarthome.build/build/jar/*/opt/neo/

Ağıllı evi işə salmağa və qeyd sənədini yoxlamağa çalışın. GPIO -lara giriş əldə etmək üçün proqram sudo ilə başlamalıdır.

sudo ağıllı ev başlanğıcı

pişik Günlükləri/smarthome.log

Növbəti addıma işarə edən Konfiqurasiya faylının olmadığı mesajını görürsünüz. Anbarda konfiqurasiya faylını izah edən bir readme var. Bunu gözəl bir şəkildə github -da görə bilərsiniz:

Bu xml -ni /home/pi/controlcenter.xml -ə kopyalayın, sonra media serverinizin yerini təyin edin və məzmunu lazım olduğu kimi dəyişdirin. Konfiqurasiyanı bitirib ağıllı evi (sudo smart-home restart) yenidən başladıqdan sonra smarthome.log-da aşağıdakı məzmunu görməlisiniz.

24.05-08: 26 de.neo.smarthome.cronjob. CronJob@15aeb7ab tərəfindən Uzaqdan Məlumat: cron işini planlaşdırın

24.05-08: 26 Uzaqdan məlumat [trigger.light] tərəfindən: 79391760 ms icrası üçün gözləyin 24.05-08: 26 RMI BİLGİLƏRİ əlavə et web işləyicisi (5061/ledstrip) 24.05-08: 26 RMI İLAVƏSİ Veb işləyicisi əlavə et (5061) /hərəkət) 24.05-08: 26 Əlavə veb işləyicisi (5061/mediaserver) tərəfindən RMI BİLGİLƏRİ 24.05-08: 26 Əlavə veb işləyicisi (5061/keçid) ilə RMI BİLGİLƏRİ 24.05-08: 26 RMI MƏLUMATI əlavə et veb işləyicisi (5061/controlcenter) 24.05-08: 26 Start web serveri tərəfindən 5 işləyici ilə RMI BİLGİLƏRİ (localhost: 5061) 24.05-08: 26 Controlcenter tərəfindən Uzaqdan Məlumat: Əlavə 1. idarəetmə vahidi: MyUnit (xyz)…

Veb server indi işləyir:-)

Addım 4: Müştəriləri qurun

Müştəriləri qurun
Müştəriləri qurun
Müştəriləri qurun
Müştəriləri qurun
Müştəriləri qurun
Müştəriləri qurun

Smartfon Android müştəri

Ağıllı ev tətbiqi üçün git deposunda android müştəri mənbəyi də var, buna görə özünüz tərtib edə bilərsiniz. Ancaq APK -ı bu addım üçün əlavə etdim, bu da işi asanlaşdırır. Tətbiqə ilk dəfə başladığınız zaman yuxarıdakı ilk şəkildəki kimi bir server istəyər. Serverin ünvanını və təhlükəsizlik nişanını daxil edin.

Bu belə olmalıdır. İndi serverə daxil ola bilərsiniz və mənzilinizi idarə edə, musiqi çala və Raspberry Pi -də uzaqdan video seyr edə bilərsiniz. Unutmayın ki, açar və musiqi nəzarətini daha əlçatan edən ana ekranınıza vidjetlər əlavə edə bilərsiniz.

Smartwatch Pebble müştəri

İki çınqıl müştərinin mənbəyi github -da yerləşdirilir. Bir tətbiq cari çalınan musiqi faylını göstərir: https://github.com/dabastynator/PebbleRemoteMusic… Bu da fasilə verməyə/çalmağa və səsi artırmağa/aşağı salmağa imkan verir.

İkinci tətbiq üç hərəkəti tetikler: https://github.com/dabastynator/PebbleControl Tetikleyici adlar: mobile.come_home mobile.leaving və mobile.go_to_bed. Bu tetikleyici üçün hadisə qaydalarını konfiqurasiya-xml-də təyin etsəniz, onları saatınız tərəfindən işə salırsınız.

Hamısı açıq mənbəyidir, ancaq özünüz tərtib etməyinizə ehtiyac yoxdur, mən də çınqıl tətbiqlərini əlavə etdim. PBW -ləri smartfonunuzla yükləyin, telefonunuz onları saatınıza quraşdırmalıdır. Çınqıl tətbiqləri serverlə danışmaq üçün konfiqurasiyaya ehtiyac duyur. Ayarlarımın necə göründüyünü bir ekran görüntüsü əlavə etdim.

Smartwatch Garmin müştəri

Garmin Smartwatches üçün bir müştəri də var. Tətbiq garmin connect tətbiq mağazasında mövcuddur və burada quraşdırıla bilər:

apps.garmin.com/az-US/apps/c745527d-f2af-4…

Smart Mirror müştəri

Mən artıq Smart Mirror-un necə yaradılacağını izah edən bir təlimat yaratdım, buna baxın https://www.instructables.com/id/Smart-Mirror-by-R…. Mənbə kodu da github-da yerləşdirilir: https:// github.com/dabastynator/SmartMirror. Ağıllı Güzgü proqram təminatı git deposunun bir hissəsi olmayan smart_config.js faylından konfiqurasiyanı oxuyur. Konfiqurasiya faylının məzmunu bu siyahıya bənzəməlidir:

var mOpenWeatherKey = 'açar-açar açarınız';

var mSecurity = 'təhlükəsizlik-nişanınız';

Ağıllı Ev serverinin ip ünvanını və doğru havanı əldə etmək üçün yeri təyin etmək üçün smart_mirror.js faylının ilk iki sətirini də tənzimləməlisiniz.

Daha çox müştəri

Server tətbiqi sadə bir veb serverdir. Bu, sadə veb zəngləri ilə istədiyiniz hər hansı bir müştəridən hərəkətləri tetiklemenize imkan verir. Demo-videoda AutoVoice ilə birlikdə android tətbiq tapşırığını göstərirəm. Bu, hadisələri sadə səs əmrləri ilə tetiklememe imkan verir. Məsələn, "ok google, yatmaq vaxtı" mobile.go_to_bed -i işə sala bilər. Bununla yanaşı, məsələn, IFTTT-dən veb zəngləri də edə bilərsiniz. E -poçt bildirişi üçün sarı yanıb -sönən LED şeridi necə?

Aşağıdakı bağlantılar kimi serverdən mümkün veb zəngləri istəyə bilərsiniz (konfiqurasiyanızla ip, port və token dəyişdirin)

localhost: 5061/controlcenter/api? token = secu…

localhost: 5061/action/api? token = təhlükəsizlikdən…

localhost: 5061/mediaserver/api? token = securi…

localhost: 5061/switch/api? token = təhlükəsizlikdən…

localhost: 5061/ledstrip/api? token = təhlükəsizlik-…

Addım 5: Nəticə

Hələ də tətbiq edilməli bəzi xüsusiyyətlər var: Server sadə bir web-api müştərisi təmin etdiyi üçün bir çox sorğu keçirin. Səsverməni azaltmaq üçün daha yaxşı bildiriş üçün MQTT inteqrasiyası istəyirəm. Həmçinin wifi enerji təchizatı rc enerji təchizatından daha etibarlı işləməlidir, çünki rc yalnız bir tərəfli ünsiyyətdir.

Bu layihəni inkişaf etdirmək çox zövq verir. İnternet bağlantısı pozulsa da, mənzili bir neçə cihazla idarə etmək olduqca gözəldir.

Tövsiyə: