Talaan ng mga Nilalaman:

Smart Home by Raspberry Pi: 5 Hakbang (na may Mga Larawan)
Smart Home by Raspberry Pi: 5 Hakbang (na may Mga Larawan)

Video: Smart Home by Raspberry Pi: 5 Hakbang (na may Mga Larawan)

Video: Smart Home by Raspberry Pi: 5 Hakbang (na may Mga Larawan)
Video: Лучшие проекты Raspberry Pi на 2022 год Raspberry Pi 7-дюймовый сенсорный экран 2024, Nobyembre
Anonim
Smart Home sa pamamagitan ng Raspberry Pi
Smart Home sa pamamagitan ng Raspberry Pi

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

Mga Bagay na Kailangan Mo
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

Ihanda ang Raspberry Pi para sa 433 MHz
Ihanda ang Raspberry Pi para sa 433 MHz
Ihanda ang Raspberry Pi para sa 433 MHz
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

Mga kliyente sa Pag-setup
Mga kliyente sa Pag-setup
Mga kliyente sa Pag-setup
Mga kliyente sa Pag-setup
Mga kliyente sa Pag-setup
Mga kliyente sa Pag-setup

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: