Innehållsförteckning:

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

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

Video: Smart Home av Raspberry Pi: 5 steg (med bilder)
Video: Лучшие проекты Raspberry Pi на 2022 год Raspberry Pi 7-дюймовый сенсорный экран 2024, Juli
Anonim
Smart Home av Raspberry Pi
Smart Home av Raspberry Pi

Det finns redan flera produkter där ute som gör din lägenhet smartare, men de flesta av dem är egna lösningar. Men varför behöver du en internetanslutning för att byta ljus med din smartphone? Det var en anledning för mig att bygga min egen Smart Home -lösning.

Jag programmerade ett serverprogram som körs på en Raspberry Pi. Detta är ett Java -baserat open source -projekt som låter dig konfigurera din lägenhet och ansluta flera klienter och "kontrollerbara enheter". Jag visar en lösning som hanterar switchar för strömförsörjning, spelar musik och video på Raspberry Pi, visar status på smart spegel och kan styras av en Android -app och två småstenar. Källan finns på github

Steg 1: Saker du behöver

Saker du behöver
Saker du behöver

För att konfigurera Smart Home behöver du följande "ingredienser"

  • Hallon Pi minst modell 2 B
  • 433 MHz avsändare, något liknande
  • 3 bygelkablar som ansluter Raspberry Pi och avsändaren
  • Vissa radiokontakter på 433 MHz
  • Android -smartphone för att köra klientappen

Dessutom kan du utöka Smart Home med fler valfria klienter och enheter som detta

  • Pebble smartwatch
  • Smart Mirror, se detta projekt
  • 433 MHz kontrollerad LED-remsa, se detta

Steg 2: Förbered Raspberry Pi för 433 MHz

Förbered Raspberry Pi för 433 MHz
Förbered Raspberry Pi för 433 MHz
Förbered Raspberry Pi för 433 MHz
Förbered Raspberry Pi för 433 MHz

I följande steg behöver du åtkomst till kommandoraden på Raspberry Pi. För att få åtkomst kan du läsa denna instruerbara

Anslut 433 MHz -avsändaren med Raspberry Pi som visas på bilden ovan

  • GND (avsändare) 6 GND (raspi)
  • VCC (avsändare) 2 +5V (raspi)
  • DATA (avsändare) 11 GPIO 17 (raspi)

Anslut också en 17 cm antenn till ANT (avsändar) stift. Det ökar signalen signifikant.

Eftersom vi behöver några bibliotek från andra git -arkiv måste vi installera git

sudo apt-get install git-core -y

För att konfigurera Raspberry Pi för 433 MHz kommunikation behöver vi Pi -biblioteket för kablar för bättre hantering av GPIO: erna.

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

cd wiringPi./build

Då behöver vi ett bibliotek som implementerar vanligtvis rc -strömförsörjningsprotokoll.

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

cd rcswitch-pi gör cp skicka/usr/bin/

Med den körbara "skicka" kan du skicka koder för att växla de flesta tillgängliga strömförsörjningarna.

I min Smart Home-installation har jag också en rc LED-remsa som beskrivs av denna instruerbara: https://www.instructables.com/id/RC-controlled-LED… För att ställa in färger för denna LED-remsa behöver du en annan sändande körbar som låter dig att skicka ett heltal (som kodar färgen).

Kompilera därför sendInt.cpp i rcswitch-pi repo och flytta den till/usr/bin/sendInt.

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

Nu ska du nu kunna skicka rc -kommandon med de två körbara/usr/bin/send och/usr/bin/sendInt

Steg 3: Konfigurera Smart Home Server

Först och främst måste du installera flera paket. Smart Home-applikationen är java-baserad och fungerar bra med openjdk-11. Jag är inte säker på andra Java -runtime -miljöer. Mplayer är en minimalistisk kommandorads musikspelare. Omxplayer använder Raspberry Pi -grafiken för videokodning, så den bör användas för videor. Programmyran behövs för att bygga Java -applikationen.

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

Konfigurera kataloger för jar -filen och för loggar.

sudo mkdir /opt /neo

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

Konfigurera startskript för att starta programmet automatiskt vid start. Kopiera därför det bifogade smart-home-skriptet till katalogen /etc/init.d/ Jag skapade också ett skript i/usr/bin/som rör kommandon till det bifogade skriptet, så jag skriver bara smart-home till konsolen för att utföra kommandon.

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 smart-home standard

Nu är det dags att checka ut förvaret och bygga programmet. Om du inte vill kompilera det själv kan du bara ladda ner det bifogade smarthome.jar och flytta det till/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/

Försök att starta smart-home och kontrollera loggfilen. För att få åtkomst till GPIO: erna måste programmet startas av sudo.

sudo smart-home start

katt Loggar/smarthome.log

Du bör se felmeddelandet Konfigurationsfil finns inte som pekar oss till nästa steg. Lagret innehåller ett readme som förklarar konfigurationsfilen. Du kan se detta vackert återgivet på github:

Kopiera denna xml till /home/pi/controlcenter.xml, ställ sedan in platsen för din mediaserver och ändra innehållet efter behov. När du har slutfört konfigurationen och startat om smart-home (sudo smart-home-omstart) bör du se följande innehåll i smarthome.log

24.05-08: 26 FJÄRRINFORMATION av de.neo.smarthome.cronjob. CronJob@15aeb7ab: Schemalägg cronjobb

24.05-08: 26 FJÄRRINFORMATION med [trigger.light]: Vänta 79391760 ms för körning 24.05-08: 26 RMI INFORMATION av Add web-handler (5061/ledstrip) 24.05-08: 26 RMI INFORMATION by Add web-handler (5061 /åtgärd) 24.05-08: 26 RMI INFORMATION av 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 av Start webbserver med 5 hanterare (localhost: 5061) 24.05-08: 26 FJÄRRINFORMATION från Controlcenter: Lägg till 1. kontrollenhet: MyUnit (xyz) …

Webbservern körs nu:-)

Steg 4: Konfigurera klienter

Konfigurera klienter
Konfigurera klienter
Konfigurera klienter
Konfigurera klienter
Konfigurera klienter
Konfigurera klienter

Smartphone Android -klient

Git-förvaret för smart-home-applikationen innehåller också källan för Android-klienten, så att du kan kompilera den själv. Men jag bifogade APK för detta steg, det gör det enklare. Första gången du startar appen ber den dig om en server, som i den första bilden ovan. Ange webbadressen till servern och säkerhetstoken.

Det borde vara det. Du har nu tillgång till servern och styr din lägenhet, spelar musik och tittar på videor på distans på din Raspberry Pi. Observera att du kan lägga till widgets på din startskärm, vilket gör switchar och musikstyrning mer tillgänglig.

Smartwatch Pebble -klient

Källan för de två stenklienterna finns på github. En app visar den aktuella musikfilen: https://github.com/dabastynator/PebbleRemoteMusic … Detta låter dig också pausa/spela och volym upp/ner.

Den andra appen utlöser tre åtgärder: https://github.com/dabastynator/PebbleControl Utlösarnamnen är: mobile.come_home mobile.leaving och mobile.go_to_bed. Om du definierar händelseregler för denna utlösare i din konfiguration-xml utlöser du dem av din klocka.

Det är helt öppen källkod, men du behöver inte kompilera det själv, jag bifogade även småstenapparna. Ladda ner PBW: erna med din smartphone, telefonen bör installera dem på din klocka. Pebble -apparna behöver konfigurationer för att prata med servern. Jag bifogade en skärmdump hur mina inställningar ser ut.

Smartwatch Garmin -klient

Det finns också en klient tillgänglig för Garmin Smartwatches. Appen är tillgänglig i garmin connect app-store och kan installeras här:

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

Smart Mirror -klient

Jag har redan skapat en instruerbar som förklarar hur man skapar Smart Mirror, se detta https://www.instructables.com/id/Smart-Mirror-by-R…. Källkoden finns också på github: https:// github.com/dabastynator/SmartMirror. Mjukvaran för Smart Mirror läser konfigurationen från filen smart_config.js som inte är en del av git -förvaret. Konfigurationsfilens innehåll ska se ut så här:

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

var mSecurity = 'din-säkerhet-token';

Du måste också justera de två första raderna i filen smart_mirror.js för att ange Smart Home -serverns IP -adress och plats för att få rätt väder.

Fler kunder

Serverprogrammet är en enkel webbserver. Detta gör att du kan utlösa åtgärder från alla klienter du vill genom enkla webbsamtal. I demo-videon visar jag Android app tasker i kombination med AutoVoice. Detta gör att jag kan utlösa händelser med enkla röstkommandon. Till exempel "ok google, tid att sova" kan utlösa mobile.go_to_bed. Men du kan också ringa till webben till exempel från IFTTT. Vad sägs om en gul blinkande LED -remsa för e -postmeddelande?

Du kan be servern om möjliga webbsamtal som följande länkar (ersätt ip, port och 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- …

Steg 5: Slutsats

Det finns fortfarande några funktioner att implementera: Eftersom servern bara tillhandahåller en enkel webb-api-klient gör många undersökningar. För att minska omröstningen vill jag ha en MQTT -integration för bättre avisering. Även wifi -nätaggregat bör prestera mer pålitligt än rc -nätaggregat eftersom rc bara är en enkelriktad kommunikation.

Det är väldigt roligt att utveckla för detta projekt. Och det är ganska häftigt att styra lägenheten med flera enheter, även om internetanslutningen bryts.

Rekommenderad: