Talaan ng mga Nilalaman:
- Hakbang 1: Mga Bagay na Kailangan mo
- Hakbang 2: Ihanda ang Raspberry Pi para sa 433 MHz
- Hakbang 3: I-setup ang Smart Home Server
- Hakbang 4: Mga Setup na kliyente
- Hakbang 5: Konklusyon
Video: Smart Home by Raspberry Pi: 5 Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:09
Mayroon nang maraming mga produkto doon na ginagawang mas matalino ang iyong flat, ngunit ang karamihan sa kanila ay pagmamay-ari na mga solusyon. Ngunit bakit kailangan mo ng isang koneksyon sa internet upang lumipat ng isang ilaw sa iyong smartphone? Iyon ang isang dahilan para bumuo ako ng sarili kong solusyon sa Smart Home.
Nag-program ako ng isang application ng server na tumatakbo sa isang Raspberry Pi. Ito ay isang proyekto na batay sa Java na bukas na mapagkukunan na nagbibigay-daan sa iyo upang mai-configure ang iyong flat at kumonekta sa maraming mga kliyente at 'controlable unit'. Nagpakita ako ng isang solusyon na humahawak sa mga switch ng supply ng kuryente ng rc, nagpe-play ng musika at video sa Raspberry Pi, ipinapakita ang katayuan sa matalinong salamin at maaaring makontrol ng isang android app at dalawang maliliit na app. Ang pinagmulan ay naka-host sa github
Hakbang 1: Mga Bagay na Kailangan mo
Upang mai-set up ang Smart Home, kailangan mo ng mga sumusunod na 'sangkap'
- Raspberry Pi hindi bababa sa modelo 2 B
- Nagpadala ang 433 MHz, isang bagay tulad nito
- 3 mga jumper cable na kumukonekta sa Raspberry Pi at sa nagpadala
- Ang ilang mga socket ng kontrol sa radyo sa 433 MHz
- Android smartphone upang patakbuhin ang client app
Bilang karagdagan, maaari mong palawakin ang Smart Home na may higit pang mga opsyonal na kliyente at unit na tulad nito
- Pebble smartwatch
- Smart Mirror, tingnan ang proyektong ito
- 433 MHz kinokontrol na LED strip, tingnan ang
Hakbang 2: Ihanda ang Raspberry Pi para sa 433 MHz
Sa mga sumusunod na hakbang kailangan mo ng pag-access sa linya ng utos sa Raspberry Pi. Upang makuha ang pag-access maaari mong mabasa ang itinuturo na
Ikonekta ang nagpadala ng 433 MHz sa Raspberry Pi tulad ng ipinakita sa larawan sa itaas
- GND (nagpadala) 6 GND (raspi)
- VCC (nagpadala) 2 + 5V (raspi)
- DATA (nagpadala) 11 GPIO 17 (raspi)
Mangyaring ikonekta din ang isang 17cm antena sa ANT (nagpadala) na pin. Taasan ang signal na makabuluhan.
Dahil kailangan namin ng ilang mga aklatan mula sa iba pang mga repository ng git, kailangan naming mag-install ng git
sudo apt-get install git-core -y
Upang mai-set up ang Raspberry Pi para sa 433 MHz na komunikasyon kailangan namin ang mga library ng Pi Pi para sa mas mahusay na paghawak ng mga GPIO.
git clone git: //git.drogon.net/wiringPi
cd mga kablePi./ build
Pagkatapos kailangan namin ng isang silid-aklatan na nagpapatupad ng karaniwang mga rc supply ng protokol.
git clone git: //github.com/dabastynator/rcswitch-pi.git
cd rcswitch-pi gumawa ng cp ipadala / usr / bin /
Pinapayagan ka ng maipapatupad na 'send' upang magpadala ng mga code upang mapalitan ang karamihan sa mga magagamit na power supply.
Sa aking pag-setup ng Smart Home mayroon din akong isang rc LED strip na inilarawan ng itinuturo na ito: https://www.instructables.com/id/RC-controlled-LED… Upang magtakda ng mga kulay para sa LED strip na ito kailangan mo ng isa pang pagpapadala na maipatupad na nagbibigay-daan sa iyo upang magpadala ng anumang halaga ng Integer (Na-encode ang kulay).
Samakatuwid, ipunin ang sendInt.cpp sa rcswitch-pi repo at ilipat ito sa / usr / bin / sendInt.
sudo g ++ sendInt.cpp -o / usr / bin / sendInt /home/pi/rcswitch-pi/RCSwitch.o -ako / bahay / pi / rcswitch-pi -lwiringPi
Ngayon dapat mo na ngayong magpadala ng mga rc command kasama ang dalawang maipapatupad / usr / bin / ipadala at / usr / bin / sendInt
Hakbang 3: I-setup ang Smart Home Server
Una sa lahat kailangan mong mag-install ng maraming mga pakete. Ang application ng Smart Home ay nakabatay sa java at tumatakbo nang maayos sa openjdk-11. Hindi ako sigurado tungkol sa iba pang mga kapaligiran sa runtime ng java. Ang mplayer ay isang minimalist na music-line music player. Gumagamit ang omxplayer ng mga graphics ng Raspberry Pi para sa pag-encode ng video, kaya dapat itong gamitin para sa mga video. Kinakailangan ang program ant upang mabuo ang java application.
sudo apt-get install mplayer omxplayer openjdk-11-jdk ant -y
Mga direktoryo ng pag-setup para sa jar file at para sa mga tala.
sudo mkdir / opt / neo
sudo chown pi: pi / opt / neo mkdir / home / pi / Logs
I-configure ang start script upang awtomatikong simulan ang application sa boot. Samakatuwid kopyahin ang naka-attach na smart-home script sa direktoryo /etc/init.d/ Lumikha din ako ng isang script sa / usr / bin / na mga pipa na utos sa naka-attach na script, kaya't ipasok ko lang ang smart-home sa console upang magpatupad ng mga utos.
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 mga default na smart-home
Ngayon ay oras na upang mag-checkout sa repository at buuin ang application. Kung hindi mo nais na ipunin ito sa iyong sarili, maaari mo lamang i-download ang nakalakip na smarthome.jar at ilipat ito sa / opt / neo /
git clone [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 /
Subukang simulan ang smart-home at suriin ang file ng log. Upang makakuha ng pag-access para sa mga GPIO, ang aplikasyon ay dapat na sinimulan ng sudo.
sudo smart-home start
cat Logs / smarthome.log
Dapat mong makita ang mensahe ng error na Pag-configure ng file ay walang umiiral na tumuturo sa amin sa susunod na hakbang. Naglalaman ang repository ng isang readme na nagpapaliwanag ng config file. Maaari mong makita ito nang maayos na nai-render sa github:
Kopyahin ang xml na ito sa /home/pi/controlcenter.xml, pagkatapos ay itakda ang lokasyon para sa iyong media server at baguhin ang nilalaman kung kinakailangan mo ito. Kapag natapos mo na ang pagsasaayos at muling restart ang smart-home (sudo smart-home restart) dapat mong makita ang sumusunod na nilalaman sa smarthome.log
24.05-08: 26 KATOTOHANAN NA IMPORMASYON ni de.neo.smarthome.cronjob. CronJob@15aeb7ab: Iskedyul ng cron job
24.05-08: 26 Remote INFORMATION ni [trigger.light]: Maghintay ng 79391760 ms para sa pagpapatupad 24.05-08: 26 RMI INFORMATION ng Magdagdag ng web-handler (5061 / ledstrip) 24.05-08: 26 RMI INFORMATION ng Magdagdag ng web-handler (5061 / action) 24.05-08: 26 RMI INFORMATION sa pamamagitan ng Magdagdag ng web-handler (5061 / mediaserver) 24.05-08: 26 RMI INFORMATION ng Magdagdag ng web-handler (5061 / switch) 24.05-08: 26 RMI INFORMATION ng Magdagdag ng web-handler (5061 / controlcenter) 24.05-08: 26 RMI INFORMATION sa pamamagitan ng Start webserver na may 5 handler (localhost: 5061) 24.05-08: 26 REMOTE INFORMATION ng Controlcenter: Magdagdag ng 1. control unit: MyUnit (xyz)…
Tumatakbo na ang web-server:-)
Hakbang 4: Mga Setup na kliyente
Smartphone Android client
Ang git repository para sa smart-home application ay naglalaman din ng mapagkukunan para sa android client, upang maaari mo itong isaayos mismo. Ngunit ikinabit ko ang APK para sa hakbang na ito, na ginagawang mas madali. Sa unang pagkakataon na simulan mo ang app, hihilingin ka nito para sa isang server, tulad ng sa unang imahe sa itaas. Ipasok ang url ng server at ang security token.
Dapat ganun. Mayroon ka na ngayong access sa server at kontrolin ang iyong flat, pag-play ng musika at panonood ng mga video mula sa malayo sa iyong Raspberry Pi. Tandaan na maaari kang magdagdag ng mga widget sa iyong homescreen, na ginagawang mas madaling ma-access ang mga switch at kontrol sa musika.
Smartwatch Pebble client
Ang mapagkukunan para sa dalawang kliyente ng maliliit na bato ay naka-host sa github. Ipinapakita ng isang app ang kasalukuyang nagpe-play na file ng musika: https://github.com/dabastynator/PebbleRemoteMusic… Pinapayagan ka din nitong i-pause / i-play at i-volume / pababa.
Ang pangalawang app ay nag-trigger ng tatlong mga pagkilos: https://github.com/dabastynator/PebbleControl Ang mga nag-trigger na pangalan ay: mobile.come_home mobile.leaving at mobile.go_to_bed. Kung tinukoy mo ang mga panuntunan sa kaganapan para sa pag-trigger na ito sa iyong pagsasaayos-xml i-trigger mo ang mga ito sa pamamagitan ng iyong relo.
Lahat ng ito ay open-source, ngunit hindi mo kailangang isulat ito mismo, ikinabit ko rin ang mga maliliit na app. I-download ang mga PBW sa iyong smartphone, dapat i-install ng iyong telepono ang mga ito sa iyong relo. Ang mga maliliit na app ay nangangailangan ng mga pagsasaayos upang makipag-usap sa server. Nag-attach ako ng isang screenshot kung paano ang hitsura ng aking mga setting.
Smartwatch Garmin client
Mayroon ding client na magagamit para sa Garmin Smartwatches. Magagamit ang app sa garmin connect app-store at maaaring mai-install dito:
apps.garmin.com/en-US/apps/c745527d-f2af-4…
Kliyente ng Smart Mirror
Lumikha na ako ng isang itinuturo na nagpapaliwanag kung paano lumikha ng Smart Mirror, tingnan ang https://www.instructables.com/id/Smart-Mirror-by-R…. Ang source code ay naka-host din sa github: https:// github.com/dabastynator/SmartMirror. Binabasa ng software ng Smart Mirror ang pagsasaayos mula sa file na smart_config.js na hindi bahagi ng git repository. Ang nilalaman ng file ng pagsasaayos ay dapat magmukhang sa listahang ito:
var mOpenWeatherKey = 'your-open-wheather-key';
var mSecurity = 'your-security-token';
Kailangan mo ring ayusin ang unang dalawang linya ng file na smart_mirror.js upang tukuyin ang address ng Smart Home server ip at ang lokasyon upang makuha ang tamang panahon.
Mas maraming kliyente
Ang application ng server ay isang simpleng web server. Pinapayagan ka nitong mag-trigger ng mga pagkilos mula sa anumang client na nais mong gawin sa pamamagitan ng simpleng mga web-call. Sa demo-video ipinapakita ko ang tasker ng android app na kasama ng AutoVoice. Pinapayagan ako nitong mag-trigger ng mga kaganapan na may simpleng mga utos ng boses. Halimbawa "ok google, oras upang matulog" ay maaaring magpalitaw sa mobile.go_to_bed. Ngunit maaari mo ring gawin ang mga web-call halimbawa mula sa IFTTT. Paano ang tungkol sa isang dilaw na blinking LED strip para sa pag-abiso sa email?
Maaari mong tanungin ang server para sa mga posibleng tawag sa web tulad ng pagsunod sa mga link (palitan ang ip, port at token ng iyong pagsasaayos)
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 = security-…
Hakbang 5: Konklusyon
Mayroon pa ring ilang mga tampok na ipatutupad: Dahil ang server ay nagbibigay lamang ng isang simpleng mga kliyente sa web-api na gumagawa ng maraming botohan. Upang mabawasan ang botohan gusto ko ng isang pagsasama ng MQTT para sa mas mahusay na abiso. Gayundin ang mga power supply ng wifi ay dapat na maisagawa nang mas maaasahan kaysa sa mga supply ng kuryente ng rc dahil ang rc ay isang paraan lamang ng komunikasyon.
Ginagawa itong isang kasiyahan sa pagbuo para sa proyektong ito. At ito ay medyo cool na upang makontrol ang flat ng maraming mga aparato, kahit na ang koneksyon sa internet ay nasira.
Inirerekumendang:
Paano Mag-disassemble ng isang Computer Na May Madaling Hakbang at Mga Larawan: 13 Hakbang (na may Mga Larawan)
Paano Mag-disassemble ng isang Computer Na May Madaling Mga Hakbang at Larawan: Ito ay isang tagubilin tungkol sa kung paano i-disassemble ang isang PC. Karamihan sa mga pangunahing sangkap ay modular at madaling matanggal. Gayunpaman mahalaga na maging maayos ka tungkol dito. Makakatulong ito upang maiwasan ka sa pagkawala ng mga bahagi, at sa paggawa din ng muling pagsasama
Ang Laser Pointer na naka-mount sa spectacle para sa Mga Taong May Mga Kapansanan sa Locomotor: 9 Mga Hakbang (na may Mga Larawan)
Ang Laser Pointer na naka-mount sa spectacle para sa Mga Taong May Kapansanan sa Locomotor: Ang mga taong may malubhang mga kapansanan sa lokomotor tulad ng mga sanhi ng cerebral palsy ay madalas na may mga kumplikadong pangangailangan sa komunikasyon. Maaaring kailanganin silang gumamit ng mga board na may alpabeto o karaniwang ginagamit na mga salitang nakalimbag sa kanila upang makatulong sa komunikasyon. Gayunpaman, marami
Pag-hack sa TV Tuner upang Basahin ang Mga Larawan sa Daigdig Mula sa Mga Satellite: 7 Mga Hakbang (na may Mga Larawan)
Pag-hack sa TV Tuner upang Basahin ang Mga Larawan sa Daigdig Mula sa Mga Satellite: Mayroong maraming mga satellite sa itaas ng aming mga ulo. Alam mo ba, na ang paggamit lamang ng Iyong computer, TV Tuner at simpleng DIY antena Maaari mong matanggap ang mga pagpapadala mula sa kanila? Halimbawa ng mga real time na larawan ng mundo. Ipapakita ko sa iyo kung paano. Kakailanganin mo ang: - 2 w
Pasadyang Arduino upang Panatilihing MAAARI ang Mga Pindutan sa Mga Manibela na May Bagong Car Stereo: 9 Mga Hakbang (na may Mga Larawan)
Pasadyang Arduino upang Panatilihin ang CAN Steering Wheel Buttons Sa Bagong Car Stereo: Napagpasyahan kong palitan ang orihinal na stereo ng kotse sa aking Volvo V70 -02 ng isang bagong stereo upang masisiyahan ako sa mga bagay tulad ng mp3, bluetooth at handsfree. Ang aking kotse ay may ilang mga kontrol sa manibela para sa stereo na nais kong magamit pa rin.
Album ng Mga Litrato ng Mga Bata Na May Komersyal ng Flashcard: 8 Mga Hakbang (na may Mga Larawan)
Kids Photo Album With Flashcard Commercial: Ipinapakita ng mga itinuturo na ito kung paano gumawa ng isang awtomatikong pag-update ng photo album ng WiFi bilang karagdagan sa mga tampok sa komersyal na flash card