Բովանդակություն:

Smart Home by Raspberry Pi. 5 քայլ (նկարներով)
Smart Home by Raspberry Pi. 5 քայլ (նկարներով)

Video: Smart Home by Raspberry Pi. 5 քայլ (նկարներով)

Video: Smart Home by Raspberry Pi. 5 քայլ (նկարներով)
Video: 5 ՀՐԱՇԱԼԻ ԿՅԱՆՔԻ ՀԱՔԵՐ #2 2024, Նոյեմբեր
Anonim
Խելացի տուն ՝ Raspberry Pi- ի կողմից
Խելացի տուն ՝ Raspberry Pi- ի կողմից

Արդեն կան մի քանի ապրանքներ, որոնք ձեր բնակարանը դարձնում են ավելի խելացի, բայց դրանցից շատերը սեփականության լուծումներ են: Բայց ինչու՞ է ձեզ հարկավոր ինտերնետ կապ ՝ ձեր սմարթֆոնի հետ լույս փոխելու համար: Դա ինձ համար պատճառներից մեկն էր `կառուցելու իմ Smart Home լուծումը:

Ես ծրագրավորեցի սերվերային ծրագիր, որն աշխատում է Raspberry Pi- ով: Սա java- ի վրա հիմնված բաց կոդով նախագիծ է, որը թույլ է տալիս կարգավորել ձեր բնակարանը և միացնել մի քանի հաճախորդների և «վերահսկելի միավորներ»: Ես ցույց եմ տալիս մի լուծում, որը կարգավորում է rc սնուցման անջատիչներ, երաժշտություն և տեսանյութ է նվագում Raspberry Pi- ով, ցույց է տալիս կարգավիճակը խելացի հայելու վրա և կարող է կառավարվել android հավելվածի և երկու խճաքարային հավելվածների միջոցով: Աղբյուրը տեղակայված է github- ում

Քայլ 1: Ձեզ անհրաժեշտ բաներ

Ձեզ անհրաժեշտ բաներ
Ձեզ անհրաժեշտ բաներ

Smart Home- ը ստեղծելու համար ձեզ հարկավոր են հետևյալ «բաղադրիչները»

  • Ազնվամորու Pi առնվազն մոդել 2 B
  • 433 ՄՀց ուղարկող, այսպիսի բան
  • 3 jumper մալուխ, որը միացնում է Raspberry Pi- ն և ուղարկողին
  • Որոշ ռադիոկառավարման վարդակներ 433 ՄՀց հաճախականությամբ
  • Android սմարթֆոն `հաճախորդի ծրագիրը գործարկելու համար

Բացի այդ, դուք կարող եք ընդլայնել «Խելացի տունը» ավելի ընտրովի հաճախորդներով և նման սարքերով

  • Pebble խելացի ժամացույց
  • Խելացի հայելի, տես այս նախագիծը
  • 433 ՄՀց վերահսկվող LED ժապավեն, տես այս

Քայլ 2. Պատրաստեք Raspberry Pi- ն 433 ՄՀց հաճախականությամբ

Պատրաստեք Raspberry Pi- ն 433 ՄՀց հաճախականությամբ
Պատրաստեք Raspberry Pi- ն 433 ՄՀց հաճախականությամբ
Պատրաստեք Raspberry Pi- ն 433 ՄՀց հաճախականությամբ
Պատրաստեք Raspberry Pi- ն 433 ՄՀց հաճախականությամբ

Հետևյալ քայլերում ձեզ անհրաժեշտ է մուտք գործել Raspberry Pi- ի հրամանի տող: Մուտք ստանալու համար կարող եք կարդալ այս ուսանելի

Միացրեք 433 ՄՀց ուղարկողին Raspberry Pi- ի հետ, ինչպես ցույց է տրված վերևում նկարում

  • GND (ուղարկող) 6 GND (raspi)
  • VCC (ուղարկող) 2 +5V (raspi)
  • ՏՎՅԱԼՆԵՐ (ուղարկող) 11 GPIO 17 (raspi)

Խնդրում ենք նաև 17 սմ ալեհավաք միացնել ANT (ուղարկող) քորոցին: Դա զգալիորեն մեծացնում է ազդանշանը:

Քանի որ մեզ անհրաժեշտ են որոշ գրադարաններ այլ git պահոցներից, մենք պետք է տեղադրենք git

sudo apt-get տեղադրել git-core -y

433 ՄՀց հաղորդակցության համար Raspberry Pi- ի ստեղծման համար մեզ անհրաժեշտ է էլեկտրագծերի Pi գրադարանը GPIO- ների ավելի լավ մշակման համար:

git clone git: //git.drogon.net/wiringPi

cd էլեկտրագծեր Pi./ կառուցել

Այնուհետև մեզ անհրաժեշտ է գրադարան, որն իրականացնում է սովորաբար rc էներգիայի մատակարարման արձանագրություններ:

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

cd rcswitch-pi կատարել cp send/usr/bin/

«Ուղարկել» գործադիրը թույլ է տալիս կոդեր ուղարկել առկա էներգիայի մատակարարումների մեծ մասը փոխելու համար:

Իմ Smart Home- ի կարգաբերման մեջ ես ունեմ նաև rc LED ժապավեն, որը նկարագրված է այս հրահանգով ՝ https://www.instructables.com/id/RC-controlled-LED… ուղարկել ցանկացած Ամբողջ արժեք (Դա ծածկագրում է գույնը):

Հետևաբար, հավաքեք sendInt.cpp- ը rcswitch-pi repo- ում և տեղափոխեք այն/usr/bin/sendInt:

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

Այժմ դուք պետք է կարողանաք rc հրամաններ ուղարկել երկու գործարկվողներով/usr/bin/send և/usr/bin/sendInt

Քայլ 3: Կարգավորեք Smart Home Server- ը

Առաջին հերթին անհրաժեշտ է տեղադրել մի քանի փաթեթ: Smart Home ծրագիրը հիմնված է java- ի վրա և լավ է աշխատում openjdk-11- ով: Ես վստահ չեմ java- ի գործարկման այլ միջավայրերի մասին: Mplayer- ը մինիմալիստական հրամանատարական երաժշտական նվագարկիչ է: Omxplayer- ը օգտագործում է Raspberry Pi գրաֆիկան տեսագրման համար, ուստի այն պետք է օգտագործվի տեսանյութերի համար: Antրագրի մրջյունը անհրաժեշտ է java հավելվածը կառուցելու համար:

sudo apt-get տեղադրել mplayer omxplayer openjdk-11-jdk ant -y

Կարգավորեք դիրեկտորիաներ jar ֆայլի և տեղեկամատյանների համար:

sudo mkdir /opt /neo

sudo chown pi: pi/opt/neo mkdir/home/pi/տեղեկամատյաններ

Կարգավորեք սկրիպտի սկիզբը ՝ ծրագիրը բեռնման ժամանակ ինքնաբերաբար գործարկելու համար: Հետևաբար, պատճենեք կցված խելացի տան սցենարը /etc/init.d/: Ես նաև ստեղծեցի սցենար/usr/bin /- ում, որը հրամաններ է տալիս կցված սցենարին, այնպես որ ես պարզապես մուտքագրում եմ խելացի տուն վահանակին ՝ հրամաններ կատարելու համար:.

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 խելացի տան կանխադրված

Այժմ ժամանակն է ստուգել պահեստը և կառուցել ծրագիրը: Եթե դուք չեք ցանկանում այն ինքներդ կազմել, կարող եք պարզապես ներբեռնել կցված smarthome.jar- ը և այն տեղափոխել/opt/neo/

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

մրջյուն -f SmartHome/de.neo.smarthome.build/build.ant build_remote cp SmartHome/de.neo.smarthome.build/build/jar/*/opt/neo/

Փորձեք գործարկել խելացի տունը և ստուգեք տեղեկամատյան ֆայլը: GPIO- ների մուտքի համար դիմումը պետք է սկսվի sudo- ով:

sudo խելացի տան մեկնարկ

cat Logs/smarthome.log

Դուք պետք է տեսնեք սխալի հաղորդագրություն Կազմաձևման ֆայլ գոյություն չունի, որը մեզ հաջորդ քայլին է մատնանշում: Պահեստը պարունակում է readme, որը բացատրում է կազմաձևման ֆայլը: Դուք կարող եք տեսնել սա գեղեցիկ մատուցված github- ում ՝

Պատճենեք այս xml- ն /home/pi/controlcenter.xml- ում, այնուհետև նշեք ձեր մեդիա սերվերի գտնվելու վայրը և փոխեք բովանդակությունը, ինչպես դա ձեզ անհրաժեշտ է: Կարգավորումն ավարտելուց և խելացի տունը վերագործարկելուց հետո (sudo smart-home վերագործարկում) smarthome.log- ում պետք է տեսնեք հետևյալ բովանդակությունը

24.05-08: 26 ՀԵՌՈ ՏԵFԵԿՈԹՅՈՆ ՝ de.neo.smarthome.cronjob. CronJob@15aeb7ab: crամանակացույց cron աշխատանք

24.05-08: 26 ՀԵՌՈ ՏԵFԵԿՈԹՅՈՆ ըստ [trigger.light]. Սպասեք 79391760 ms կատարման համար 24.05-08: 26 RMI INFORMATION by Add web-handler (5061/ledstrip) 24.05-08: 26 RMI INFORMATION by Add web-handler (5061 /գործողություն) 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 վեբ սերվերի ՝ 5 կառավարիչով (localhost: 5061) 24.05-08: 26 ՀԵՌՈ ՏԵFԵԿՈԹՅՈՆ ըստ Controlcenter- ի. Ավելացնել 1. կառավարման միավոր ՝ MyUnit (xyz)…

Վեբ սերվերն այժմ աշխատում է:-)

Քայլ 4: Հաճախորդների կարգավորում

Հաճախորդների կարգավորում
Հաճախորդների կարգավորում
Հաճախորդների կարգավորում
Հաճախորդների կարգավորում
Հաճախորդների կարգավորում
Հաճախորդների կարգավորում

Սմարթֆոնի Android հաճախորդ

Smart-home հավելվածի git պահեստը պարունակում է նաև android հաճախորդի աղբյուր, այնպես որ կարող եք ինքներդ կազմել: Բայց ես կցեցի APK- ին այս քայլի համար, ինչը հեշտացնում է այն: Առաջին անգամ ծրագիրը գործարկելիս այն ձեզանից սերվեր է խնդրում, ինչպես վերևի առաջին նկարում: Մուտքագրեք սերվերի url- ը և անվտանգության նշանը:

Դա պետք է լինի: Այժմ դուք մուտք ունեք սերվեր և վերահսկում եք ձեր բնակարանը ՝ երաժշտություն նվագարկելով և տեսանյութեր դիտելով հեռակա ՝ ձեր Raspberry Pi- ով: Նկատի ունեցեք, որ ձեր հիմնական էկրանին կարող եք ավելացնել վիջեթներ, ինչը ավելի հասանելի է դարձնում անջատիչներն ու երաժշտական կառավարումը:

Smartwatch Pebble հաճախորդ

Երկու մանրախիճ հաճախորդների համար աղբյուրը տեղադրված է github- ում: Մեկ հավելվածը ցույց է տալիս ընթացիկ նվագարկող երաժշտական ֆայլը ՝ https://github.com/dabastynator/PebbleRemoteMusic… Սա նաև թույլ է տալիս դադար տալ/նվագարկել և ձայնը բարձրացնել/նվազեցնել:

Երկրորդ հավելվածը գործարկում է երեք գործողություն ՝ https://github.com/dabastynator/PebbleControl Ձգանագրի անուններն են ՝ Եթե դուք սահմանում եք այս ձգան իրադարձության կանոնները ձեր կազմաձևում-xml, դրանք միացնում եք ձեր ժամացույցի միջոցով:

Ամեն ինչ բաց կոդով է, բայց ձեզ հարկավոր չէ այն ինքներդ կազմել, ես կցեցի նաև խճաքարային ծրագրերը: Ներբեռնեք PBW- ները ձեր սմարթֆոնով, ձեր հեռախոսը պետք է դրանք տեղադրի ձեր ժամացույցի վրա: Քարե ծրագրերը կարիք ունեն կազմաձևերի `սերվերի հետ խոսելու համար: Ես կցեցի սքրինշոթ, թե ինչպիսին են իմ կարգավորումները:

Smartwatch Garmin հաճախորդ

Կա նաև հաճախորդ, որը հասանելի է Garmin Smartwatches- ի համար: Հավելվածը հասանելի է Garmin Connect հավելվածների խանութ-սրահում և կարող է տեղադրվել այստեղ ՝

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

Smart Mirror հաճախորդ

Ես արդեն ստեղծել եմ հրահանգ, որը բացատրում է, թե ինչպես ստեղծել Smart Mirror, տե՛ս այս https://www.instructables.com/id/Smart-Mirror-by-R…: Աղբյուրի կոդը տեղադրված է նաև github- ում ՝ https:// github.com/dabastynator/SmartMirror. Խելացի հայելիի ծրագրակազմը կարդում է smart_config.js ֆայլից կազմաձևումը, որը git պահեստի մաս չէ: Կազմաձևման ֆայլի բովանդակությունը պետք է նման լինի այս ցուցակին.

var mOpenWeatherKey = 'քո բաց եղանակի բանալին';

var mSecurity = 'your-security-token';

Դուք նաև պետք է կարգավորեք smart_mirror.js ֆայլի առաջին երկու տողերը ՝ Smart Home սերվերի IP հասցեն և գտնվելու վայրը ՝ ճիշտ եղանակ ստանալու համար:

Ավելի շատ հաճախորդներ

Սերվերի ծրագիրը պարզ վեբ սերվեր է: Սա հնարավորություն է տալիս պարզ վեբ զանգերի միջոցով գործարկել ցանկացած հաճախորդի գործողությունները, որոնց ցանկանում եք: Դեմո-տեսահոլովակում ես ցույց եմ տալիս Android հավելվածի առաջադրանքը ՝ AutoVoice- ի հետ համատեղ: Սա ինձ հնարավորություն է տալիս իրադարձություններ առաջացնել պարզ ձայնային հրամաններով: Օրինակ ՝ «ok google, time to sleep» - ը կարող է առաջացնել mobile.go_to_bed: Բայց կարող եք նաև վեբ զանգեր կատարել, օրինակ ՝ IFTTT- ից: Ի՞նչ կասեք էլփոստի ծանուցման դեղին թարթող ժապավենի մասին:

Կարող եք սերվերից պահանջել վեբ զանգեր, ինչպիսիք են հետևյալ հղումները (փոխարինեք ip- ը, նավահանգիստը և նշանը ձեր կազմաձևով)

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

localhost: 5061/action/api? token = անվտանգություն-դեպի…

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

localhost: 5061/switch/api? token = անվտանգություն-դեպի…

localhost: 5061/ledstrip/api? token = անվտանգություն-…

Քայլ 5: Եզրակացություն

Դեռևս կան որոշ գործառույթներ, որոնք պետք է իրագործվեն. Քանի որ սերվերը տրամադրում է պարզապես մի պարզ վեբ-api հաճախորդներ, շատ հարցումներ կատարեք: Հարցումները նվազեցնելու համար ես ցանկանում եմ MQTT ինտեգրում `ավելի լավ ծանուցման համար: Նաև wifi էներգիայի աղբյուրները պետք է ավելի հուսալի կատարեն, քան rc էներգիայի աղբյուրները, քանի որ rc- ն ընդամենը միակողմանի հաղորդակցություն է:

Շատ զվարճալի է դարձնում այս նախագծի զարգացումը: Եվ բավականին թույն է վերահսկել բնակարանը մի քանի սարքերով, նույնիսկ եթե ինտերնետ կապը խափանվի:

Խորհուրդ ենք տալիս: