Satura rādītājs:

Smart Home ar Raspberry Pi: 5 soļi (ar attēliem)
Smart Home ar Raspberry Pi: 5 soļi (ar attēliem)

Video: Smart Home ar Raspberry Pi: 5 soļi (ar attēliem)

Video: Smart Home ar Raspberry Pi: 5 soļi (ar attēliem)
Video: НЕ ВЗДУМАЙ снимать аккумулятор с машины. Делай это ПРАВИЛЬНО ! 2024, Novembris
Anonim
Raspberry Pi viedā māja
Raspberry Pi viedā māja

Jau tagad ir vairāki produkti, kas padara jūsu dzīvokli gudrāku, taču lielākā daļa no tiem ir patentēti risinājumi. Bet kāpēc jums ir nepieciešams interneta savienojums, lai ar viedtālruni pārslēgtu gaismu? Tas man bija viens no iemesliem veidot savu viedās mājas risinājumu.

Es ieprogrammēju servera lietojumprogrammu, kas darbojas ar Raspberry Pi. Šis ir uz java balstīts atvērtā pirmkoda projekts, kas ļauj konfigurēt dzīvokli un savienot vairākus klientus un “kontrolējamas vienības”. Es rādu risinājumu, kas apstrādā rc barošanas avota slēdžus, atskaņo mūziku un video Raspberry Pi, parāda statusu viedajā spogulī un to var kontrolēt ar Android lietotni un divām oļu lietotnēm. Avots tiek mitināts vietnē github

1. darbība. Nepieciešamās lietas

Nepieciešamās lietas
Nepieciešamās lietas

Lai iestatītu viedo māju, jums ir nepieciešamas šādas sastāvdaļas

  • Raspberry Pi vismaz 2. B modelis
  • 433 MHz sūtītājs, kaut kas līdzīgs šim
  • 3 džemperu kabeļi, kas savieno Raspberry Pi un sūtītāju
  • Dažas radio vadības ligzdas 433 MHz frekvencē
  • Android viedtālrunis, lai palaistu klienta lietotni

Turklāt jūs varat paplašināt viedo māju ar papildu klientiem un šādām vienībām

  • Pebble viedpulkstenis
  • Smart Mirror, skatiet šo projektu
  • 433 MHz kontrolēta LED sloksne, skatiet šo

2. darbība: sagatavojiet Raspberry Pi 433 MHz

Sagatavojiet Raspberry Pi 433 MHz
Sagatavojiet Raspberry Pi 433 MHz
Sagatavojiet Raspberry Pi 433 MHz
Sagatavojiet Raspberry Pi 433 MHz

Turpmākajās darbībās jums ir nepieciešama piekļuve komandrindai Raspberry Pi. Lai iegūtu piekļuvi, varat izlasīt šo pamācību

Savienojiet 433 MHz sūtītāju ar Raspberry Pi, kā parādīts attēlā

  • GND (sūtītājs) 6 GND (raspi)
  • VCC (sūtītājs) 2 +5V (raspi)
  • DATI (sūtītājs) 11 GPIO 17 (raspi)

Lūdzu, pievienojiet arī 17 cm antenu ANT (sūtītāja) tapai. Tas ievērojami palielina signālu.

Tā kā mums ir vajadzīgas dažas bibliotēkas no citām git krātuvēm, mums ir jāinstalē git

sudo apt-get install git-core -y

Lai iestatītu Raspberry Pi 433 MHz sakariem, mums ir nepieciešama Pi bibliotēka, lai labāk apstrādātu GPIO.

git klons git: //git.drogon.net/wiringPi

cd wiringPi./build

Tad mums ir nepieciešama bibliotēka, kas parasti ievieš rc barošanas protokolus.

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

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

Izpildāmā faila sūtīšana ļauj nosūtīt kodus, lai pārslēgtu lielāko daļu pieejamo barošanas avotu.

Manā viedās mājas iestatījumā man ir arī rc LED sloksne, kas aprakstīta šajā pamācībā: https://www.instructables.com/id/RC-controlled-LED… Lai iestatītu šīs LED sloksnes krāsas, jums ir nepieciešams cits nosūtāms izpildāmā fails, kas ļauj jums lai nosūtītu jebkuru veselu skaitļu vērtību (kas kodē krāsu).

Tāpēc apkopojiet sendInt.cpp rcswitch-pi repo un pārvietojiet to uz/usr/bin/sendInt.

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

Tagad jums vajadzētu būt iespējai nosūtīt rc komandas ar diviem izpildāmiem failiem/usr/bin/send un/usr/bin/sendInt

3. darbība: iestatiet viedo mājas serveri

Pirmkārt, jums jāinstalē vairākas paketes. Viedās mājas lietojumprogramma ir balstīta uz java un darbojas labi ar openjdk-11. Es neesmu pārliecināts par citām Java izpildlaika vidēm. Mplayer ir minimālisma komandrindas mūzikas atskaņotājs. Omxplayer video kodēšanai izmanto Raspberry Pi grafiku, tāpēc to vajadzētu izmantot videoklipiem. Programma ant ir nepieciešama, lai izveidotu java lietojumprogrammu.

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

Jar faila un žurnālu iestatīšanas katalogi.

sudo mkdir /opt /neo

sudo chown pi: pi/opt/neo mkdir/home/pi/Žurnāli

Konfigurējiet sākuma skriptu, lai lietojumprogramma automātiski startētu sāknēšanas laikā. Tāpēc nokopējiet pievienoto viedās mājas skriptu direktorijā /etc/init.d/. Es arī izveidoju skriptu mapē/usr/bin/, kas pievieno komandas pievienotajam skriptam, tāpēc es vienkārši ievadu viedo māju konsolē, lai izpildītu komandas.

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 viedās mājas noklusējuma iestatījumi

Tagad ir pienācis laiks pārbaudīt krātuvi un izveidot lietojumprogrammu. Ja nevēlaties to apkopot pats, varat vienkārši lejupielādēt pievienoto smarthome.jar un pārvietot to uz/opt/neo/

git klons [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/

Mēģiniet palaist viedo māju un pārbaudiet žurnāla failu. Lai piekļūtu GPIO, lietojumprogramma ir jāuzsāk, izmantojot sudo.

sudo viedās mājas sākums

kaķis Logs/smarthome.log

Jums vajadzētu redzēt kļūdas ziņojumu Konfigurācijas fails nepastāv, kas norāda uz nākamo darbību. Krātuve satur readme, kas izskaidro konfigurācijas failu. To varat redzēt labi atveidotā vietnē github:

Kopējiet šo xml uz /home/pi/controlcenter.xml, pēc tam iestatiet multivides servera atrašanās vietu un mainiet saturu pēc nepieciešamības. Kad esat pabeidzis konfigurāciju un restartējis viedo māju (sudo viedās mājas restartēšana), vietnē smarthome.log vajadzētu redzēt šādu saturu.

24.05-08: 26 ATTĀLĀ INFORMĀCIJA, ko iesniedza de.neo.smarthome.cronjob. CronJob@15aeb7ab: grafiks cron job

24.05-08: 26 ATTĀLĀ INFORMĀCIJA, izmantojot [trigger.light]: pagaidiet izpildi 79391760 ms 24.05-08: 26 RMI INFORMĀCIJA, pievienojot tīmekļa apstrādātāju (5061/ledstrip) /darbība) 24.05-08: 26 RMI INFORMĀCIJA, pievienojot tīmekļa apstrādātāju (5061/mediaserver) 24.05-08: 26 RMI INFORMĀCIJA, pievienojot tīmekļa apstrādātāju (5061/slēdzis) 24.05-08: 26 RMI INFORMĀCIJA ar Pievienot tīmekļa apstrādātāju (5061/controlcenter) 24.05-08: 26 RMI INFORMĀCIJA, ko nodrošina tīmekļa tīmekļa serveris ar 5 apstrādātājiem (lokālais saimnieks: 5061) 24.05-08: 26 Controlcenter ATTĀLĀ INFORMĀCIJA: Pievienojiet 1. vadības bloku: MyUnit (xyz)…

Tīmekļa serveris tagad darbojas:-)

4. darbība: iestatiet klientus

Iestatiet klientus
Iestatiet klientus
Iestatiet klientus
Iestatiet klientus
Iestatiet klientus
Iestatiet klientus

Viedtālruņa Android klients

Git krātuve viedās mājas lietojumprogrammai satur arī android klienta avotu, lai jūs to varētu apkopot pats. Bet šim darbam pievienoju APK failu, kas atvieglo to. Pirmo reizi startējot lietotni, tā pieprasa serveri, piemēram, pirmajā attēlā iepriekš. Ievadiet servera URL un drošības pilnvaru.

Tā tam vajadzētu būt. Tagad jums ir piekļuve serverim un varat kontrolēt savu dzīvokli, atskaņojot mūziku un skatoties videoklipus attālināti, izmantojot Raspberry Pi. Ņemiet vērā, ka sākuma ekrānam varat pievienot logrīkus, kas padara slēdžus un mūzikas vadību pieejamāku.

Smartwatch Pebble klients

Divu oļu klientu avots tiek mitināts vietnē github. Viena lietotne parāda pašreizējo mūzikas failu: https://github.com/dabastynator/PebbleRemoteMusic… Tas arī ļauj apturēt/atskaņot un palielināt/samazināt skaļumu.

Otrā lietotne aktivizē trīs darbības: https://github.com/dabastynator/PebbleControl Aktivizētāju nosaukumi ir: mobile.come_home mobile.leaving un mobile.go_to_bed. Ja konfigurācijas xml definējat šim aktivizētājam notikumu noteikumus, tos aktivizēs jūsu pulkstenis.

Tas viss ir atvērtā koda, bet jums tas nav jāapkopo, es pievienoju arī oļu lietotnes. Lejupielādējiet PBW ar savu viedtālruni, tālrunim tie jāinstalē pulkstenī. Oļu lietotnēm ir nepieciešama konfigurācija, lai sarunātos ar serveri. Es pievienoju ekrānuzņēmumu, kā izskatās mani iestatījumi.

Viedpulksteņa Garmin klients

Garmin viedpulksteņiem ir pieejams arī klients. Lietotne ir pieejama lietotņu veikalā garmin connect, un to var instalēt šeit:

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

Smart Mirror klients

Es jau esmu izveidojis pamācību, kurā paskaidrots, kā izveidot viedo spoguli, skatiet šo vietni https://www.instructables.com/id/Smart-Mirror-by-R …. Avota kods tiek mitināts arī vietnē github: https:// github.com/dabastynator/SmartMirror. Smart Mirror programmatūra nolasa konfigurāciju no faila smart_config.js, kas nav daļa no git repozitorija. Konfigurācijas faila saturam vajadzētu izskatīties šādi:

var mOpenWeatherKey = 'jūsu atvērtais laikapstākļu atslēga';

var mSecurity = 'jūsu drošības marķieris';

Jums ir arī jāpielāgo faila smart_mirror.js pirmās divas rindas, lai norādītu viedās mājas servera IP adresi un atrašanās vietu, lai iegūtu pareizos laika apstākļus.

Vairāk klientu

Servera lietojumprogramma ir vienkāršs tīmekļa serveris. Tas ļauj aktivizēt darbības no jebkura vēlamā klienta, veicot vienkāršus tīmekļa zvanus. Demo-video es rādu android lietotņu uzdevumu veicēju kombinācijā ar AutoVoice. Tas ļauj man aktivizēt notikumus, izmantojot vienkāršas balss komandas. Piemēram, “ok google, time to sleep” var aktivizēt mobile.go_to_bed. Bet jūs varat arī veikt tīmekļa zvanus, piemēram, no IFTTT. Kā būtu ar dzeltenu mirgojošu LED sloksni e -pasta paziņojumam?

Jūs varat lūgt serverim iespējamos tīmekļa zvanus, piemēram, šādas saites (aizstājiet IP, portu un marķieri ar savu konfigurāciju)

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-…

5. darbība. Secinājums

Joprojām ir jāīsteno dažas funkcijas: Tā kā serveris nodrošina tikai vienkāršu tīmekļa api, klienti veic daudz aptauju. Lai samazinātu aptauju, es vēlos MQTT integrāciju, lai labāk paziņotu. Arī wifi barošanas avotiem vajadzētu darboties uzticamāk nekā rc barošanas avotiem, jo rc ir tikai vienvirziena komunikācija.

Šim projektam ir ļoti jautri attīstīties. Un ir diezgan forši kontrolēt dzīvokli ar vairākām ierīcēm, pat ja tiek pārtraukts interneta savienojums.

Ieteicams: