Cuprins:
- Pasul 1: Lucruri de care aveți nevoie
- Pasul 2: Pregătiți Raspberry Pi pentru 433 MHz
- Pasul 3: Configurați Smart Home Server
- Pasul 4: Configurați clienții
- Pasul 5: Concluzie
Video: Smart Home by Raspberry Pi: 5 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
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
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
Î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
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:
ForgetMeNot - Platforma de notificare Smart Home: 14 pași (cu imagini)
ForgetMeNot - Platforma de notificare Smart Home: În calitate de studenți ocupați, care aleargă între clase, locuri de muncă și obligații familiale, avem tendința de a uita lucrurile mici. O zi de naștere vine și trece fără ca noi să observăm, un termen important este ratat din cauza uitării și, uneori, doar
Audio sincron Raspberry Pi Whole Home cu telecomandă pentru aplicații telefonice: 10 pași (cu imagini)
Raspberry Pi Whole Home Synchronous Audio With Phone App Remotes: Scopul este sincronizarea audio și / sau surse individuale în orice cameră, ușor de controlat cu un telefon sau tabletă prin iTunes Remote (apple) sau Retune (android). De asemenea, vreau ca zonele audio să se activeze / oprească automat, așa că am apelat la Raspberry Pi și
Raspberry Pi-Arduino-SignalR Home Automation Hub: 11 pași (cu imagini)
Hub Raspberry Pi-Arduino-SignalR Home Automation Hub: În urma câtorva dintre IBLE-urile mele preliminare publicate aici și aici, acest proiect face primul pas spre construirea unei versiuni de bază a unui Hub funcțional Home Automation. Am folosit mai multe tehnologii diferite într-un efort de a da sens modului în care aș putea
GO-4 Smart Home Arduino Bot: 7 pași (cu imagini)
GO-4 Smart Home Arduino Bot: În acest proiect vă voi arăta cum să construiți un Smart Home Bot folosind tehnologia IOT pentru a vă controla aparatele electrocasnice de la distanță prin Internet. Dar înainte de a începe să vorbim despre această tehnică așa cum am folosit a face … Ce este IOT? Th
Cel mai ieftin Smart Home pentru 38 $: 8 pași (cu imagini)
Cel mai ieftin Smart Home pentru 38 USD: Ați auzit de noul Raspberry Pi Zero? Prețat doar la 5 USD (sau 10 USD pentru versiunea W), revoluționează casa inteligentă, făcând-o mai ieftină ca niciodată și accesibilă oricărui buget. O altă parte a îmbunătățirii accesibilității casei inteligente este conexiunea