Innehållsförteckning:
- Steg 1: Saker du behöver
- Steg 2: Förbered Raspberry Pi för 433 MHz
- Steg 3: Konfigurera Smart Home Server
- Steg 4: Konfigurera klienter
- Steg 5: Slutsats
Video: Smart Home av Raspberry Pi: 5 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:35
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
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
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
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:
Smart Home With Arduino: 11 steg (med bilder)
Smart Home With Arduino: Hej. Jag visar dig hur du bygger ditt eget smarta hem. Det visar temperaturen både inne och ute, om fönstret är öppet eller stängt, visar när det regnar och larmar när PIR -sensorn känner av rörelse. Jag gjorde applikationen på Android för att
Smart väckarklocka: en smart väckarklocka tillverkad med hallon Pi: 10 steg (med bilder)
Smart väckarklocka: en smart väckarklocka tillverkad med hallon Pi: Har du någonsin velat ha en smart klocka? I så fall är detta lösningen för dig! Jag gjorde Smart Alarm Clock, det här är en klocka som du kan ändra alarmtiden enligt webbplatsen. När larmet går går det ett ljud (summer) och 2 lampor lyser
ForgetMeNot - Smart Home Notification Platform: 14 steg (med bilder)
ForgetMeNot - Smart Home Notification Platform: Som upptagen högskolestudenter som springer runt mellan klasser, jobb och familjeförpliktelser tenderar vi att glömma de små sakerna. En födelsedag kommer och går utan att vi märker det, en viktig deadline missas på grund av ren glömska och ibland bara
Handledning Gör Projeto Final Do Curso IoT Aplicada a Smart Home Inatel / Novembro 2017: 4 steg (med bilder)
Handledning Gör Projeto Final Do Curso IoT Aplicada a Smart Home Inatel / Novembro 2017: No desenvolvimento desse projeto foi utilizada uma plataforma hibrida, sem a nødvendigidade of acessar of recaços of plataformas nativas do Android ou do IOS. Foi utilizado um computador tipo notebook com windows 10. Essa plataforma chama-se Ionic, q
ESP8266-01 IoT Smart Timer for Home Automation: 9 steg (med bilder)
ESP8266-01 IoT Smart Timer for Home Automation: UPDATES30/09/2018: Firmware Updated to Ver 1.09. Nu med Sonoff Basic Support01/10/2018: Firmware Version 1.10-testversion tillgänglig för testning på ESP8266-01 med problem Med de nya modeorden som Internet of Things (IoT) och Home Automation, bestämde jag mig för