Cuprins:

Smart Home by Raspberry Pi: 5 pași (cu imagini)
Smart Home by Raspberry Pi: 5 pași (cu imagini)

Video: Smart Home by Raspberry Pi: 5 pași (cu imagini)

Video: Smart Home by Raspberry Pi: 5 pași (cu imagini)
Video: Raspberry Pi [2021] curs in limba română 2024, Iulie
Anonim
Smart Home de Raspberry Pi
Smart Home de Raspberry Pi

Există deja mai multe produse care vă fac apartamentul mai inteligent, dar cele mai multe dintre ele sunt soluții proprietare. Dar de ce ai nevoie de o conexiune la internet pentru a comuta o lumină cu smartphone-ul tău? Acesta a fost unul dintre motivele pentru care mi-am construit propria soluție Smart Home.

Am programat o aplicație de server care rulează pe un Raspberry Pi. Acesta este un proiect open source bazat pe java care vă permite să vă configurați apartamentul și să conectați mai mulți clienți și „unități controlabile”. Arăt o soluție care gestionează comutatoarele de alimentare rc, redă muzică și videoclipuri pe Raspberry Pi, arată starea pe oglinda inteligentă și poate fi controlată de o aplicație Android și două aplicații cu pietriș. Sursa este găzduită pe github

Pasul 1: Lucruri de care aveți nevoie

Lucruri de care ai nevoie
Lucruri de care ai nevoie

Pentru a configura Smart Home, aveți nevoie de următoarele „ingrediente”

  • Raspberry Pi cel puțin modelul 2 B
  • Expeditor de 433 MHz, ceva de genul acesta
  • 3 cabluri jumper care conectează Raspberry Pi și expeditor
  • Unele prize de control radio la 433 MHz
  • Smartphone Android pentru a rula aplicația client

În plus, puteți extinde Smart Home cu mai mulți clienți și unități opționale de genul acesta

  • Ceas inteligent Pebble
  • Smart Mirror, vezi acest proiect
  • Banda LED controlată de 433 MHz, consultați acest

Pasul 2: Pregătiți Raspberry Pi pentru 433 MHz

Pregătiți Raspberry Pi pentru 433 MHz
Pregătiți Raspberry Pi pentru 433 MHz
Pregătiți Raspberry Pi pentru 433 MHz
Pregătiți Raspberry Pi pentru 433 MHz

În pașii următori aveți nevoie de acces la linia de comandă de pe Raspberry Pi. Pentru a obține accesul, puteți citi acest https://www.instructables.com/id/Remote-SSH-access… instructabil

Conectați expeditorul de 433 MHz cu Raspberry Pi așa cum se arată în imaginea de mai sus

  • GND (expeditor) 6 GND (raspi)
  • VCC (expeditor) 2 + 5V (raspi)
  • DATE (expeditor) 11 GPIO 17 (raspi)

Vă rugăm să conectați, de asemenea, o antenă de 17 cm la pinul ANT (expeditor). Asta crește semnificativ semnalul.

Deoarece avem nevoie de niște biblioteci din alte depozite git, trebuie să instalăm git

sudo apt-get install git-core -y

Pentru a configura Raspberry Pi pentru comunicații de 433 MHz avem nevoie de biblioteca de cabluri Pi pentru o mai bună manipulare a GPIO-urilor.

git clone git: //git.drogon.net/wiringPi

cablare cdPi./build

Apoi, avem nevoie de o bibliotecă care să implementeze în mod obișnuit protocoale de alimentare cu rc.

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

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

Executabilul „trimitere” vă permite să trimiteți coduri pentru a comuta majoritatea surselor de alimentare disponibile.

În configurarea mea Smart Home am și o bandă LED rc descrisă de acest instructable: https://www.instructables.com/id/RC-controlled-LED… Pentru a seta culorile pentru această bandă LED aveți nevoie de un alt executabil de trimitere care să vă permită pentru a trimite orice valoare întreg (care codifică culoarea).

Prin urmare, compilați sendInt.cpp în repo rcswitch-pi și mutați-l în / usr / bin / sendInt.

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

Acum ar trebui să puteți trimite comenzi rc cu cele două executabile / usr / bin / send și / usr / bin / sendInt

Pasul 3: Configurați Smart Home Server

În primul rând trebuie să instalați mai multe pachete. Aplicația Smart Home este bazată pe Java și funcționează bine cu openjdk-11. Nu sunt sigur despre alte medii de rulare Java. Mplayerul este un player de muzică minimalist din linia de comandă. Omxplayer folosește grafica Raspberry Pi pentru codificarea video, deci aceasta ar trebui folosită pentru videoclipuri. Este necesară furnica de program pentru a construi aplicația Java.

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

Configurați directoare pentru fișierul jar și pentru jurnale.

sudo mkdir / opt / neo

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

Configurați scriptul de pornire pentru a porni aplicația automat la pornire. Prin urmare, copiați scriptul smart-home atașat în directorul /etc/init.d/ De asemenea, am creat un script în / usr / bin / care canalizează comenzile către scriptul atașat, așa că doar intru smart-home în consolă pentru a executa comenzi.

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 implicit pentru smart-home

Acum este timpul să verificați depozitul și să creați aplicația. Dacă nu doriți să îl compilați singur, puteți descărca smarthome.jar atașat și mutați-l în / opt / neo /

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

Încercați să porniți casa inteligentă și verificați fișierul jurnal. Pentru a obține acces pentru GPIO-uri, aplicația trebuie pornită de sudo.

sudo smart-home start

Cat Logs / smarthome.log

Ar trebui să vedeți mesajul de eroare Fișierul de configurare nu există care ne indică pasul următor. Depozitul conține un readme care explică fișierul de configurare. Puteți vedea acest lucru frumos redat la github:

Copiați acest xml în /home/pi/controlcenter.xml, apoi setați locația pentru serverul media și schimbați conținutul după cum aveți nevoie. După ce ați terminat configurarea și ați repornit smart-home-ul (sudo smart-home restart) ar trebui să vedeți următorul conținut în smarthome.log

24.05-08: 26 INFORMAȚII DE LA DISTANȚĂ de deneo.smarthome.cronjob. CronJob@15aeb7ab: Programare cron job

24.05-08: 26 INFORMAȚII REMOTE de către [trigger.light]: Așteptați 79391760 ms pentru executare 24.05-08: 26 INFORMAȚII RMI prin Adăugare web-handler (5061 / ledstrip) 24.05-08: 26 INFORMAȚII RMI prin Adăugare 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 INFORMAȚII RMI de Start server web cu 5 handler (localhost: 5061) 24.05-08: 26 INFORMAȚII DE LA DISTanță de Controlcenter: Adăugați 1. unitate de control: MyUnit (xyz) …

Serverul web rulează acum:-)

Pasul 4: Configurați clienții

Configurați clienții
Configurați clienții
Configurați clienții
Configurați clienții
Configurați clienții
Configurați clienții

Client Android pentru smartphone

Depozitul git pentru aplicația smart-home conține, de asemenea, sursa pentru clientul Android, astfel încât să îl puteți compila singur. Dar am atașat APK-ul pentru acest pas, ceea ce îl ușurează. Prima dată când porniți aplicația, aceasta vă solicită un server, ca în prima imagine de mai sus. Introduceți adresa URL a serverului și indicativul de securitate.

Asta ar trebui să fie. Acum aveți acces la server și vă controlați apartamentul, redați muzică și vizionați videoclipuri de la distanță pe Raspberry Pi. Rețineți că puteți adăuga widgeturi pe ecranul de pornire, ceea ce face comutatoarele și controlul muzicii mai accesibile.

Client Smartwatch Pebble

Sursa pentru cei doi clienți pebble este găzduită pe github. O aplicație afișează fișierul curent de redare a muzicii: https://github.com/dabastynator/PebbleRemoteMusic … Acest lucru vă permite, de asemenea, să întrerupeți / redați și să ridicați / micșorați volumul.

A doua aplicație declanșează trei acțiuni: https://github.com/dabastynator/PebbleControl Numele declanșatorilor sunt: mobile.come_home mobile.leaving și mobile.go_to_bed. Dacă definiți reguli de eveniment pentru acest declanșator în configurația-xml, le declanșați de ceas.

Totul este open-source, dar nu trebuie să îl compilați singur, am atașat și aplicațiile cu pietriș. Descărcați PBW-urile cu smartphone-ul dvs., telefonul ar trebui să le instaleze pe ceas. Aplicațiile cu pietriș au nevoie de configurații pentru a vorbi cu serverul. Am atașat o captură de ecran cum arată setările mele.

Client Smartwatch Garmin

Există, de asemenea, un client disponibil pentru Garmin Smartwatches. Aplicația este disponibilă în magazinul de aplicații Garmin Connect și poate fi instalată aici:

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

Client Smart Mirror

Am creat deja un instructable care explică cum să creați Smart Mirror, consultați acest https://www.instructables.com/id/Smart-Mirror-by-R …. Codul sursă este găzduit și pe github: https:// github.com/dabastynator/SmartMirror. Software-ul Smart Mirror citește configurația din fișierul smart_config.js care nu face parte din depozitul git. Conținutul fișierului de configurare ar trebui să arate ca această listare:

var mOpenWeatherKey = 'cheia-deschis-a-vremii';

var mSecurity = 'token-ul tău de securitate';

De asemenea, trebuie să ajustați primele două linii ale fișierului smart_mirror.js pentru a specifica adresa IP a serverului Smart Home și locația pentru a obține vremea potrivită.

Mai mulți clienți

Aplicația server este un simplu server web. Acest lucru vă permite să declanșați acțiuni de la orice client doriți prin apeluri web simple. În demo-video arată aplicația Android tasker în combinație cu AutoVoice. Acest lucru îmi permite să declanșez evenimente cu comenzi vocale simple. De exemplu, „ok google, timpul pentru a dormi” poate declanșa mobile.go_to_bed. Dar puteți face și apeluri web, de exemplu de la IFTTT. Ce zici de o bandă LED intermitentă galbenă pentru notificarea prin e-mail?

Puteți solicita serverului posibile apeluri web, cum ar fi următoarele link-uri (înlocuiți ip, port și simbol prin configurarea dvs.)

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

Pasul 5: Concluzie

Există încă câteva caracteristici de implementat: Deoarece serverul oferă doar un simplu web-api clienții fac o mulțime de sondaje. Pentru a reduce votarea, vreau o integrare MQTT pentru o mai bună notificare. De asemenea, sursele de alimentare wifi ar trebui să funcționeze mai fiabile decât sursele de alimentare rc, deoarece rc este doar o comunicare într-un singur sens.

Se dezvoltă foarte mult pentru acest proiect. Și este destul de mișto să controlați apartamentul cu mai multe dispozitive, chiar dacă conexiunea la internet se defectează.

Recomandat: