Innholdsfortegnelse:

Smart Home av Raspberry Pi: 5 trinn (med bilder)
Smart Home av Raspberry Pi: 5 trinn (med bilder)

Video: Smart Home av Raspberry Pi: 5 trinn (med bilder)

Video: Smart Home av Raspberry Pi: 5 trinn (med bilder)
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Juli
Anonim
Smart Home av Raspberry Pi
Smart Home av Raspberry Pi

Det er allerede flere produkter der ute som gjør leiligheten din smartere, men de fleste av dem er proprietære løsninger. Men hvorfor trenger du en internettforbindelse for å bytte lys med smarttelefonen din? Det var en grunn for meg til å bygge min egen Smart Home -løsning.

Jeg programmerte et serverprogram som kjører på en Raspberry Pi. Dette er et Java -basert åpen kildekode -prosjekt som lar deg konfigurere leiligheten din og koble til flere klienter og "kontrollerbare enheter". Jeg viser en løsning som håndterer brytere for rc -strømforsyning, spiller musikk og video på Raspberry Pi, viser status på smartspeil og kan styres av en Android -app og to småstein -apper. Kilden ligger på github

Trinn 1: Ting du trenger

Ting du trenger
Ting du trenger

For å sette opp Smart Home trenger du følgende ingredienser

  • Bringebær Pi minst modell 2 B
  • 433 MHz sender, noe slikt
  • 3 startkabler som forbinder Raspberry Pi og avsenderen
  • Noen radiokontakter på 433 MHz
  • Android -smarttelefon for å kjøre klientappen

I tillegg kan du utvide Smart Home med flere valgfrie klienter og enheter som dette

  • Pebble smartwatch
  • Smart Mirror, se dette prosjektet
  • 433 MHz kontrollert LED-stripe, se denne

Trinn 2: Forbered Raspberry Pi for 433 MHz

Forbered Raspberry Pi for 433 MHz
Forbered Raspberry Pi for 433 MHz
Forbered Raspberry Pi for 433 MHz
Forbered Raspberry Pi for 433 MHz

I de følgende trinnene trenger du tilgang til kommandolinjen på Raspberry Pi. For å få tilgang kan du lese denne instruerbare

Koble 433 MHz sender med Raspberry Pi som vist på bildet ovenfor

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

Koble også en 17 cm antenne til ANT (sender) -nålen. Det øker signalet betydelig.

Siden vi trenger noen biblioteker fra andre git -lagre, må vi installere git

sudo apt-get install git-core -y

For å sette opp Raspberry Pi for 433 MHz kommunikasjon trenger vi Pi -biblioteket for ledninger for bedre håndtering av GPIO -ene.

git klon git: //git.drogon.net/wiringPi

cd ledningerPi./build

Da trenger vi et bibliotek som implementerer typisk rc -strømforsyningsprotokoller.

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

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

Med den sendbare kjørbare kan du sende koder for å bytte de fleste tilgjengelige strømforsyninger.

I mitt Smart Home-oppsett har jeg også en rc LED-stripe beskrevet av denne instruksjonsboken: https://www.instructables.com/id/RC-controlled-LED… For å angi farger for denne LED-stripen trenger du en annen eksekverbar sending som lar deg å sende hvilken som helst heltallverdi (som koder fargen).

Derfor, kompiler sendInt.cpp i rcswitch-pi repo og flytt den til/usr/bin/sendInt.

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

Nå skal du nå kunne sende rc -kommandoer med de to kjørbare/usr/bin/send og/usr/bin/sendInt

Trinn 3: Sett opp Smart Home Server

Først av alt må du installere flere pakker. Smart Home-applikasjonen er java-basert og fungerer fint med openjdk-11. Jeg er ikke sikker på andre Java -runtime -miljøer. Mplayer er en minimalistisk kommandolinjemusikkspiller. Omxplayer bruker Raspberry Pi -grafikk for videokoding, så dette bør brukes til videoer. Programmauren er nødvendig for å bygge java -applikasjonen.

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

Sett opp kataloger for jar -filen og for logger.

sudo mkdir /opt /neo

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

Konfigurer startskript for å starte programmet automatisk ved oppstart. Kopier derfor det vedlagte smarthjemsskriptet til katalogen /etc/init.d/ Jeg opprettet også et skript i/usr/bin/som leder kommandoer til det vedlagte skriptet, så jeg skriver bare inn smart-home til konsollen for å utføre kommandoer.

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 standardinnstillinger for smart-hjem

Nå er det på tide å sjekke ut depotet og bygge programmet. Hvis du ikke vil kompilere det selv, kan du bare laste ned det vedlagte smarthome.jar og flytte det til/opt/neo/

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

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

Prøv å starte smart-home og sjekk loggfilen. For å få tilgang til GPIO -er må programmet startes av sudo.

sudo smart-hjem start

katt Logger/smarthome.log

Du bør se feilmeldingen Konfigurasjonsfil eksisterer ikke som viser oss til neste trinn. Depotet inneholder et readme som forklarer konfigurasjonsfilen. Du kan se dette pent gjengitt på github:

Kopier denne xml til /home/pi/controlcenter.xml, og angi deretter plasseringen for medieserveren og endre innholdet etter behov. Når du har fullført konfigurasjonen og startet smart-home (sudo smart-home restart), bør du se følgende innhold i smarthome.log

24.05-08: 26 FJERNINFORMASJON av de.neo.smarthome.cronjob. CronJob@15aeb7ab: Planlegg cron-jobb

24.05-08: 26 FJERNINFORMASJON med [trigger.light]: Vent 79391760 ms for utførelse 24.05-08: 26 RMI INFORMASJON med Add web-handler (5061/ledstrip) 24.05-08: 26 RMI INFORMATION by Add web-handler (5061 /handling) 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 INFORMATION by Start webserver with 5 handler (localhost: 5061) 24.05-08: 26 FJERNINFORMASJON fra Controlcenter: Legg til 1. kontrollenhet: MyUnit (xyz) …

Web-serveren kjører nå:-)

Trinn 4: Konfigurer klienter

Oppsettsklienter
Oppsettsklienter
Oppsettsklienter
Oppsettsklienter
Oppsettsklienter
Oppsettsklienter

Smartphone Android -klient

Git-depotet for smart-home-applikasjonen inneholder også kilden til Android-klienten, slik at du kan kompilere den selv. Men jeg har lagt ved APK -en for dette trinnet, det gjør det enklere. Første gang du starter appen, ber den deg om en server, som i det første bildet ovenfor. Skriv inn nettadressen til serveren og sikkerhetstokenet.

Det burde være det. Du har nå tilgang til serveren og kontrollerer leiligheten din, spiller musikk og ser på videoer eksternt på Raspberry Pi. Vær oppmerksom på at du kan legge til widgets på startskjermen, noe som gjør brytere og musikkontroll mer tilgjengelig.

Smartwatch Pebble -klient

Kilden for de to småsteinsklientene ligger på github. En app viser den gjeldende musikkfilen: https://github.com/dabastynator/PebbleRemoteMusic… Dette lar deg også pause/spille og volum opp/ned.

Den andre appen utløser tre handlinger: https://github.com/dabastynator/PebbleControl Triggernavnene er: mobile.come_home mobile.leaving og mobile.go_to_bed. Hvis du definerer hendelsesregler for denne utløseren i konfigurasjonen-xml, utløser du dem av klokken din.

Det hele er åpen kildekode, men du trenger ikke å kompilere det selv, jeg har også festet småsteinappene. Last ned PBW -ene med smarttelefonen din, telefonen skal installere dem på klokken din. Småstein -appene trenger konfigurasjoner for å snakke med serveren. Jeg la ved et skjermbilde av hvordan innstillingene mine ser ut.

Smartwatch Garmin -klient

Det er også en klient tilgjengelig for Garmin Smartwatches. Appen er tilgjengelig i garmin connect app-store og kan installeres her:

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

Smart Mirror -klient

Jeg har allerede laget en instruks som forklarer hvordan du lager Smart Mirror, se denne https://www.instructables.com/id/Smart-Mirror-by-R…. Kildekoden er også vert på github: https:// github.com/dabastynator/SmartMirror. Programvaren til Smart Mirror leser konfigurasjonen fra filen smart_config.js som ikke er en del av git -depotet. Innholdet i konfigurasjonsfilen skal se slik ut:

var mOpenWeatherKey = 'your-open-wheather-key';

var mSecurity = 'your-security-token';

Du må også justere de to første linjene i filen smart_mirror.js for å spesifisere Smart Home -serverens ip -adresse og plasseringen for å få riktig vær.

Flere kunder

Serverprogrammet er en enkel webserver. Dette lar deg utløse handlinger fra hvilken som helst klient du vil ved enkle websamtaler. I demo-videoen viser jeg android app tasker i kombinasjon med AutoVoice. Dette gjør at jeg kan utløse hendelser med enkle talekommandoer. For eksempel kan "ok google, tid til å sove" utløse mobile.go_to_bed. Men du kan også ringe web for eksempel fra IFTTT. Hva med en gul blinkende LED -stripe for e -postvarsel?

Du kan be serveren om mulige webanrop som følgende lenker (erstatt ip, port og token med konfigurasjonen)

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

Trinn 5: Konklusjon

Det er fortsatt noen funksjoner å implementere: Siden serveren gir bare en enkel web-api klienter gjøre mye avstemninger. For å redusere avstemningen vil jeg ha en MQTT -integrasjon for bedre varsling. Strømforsyninger til wifi bør også utføre mer pålitelige enn rc -strømforsyninger, siden rc bare er enveiskommunikasjon.

Det er veldig morsomt å utvikle for dette prosjektet. Og det er ganske kult å kontrollere leiligheten med flere enheter, selv om internettforbindelsen brytes.

Anbefalt: