Sisukord:

Nutikas kodu Raspberry Pi poolt: 5 sammu (piltidega)
Nutikas kodu Raspberry Pi poolt: 5 sammu (piltidega)

Video: Nutikas kodu Raspberry Pi poolt: 5 sammu (piltidega)

Video: Nutikas kodu Raspberry Pi poolt: 5 sammu (piltidega)
Video: Штукатурка стен - самое полное видео! Переделка хрущевки от А до Я. #5 2024, November
Anonim
Tark kodu Raspberry Pi poolt
Tark kodu Raspberry Pi poolt

Seal on juba mitu toodet, mis muudavad teie korteri targemaks, kuid enamik neist on patenteeritud lahendused. Aga miks on vaja nutitelefoniga valguse vahetamiseks Interneti -ühendust? See oli minu jaoks üks põhjus oma nutika kodu lahenduse loomiseks.

Programmeerisin serverirakenduse, mis töötab Raspberry Pi peal. See on javapõhine avatud lähtekoodiga projekt, mis võimaldab teil oma korterit konfigureerida ja ühendada mitu klienti ja "juhitavaid üksusi". Näitan lahendust, mis käsitseb rc toiteallika lüliteid, esitab muusikat ja videot Raspberry Pi -l, näitab nutipeegli olekut ning seda saab juhtida android -rakenduse ja kahe kiviklibuga. Allikat hostitakse githubis

Samm: asjad, mida vajate

Asjad, mida vajate
Asjad, mida vajate

Nutika kodu seadistamiseks vajate järgmisi koostisosi

  • Raspberry Pi vähemalt mudel 2 B
  • 433 MHz saatja, midagi sellist
  • 3 hüppajakaablit, mis ühendavad Raspberry Pi ja saatja
  • Mõned raadiojuhtimispistikud sagedusel 433 MHz
  • Androidi nutitelefon kliendirakenduse käivitamiseks

Lisaks saate nutikat kodu laiendada ka selliste valikuliste klientide ja üksustega

  • Pebble nutikell
  • Smart Mirror, vaadake seda projekti
  • 433 MHz juhitav LED-riba, vaadake seda

Samm: valmistage Raspberry Pi ette 433 MHz jaoks

Valmistage Raspberry Pi ette 433 MHz jaoks
Valmistage Raspberry Pi ette 433 MHz jaoks
Valmistage Raspberry Pi ette 433 MHz jaoks
Valmistage Raspberry Pi ette 433 MHz jaoks

Järgmistes sammudes vajate juurdepääsu Raspberry Pi käsureale. Juurdepääsu saamiseks lugege seda juhendit

Ühendage 433 MHz saatja Raspberry Pi -ga, nagu on näidatud ülaltoodud pildil

  • GND (saatja) 6 GND (raspi)
  • VCC (saatja) 2 +5V (raspi)
  • Andmed (saatja) 11 GPIO 17 (raspi)

Palun ühendage ka 17 cm antenn ANT (saatja) tihvtiga. See suurendab signaali märkimisväärselt.

Kuna meil on vaja mõnda raamatukogu teistest git -hoidlatest, peame installima git

sudo apt-get install git-core -y

Raspberry Pi seadistamiseks 433 MHz side jaoks vajame GPIO -de paremaks käsitsemiseks juhtmestiku Pi raamatukogu.

git kloon git: //git.drogon.net/wiringPi

cd juhtmestikPi./ehitada

Siis vajame raamatukogu, mis rakendab tavaliselt rc toiteallika protokolle.

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

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

Käivitatav fail „Send” võimaldab saata enamiku saadaolevate toiteallikate vahetamiseks koode.

Minu nutika kodu seadistuses on mul ka selles juhendis kirjeldatud rc LED-riba: https://www.instructables.com/id/RC-controlled-LED… Selle LED-riba värvide määramiseks vajate teist saatvat käivitatavat faili, mis võimaldab teil mis tahes täisarvu väärtuse saatmiseks (see kodeerib värvi).

Seetõttu kompileerige rcswitch-pi repos sendInt.cpp ja teisaldage see kataloogi/usr/bin/sendInt.

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

Nüüd peaksite saama saata rc -käske kahe käivitatava failiga/usr/bin/send ja/usr/bin/sendInt

Samm: seadistage Smart Home Server

Kõigepealt peate installima mitu paketti. Nutikas kodurakendus on javapõhine ja töötab hästi koos openjdk-11-ga. Ma pole kindel teiste java käituskeskkondade osas. Mplayer on minimalistlik käsurea muusikapleier. Omxplayer kasutab videote kodeerimiseks Raspberry Pi graafikat, seega tuleks seda kasutada videote puhul. Programmi ant on vaja Java rakenduse loomiseks.

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

Jar -faili ja logide seadistamise kataloogid.

sudo mkdir /opt /neo

sudo chown pi: pi/opt/neo mkdir/home/pi/Logs

Seadistage käivitusskript, et rakendus käivitumisel automaatselt käivitada. Seetõttu kopeerige lisatud nutikodu skript kataloogi /etc/init.d/ Lõin ka skripti kataloogi/usr/bin/, mis suunab käsud manustatud skripti juurde, nii et sisestan nutikodu lihtsalt konsooli, et käske täita.

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 nutikodu vaikeseaded

Nüüd on aeg hoidla üle vaadata ja rakendus üles ehitada. Kui te ei soovi seda ise kompileerida, saate lihtsalt alla laadida lisatud smarthome.jar ja teisaldada selle aadressile/opt/neo/

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

Proovige nutikodu käivitada ja logifaili kontrollida. GPIO -dele juurdepääsu saamiseks peab rakenduse käivitama sudo.

sudo targa kodu algus

kass Logid/smarthome.log

Te peaksite nägema veateadet Konfiguratsioonifaili pole olemas, mis viitab meile järgmisele sammule. Hoidla sisaldab readme, mis selgitab konfiguratsioonifaili. Seda näete kenasti renderdatuna githubis:

Kopeerige see xml kausta /home/pi/controlcenter.xml, seejärel määrake oma meediumiserveri asukoht ja muutke sisu vastavalt vajadusele. Kui olete konfigureerimise lõpetanud ja nutikodu taaskäivitanud (sudo smart-home restart), peaksite Smarthome.logis nägema järgmist sisu

24.05-08: 26 KAUGTEAVE de.neo.smarthome.cronjob. CronJob@15aeb7ab: ajakava cron job

24.05-08: 26 KAUGTEAVE [trigger.light]: oodake täitmist 79391760 ms 24.05-08: 26 RMI-TEAVE, lisades veebikäitleja (5061/ledstrip) /action) 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-TEAVE Start-veebiserveri 5 käitlejaga (localhost: 5061) 24.05-08: 26 Kaugteave Controlcenteri poolt: lisage 1. juhtseade: MyUnit (xyz)…

Veebiserver töötab nüüd:-)

Samm: seadistage kliendid

Klientide seadistamine
Klientide seadistamine
Klientide seadistamine
Klientide seadistamine
Klientide seadistamine
Klientide seadistamine

Nutitelefoni Androidi klient

Nutika kodu rakenduse git-hoidla sisaldab ka android-kliendi allikat, nii et saate selle ise kompileerida. Kuid lisasin selle sammu jaoks APK, mis teeb selle lihtsamaks. Rakenduse esmakordsel käivitamisel küsib see teilt serverit, nagu ülaltoodud esimesel pildil. Sisestage serveri URL ja turvamärk.

See peaks nii olema. Nüüd on teil juurdepääs serverile ja saate oma korterit juhtida, muusikat mängida ja videoid oma Raspberry Pi -ga eemalt vaadata. Pange tähele, et saate oma avakuvale lisada vidinaid, mis muudavad lülitid ja muusikajuhtimise paremini juurdepääsetavaks.

Nutikella Pebble klient

Kahe kivikliendi allikas on hostitud githubis. Üks rakendus näitab praegust esitatavat muusikafaili: https://github.com/dabastynator/PebbleRemoteMusic… See võimaldab teil ka peatada/esitada ja helitugevust suurendada/vähendada.

Teine rakendus käivitab kolm toimingut: https://github.com/dabastynator/PebbleControl Päästiku nimed on: mobile.come_home mobile.leaving ja mobile.go_to_bed. Kui määrate oma konfiguratsioonis xml selle päästiku jaoks sündmuseeskirjad, käivitate need käekella abil.

See kõik on avatud lähtekoodiga, kuid te ei pea seda ise koostama, lisasin ka kivikliburakendused. Laadige PBW -d alla oma nutitelefoniga, telefon peaks need teie kellale installima. Kiviklibulised rakendused vajavad serveriga rääkimiseks konfiguratsioone. Lisasin ekraanipildi, kuidas minu seaded välja näevad.

Nutikella Garmini klient

Garmini nutikellade jaoks on saadaval ka klient. Rakendus on saadaval rakenduse poes garmin connect ja selle saab installida siit:

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

Smart Mirrori klient

Olen juba loonud juhendi, mis selgitab nutika peegli loomist, vaadake seda https://www.instructables.com/id/Smart-Mirror-by-R …. Lähtekoodi hostitakse ka githubis: https:// github.com/dabastynator/SmartMirror. Nutika peegli tarkvara loeb konfiguratsiooni failist smart_config.js, mis ei kuulu giti hoidlasse. Konfiguratsioonifaili sisu peaks välja nägema selline:

var mOpenWeatherKey = 'teie-avatud-võti-võti';

var mSecurity = 'teie-turvamärk';

Samuti peate kohandama faili smart_mirror.js kahte esimest rida, et määrata Smart Home serveri IP -aadress ja õige ilma saamiseks asukoht.

Rohkem kliente

Serverirakendus on lihtne veebiserver. See võimaldab lihtsate veebikõnede abil käivitada toiminguid igalt soovitud kliendilt. Demovideos näitan androidi rakenduste tegijat koos AutoVoice'iga. See võimaldab mul sündmusi käivitada lihtsate häälkäsklustega. Näiteks „ok google, time to sleep” võib käivitada mobile.go_to_bed. Kuid saate teha ka veebikõnesid näiteks IFTTT kaudu. Kuidas oleks kollase vilkuva LED -ribaga meiliteatiste jaoks?

Saate serverilt küsida võimalikke veebikõnesid, näiteks järgmisi linke (asendage ip, port ja žetoon oma konfiguratsiooniga)

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. samm: järeldus

On veel mõned funktsioonid, mida rakendada: Kuna server pakub lihtsalt lihtsat veebi-api klienti, teevad nad palju küsitlusi. Küsitluse vähendamiseks soovin parema teavitamise jaoks MQTT integreerimist. Samuti peaksid WiFi -toiteallikad toimima usaldusväärsemalt kui rc -toiteallikad, kuna rc on vaid ühesuunaline side.

Selle projekti jaoks on selle arendamine väga lõbus. Ja päris lahe on korterit mitme seadme abil juhtida, isegi kui Interneti -ühendus katkeb.

Soovitan: