Table des matières:
- Étape 1: choses dont vous avez besoin
- Étape 2: préparer Raspberry Pi pour 433 MHz
- Étape 3: Configurer le serveur Smart Home
- Étape 4: Configurer les clients
- Étape 5: Conclusion
Vidéo: Smart Home par Raspberry Pi : 5 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
Il existe déjà plusieurs produits qui rendent votre appartement plus intelligent, mais la plupart d'entre eux sont des solutions propriétaires. Mais pourquoi avez-vous besoin d'une connexion Internet pour allumer une lumière avec votre smartphone ? C'est l'une des raisons pour lesquelles j'ai créé ma propre solution Smart Home.
J'ai programmé une application serveur qui s'exécute sur un Raspberry Pi. Il s'agit d'un projet open source basé sur Java qui vous permet de configurer votre appartement et de connecter plusieurs clients et « unités contrôlables ». Je montre une solution qui gère les commutateurs d'alimentation rc, lit de la musique et des vidéos sur le Raspberry Pi, affiche l'état sur le miroir intelligent et peut être contrôlée par une application Android et deux applications de galets. La source est hébergée sur github
Étape 1: choses dont vous avez besoin
Pour configurer la Smart Home, vous avez besoin des « ingrédients » suivants
- Raspberry Pi au moins modèle 2 B
- Émetteur 433 MHz, quelque chose comme ça
- 3 câbles de démarrage reliant le Raspberry Pi et l'expéditeur
- Quelques prises radiocommandes à 433 MHz
- Smartphone Android pour exécuter l'application cliente
De plus, vous pouvez étendre la Smart Home avec plus de clients et d'unités en option comme celui-ci
- Montre connectée Pebble
- Smart Mirror, voir ce projet
- Bande LED contrôlée 433 MHz, voir ce
Étape 2: préparer Raspberry Pi pour 433 MHz
Dans les étapes suivantes, vous devez accéder à la ligne de commande sur le Raspberry Pi. Pour obtenir l'accès, vous pouvez lire cette instructable
Connectez l'émetteur 433 MHz avec le Raspberry Pi comme indiqué dans l'image ci-dessus
- GND (expéditeur) 6 GND (raspi)
- VCC (expéditeur) 2 +5V (raspi)
- DATA (expéditeur) 11 GPIO 17 (raspi)
Veuillez également connecter une antenne de 17 cm à la broche ANT (expéditeur). Cela augmente le signal de manière significative.
Puisque nous avons besoin de bibliothèques d'autres référentiels git, nous devons installer git
sudo apt-get install git-core -y
Pour configurer le Raspberry Pi pour une communication à 433 MHz, nous avons besoin de la bibliothèque de câblage Pi pour une meilleure gestion des GPIO.
git clone git://git.drogon.net/wiringPi
câblage cdPi./build
Ensuite, nous avons besoin d'une bibliothèque qui implémente des protocoles d'alimentation typiquement rc.
git clone git://github.com/dabastynator/rcswitch-pi.git
cd rcswitch-pi make cp send /usr/bin/
L'exécutable 'send' vous permet d'envoyer des codes pour commuter la plupart des alimentations disponibles.
Dans ma configuration Smart Home, j'ai également une bande LED rc décrite par cette instructable: https://www.instructables.com/id/RC-Controlled-LED… Pour définir les couleurs de cette bande LED, vous avez besoin d'un autre exécutable d'envoi qui vous permet pour envoyer n'importe quelle valeur entière (qui code la couleur).
Par conséquent, compilez le sendInt.cpp dans le référentiel rcswitch-pi et déplacez-le vers /usr/bin/sendInt.
sudo g++ sendInt.cpp -o /usr/bin/sendInt /home/pi/rcswitch-pi/RCSwitch.o -I/home/pi/rcswitch-pi -lwiringPi
Vous devriez maintenant pouvoir envoyer des commandes rc avec les deux exécutables /usr/bin/send et /usr/bin/sendInt
Étape 3: Configurer le serveur Smart Home
Tout d'abord, vous devez installer plusieurs packages. L'application Smart Home est basée sur Java et fonctionne correctement avec openjdk-11. Je ne suis pas sûr des autres environnements d'exécution Java. Le mplayer est un lecteur de musique en ligne de commande minimaliste. L'omxplayer utilise les graphiques Raspberry Pi pour l'encodage vidéo, il doit donc être utilisé pour les vidéos. Le programme ant est nécessaire pour construire l'application Java.
sudo apt-get install mplayer omxplayer openjdk-11-jdk ant -y
Répertoires d'installation du fichier jar et des journaux.
sudo mkdir /opt/neo
sudo chown pi:pi /opt/neo mkdir /home/pi/Logs
Configurez le script de démarrage pour démarrer l'application automatiquement au démarrage. Par conséquent, copiez le script smart-home joint dans le répertoire /etc/init.d/ J'ai également créé un script dans /usr/bin/ qui dirige les commandes vers le script joint, donc j'entre simplement smart-home dans la console pour exécuter des commandes.
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
Il est maintenant temps d'extraire le référentiel et de créer l'application. Si vous ne souhaitez pas le compiler vous-même, vous pouvez simplement télécharger le fichier smarthome.jar ci-joint et le déplacer vers /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/
Essayez de démarrer la maison intelligente et vérifiez le fichier journal. Pour accéder aux GPIO, l'application doit être lancée par sudo.
démarrage de la maison intelligente sudo
chat Logs/smarthome.log
Vous devriez voir le message d'erreur Le fichier de configuration n'existe pas qui nous indique l'étape suivante. Le référentiel contient un fichier readme qui explique le fichier de configuration. Vous pouvez le voir joliment rendu sur github:
Copiez ce fichier XML dans /home/pi/controlcenter.xml, puis définissez l'emplacement de votre serveur multimédia et modifiez le contenu selon vos besoins. Une fois que vous avez terminé la configuration et redémarré la maison intelligente (redémarrage sudo de la maison intelligente), vous devriez voir le contenu suivant dans le smarthome.log
24.05-08:26 INFORMATIONS À DISTANCE par de.neo.smarthome.cronjob. CronJob@15aeb7ab: Planifier la tâche cron
24.05-08:26 INFORMATION À DISTANCE par [trigger.light]: Attendre 79391760 ms pour l'exécution 24.05-08:26 INFORMATION RMI par Add web-handler (5061/ledstrip) 24.05-08:26 INFORMATION RMI par Add web-handler (5061 /action) 24.05-08:26 INFORMATION RMI par Add web-handler (5061/mediaserver) 24.05-08:26 INFORMATION RMI by Add web-handler (5061/switch) 24.05-08:26 INFORMATION RMI par Add web-handler (5061/controlcenter) 24.05-08:26 RMI INFORMATION par Start webserver avec 5 handler (localhost:5061) 24.05-08:26 REMOTE INFORMATION by Controlcenter: Ajouter 1. unité de contrôle: MyUnit (xyz) …
Le serveur Web est maintenant en cours d'exécution:-)
Étape 4: Configurer les clients
Client Android pour smartphone
Le référentiel git de l'application smart-home contient également la source du client Android, vous pouvez donc le compiler vous-même. Mais j'ai joint l'APK pour cette étape, cela facilite les choses. La première fois que vous démarrez l'application, elle vous demande un serveur, comme dans la première image ci-dessus. Entrez l'url du serveur et le jeton de sécurité.
Ça devrait être ça. Vous avez maintenant accès au serveur et contrôlez votre appartement, écoutez de la musique et regardez des vidéos à distance sur votre Raspberry Pi. Notez que vous pouvez ajouter des widgets à votre écran d'accueil, ce qui rend les commutateurs et le contrôle de la musique plus accessibles.
Smartwatch Pebble client
La source des deux clients Pebble est hébergée sur github. Une application affiche le fichier de musique en cours de lecture: https://github.com/dabastynator/PebbleRemoteMusic… Cela vous permet également de mettre en pause/jouer et d'augmenter/baisser le volume.
La deuxième application déclenche trois actions: https://github.com/dabastynator/PebbleControl Les noms des déclencheurs sont: mobile.come_home mobile.leaving et mobile.go_to_bed. Si vous définissez des règles d'événement pour ce déclencheur dans votre configuration-xml, vous les déclenchez par votre montre.
Tout est open-source, mais vous n'avez pas besoin de le compiler vous-même, j'ai également attaché les applications Pebble. Téléchargez les PBW avec votre smartphone, votre téléphone devrait les installer sur votre montre. Les applications Pebble ont besoin de configurations pour parler au serveur. J'ai joint une capture d'écran à quoi ressemblent mes paramètres.
Montre connectée Garmin client
Il existe également un client disponible pour les montres intelligentes Garmin. L'application est disponible dans la boutique d'applications garmin connect et peut être installée ici:
apps.garmin.com/en-US/apps/c745527d-f2af-4…
Client miroir intelligent
J'ai déjà créé un instructable qui explique comment créer le Smart Mirror, voir ceci https://www.instructables.com/id/Smart-Mirror-by-R…. Le code source est également hébergé sur github: https:// github.com/dabastynator/SmartMirror. Le logiciel du Smart Mirror lit la configuration à partir du fichier smart_config.js qui ne fait pas partie du référentiel git. Le contenu du fichier de configuration devrait ressembler à cette liste:
var mOpenWeatherKey = 'votre-clé-weather-ouverte';
var mSecurity = 'votre-jeton de sécurité';
Vous devez également ajuster les deux premières lignes du fichier smart_mirror.js pour spécifier l'adresse IP du serveur Smart Home et l'emplacement pour obtenir la bonne météo.
Plus de clients
L'application serveur est un simple serveur Web. Cela vous permet de déclencher des actions à partir de n'importe quel client de votre choix par de simples appels Web. Dans la vidéo de démonstration, je montre le tasker de l'application Android en combinaison avec AutoVoice. Cela me permet de déclencher des événements avec de simples commandes vocales. Par exemple, "ok google, il est temps de dormir" peut déclencher mobile.go_to_bed. Mais vous pouvez également faire des appels Web par exemple depuis IFTTT. Que diriez-vous d'une bande LED jaune clignotante pour la notification par e-mail ?
Vous pouvez demander au serveur d'éventuels appels Web comme les liens suivants (remplacez l'ip, le port et le jeton par votre configuration)
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-…
Étape 5: Conclusion
Il y a encore quelques fonctionnalités à implémenter: Étant donné que le serveur ne fournit qu'une simple API Web, les clients effectuent beaucoup de sondages. Pour réduire le sondage, je veux une intégration MQTT pour une meilleure notification. De plus, les alimentations wifi devraient être plus fiables que les alimentations rc, car rc n'est qu'une communication à sens unique.
C'est très amusant de développer pour ce projet. Et c'est plutôt cool de contrôler l'appartement par plusieurs appareils, même si la connexion Internet tombe en panne.
Conseillé:
Machine à brouillard glacé ultime - Contrôlée par Bluetooth, alimentée par batterie et imprimée en 3D. : 22 étapes (avec photos)
Machine à brouillard à glace sèche ultime - Contrôlée par Bluetooth, alimentée par batterie et imprimée en 3D. : J'avais récemment besoin d'une machine à glace sèche pour des effets théâtraux pour un spectacle local. Notre budget ne s'étendrait pas à l'embauche d'un professionnel, c'est donc ce que j'ai construit à la place. Il est principalement imprimé en 3D, contrôlé à distance via Bluetooth, alimentation par batterie
Pi Home, un assistant virtuel alimenté par Raspberry : 11 étapes (avec photos)
Pi Home, un assistant virtuel alimenté par Raspberry : Le Google Home est utile à avoir à la maison. C'est un bel appareil avec Google Assistant intégré - Un assistant personnel numérique de pointe de Google. Il peut lire des médias, enregistrer vos rappels et notes, vous indiquer la durée de votre trajet domicile-travail
Cat-a-way - Arroseur pour chat par vision par ordinateur : 6 étapes (avec photos)
Cat-a-way - Arroseur pour chat par vision par ordinateur : problème - Les chats utilisent votre jardin comme toiletteSolution - Passez trop de temps à concevoir un arroseur pour chat avec la fonction de téléchargement automatique sur youtubeCe n'est pas une étape par étape, mais un aperçu de la construction et de certains code#BeforeYouCallPETA - Les chats sont
Fer à souder alimenté par batterie au lithium construit par l'utilisateur : 8 étapes (avec photos)
Fer à souder alimenté par batterie au lithium construit par l'utilisateur : récemment, j'ai trouvé une source excédentaire de pannes à souder alimentées par batterie Weller(r) BP1. Le soudage électronique nécessite parfois une visite de réparation sur site et les outils de terrain peuvent être un défi. Je construis souvent mes propres outils, trouvant des solutions sur étagère trop coûteuses
Fauteuil roulant contrôlé par vision par ordinateur avec mannequin : 6 étapes (avec photos)
Fauteuil roulant contrôlé par vision par ordinateur avec mannequin : projet de AJ Sapala, Fanyun Peng, Kuldeep Gohel, Ray LC.Instructable par AJ Sapala, Fanyun Peng, Ray LC.Nous avons créé un fauteuil roulant avec des roues contrôlées par une carte Arduino, qui est à son tour contrôlée par un raspberry pi exécutant openCV via Processing