Indholdsfortegnelse:

Smart Home af Raspberry Pi: 5 trin (med billeder)
Smart Home af Raspberry Pi: 5 trin (med billeder)

Video: Smart Home af Raspberry Pi: 5 trin (med billeder)

Video: Smart Home af Raspberry Pi: 5 trin (med billeder)
Video: Zigbee датчик освещенности, температуры и влажности с экраном на электронных чернилах Moes 2024, Juli
Anonim
Smart Home af Raspberry Pi
Smart Home af Raspberry Pi

Der er allerede flere produkter derude, der gør din lejlighed smartere, men de fleste af dem er proprietære løsninger. Men hvorfor har du brug for en internetforbindelse for at skifte lys med din smartphone? Det var en af grundene til, at jeg byggede min egen Smart Home -løsning.

Jeg programmerede et serverprogram, der kører på en Raspberry Pi. Dette er et Java -baseret open source -projekt, der giver dig mulighed for at konfigurere din lejlighed og forbinde flere klienter og 'kontrollerbare enheder'. Jeg viser en løsning, der håndterer rc -strømforsyningskontakter, afspiller musik og video på Raspberry Pi, viser status på smart mirror og kan styres af en Android -app og to småsten -apps. Kilden er hostet på github

Trin 1: Ting du har brug for

Ting du har brug for
Ting du har brug for

For at konfigurere Smart Home skal du bruge følgende 'ingredienser'

  • Hindbær Pi mindst model 2 B
  • 433 MHz afsender, sådan noget
  • 3 jumperkabler, der forbinder Raspberry Pi og afsenderen
  • Nogle radiokontrolstik ved 433 MHz
  • Android -smartphone til at køre klient -appen

Derudover kan du udvide Smart Home med flere valgfrie klienter og enheder som denne

  • Pebble smartwatch
  • Smart Mirror, se dette projekt
  • 433 MHz kontrolleret LED-strip, se denne

Trin 2: Forbered Raspberry Pi til 433 MHz

Forbered Raspberry Pi til 433 MHz
Forbered Raspberry Pi til 433 MHz
Forbered Raspberry Pi til 433 MHz
Forbered Raspberry Pi til 433 MHz

I de følgende trin har du brug for adgang til kommandolinjen på Raspberry Pi. For at få adgang kan du læse denne instruerbare

Tilslut 433 MHz afsenderen med Raspberry Pi som vist på billedet ovenfor

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

Tilslut også en 17 cm antenne til ANT (afsender) pin. Det øger signalet markant.

Da vi har brug for nogle biblioteker fra andre git -arkiver, skal vi installere git

sudo apt-get install git-core -y

For at konfigurere Raspberry Pi til 433 MHz kommunikation har vi brug for Pi -biblioteket til ledninger til bedre håndtering af GPIO'erne.

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

cd wiringPi./build

Så har vi brug for et bibliotek, der implementerer typisk rc -strømforsyningsprotokoller.

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

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

Med den 'send' eksekverbare fil kan du sende koder for at skifte de fleste tilgængelige strømforsyninger.

I min Smart Home-opsætning har jeg også en rc LED-strip, der er beskrevet af denne instruktør: https://www.instructables.com/id/RC-controlled-LED… For at indstille farver til denne LED-strip skal du bruge en anden afsendbar eksekverbar, der giver dig mulighed for at sende enhver heltalværdi (der koder farven).

Kompiler derfor sendInt.cpp i rcswitch-pi repo og flyt 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

Nu skulle du nu kunne sende rc -kommandoer med de to eksekverbare filer/usr/bin/send og/usr/bin/sendInt

Trin 3: Opsætning af Smart Home Server

Først og fremmest skal du installere flere pakker. Smart Home-applikationen er java-baseret og kører fint med openjdk-11. Jeg er ikke sikker på andre Java -runtime -miljøer. Mplayer er en minimalistisk kommandolinjemusikafspiller. Omxplayer bruger Raspberry Pi -grafikken til videokodning, så dette bør bruges til videoer. Programmauren er nødvendig for at bygge java -applikationen.

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

Opsæt mapper til jar -filen og til logfiler.

sudo mkdir /opt /neo

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

Konfigurer startscript til automatisk at starte programmet ved opstart. Kopier derfor det vedhæftede smart-home-script til biblioteket /etc/init.d/ Jeg har også oprettet et script i/usr/bin/, der leder kommandoer til det vedhæftede script, så jeg skal bare indtaste smart-home til konsollen for at udfø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 standardindstillinger for smart-home

Nu er det tid til at tjekke depotet og bygge applikationen. Hvis du ikke vil kompilere det selv, kan du bare downloade det vedhæftede smarthome.jar og flytte det til/opt/neo/

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

Prøv at starte smart-home og tjek logfilen. For at få adgang til GPIO'erne skal applikationen startes af sudo.

sudo smart-home start

kat Logs/smarthome.log

Du skulle se fejlmeddelelsen Konfigurationsfil findes ikke, der peger os til det næste trin. Lageret indeholder et readme, der forklarer konfigurationsfilen. Du kan se dette flot gengivet på github:

Kopiér denne xml til /home/pi/controlcenter.xml, og indstil derefter placeringen for din medieserver, og skift indholdet efter behov. Når du er færdig med konfigurationen og genstartet smart-home (sudo smart-home genstart), skal du se følgende indhold i smarthome.log

24.05-08: 26 FJERNOPLYSNINGER af de.neo.smarthome.cronjob. CronJob@15aeb7ab: Planlæg cron-job

24.05-08: 26 REMOTE INFORMATION by [trigger.light]: Vent 79391760 ms til udførelse 24.05-08: 26 RMI INFORMATION by Add web-handler (5061/ledstrip) 24.05-08: 26 RMI INFORMATION by Add web-handler (5061 /handling) 24.05-08: 26 RMI INFORMATION af Tilføj web-handler (5061/mediaserver) 24.05-08: 26 RMI INFORMATION af Tilføj web-handler (5061/switch) 24.05-08: 26 RMI INFORMATION af Tilføj web-handler (5061/controlcenter) 24.05-08: 26 RMI INFORMATION af Start webserver med 5 handler (localhost: 5061) 24.05-08: 26 FJERNOPLYSNINGER fra Controlcenter: Tilføj 1. kontrolenhed: MyUnit (xyz) …

Web-serveren kører nu:-)

Trin 4: Opsætning af klienter

Opsætning af klienter
Opsætning af klienter
Opsætning af klienter
Opsætning af klienter
Opsætning af klienter
Opsætning af klienter

Smartphone Android -klient

Git-depotet til smart-home-applikationen indeholder også kilden til Android-klienten, så du kan kompilere den selv. Men jeg vedhæftede APK'en til dette trin, det gør det lettere. Første gang du starter appen, beder den dig om en server, som i det første billede ovenfor. Indtast serverens webadresse og sikkerhedstokenet.

Det burde være det. Du har nu adgang til serveren og styrer din lejlighed, spiller musik og ser videoer eksternt på din Raspberry Pi. Bemærk, at du kan tilføje widgets til din startskærm, hvilket gør switches og musikstyring mere tilgængelig.

Smartwatch Pebble -klient

Kilden til de to småstensklienter er hostet på github. Én app viser den aktuelle musikfil: https://github.com/dabastynator/PebbleRemoteMusic… Dette giver dig også mulighed for at pause/afspille og volumen op/ned.

Den anden app udløser tre handlinger: https://github.com/dabastynator/PebbleControl Trigger-navnene er: mobile.come_home mobile.leaving og mobile.go_to_bed. Hvis du definerer hændelsesregler for denne trigger i din konfiguration-xml, udløser du dem af dit ur.

Det hele er open source, men du behøver ikke at kompilere det selv, jeg har også vedhæftet småsten-apps. Download PBW'erne med din smartphone, din telefon skal installere dem på dit ur. Småsten -apps har brug for konfigurationer for at tale med serveren. Jeg vedhæftede et skærmbillede, hvordan mine indstillinger ser ud.

Smartwatch Garmin -klient

Der er også en klient til rådighed for Garmin Smartwatches. Appen er tilgængelig i garmin connect app-store og kan installeres her:

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

Smart Mirror -klient

Jeg har allerede oprettet en instruerbar, der forklarer, hvordan du opretter Smart Mirror, se dette https://www.instructables.com/id/Smart-Mirror-by-R…. Kildekoden er også hostet på github: https:// github.com/dabastynator/SmartMirror. Softwaren i Smart Mirror læser konfigurationen fra filen smart_config.js, der ikke er en del af git -depotet. Indholdet af konfigurationsfilen skal se sådan ud:

var mOpenWeatherKey = 'din-åbne-vejr-nøgle';

var mSecurity = 'din-sikkerhed-token';

Du skal også justere de to første linjer i filen smart_mirror.js for at angive IP -adressen til Smart Home -serveren og placeringen for at få det rigtige vejr.

Flere kunder

Serverprogrammet er en simpel webserver. Dette giver dig mulighed for at udløse handlinger fra enhver klient, du ønsker, ved simple webopkald. I demo-videoen viser jeg android app tasker i kombination med AutoVoice. Dette gør det muligt for mig at udløse begivenheder med enkle stemmekommandoer. For eksempel kan "ok google, tid til at sove" udløse mobile.go_to_bed. Men du kan også foretage webopkald for eksempel fra IFTTT. Hvad med en gul blinkende LED -strimmel til meddelelse via e -mail?

Du kan bede serveren om mulige webopkald som f.eks. Følgende links (erstat ip, port og token med din konfiguration)

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

Trin 5: Konklusion

Der er stadig nogle funktioner, der skal implementeres: Da serveren kun leverer en simpel web-api-klient, gør en masse polling. For at reducere afstemningen vil jeg have en MQTT -integration for bedre underretning. Også wifi -strømforsyninger bør udføre mere pålidelige end rc -strømforsyninger, da rc kun er en envejskommunikation.

Det gør en masse sjov at udvikle sig til dette projekt. Og det er ret fedt at styre lejligheden med flere enheder, selvom internetforbindelsen bryder sammen.

Anbefalede: