INHOUDSOPGAWE:

Smart Home deur Raspberry Pi: 5 stappe (met foto's)
Smart Home deur Raspberry Pi: 5 stappe (met foto's)

Video: Smart Home deur Raspberry Pi: 5 stappe (met foto's)

Video: Smart Home deur Raspberry Pi: 5 stappe (met foto's)
Video: Raspberry Pi 4B in de Argon ONE M.2-behuizing met een 128 GB SSD, Home Assistant 2024, Julie
Anonim
Smart Home deur Raspberry Pi
Smart Home deur Raspberry Pi

Daar is reeds verskillende produkte wat u woonstel slimmer maak, maar die meeste daarvan is eie oplossings. Maar waarom het u 'n internetverbinding nodig om 'n lig met u slimfoon te verander? Dit was een van die redes waarom ek my eie Smart Home -oplossing moes bou.

Ek het 'n bedienertoepassing geprogrammeer wat op 'n Raspberry Pi werk. Dit is 'n Java -gebaseerde open source -projek waarmee u u woonstel kan konfigureer en verskeie kliënte en 'beheerbare eenhede' kan verbind. Ek wys 'n oplossing wat rc -kragtoevoer skakelaars hanteer, musiek en video speel op die Raspberry Pi, die status op 'n slim spieël toon en kan beheer word deur 'n Android -app en twee klippie -programme. Die bron word aangebied op github

Stap 1: Dinge wat u nodig het

Dinge wat jy nodig het
Dinge wat jy nodig het

Om die Smart Home op te stel, benodig u die volgende 'bestanddele'

  • Framboos Pi ten minste model 2 B
  • 433 MHz sender, iets soos hierdie
  • 3 springkabels wat die Raspberry Pi en die sender verbind
  • Sommige radiobeheer -voetstukke op 433 MHz
  • Android -slimfoon om die kliënt -app uit te voer

Boonop kan u die Smart Home uitbrei met meer opsionele kliënte en eenhede soos hierdie

  • Kliphorlosie
  • Smart Mirror, sien hierdie projek
  • 433 MHz beheerde LED-strook, sien hierdie

Stap 2: Berei Raspberry Pi voor vir 433 MHz

Berei Raspberry Pi voor vir 433 MHz
Berei Raspberry Pi voor vir 433 MHz
Berei Raspberry Pi voor vir 433 MHz
Berei Raspberry Pi voor vir 433 MHz

In die volgende stappe benodig u toegang tot die opdragreël op die Raspberry Pi. Om toegang te verkry, kan u hierdie instruksionele https://www.instructables.com/id/Remote-SSH-access … lees

Koppel die 433 MHz sender met die Raspberry Pi soos op die foto hierbo getoon

  • GND (sender) 6 GND (raspi)
  • VCC (sender) 2 +5V (raspi)
  • DATA (sender) 11 GPIO 17 (raspi)

Koppel ook 'n 17 cm -antenna aan die ANT (sender) pen. Dit verhoog die sein aansienlik.

Aangesien ons biblioteke van ander git -bewaarplekke benodig, moet ons git installeer

sudo apt-get install git-core -y

Om die Raspberry Pi vir 433 MHz kommunikasie op te stel, benodig ons die bedrading Pi -biblioteek vir 'n beter hantering van die GPIO's.

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

cd bedradingPi./gebou

Dan benodig ons 'n biblioteek wat tipies rc -kragtoevoerprotokolle implementeer.

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

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

Met die 'stuur' uitvoerbare program kan u kodes stuur om die meeste beskikbare kragtoevoer oor te skakel.

In my Smart Home-opstelling het ek ook 'n rc LED-strook wat deur hierdie instruksies beskryf word: https://www.instructables.com/id/RC-controlled-LED… Om kleure vir hierdie LED-strook in te stel, benodig u nog 'n stuurprogram waarmee u dit kan stuur om 'n heelgetalwaarde (wat die kleur kodeer) te stuur.

Stel dus die sendInt.cpp in die rcswitch-pi repo op en skuif dit na/usr/bin/sendInt.

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

Nou behoort u nou rc -opdragte te kan stuur met die twee uitvoerbare lêers/usr/bin/send en/usr/bin/sendInt

Stap 3: Stel Smart Home Server op

Eerstens moet u verskeie pakkette installeer. Die Smart Home-toepassing is op Java gebaseer en werk goed met openjdk-11. Ek is nie seker oor ander Java -runtime -omgewings nie. Die mplayer is 'n minimalistiese opdraglyn-musiekspeler. Die omxplayer gebruik die Raspberry Pi -grafika vir videokodering, dus dit moet vir video's gebruik word. Die programmier is nodig om die java -toepassing te bou.

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

Stel dopgehou op vir die jar -lêer en vir logboeke.

sudo mkdir /opt /neo

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

Stel die beginskrip op om die toepassing outomaties tydens die opstart te begin. Kopieer dus die aangehegte smart-home script na die gids /etc/init.d/ ek het ook 'n script gemaak in/usr/bin/wat opdragte na die aangehegte script lei, sodat ek net die smart-home na die konsole kan voer om opdragte uit te voer.

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 standaardinstellings vir smart-home

Dit is nou tyd om die bewaarplek af te betaal en die toepassing te bou. As u dit nie self wil saamstel nie, kan u net die aangehegte smarthome.jar aflaai en dit na/opt/neo/skuif

git kloon [email protected]: dabastynator/SmartHome.git

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

Probeer om die slimhuis te begin en kyk na die loglêer. Om toegang tot die GPIO's te verkry, moet die toepassing deur sudo begin word.

sudo slim-huis begin

kat Logs/smarthome.log

U moet die foutboodskap sien dat die konfigurasielêer nie bestaan nie, wat ons na die volgende stap verwys. Die bewaarplek bevat 'n leesbrief wat die konfigurasielêer verduidelik. U kan dit mooi weergegee sien op github:

Kopieer hierdie xml na /home/pi/controlcenter.xml, stel dan die ligging vir u mediaserver in en verander die inhoud soos u dit nodig het. Nadat u die konfigurasie voltooi het en die slimhuis weer begin het (sudo smart-home restart), moet u die volgende inhoud in die smarthome.log sien

24.05-08: 26 AFSTANDINLIGTING deur de.neo.smarthome.cronjob. CronJob@15aeb7ab: skeduleer cron-werk

24.05-08: 26 AFSTANDINLIGTING deur [trigger.light]: Wag 79391760 ms vir uitvoering 24.05-08: 26 RMI-INLIGTING deur Add web-handler (5061/ledstrip) 24.05-08: 26 RMI INFORMATION by Add web-handler (5061 /aksie) 24.05-08: 26 RMI-INLIGTING deur 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 by Start webserver with 5 handler (localhost: 5061) 24.05-08: 26 REMOTE INFORMATION by Controlcenter: Add 1. control unit: MyUnit (xyz) …

Die webbediener loop nou:-)

Stap 4: Stel kliënte op

Stel kliënte op
Stel kliënte op
Stel kliënte op
Stel kliënte op
Stel kliënte op
Stel kliënte op

Smartphone Android -kliënt

Die git-bewaarplek vir die slimhuis-toepassing bevat ook die bron vir die Android-kliënt, sodat u dit self kan saamstel. Maar ek het die APK vir hierdie stap aangeheg, wat dit makliker maak. Die eerste keer dat u die app begin, vra dit u om 'n bediener, soos in die eerste prent hierbo. Voer die url van die bediener en die sekuriteitstoken in.

Dit behoort dit te wees. U het nou toegang tot die bediener en beheer u woonstel, speel musiek en kyk na video's op afstand op u Raspberry Pi. Let daarop dat u widgets op u tuisskerm kan voeg, wat skakelaars en musiekbeheer meer toeganklik maak.

Smartwatch Pebble -kliënt

Die bron vir die twee klippiekliënte word op github aangebied. Een program wys die huidige musieklêer: https://github.com/dabastynator/PebbleRemoteMusic … Hiermee kan u ook onderbreek/speel en volume op/af verhoog.

Die tweede app veroorsaak drie aksies: https://github.com/dabastynator/PebbleControl Die snellername is: mobile.come_home mobile.leaving en mobile.go_to_bed. As u gebeurtenisreëls vir hierdie sneller in u konfigurasie-xml definieer, aktiveer u dit deur u horlosie.

Dit is alles open source, maar u hoef dit nie self op te stel nie; ek het ook die klippie-programme aangeheg. Laai die PBW's af met u slimfoon, u telefoon moet dit op u horlosie installeer. Die klippie -programme benodig konfigurasies om met die bediener te praat. Ek het 'n skermkiekie aangeheg hoe my instellings lyk.

Smartwatch Garmin -kliënt

Daar is ook 'n kliënt beskikbaar vir Garmin Smartwatches. Die app is beskikbaar in die garmin connect-appwinkel en kan hier geïnstalleer word:

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

Smart Mirror -kliënt

Ek het reeds 'n instruksies geskep wat verduidelik hoe u die Smart Mirror kan skep, sien hierdie https://www.instructables.com/id/Smart-Mirror-by-R…. Die bronkode word ook op github aangebied: https:// github.com/dabastynator/SmartMirror. Die sagteware van die Smart Mirror lees die opset van die lêer smart_config.js wat nie deel is van die git -bewaarplek nie. Die inhoud van die konfigurasielêer behoort soos volg te lyk:

var mOpenWeatherKey = 'u-oop-weersleutel';

var mSecurity = 'your-security-token';

U moet ook die eerste twee reëls van die lêer smart_mirror.js aanpas om die IP -adres van die Smart Home -bediener en die ligging te spesifiseer om die regte weer te kry.

Meer kliënte

Die bedienertoepassing is 'n eenvoudige webbediener. Dit stel u in staat om aksies te aktiveer van enige kliënt wat u wil deur eenvoudige weboproepe. In die demo-video wys ek die Android-app tasker in kombinasie met AutoVoice. Dit stel my in staat om gebeurtenisse te aktiveer met eenvoudige stemopdragte. Byvoorbeeld, "ok google, tyd om te slaap" kan mobile.go_to_bed veroorsaak. Maar u kan ook weboproepe doen, byvoorbeeld vanaf IFTTT. Wat van 'n geel knipperende LED -strook vir e -poskennisgewing?

U kan die bediener vra vir moontlike weboproepe soos die volgende skakels (vervang ip, poort en teken deur u opset)

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

Stap 5: Gevolgtrekking

Daar is nog 'n paar funksies wat geïmplementeer moet word: Aangesien die bediener net 'n eenvoudige web-api bied, doen kliënte baie meningspeilings. Om die stembus te verminder, wil ek 'n MQTT -integrasie hê vir 'n beter kennisgewing. WiFi -kragtoevoer behoort ook betroubaarder te wees as rc -kragtoevoer, aangesien rc slegs 'n eenrigtingkommunikasie is.

Dit is baie pret om hierdie projek te ontwikkel. En dit is redelik gaaf om die woonstel met verskeie toestelle te beheer, selfs al breek die internetverbinding.

Aanbeveel: