Sommario:
- Passaggio 1: cose di cui hai bisogno
- Passaggio 2: preparare Raspberry Pi per 433 MHz
- Passaggio 3: configurazione del server Smart Home
- Passaggio 4: configurazione dei client
- Passaggio 5: conclusione
Video: Smart Home di Raspberry Pi: 5 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 09:59
Esistono già diversi prodotti che rendono il tuo appartamento più intelligente, ma la maggior parte sono soluzioni proprietarie. Ma perché hai bisogno di una connessione Internet per accendere una luce con il tuo smartphone? Questo è stato uno dei motivi per cui ho creato la mia soluzione Smart Home.
Ho programmato un'applicazione server che gira su un Raspberry Pi. Questo è un progetto open source basato su java che ti permette di configurare il tuo appartamento e connettere diversi client e 'unità controllabili'. Mostro una soluzione che gestisce gli interruttori di alimentazione rc, riproduce musica e video sul Raspberry Pi, mostra lo stato sullo smart mirror e può essere controllata da un'app Android e due app Pebble. La fonte è ospitata su github
Passaggio 1: cose di cui hai bisogno
Per configurare la Smart Home, sono necessari i seguenti "ingredienti"
- Raspberry Pi almeno modello 2 B
- Trasmettitore a 433 MHz, qualcosa del genere
- 3 cavi jumper che collegano il Raspberry Pi e il mittente
- Alcune prese radiocomandate a 433 MHz
- Smartphone Android per eseguire l'app client
Inoltre, puoi estendere la Smart Home con più client e unità opzionali come questa
- Smartwatch Pebble
- Smart Mirror, guarda questo progetto
- Striscia LED controllata da 433 MHz, vedi questo
Passaggio 2: preparare Raspberry Pi per 433 MHz
Nei passaggi seguenti è necessario accedere alla riga di comando sul Raspberry Pi. Per ottenere l'accesso puoi leggere questo
Collega il trasmettitore a 433 MHz con il Raspberry Pi come mostrato nell'immagine sopra
- GND (mittente) 6 GND (raspi)
- VCC (mittente) 2 +5V (raspi)
- DATI (mittente) 11 GPIO 17 (raspi)
Si prega di collegare anche un'antenna da 17 cm al pin ANT (mittente). Ciò aumenta il segnale in modo significativo.
Dal momento che abbiamo bisogno di alcune librerie da altri repository git, dobbiamo installare git
sudo apt-get install git-core -y
Per configurare il Raspberry Pi per la comunicazione a 433 MHz abbiamo bisogno della libreria di cablaggio Pi per una migliore gestione dei GPIO.
git clone git://git.drogon.net/wiringPi
cablaggio cdPi./build
Quindi abbiamo bisogno di una libreria che implementi i protocolli di alimentazione tipicamente rc.
git clone git://github.com/dabastynator/rcswitch-pi.git
cd rcswitch-pi make cp send /usr/bin/
L'eseguibile 'send' consente di inviare codici per commutare la maggior parte degli alimentatori disponibili.
Nella mia configurazione Smart Home ho anche una striscia LED rc descritta da questo istruibile: https://www.instructables.com/id/RC-controllato-LED… Per impostare i colori per questa striscia LED hai bisogno di un altro eseguibile di invio che ti permetta per inviare qualsiasi valore intero (che codifica il colore).
Pertanto, compila il sendInt.cpp nel repository rcswitch-pi e spostalo in /usr/bin/sendInt.
sudo g++ sendInt.cpp -o /usr/bin/sendInt /home/pi/rcswitch-pi/RCSwitch.o -I/home/pi/rcswitch-pi -lwiringPi
Ora dovresti essere in grado di inviare comandi rc con i due eseguibili /usr/bin/send e /usr/bin/sendInt
Passaggio 3: configurazione del server Smart Home
Prima di tutto è necessario installare diversi pacchetti. L'applicazione Smart Home è basata su Java e funziona bene con openjdk-11. Non sono sicuro di altri ambienti runtime Java. Il mplayer è un lettore musicale minimalista da riga di comando. L'omxplayer utilizza la grafica Raspberry Pi per la codifica video, quindi dovrebbe essere utilizzata per i video. Il programma ant è necessario per compilare l'applicazione java.
sudo apt-get install mplayer omxplayer openjdk-11-jdk ant -y
Directory di installazione per il file jar e per i log.
sudo mkdir /opt/neo
sudo chown pi:pi /opt/neo mkdir /home/pi/Logs
Configura lo script di avvio per avviare automaticamente l'applicazione all'avvio. Quindi copia lo script smart-home allegato nella directory /etc/init.d/ Ho anche creato uno script in /usr/bin/ che invia i comandi allo script allegato, quindi inserisco smart-home nella console per eseguire i comandi.
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
Ora è il momento di controllare il repository e creare l'applicazione. Se non vuoi compilarlo da solo, puoi semplicemente scaricare il file smarthome.jar allegato e spostarlo in /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/
Prova ad avviare la smart-home e controlla il file di registro. Per ottenere l'accesso per i GPIO, l'applicazione deve essere avviata da sudo.
sudo smart-home start
cat Logs/smarthome.log
Dovresti vedere il messaggio di errore Il file di configurazione non esiste che ci indirizza al passaggio successivo. Il repository contiene un readme che spiega il file di configurazione. Puoi vederlo ben reso su github:
Copia questo xml in /home/pi/controlcenter.xml, quindi imposta la posizione per il tuo server multimediale e modifica il contenuto quando ne hai bisogno. Una volta terminata la configurazione e riavviato la smart-home (sudo smart-home restart) dovresti vedere il seguente contenuto nel smarthome.log
24.05-08:26 INFORMAZIONI REMOTE di de.neo.smarthome.cronjob. CronJob@15aeb7ab: Pianifica cron job
24.05-08:26 INFORMAZIONI REMOTE da [trigger.light]: Attendi 79391760 ms per l'esecuzione 24.05-08:26 INFORMAZIONI RMI da Aggiungi gestore web (5061/ledstrip) 24.05-08:26 INFORMAZIONI RMI da Aggiungi gestore web (5061 /action) 24.05-08:26 INFORMAZIONI RMI di Aggiungi gestore web (5061/mediaserver) 24.05-08:26 INFORMAZIONI RMI di Aggiungi gestore web (5061/switch) 24.05-08:26 INFORMAZIONI RMI di Aggiungi gestore web (5061/controlcenter) 24.05-08:26 INFORMAZIONI RMI da Start webserver con 5 handler (localhost:5061) 24.05-08:26 INFORMAZIONI REMOTE da Controlcenter: Aggiungere 1. unità di controllo: MyUnit (xyz) …
Il server web è ora in esecuzione:-)
Passaggio 4: configurazione dei client
Client Android per smartphone
Il repository git per l'applicazione smart-home contiene anche il sorgente per il client Android, quindi puoi compilarlo tu stesso. Ma ho allegato l'APK per questo passaggio, che lo rende più facile. La prima volta che avvii l'app, ti chiede un server, come nella prima immagine sopra. Inserisci l'URL del server e il token di sicurezza.
Dovrebbe essere così. Ora hai accesso al server e controlli il tuo appartamento, riproduci musica e guarda video da remoto sul tuo Raspberry Pi. Tieni presente che puoi aggiungere widget alla schermata iniziale, il che rende più accessibili gli interruttori e il controllo della musica.
Smartwatch Pebble client
La fonte per i due client Pebble è ospitata su github. Un'app mostra il file musicale attualmente in riproduzione: https://github.com/dabastynator/PebbleRemoteMusic… Questo ti consente anche di mettere in pausa/riprodurre e aumentare/diminuire il volume.
La seconda app attiva tre azioni: https://github.com/dabastynator/PebbleControl I nomi dei trigger sono: mobile.come_home mobile.leaving e mobile.go_to_bed. Se definisci le regole dell'evento per questo trigger nel tuo file configuration-xml, le attivi dal tuo orologio.
È tutto open-source, ma non è necessario compilarlo da soli, ho anche allegato le app Pebble. Scarica i PBW con il tuo smartphone, il tuo telefono dovrebbe installarli sull'orologio. Le app Pebble necessitano di configurazioni per comunicare con il server. Ho allegato uno screenshot di come appaiono le mie impostazioni.
Smartwatch client Garmin
C'è anche un client disponibile per Garmin Smartwatch. L'app è disponibile nell'app store garmin connect e può essere installata qui:
apps.garmin.com/en-US/apps/c745527d-f2af-4…
Cliente Smart Mirror
Ho già creato un instructable che spiega come creare lo Smart Mirror, vedi questo https://www.instructables.com/id/Smart-Mirror-by-R…. Il codice sorgente è anche ospitato su github: https:// github.com/dabastynator/SmartMirror. Il software dello Smart Mirror legge la configurazione dal file smart_config.js che non fa parte del repository git. Il contenuto del file di configurazione dovrebbe essere simile a questo elenco:
var mOpenWeatherKey = 'la-tua-chiave-apri-tempo';
var mSecurity = 'your-security-token';
Devi anche regolare le prime due righe del file smart_mirror.js per specificare l'indirizzo IP del server Smart Home e la posizione per ottenere il tempo giusto.
Più clienti
L'applicazione server è un semplice server web. Ciò ti consente di attivare azioni da qualsiasi client desideri tramite semplici chiamate web. Nel video demo mostro il tasker dell'app Android in combinazione con AutoVoice. Ciò mi consente di attivare eventi con semplici comandi vocali. Ad esempio "ok google, è ora di dormire" può attivare mobile.go_to_bed. Ma puoi anche fare chiamate web, ad esempio da IFTTT. Che ne dici di una striscia LED gialla lampeggiante per le notifiche e-mail?
Puoi chiedere al server eventuali web-call come i seguenti link (sostituisci ip, porta e token con la tua configurazione)
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-…
Passaggio 5: conclusione
Ci sono ancora alcune funzionalità da implementare: Dal momento che il server fornisce solo un semplice client API Web, eseguire molto polling. Per ridurre il polling voglio un'integrazione MQTT per una migliore notifica. Anche gli alimentatori wifi dovrebbero essere più affidabili degli alimentatori rc poiché rc è solo una comunicazione unidirezionale.
È molto divertente sviluppare questo progetto. Ed è abbastanza bello controllare l'appartamento da diversi dispositivi, anche se la connessione Internet si interrompe.
Consigliato:
Smart Home con Arduino: 11 passaggi (con immagini)
Smart Home con Arduino: Ciao. Ti mostrerò come costruire la tua casa intelligente. Mostra la temperatura sia interna che esterna, se la finestra è aperta o chiusa, mostra quando piove e fa allarme quando il sensore PIR rileva il movimento. Ho fatto l'applicazione su Android per
ForgetMeNot - Piattaforma di notifica Smart Home: 14 passaggi (con immagini)
ForgetMeNot - Piattaforma di notifica Smart Home: in quanto studenti universitari impegnati, in giro tra le lezioni, il lavoro e gli obblighi familiari, tendiamo a dimenticare le piccole cose. Un compleanno va e viene senza che ce ne accorgiamo, manca una scadenza importante per pura dimenticanza e a volte, semplicemente
Tutorial Do Projeto Final Do Curso IoT Aplicada a Smart Home Inatel / Novembro 2017: 4 passaggi (con immagini)
Tutorial Do Project Final Do Curso IoT Aplicada a Smart Home Inatel / Novembro 2017: No desenvolvimento desse projeto foi utilizada uma plataforma hibrida, sem a necessidade de acessar os ricorsos de plataformas natives do Android o do IOS. Foi utilizado um computador tipo notebook com windows 10. Essa plataforma chama-se Ionic, q
GO-4 Smart Home Arduino Bot: 7 passaggi (con immagini)
GO-4 Smart Home Arduino Bot: in questo progetto ti mostrerò come costruire un Smart Home Bot utilizzando la tecnologia IOT per controllare i tuoi elettrodomestici da remoto tramite Internet. Ma prima di iniziare parliamo di questa tecnica come abbiamo usato fare…Cos'è l'IOT?Questo
Fai da te Google Home con altoparlante Bluetooth su hub di aggancio Raspberry Pi Zero: 7 passaggi (con immagini)
Fai da te Google Home con altoparlante Bluetooth su hub di aggancio Raspberry Pi Zero: abbiamo un'istruzione su Amazon Echo Alexa fai da te - Assistente vocale Alexa su hub di aggancio Raspberry Pi Zero. Questa volta vogliamo mostrarti come costruire una Google Home fai da te. In questo tutorial, ti mostreremo come installare e configurare l'Assistente Google