Სარჩევი:

Smart Home Raspberry Pi- ს მიერ: 5 ნაბიჯი (სურათებით)
Smart Home Raspberry Pi- ს მიერ: 5 ნაბიჯი (სურათებით)

ვიდეო: Smart Home Raspberry Pi- ს მიერ: 5 ნაბიჯი (სურათებით)

ვიდეო: Smart Home Raspberry Pi- ს მიერ: 5 ნაბიჯი (სურათებით)
ვიდეო: პირამიდები არ არის ის, რაც თქვენ გგონიათ: მიწისქვეშა დარბაზები მათ ქვეშ 2024, ნოემბერი
Anonim
ჭკვიანი სახლი ჟოლოს პიით
ჭკვიანი სახლი ჟოლოს პიით

უკვე არსებობს რამდენიმე პროდუქტი, რაც თქვენს ბინას უფრო ჭკვიანურს ხდის, მაგრამ მათი უმეტესობა საკუთრების გადაწყვეტაა. მაგრამ რატომ გჭირდებათ ინტერნეტ კავშირი სმარტფონთან შუქის გადასატანად? ეს იყო ერთი მიზეზი იმისა, რომ შემექმნა საკუთარი Smart Home გადაწყვეტა.

მე დავპროგრამე სერვერის პროგრამა, რომელიც მუშაობს Raspberry Pi– ზე. ეს არის java დაფუძნებული ღია კოდის პროექტი, რომელიც საშუალებას გაძლევთ დააკონფიგურიროთ თქვენი ბინა და დააკავშიროთ რამდენიმე კლიენტი და "კონტროლირებადი ერთეული". მე ვაჩვენებ გამოსავალს, რომელიც ამუშავებს rc კვების ბლოკებს, უკრავს მუსიკას და ვიდეოს Raspberry Pi– ზე, აჩვენებს სტატუსს ჭკვიან სარკეზე და მისი კონტროლი შესაძლებელია android აპლიკაციით და ორი კენჭის აპლიკაციით. წყარო განთავსებულია github– ზე

ნაბიჯი 1: ის, რაც გჭირდებათ

ნივთები რაც თქვენ გჭირდებათ
ნივთები რაც თქვენ გჭირდებათ

ჭკვიანი სახლის დასაყენებლად გჭირდებათ შემდეგი "ინგრედიენტები"

  • ჟოლო Pi მინიმუმ მოდელი 2 B
  • 433 MHz გამგზავნი, მსგავსი რამ
  • 3 ჯამპერის კაბელი, რომელიც აკავშირებს ჟოლოს Pi და გამგზავნს
  • ზოგიერთი რადიო კონტროლის სოკეტი 433 MHz
  • Android სმარტფონი კლიენტის აპლიკაციის გასაშვებად

გარდა ამისა, თქვენ შეგიძლიათ გააფართოვოთ ჭკვიანი სახლი უფრო არჩევითი კლიენტებით და მსგავსი ერთეულებით

  • კენჭის ჭკვიანი საათი
  • ჭკვიანი სარკე, ნახე ეს პროექტი
  • 433 MHz კონტროლირებადი LED ზოლები, იხილეთ ეს

ნაბიჯი 2: მოამზადეთ Raspberry Pi 433 MHz– ზე

მოამზადეთ Raspberry Pi 433 MHz– ისთვის
მოამზადეთ Raspberry Pi 433 MHz– ისთვის
მოამზადეთ Raspberry Pi 433 MHz– ისთვის
მოამზადეთ Raspberry Pi 433 MHz– ისთვის

შემდეგ ნაბიჯებში თქვენ გჭირდებათ წვდომა ბრძანების ხაზზე Raspberry Pi– ზე. წვდომის მისაღებად შეგიძლიათ წაიკითხოთ ეს სასწავლო ინსტრუქცია

შეაერთეთ 433 MHz გამგზავნი Raspberry Pi– სთან, როგორც ეს მოცემულია ზემოთ მოცემულ სურათზე

  • GND (გამგზავნი) 6 GND (რასპი)
  • VCC (გამგზავნი) 2 +5V (რასპი)
  • მონაცემები (გამგზავნი) 11 GPIO 17 (რასპი)

ასევე გთხოვთ დააკავშიროთ 17 სმ ანტენა ANT (გამგზავნის) პინთან. ეს მნიშვნელოვნად გაზრდის სიგნალს.

ვინაიდან ჩვენ გვჭირდება ბიბლიოთეკები სხვა git საცავებიდან, ჩვენ უნდა დავაინსტალიროთ git

sudo apt-get დააინსტალირეთ git-core -y

Raspberry Pi 433 MHz კომუნიკაციის დასაყენებლად ჩვენ გვჭირდება გაყვანილობის Pi ბიბლიოთეკა GPIO– ების უკეთესი დამუშავებისთვის.

git კლონი git: //git.drogon.net/wiringPi

cd გაყვანილობა პი./ აშენება

შემდეგ ჩვენ გვჭირდება ბიბლიოთეკა, რომელიც ახორციელებს ტიპიურად rc დენის წყაროს პროტოკოლებს.

git კლონი 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 რეპოში და გადაიტანეთ იგი/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 პროგრამა დაფუძნებულია ჯავაზე და კარგად მუშაობს openjdk-11– ით. მე არ ვარ დარწმუნებული java runtime გარემოში. მოთამაშე არის მინიმალისტური ბრძანების ხაზის მუსიკალური პლეერი. 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/ჟურნალები

დააკონფიგურირეთ დაწყების სკრიპტი პროგრამის ჩატვირთვისას ავტომატურად დასაწყებად. ამიტომ დააკოპირეთ თანდართული ჭკვიანი სახლის სკრიპტი დირექტორიაში/და ა.შ./ინით.დ/მე ასევე შევქმენი სკრიპტი/usr/bin /– ში, რომელიც მიაწოდებს ბრძანებებს თანდართულ სკრიპტზე, ასე რომ, მე უბრალოდ შევიყვან ჭკვიან სახლს კონსოლში ბრძანებების შესასრულებლად რა

sudo cp smart-home/და ა.შ./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 კლონი [email protected]: dabastynator/SmartHome.git

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

შეეცადეთ დაიწყოთ ჭკვიანი სახლი და შეამოწმოთ ჟურნალის ფაილი. GPIO– ებზე წვდომის მისაღებად, პროგრამა უნდა დაიწყოს sudo– ით.

sudo ჭკვიანი სახლის დაწყება

კატა ლოგები/smarthome.log

თქვენ უნდა ნახოთ შეცდომის შეტყობინება კონფიგურაციის ფაილი არ არსებობს, რომელიც მიგვითითებს შემდეგ ეტაპზე. საცავი შეიცავს readme- ს, რომელიც ხსნის კონფიგურაციის ფაილს. თქვენ შეგიძლიათ ნახოთ ეს ლამაზად გაფორმებული github– ზე:

დააკოპირეთ ეს xml /home/pi/controlcenter.xml, შემდეგ დააყენეთ მდებარეობა თქვენი მედია სერვერისთვის და შეცვალეთ შინაარსი საჭიროებისამებრ. კონფიგურაციის დასრულების და ჭკვიანი სახლის გადატვირთვის შემდეგ (sudo smart-home გადატვირთვა) smarthome.log– ში უნდა ნახოთ შემდეგი შინაარსი

24.05-08: 26 დისტანციური ინფორმაცია de.neo.smarthome.cronjob. CronJob@15aeb7ab: დაგეგმეთ cron სამუშაო

24.05-08: 26 დისტანციური ინფორმაცია [trigger.light]-ით: დაელოდეთ 79391760 ms შესრულებისთვის 24.05-08: 26 RMI ინფორმაცია დამატებულია ვებ-დამმუშავებლის დამატებით (5061/ledstrip) 24.05-08: 26 RMI INFORMATION by 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 ვებ სერვერის დაწყება 5 დამმუშავებლით (localhost: 5061) 24.05-08: 26 დისტანციური ინფორმაცია Controlcenter– ის მიერ: დამატება 1. საკონტროლო ერთეული: MyUnit (xyz)…

ვებ სერვერი მუშაობს ახლა:-)

ნაბიჯი 4: კლიენტების დაყენება

კლიენტების დაყენება
კლიენტების დაყენება
კლიენტების დაყენება
კლიენტების დაყენება
კლიენტების დაყენება
კლიენტების დაყენება

სმარტფონის Android კლიენტი

ჭკვიანი სახლის პროგრამის git საცავი ასევე შეიცავს წყაროს android კლიენტისთვის, ასე რომ თქვენ შეგიძლიათ თავად შეადგინოთ იგი. მაგრამ მე დავამატე APK ამ ნაბიჯისათვის, რაც ამარტივებს მას. პირველად პროგრამის დაწყებისას ის მოგთხოვთ სერვერს, როგორც ზემოთ მოცემულ პირველ სურათზე. შეიყვანეთ სერვერის url და უსაფრთხოების ნიშანი.

ასე უნდა იყოს. თქვენ ახლა გაქვთ წვდომა სერვერზე და აკონტროლებთ თქვენს ბინას, უკრავთ მუსიკას და უყურებთ ვიდეოებს დისტანციურად თქვენს Raspberry Pi– ზე. გაითვალისწინეთ, რომ თქვენ შეგიძლიათ დაამატოთ ვიჯეტები თქვენს მთავარ ეკრანზე, რაც უფრო ხელმისაწვდომს ხდის გადამრთველებს და მუსიკალურ კონტროლს.

Smartwatch Pebble კლიენტი

ორი კენჭის კლიენტის წყარო განთავსებულია github– ზე. ერთი აპლიკაცია აჩვენებს მიმდინარე დაკვრის მუსიკალურ ფაილს: https://github.com/dabastynator/PebbleRemoteMusic… ეს ასევე გაძლევთ საშუალებას პაუზის/დაკვრის და მოცულობის გაზრდის/შემცირების საშუალებას.

მეორე აპლიკაცია იწვევს სამ მოქმედებას: https://github.com/dabastynator/PebbleControl გამშვები სახელებია: mobile.come_home mobile.leaving და mobile.go_to_bed. თუ თქვენ განსაზღვრავთ ღონისძიების წესებს ამ ტრიგერისთვის თქვენს კონფიგურაციაში-xml, თქვენ ააქტიურებთ მათ თქვენი საათის მიერ.

ეს ყველაფერი ღიაა, მაგრამ თქვენ არ გჭირდებათ მისი შედგენა, მე ასევე დავამატე კენჭის პროგრამები. ჩამოტვირთეთ PBW– ები თქვენი სმარტფონით, თქვენმა ტელეფონმა უნდა დააინსტალიროს ისინი თქვენს საათზე. კენჭის აპებს სჭირდებათ კონფიგურაცია სერვერთან სასაუბროდ. მე დავამატე ეკრანის სურათი, თუ როგორ გამოიყურება ჩემი პარამეტრები.

Smartwatch Garmin კლიენტი

ასევე არსებობს კლიენტი Garmin Smartwatches– ისთვის. აპლიკაცია ხელმისაწვდომია garmin connect აპლიკაციის მაღაზიაში და მისი ინსტალაცია შესაძლებელია აქ:

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

Smart Mirror კლიენტი

მე უკვე შევქმენი ინსტრუქცია, რომელიც განმარტავს, თუ როგორ უნდა შექმნათ ჭკვიანი სარკე, იხილეთ ეს https://www.instructables.com/id/Smart-Mirror-by-R…. წყაროს კოდი ასევე განთავსებულია github– ზე: https:// github.com/dabastynator/SmartMirror. Smart Mirror- ის პროგრამული უზრუნველყოფა კითხულობს კონფიგურაციას smart_config.js ფაილიდან, რომელიც არ არის git საცავის ნაწილი. კონფიგურაციის ფაილის შინაარსი უნდა გამოიყურებოდეს ამ ჩამონათვალში:

var mOpenWeatherKey = 'შენი-ღია-ბურთიანი გასაღები';

var mSecurity = 'თქვენი უსაფრთხოების ნიშანი';

თქვენ ასევე უნდა შეცვალოთ ფაილის პირველი ორი სტრიქონი smart_mirror.js, რათა მიუთითოთ Smart Home სერვერის IP მისამართი და მდებარეობა, რათა მიიღოთ შესაფერისი ამინდი.

მეტი კლიენტი

სერვერის პროგრამა არის მარტივი ვებ სერვერი. ეს გაძლევთ საშუალებას განახორციელოთ ქმედებები ნებისმიერი კლიენტისგან, რომელიც გსურთ მარტივი ვებ – ზარებით. დემო-ვიდეოში მე ვაჩვენებ Android პროგრამის შემსწავლელს AutoVoice– თან ერთად. ეს მაძლევს შესაძლებლობას მოვლენების გააქტიურება მარტივი ხმოვანი ბრძანებებით. მაგალითად "კარგი google, ძილის დროა" შეიძლება გამოიწვიოს mobile.go_to_bed. თქვენ ასევე შეგიძლიათ განახორციელოთ ვებ – ზარები, მაგალითად, IFTTT– დან. რას იტყვით ყვითელი მოციმციმე LED ზოლის შესახებ ელ.ფოსტის შეტყობინებისთვის?

შეგიძლიათ სერვერს სთხოვოთ შესაძლო ვებ-ზარები, როგორიცაა შემდეგი ბმულები (შეცვალეთ IP, პორტი და ჟეტონი თქვენი კონფიგურაციით)

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 = უსაფრთხოება-…

ნაბიჯი 5: დასკვნა

ჯერ კიდევ არსებობს რამდენიმე მახასიათებელი განსახორციელებლად: მას შემდეგ, რაც სერვერი გთავაზობთ უბრალო ვებ-აპის კლიენტებს, გააკეთეთ ბევრი გამოკითხვა. გამოკითხვის შესამცირებლად მინდა MQTT ინტეგრაცია უკეთესი შეტყობინებისთვის. ასევე wifi კვების ბლოკები უნდა შეასრულოს უფრო საიმედო ვიდრე rc კვების წყაროები, რადგან rc არის მხოლოდ ცალმხრივი კომუნიკაცია.

ძალიან სახალისოა ამ პროექტის განვითარება. და საკმაოდ მაგარია, რომ გააკონტროლო ბინა რამდენიმე მოწყობილობით, თუნდაც ინტერნეტ კავშირი გაწყდეს.

გირჩევთ: