Taula de continguts:

Smart Home de Raspberry Pi: 5 passos (amb imatges)
Smart Home de Raspberry Pi: 5 passos (amb imatges)

Vídeo: Smart Home de Raspberry Pi: 5 passos (amb imatges)

Vídeo: Smart Home de Raspberry Pi: 5 passos (amb imatges)
Vídeo: Аномально вкусно‼️ ЧЕХОСЛОВАЦКИЙ СУП ИЗ ФАРША. Жена Липована в шоке. 2024, Juny
Anonim
Smart Home de Raspberry Pi
Smart Home de Raspberry Pi

Ja hi ha diversos productes que fan que el vostre pis sigui més intel·ligent, però la majoria són solucions propietàries. Però, per què necessiteu una connexió a Internet per canviar una llum amb el vostre telèfon intel·ligent? Aquesta va ser una de les raons per la qual vaig crear la meva pròpia solució Smart Home.

He programat una aplicació de servidor que s’executa en un Raspberry Pi. Es tracta d'un projecte de codi obert basat en Java que us permet configurar el vostre pis i connectar diversos clients i "unitats controlables". Mostro una solució que gestiona els commutadors d’alimentació rc, reprodueix música i vídeo al Raspberry Pi, mostra l’estat del mirall intel·ligent i es pot controlar mitjançant una aplicació per a Android i dues aplicacions de còdols. La font està allotjada a github

Pas 1: coses que necessiteu

Coses que necessiteu
Coses que necessiteu

Per configurar Smart Home, necessiteu els següents "ingredients"

  • Raspberry Pi com a mínim model 2 B.
  • Remitent de 433 MHz, una cosa així
  • 3 cables de pont que connecten el Raspberry Pi i el remitent
  • Algunes preses de radiocontrol a 433 MHz
  • Smartphone Android per executar l'aplicació client

A més, podeu ampliar Smart Home amb més clients i unitats opcionals com aquesta

  • Rellotge intel·ligent Pebble
  • Smart Mirror, vegeu aquest projecte
  • Tira LED controlada a 433 MHz, consulteu aquest

Pas 2: prepareu Raspberry Pi per a 433 MHz

Prepareu Raspberry Pi per a 433 MHz
Prepareu Raspberry Pi per a 433 MHz
Prepareu Raspberry Pi per a 433 MHz
Prepareu Raspberry Pi per a 433 MHz

En els passos següents, heu d’accedir a la línia d’ordres del Raspberry Pi. Per obtenir l'accés, podeu llegir aquest instructiu

Connecteu el remitent de 433 MHz amb el Raspberry Pi tal com es mostra a la imatge superior

  • GND (remitent) 6 GND (raspi)
  • VCC (remitent) 2 + 5V (raspi)
  • DADES (remitent) 11 GPIO 17 (raspi)

Connecteu també una antena de 17 cm al pin ANT (remitent). Això augmenta significativament el senyal.

Com que necessitem algunes biblioteques d'altres repositoris git, hem d'instal·lar git

sudo apt-get install git-core -y

Per configurar el Raspberry Pi per a la comunicació de 433 MHz, necessitem la biblioteca de cablejat Pi per a un millor maneig dels GPIO.

git clonar git: //git.drogon.net/wiringPi

cablejat cdPi./build

Llavors necessitem una biblioteca que implementi protocols de subministrament d'energia típicament rc.

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

cd rcswitch-pi fa cp enviar / usr / bin /

L'executable "enviar" us permet enviar codis per canviar la majoria de les fonts d'alimentació disponibles.

A la configuració de la meva casa intel·ligent, també tinc una tira de LED rc descrita en aquesta instrucció: https://www.instructables.com/id/RC-controlled-LED… Per configurar els colors d’aquesta tira de LED, necessiteu un altre executable d’enviament que us permeti per enviar qualsevol valor enter (que codifiqui el color).

Per tant, compileu sendInt.cpp al repositori rcswitch-pi i moveu-lo a / usr / bin / sendInt.

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

Ara hauríeu de poder enviar ordres rc amb els dos executables / usr / bin / send i / usr / bin / sendInt

Pas 3: configureu el servidor Smart Home

Primer de tot, heu d’instal·lar diversos paquets. L’aplicació Smart Home es basa en Java i funciona bé amb openjdk-11. No estic segur d'altres entorns d'execució de Java. El mplayer és un reproductor de música de línia d'ordres minimalista. L'omxplayer utilitza els gràfics de Raspberry Pi per a la codificació de vídeo, de manera que s'hauria d'utilitzar per als vídeos. Es necessita la formiga del programa per crear l'aplicació Java.

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

Configureu els directoris per al fitxer jar i per als registres.

sudo mkdir / opt / neo

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

Configureu el script d’inici per iniciar l’aplicació automàticament en arrencar. Per tant, copieu l’escriptori smart-home adjunt al directori /etc/init.d/ També he creat un script a / usr / bin / que envia les ordres a l’escript adjunt, de manera que només entro a smart-home a la consola per executar ordres..

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 defaults

Ara és hora de comprovar el dipòsit i crear l'aplicació. Si no voleu compilar-lo vosaltres mateixos, només podeu descarregar el smarthome.jar adjunt i moure-lo a / opt / neo /

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

Proveu d'iniciar el smart-home i comproveu el fitxer de registre. Per obtenir accés als GPIO, haureu d'iniciar l'aplicació amb sudo.

sudo smart-home start

cat Logs / smarthome.log

Hauríeu de veure el missatge d'error No existeix el fitxer de configuració que ens indica el pas següent. El dipòsit conté un fitxer readme que explica el fitxer de configuració. Podeu veure-ho molt bé a github:

Copieu aquest xml a /home/pi/controlcenter.xml i, a continuació, configureu la ubicació del servidor de suports i canvieu el contingut segons el necessiteu. Un cop hàgiu acabat la configuració i reiniciat el smart-home (sudo smart-home restart), hauríeu de veure el següent contingut a smarthome.log

24.05-08: 26 INFORMACIÓ REMOTA per de.neo.smarthome.cronjob. CronJob@15aeb7ab: Programació del treball cron

24.05-08: 26 INFORMACIÓ REMOTA per [trigger.light]: Espereu 79391760 ms per a l'execució 24.05-08: 26 RMI INFORMATION mitjançant Add web-handler (5061 / ledstrip) 24.05-08: 26 RMI INFORMATION per Add web-handler (5061 / action) 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 INFORMACIÓ RMI del servidor web Start amb 5 gestors (localhost: 5061) 24.05-08: 26 INFORMACIÓ REMOTA de Controlcenter: Afegiu 1. unitat de control: MyUnit (xyz) …

El servidor web s'executa ara:-)

Pas 4: configureu els clients

Configuració de clients
Configuració de clients
Configuració de clients
Configuració de clients
Configuració de clients
Configuració de clients

Client Android per a telèfons intel·ligents

El dipòsit git de l’aplicació smart-home també conté l’origen del client Android, de manera que podeu compilar-lo vosaltres mateixos. Però he adjuntat l’APK d’aquest pas, cosa que ho fa més fàcil. La primera vegada que inicieu l'aplicació, us demana un servidor, com a la primera imatge superior. Introduïu l'URL del servidor i el testimoni de seguretat.

Això hauria de ser. Ara teniu accés al servidor i controleu el pis, reproduïu música i mireu vídeos de forma remota al vostre Raspberry Pi. Tingueu en compte que podeu afegir ginys a la pantalla d'inici, cosa que fa que els commutadors i el control de la música siguin més accessibles.

Client Smartwatch Pebble

La font dels dos clients de còdols està allotjada a github. Una aplicació mostra el fitxer de reproducció de música actual: https://github.com/dabastynator/PebbleRemoteMusic … Això també us permet posar en pausa / reproducció i pujar / baixar de volum.

La segona aplicació activa tres accions: https://github.com/dabastynator/PebbleControl Els noms dels activadors són: mobile.come_home mobile.leaving i mobile.go_to_bed. Si definiu les regles d'esdeveniments per a aquest activador a la configuració-xml, les activeu al vostre rellotge.

Tot és de codi obert, però no cal que el compileu vosaltres mateixos, també he adjuntat les aplicacions de còdols. Descarregueu els PBW amb el vostre telèfon intel·ligent; el telèfon els hauria d’instal·lar al rellotge. Les aplicacions de còdols necessiten configuracions per parlar amb el servidor. He adjuntat una captura de pantalla de l'aspecte de la meva configuració.

Client Garmin de rellotge intel·ligent

També hi ha un client disponible per als rellotges intel·ligents Garmin. L’aplicació està disponible a la botiga d’aplicacions de Garmin Connect i es pot instal·lar aquí:

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

Client Smart Mirror

Ja he creat una instrucció que explica com crear l’Smart Mirror; vegeu aquest https://www.instructables.com/id/Smart-Mirror-by-R …. El codi font també s’allotja a github: https:// github.com/dabastynator/SmartMirror. El programari de l’Smart Mirror llegeix la configuració del fitxer smart_config.js que no forma part del dipòsit de git. El contingut del fitxer de configuració hauria de ser el següent:

var mOpenWeatherKey = 'clau-oberta-del-temps';

var mSecurity = 'el vostre token de seguretat';

També heu d’ajustar les dues primeres línies del fitxer smart_mirror.js per especificar l’adreça IP del servidor Smart Home i la ubicació per obtenir el temps adequat.

Més clients

L’aplicació de servidor és un servidor web senzill. Això us permet activar accions de qualsevol client que vulgueu mitjançant simples trucades web. Al vídeo de demostració mostro el tasker d'aplicacions per a Android en combinació amb AutoVoice. Això em permet activar esdeveniments amb ordres de veu senzilles. Per exemple, "ok google, temps per dormir" pot activar mobile.go_to_bed. Però també podeu fer trucades web, per exemple des de IFTTT. Què tal una tira LED parpellejant de color groc per a la notificació per correu electrònic?

Podeu sol·licitar al servidor possibles trucades web, com ara els següents enllaços (substituïu IP, port i testimoni per la vostra configuració)

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

Pas 5: Conclusió

Encara hi ha algunes funcions per implementar: atès que el servidor proporciona només una senzilla web-api, els clients fan moltes consultes. Per reduir el vot, vull una integració MQTT per a una millor notificació. També les fonts d’alimentació wifi haurien de ser més fiables que les fonts d’alimentació rc, ja que rc és només una comunicació de sentit únic.

Es fa molt divertit desenvolupar aquest projecte. I és bastant interessant controlar el pis mitjançant diversos dispositius, fins i tot si la connexió a Internet es falla.

Recomanat: