Mundarija:

Raspberry Pi aqlli uyi: 5 qadam (rasmlar bilan)
Raspberry Pi aqlli uyi: 5 qadam (rasmlar bilan)

Video: Raspberry Pi aqlli uyi: 5 qadam (rasmlar bilan)

Video: Raspberry Pi aqlli uyi: 5 qadam (rasmlar bilan)
Video: 102 Year Old Lady's Abandoned Home in the USA ~ Power Still ON! 2024, Noyabr
Anonim
Raspberry Pi tomonidan tayyorlangan aqlli uy
Raspberry Pi tomonidan tayyorlangan aqlli uy

U erda sizning kvartirangizni aqlli qiladigan bir nechta mahsulotlar bor, lekin ularning aksariyati xususiy echimlardir. Lekin nima uchun smartfon bilan chiroqni almashtirish uchun sizga internet aloqasi kerak? Bu mening shaxsiy Smart Home yechimimni yaratishimga bir sabab bo'ldi.

Men Raspberry Pi -da ishlaydigan server dasturini dasturladim. Bu java -ga asoslangan ochiq kodli loyihadir, bu sizning kvartirangizni sozlash va bir nechta mijozlar va "boshqariladigan birliklar" ni ulash imkonini beradi. Men RC quvvat manbai kalitlarini boshqaradigan, Raspberry Pi -da musiqa va videoni ijro etadigan, aqlli oynadagi holatni ko'rsatadigan va android ilovasi va ikkita toshli dastur yordamida boshqariladigan echimni ko'rsataman. Manba github -da joylashgan

1 -qadam: Sizga kerak bo'lgan narsalar

Sizga kerak bo'lgan narsalar
Sizga kerak bo'lgan narsalar

Aqlli uyni sozlash uchun sizga quyidagi "ingredientlar" kerak bo'ladi.

  • Raspberry Pi kamida 2 V modeli
  • 433 MGts yuboruvchi, shunga o'xshash
  • Raspberry Pi va jo'natuvchini bog'laydigan 3 ta o'tish kabeli
  • Ba'zi radio boshqaruv rozetkalari 433 MGts
  • Android smartfoni mijoz dasturini ishga tushiradi

Bundan tashqari, siz Smart Home -ni ixtiyoriy mijozlar va shunga o'xshash birliklar bilan kengaytira olasiz

  • Pebble aqlli soati
  • Smart Mirror, ushbu loyihani ko'ring
  • 433 MGts chastotali LED chizig'i, qarang:

2 -qadam: Raspberry Pi -ni 433 MGts ga tayyorlang

Raspberry Pi -ni 433 MGts ga tayyorlang
Raspberry Pi -ni 433 MGts ga tayyorlang
Raspberry Pi -ni 433 MGts ga tayyorlang
Raspberry Pi -ni 433 MGts ga tayyorlang

Keyingi bosqichlarda siz Raspberry Pi -dagi buyruq satriga kirishingiz kerak. Kirish uchun siz ushbu ko'rsatmalarni o'qishingiz mumkin

Yuqoridagi rasmda ko'rsatilgandek, 433 MGts chastotali yuboruvchini Raspberry Pi bilan ulang

  • GND (yuboruvchi) 6 GND (raspi)
  • VCC (yuboruvchi) 2 +5V (raspi)
  • DATA (jo'natuvchi) 11 GPIO 17 (raspi)

Iltimos, ANT (yuboruvchi) piniga 17 sm uzunlikdagi antennani ulang. Bu signalni sezilarli darajada oshiradi.

Bizga boshqa git omborlaridan ba'zi kutubxonalar kerak bo'lgani uchun biz gitni o'rnatishimiz kerak

sudo apt-get install-core -y ni o'rnating

Raspberry Pi -ni 433 MGts chastotali aloqa uchun sozlash uchun bizga GPIO -lar bilan yaxshi ishlash uchun simli kutubxona kerak.

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

CD simlariPi./build

Keyin bizga odatda rc quvvat manbai protokollarini bajaradigan kutubxona kerak.

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

cd rcswitch-pi cp send/usr/bin/qilish

"Yuborish" bajarilishi sizga mavjud quvvat manbalarining ko'pini almashtirish uchun kodlarni yuborish imkonini beradi.

Mening Smart Home sozlamamda menda bu yo'riqnomada tasvirlangan rc LED tasmasi ham bor: https://www.instructables.com/id/RC-controlled-LED… Bu LED tasmasini ranglarini sozlash uchun sizga boshqa yuboriladigan bajariladigan dastur kerak bo'ladi. har qanday butun sonni yuborish uchun (bu rangni kodlaydi).

Shuning uchun sendInt.cpp-ni rcswitch-pi repo-da kompilyatsiya qiling va uni/usr/bin/sendInt-ga o'tkazing.

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

Endi siz rc buyruqlarini ikkita bajariladigan/usr/bin/send va/usr/bin/sendInt bilan yuborishingiz kerak.

3 -qadam: Smart Home serverini o'rnating

Avval siz bir nechta paketlarni o'rnatishingiz kerak. Smart Home dasturi java-ga asoslangan va openjdk-11 bilan yaxshi ishlaydi. Boshqa java ish vaqti muhitlari haqida ishonchim komil emas. Mplayer-bu minimalist buyruq qatorli musiqa pleyeri. Omxplayer videoni kodlash uchun Raspberry Pi grafikasidan foydalanadi, shuning uchun uni video uchun ishlatish kerak. Java dasturini yaratish uchun chumoli dasturi kerak.

sudo apt-get install mplayer omxplayer openjdk-11-jdk chumoli -y

Jar fayli va jurnallar uchun kataloglarni o'rnating.

sudo mkdir /opt /neo

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

Dastur yuklashda avtomatik ravishda ishga tushishi uchun start skriptini sozlang. Shuning uchun biriktirilgan aqlli uy skriptini.

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/aqlli uy / $ 1 '>>/usr/bin/smart-home "sudo chmod +x/usr/bin/smart-home sudo update-rc.d smart-uy standartlari

Endi omborni tekshirish va dasturni yaratish vaqti keldi. Agar siz uni o'zingiz kompilyatsiya qilishni xohlamasangiz, biriktirilgan smarthome.jar -ni yuklab olishingiz va/opt/neo/ga ko'chirishingiz mumkin.

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

chumoli -f SmartHome/de.neo.smarthome.build/build.ant build_remote cp SmartHome/de.neo.smarthome.build/build/jar/*/opt/neo/

Aqlli uyni ishga tushirishga harakat qiling va jurnal faylini tekshiring. GPIO -larga kirish uchun dasturni sudo -dan boshlash kerak.

sudo aqlli uy boshlanishi

mushuk jurnallari/smarthome.log

Bizni keyingi bosqichga ko'rsatadigan konfiguratsiya fayli yo'q degan xato xabarni ko'rishingiz kerak. Ma'lumotlar omborida konfiguratsiya faylini tushuntirib beradigan o'qish dasturi mavjud. Siz buni github -da yaxshi tasvirlanganini ko'rishingiz mumkin:

Ushbu xml -ni /home/pi/controlcenter.xml -ga nusxa ko'chiring, so'ngra media -serveringiz uchun joyni o'rnating va tarkibni kerakli darajada o'zgartiring. Konfiguratsiyani tugatib, aqlli uyni qayta ishga tushirgandan so'ng (sudo smart-home restart) siz smarthome.log saytida quyidagi tarkibni ko'rishingiz kerak.

24.05-08: 26 de.neo.smarthome.cronjob. CronJob@15aeb7ab tomonidan masofadan turib ma'lumot: cron ishini rejalashtirish

24.05-08: 26 [Masofadan ma'lumot [trigger.light] tomonidan: 79391760 ms bajarilishini kutib turing 24.05-08: 26 RMI INFORMATION by Web-handler (5061/ledstrip) qo'shish 24.05-08: 26 RMI INFORMATION by Web-handler (5061) /action) 24.05-08: 26 RMI INFORMATION by Add web-handler (5061/mediaserver) 24.05-08: 26 RMI INFORMATION by Add web-handler (5061/switch) 24.05-08: 26 RMI INFORMATION by Add web-handler (5061/controlcenter) 24.05-08: 26 RMI INFORMATION Start veb-serveri tomonidan 5 ta ishlovchi bilan (localhost: 5061) 24.05-08: 26 Controlcenter tomonidan masofadan turib ma'lumot: Qo'shish 1. boshqaruv bloki: MyUnit (xyz)…

Veb-server hozir ishlaydi:-)

4 -qadam: mijozlarni sozlash

Mijozlarni sozlash
Mijozlarni sozlash
Mijozlarni sozlash
Mijozlarni sozlash
Mijozlarni sozlash
Mijozlarni sozlash

Smartfon Android uchun mijoz

Aqlli uy ilovasi uchun git omborida android mijozining manbasi ham bor, shuning uchun uni o'zingiz kompilyatsiya qilishingiz mumkin. Ammo men ushbu qadam uchun APK -ni biriktirdim, bu osonlashtiradi. Ilovani birinchi marta ishga tushirganingizda, u yuqoridagi birinchi rasmda bo'lgani kabi sizdan server so'raydi. Server manzilini va xavfsizlik tokenini kiriting.

Bu shunday bo'lishi kerak. Endi siz serverga kirishingiz va kvartirangizni boshqarishingiz, musiqa tinglashingiz va Raspberry Pi -da videolarni masofadan turib tomosha qilishingiz mumkin. E'tibor bering, siz vidjetlarni asosiy ekranga qo'shishingiz mumkin, bu kalit va musiqa boshqaruvini yanada qulay qiladi.

Smartwatch Pebble mijozi

Ikki toshli mijozlar uchun manba github -da joylashgan. Bir ilova joriy ijro etilayotgan musiqa faylini ko'rsatadi: https://github.com/dabastynator/PebbleRemoteMusic… Bu sizga pauza qilish/ijro etish va ovoz balandligini/pastga tushirish imkonini beradi.

Ikkinchi ilova uchta harakatni ishga tushiradi: https://github.com/dabastynator/PebbleControl Trigger-nomlari: mobile.come_home mobile.leaving va mobile.go_to_bed. Agar siz konfiguratsiya-xml-da ushbu tetik uchun voqea qoidalarini aniqlasangiz, ularni soatingiz bilan ishga solasiz.

Hammasi ochiq manba, lekin uni o'zingiz kompilyatsiya qilishingiz shart emas, men ham toshli ilovalarni biriktirdim. PBW -ni smartfon bilan yuklab oling, telefoningiz ularni soatingizga o'rnatishi kerak. Toshli ilovalar server bilan gaplashish uchun konfiguratsiyaga muhtoj. Men sozlamalarim qanday ko'rinishini skrinshot bilan biriktirdim.

Smartwatch Garmin mijozi

Garmin Smartwatches uchun mijoz ham mavjud. Ilova garmin connect app-do'konida mavjud va uni bu erga o'rnatish mumkin:

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

Smart Mirror mijozi

Men allaqachon aqlli oynani qanday yaratishni tushuntiradigan ko'rsatma yaratdim, qarang: https://www.instructables.com/id/Smart-Mirror-by-R…. Manba kodi ham github-da joylashgan: https:// github.com/dabastynator/SmartMirror. Smart Mirror dasturiy ta'minoti git_ omboriga kirmaydigan smart_config.js faylidagi konfiguratsiyani o'qiydi. Konfiguratsiya faylining mazmuni quyidagicha bo'lishi kerak:

var mOpenWeatherKey = 'sizning-ochiladigan-g'ildirakli kalitingiz';

var mSecurity = 'your-security-token';

Smart_mirror.js faylining birinchi ikkita satrini Smart Home serverining IP -manzilini va ob -havoni to'g'ri ko'rish uchun manzilni ko'rsatish uchun sozlashingiz kerak.

Ko'proq mijozlar

Server ilovasi oddiy veb -serverdir. Bu sizga oddiy veb-qo'ng'iroqlar orqali istalgan mijozning harakatlarini boshlash imkonini beradi. Demo-videoda men AutoVoice bilan birgalikda android ilovasi vazifasini ko'rsataman. Bu menga oddiy ovozli buyruqlar yordamida voqealarni boshlashga imkon beradi. Masalan, "ok google, uxlash vaqti" mobile.go_to_bed -ni ishga tushirishi mumkin. Ammo siz, shuningdek, IFTTT-dan veb-qo'ng'iroqlar qilishingiz mumkin. Elektron pochta xabarnomasi uchun miltillovchi sariq LED tasmasi haqida nima deyish mumkin?

Siz serverdan quyidagi havolalar kabi mumkin bo'lgan veb-qo'ng'iroqlarni so'rashingiz mumkin (konfiguratsiyangiz bo'yicha ip, port va tokenni almashtiring).

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

localhost: 5061/action/api? token = security-to…

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

localhost: 5061/switch/api? token = security-to…

localhost: 5061/ledstrip/api? token = xavfsizlik-…

5 -qadam: Xulosa

Hali ham ba'zi funktsiyalarni bajarish kerak: chunki server oddiy web-api mijozlari bilan ko'p so'rov o'tkazadi. Ovoz berishni kamaytirish uchun MQTT integratsiyasini yaxshiroq xabardor qilish uchun xohlayman. Wi -Fi quvvat manbalari rc quvvat manbalariga qaraganda ancha ishonchli ishlashi kerak, chunki rc - bu bir tomonlama aloqa.

Ushbu loyihani ishlab chiqish juda qiziqarli bo'ladi. Kvartirani bir nechta qurilmalar bilan boshqarish juda yaxshi, hatto Internet aloqasi uzilgan bo'lsa ham.

Tavsiya: