Les gadgets maison intelligents sont-ils trop chers?  Construit le tien!  Voici comment réaliser un commutateur intelligent à détection de lumière avec Raspberry Pi et IFTTT.

Comment construire un commutateur intelligent sensible à la lumière avec Raspberry Pi et IFTTT

Publicité Les commutateurs Dusk-til-dawn et les minuteries sont des moyens pratiques d'automatiser vos lumières. Ne serait-il pas formidable de combiner les deux ou même de les connecter à Internet pour obtenir un système d'éclairage vraiment intelligent? Un Raspberry Pi, un relais, un capteur de lumière et une touche de code suffisent pour réaliser ce nirvana d'éclairage automatique à peu de frais. Ce dont

Publicité

Les commutateurs Dusk-til-dawn et les minuteries sont des moyens pratiques d'automatiser vos lumières. Ne serait-il pas formidable de combiner les deux ou même de les connecter à Internet pour obtenir un système d'éclairage vraiment intelligent?

Un Raspberry Pi, un relais, un capteur de lumière et une touche de code suffisent pour réaliser ce nirvana d'éclairage automatique à peu de frais.

Ce dont vous aurez besoin

Les composants de votre commutateur intelligent à détection de lumière sont faciles à trouver. Tu auras besoin:

  • Tout modèle Raspberry Pi sous Raspbian.
  • Un tableau de relais, facilement trouvé sur Amazon.
  • Un capteur de luminosité Adafruit TSL2561.
  • Fils de cavalier.
  • Quelques lumières à automatiser!

Comment fonctionne un commutateur intelligent à détection de lumière

En utilisant un relais de la même manière que notre projet d’ouvre-porte de garage automatique Comment automatiser votre porte de garage avec IFTTT et Raspberry Pi Comment automatiser votre porte de garage avec IFTTT et Raspberry Pi Dans ce didacticiel, nous allons vous montrer comment automatiser votre porte de garage utilisant rien de plus qu'un Raspberry Pi et IFTTT. En savoir plus, vous pouvez programmer un Raspberry Pi pour qu’il allume et éteigne un circuit d’éclairage à heure fixe. L'ajout d'un capteur de luminosité au mixage signifie que le Pi peut détecter le niveau de lumière ambiante et choisir d'allumer les lumières uniquement lorsqu'elles sont réellement nécessaires.

Comme un Pi est un ordinateur minuscule pouvant être connecté à un réseau, vous pouvez également le configurer pour le contrôler via Internet. Vos lampes intelligentes auront trois entrées pour déterminer leur moment d’allumage:

  1. Un horaire programmé.
  2. Le niveau de lumière ambiante.
  3. Un signal de dérogation envoyé sur le réseau.

Étape 1: Connectez le Raspberry Pi au relais

Si vous débutez dans l’utilisation de GPIO, commencez par lire Tout ce que vous devez savoir sur les broches GPIO de Raspberry Pi.

Tout d’abord, vérifiez si votre carte relais dispose d’un cavalier reliant les broches VCC et JD-VCC. Si c'est le cas, retirez-le.

Cavalier de la carte relais JD-VCC à VCC

Avec tout éteint, connectez la carte relais à votre Pi comme suit:

  • Pi Pin 2 (5v) au JD-VCC sur la carte de relais.
  • Pi Pin 6 (GND) à GND sur la carte de relais.
  • Pi Pin 15 (GPIO 22) à IN1 sur la carte de relais
  • Pi Pin 17 (3.3v) sur VCC sur la carte de relais.

Raspberry Pi Zero W connecté à une carte relais

Étape 2: Connectez le capteur de luminosité

Le TSL2561 est un capteur de lumière capable de détecter la lumière infrarouge, à spectre complet et visible par l'homme. Il peut envoyer une lecture numérique très précise au Raspberry Pi. Le capteur signale le niveau de lumière sur une échelle de 0, 1 (pas de lumière) à 40 000 (soleil éclatant).

La carte TSL2561 communique avec le Raspberry Pi à l’aide du protocole i2c. I2C n'a besoin que de deux connexions, une pour une horloge pour maintenir les deux périphériques synchronisés et une pour les données en cours de transfert. Bien entendu, le capteur de lux a également besoin de puissance, il y a donc quatre connexions à établir:

  • Reliez la broche Pi 1 (3.3v) à Vin (ou VCC) du capteur de lux
  • Reliez Pi Pin 3 (SDA) à SDA sur le capteur de lux
  • Connectez la broche Pi 5 (SCL) à SCL sur le capteur lux
  • Connectez la broche Pi 9 (GND) à GND sur le capteur lux

Raspberry Pi Zero W connecté au capteur TSL2561 Lux

Étape 3: Configurez et installez les dépendances

Avant d'aller plus loin, vous devez vérifier que I2C est activé sur votre Raspberry Pi (il est désactivé par défaut). Tapez ce qui suit dans le terminal:

 sudo raspi-config 

Sélectionnez Options d'interface> P5 I2C, puis choisissez Oui .

Options d'interfaçage dans l'utilitaire raspi-config

Appuyez sur Entrée puis sélectionnez Terminer pour quitter l'écran de configuration. Redémarrez votre Pi pour que le changement prenne effet:

 sudo reboot 

Certaines dépendances sont nécessaires pour que le Pi puisse communiquer avec la carte de capteur. Tapez les commandes suivantes:

 sudo apt-get update sudo apt-get install -y python-smbus sudo apt-get install -y i2c-tools 

Vous pouvez vérifier que tout fonctionne correctement en tapant:

 sudo i2cdetect -y 1 

Si vos dépendances sont installées et que votre capteur de lux est connecté correctement, vous verrez une réponse comme celle-ci:

IC-Detect utilitaire rapportant l'adresse du capteur de lux

Ici, l'utilitaire indique qu'il a trouvé un périphérique I2C (le capteur de lux) à l'adresse I2C 39.

Vous n'en avez pas encore fini avec les dépendances. Vous aurez également besoin de quelques bibliothèques. Tout d’abord, créez un dossier pour conserver tout ce qui concerne ce projet dans:

 mkdir ~/lighting cd ~/lighting 

Ensuite, téléchargez bottle, un framework léger qui créera un simple serveur Web sur votre Pi. Vous allez l'utiliser pour contrôler vos lumières à partir du Web.

 wget https://bottlepy.org/bottle.py 

Les autres bibliothèques dont vous avez besoin sont sur Github. Si Git n'est pas déjà installé sur votre Raspberry Pi, ajoutez-le maintenant:

 sudo apt-get install git 

Clonez maintenant deux bibliothèques, comme ceci:

 git clone https://github.com/adafruit/Adafruit_Python_GPIO.git git clone https://github.com/adafruit/Adafruit_Python_PureIO.git 

Et enfin, créez un script de test en créant un nouveau fichier:

 nano test.py 

Collez dans ce code (avec la permission d'Adafruit):

 #!/usr/bin/env python # -*- coding: utf-8 -*- from __future__ import absolute_import, division, print_function, unicode_literals from tsl2561 import TSL2561 if __name__ == "__main__": tsl = TSL2561(debug=True) print(tsl.lux()) 

Appuyez sur Ctrl + X pour enregistrer, en suivant les instructions à l'écran pour quitter.

Lorsque vous avez terminé, exécutez le script de test:

 python test.py 

Si tout est installé et fonctionne, vous recevrez un numéro. Ce nombre est une lecture en lux du capteur. Essayez de bloquer le capteur ou de le déplacer pour qu'il obtienne plus ou moins de lumière. Ensuite, exécutez à nouveau le script de test et voyez comment le nombre change.

Étape 4: Créer les scripts d'automatisation

Le Raspberry Pi allumera les lumières quand il fera noir, mais les éteindra également à certaines heures. Par exemple, vous voudrez peut-être que vos lumières s’allument à la tombée de la nuit, puis s’éteignent vers minuit pour économiser l’électricité. Ils pourraient revenir tôt le matin, puis s'éteindre quand il fera jour.

Pour gérer une planification avec plusieurs zones de temps comme celle-ci, il existe deux scripts différents. Un ( onzone.py ) fonctionnera toutes les minutes pendant les heures où vous souhaitez que vos lumières soient allumées s’il fait sombre. L'autre ( offzone.py ) fonctionnera toutes les minutes lorsque vous souhaitez que les lumières soient éteintes, quel que soit le niveau d'éclairage.

Calendrier de script d'éclairage intelligent

L'exécution des scripts à l'aide de tâches cron est planifiée. Procédure de planification de tâches sous Linux avec Cron et Crontab Procédure de planification de tâches sous Linux avec Cron et Crontab La possibilité d'automatiser des tâches est l'une de ces technologies futuristes déjà existantes. Chaque utilisateur Linux peut tirer parti du système de planification et des tâches utilisateur, grâce à cron, un service en arrière-plan facile à utiliser. Lire la suite . En choisissant les heures du jour et de la nuit pour chaque script, il sera facile de régler les heures d'allumage automatique de vos lumières. Vous pouvez configurer autant de périodes d'activation et de désactivation que vous le souhaitez.

Outre les scripts de contrôle automatique des éclairages, il existe un troisième script permettant de gérer les situations de substitution. Cela vous permettra d'allumer les lumières à distance quel que soit le niveau de lumière ambiante.

Script 1: La zone ON

Ce script Python sera exécuté chaque minute de la journée pendant laquelle vous souhaitez que les lumières s’allument s’il fait sombre. Téléchargez le script en copiant et en collant cette commande dans le terminal:

 wget https://gist.githubusercontent.com/hamishdownell/ea151d2ff7c888ac09f8a850afaab4ee/raw/10b0e9d8ec42f8577750941da46a93d16b597c05/onzone.py 

Chaque fois que onzone.py est exécuté, il obtiendra une valeur en lux du capteur pour voir s’il fait sombre. Si c'est le cas, il vérifiera ensuite si les lumières sont allumées ou éteintes. S'ils sont éteints, ils seront activés. S'il ne fait pas sombre, le script verra si les lumières sont allumées. S'ils le sont, ils seront désactivés sauf s'ils ont été remplacés.

Le script utilise une variable appelée lowlux pour décider à quel moment il fait suffisamment sombre pour allumer les lumières. Vous pouvez le remplacer par quelque chose d’approprié pour votre propre installation en modifiant la valeur de cette ligne près du sommet de onzone.py:

 lowlux = 50 

Script 2: La zone OFF

Ce script sera exécuté chaque minute de la journée pendant laquelle vous souhaitez que les lumières restent éteintes, sauf si elles ont été remplacées. Téléchargez le script:

 wget https://gist.githubusercontent.com/hamishdownell/fb8970909145bbfefbbef8dba5f5a00f/raw/eae5a6057a51ca4727907c7d061f0a48b07da944/offzone.py 

Ce script ne se soucie pas de la clarté ou de l'obscurité. Son travail consiste simplement à éteindre les lumières si elles sont allumées (sauf si elles ont été remplacées).

Script 3: le serveur de remplacement

Ce script crée un service Web simple pouvant accepter des commandes pour effectuer les actions suivantes:

  1. Allumez les lumières pendant quelques minutes, quel que soit le niveau de lumière ambiante.
  2. Éteignez les lumières.
  3. Découvrez si les lumières sont actuellement allumées ou éteintes.
  4. Déterminez combien de temps les lumières doivent rester allumées après avoir été neutralisées.

Téléchargez le script:

 wget https://gist.githubusercontent.com/hamishdownell/2303bfd9fb30d42e79923bdb7e69ed4e/raw/7dcb456b81b8ae58ae48efa225adb41ba7d7f69c/lightserver.py 

Avant de passer à l'étape suivante, exécutez le script offzone.py comme suit:

 python offzone.py 

Cela créera les fichiers de contrôle que les scripts utilisent pour garder trace de tout.

Étape 5: Planifiez les scripts

Votre Raspberry Pi peut exécuter les scripts d'automatisation avec cron. Configurez le calendrier comme ceci:

 sudo crontab -e 

Collez ces deux lignes dans l'éditeur de texte:

 * 7, 8, 9, 17, 18, 19, 20, 21, 22, 23 * * * python /home/pi/lighting/onzone.py > NULL * 0, 1, 2, 3, 4, 5, 6, 10, 11, 12, 13, 14, 15, 16 * * * python /home/pi/lighting/offzone.py > NULL 

Remarque: Si le nom d'utilisateur avec lequel vous vous êtes connecté à votre Raspberry Pi n'était pas le nom par défaut, modifiez le chemin en conséquence.

Indiquez toutes les heures où vous souhaitez que les lumières s’allument s’il fait sombre en première ligne. Toutes les heures où vous souhaitez que les lumières soient éteintes passent en deuxième ligne.

Maintenant, configurez le script de remplacement pour qu'il s'exécute automatiquement au démarrage du Pi:

 sudo nano /etc/rc.local 

Collez cette ligne au bas du fichier, puis enregistrez et quittez:

 nohup python /home/pi/lighting/lightserver.py & 

Enfin, redémarrez le Raspberry Pi pour vérifier que le script du serveur se charge correctement.

 sudo reboot 

Étape 6: Testez le relais

Avant de connecter vos éclairages, vérifiez que tout fonctionne correctement à l’aide de la fonction de neutralisation. Tapez ce qui suit dans un navigateur Web sur le même réseau que votre Pi, en remplaçant l'adresse IP par l'adresse de votre propre Raspberry Pi:

 11.22.33.44:1234/overrideon/3 

Si tout va bien, vous entendrez le déclic du relais et le navigateur répondra que les lumières sont allumées depuis trois minutes.

Lorsque le relais est fermé, vous pouvez tester les autres fonctions de dérogation. Cela vous indiquera combien de minutes les lumières resteront allumées en raison de la neutralisation:

 11.22.33.44:1234/getoverrideremaining 

Cela devrait vous dire que les lumières sont allumées:

 11.22.33.44:1234/lightstatus 

Enfin, vous pouvez les désactiver avec:

 11.22.33.44:1234/overrideoff 

Le relais cliquera dès qu’il s’ouvrira.

Étape 7: connectez vos lumières

Eteignez et débranchez votre Raspberry Pi avant de connecter vos lumières au relais. Utilisez les connecteurs normalement ouverts (NO) de la carte à relais à la place d’un commutateur standard, comme ceci:

Insertion du relais dans le circuit d'éclairage

Enfin, vous pouvez installer votre capteur de lux dans un endroit où il captera le niveau de lumière ambiante. Notez que le TSL2561 signalera qu'il est saturé s'il est directement exposé au soleil. Il est donc préférable de le laisser à l'ombre si possible.

Plus de projets Raspberry Pi à essayer

Remplacer à distance votre nouvelle configuration d’éclairage intelligent en tapant des commandes dans un navigateur Web est assez fastidieux. Un meilleur moyen consiste à connecter quelque chose comme un Amazon Echo pour faciliter les choses. La combinaison du service Alexa et du service Webhooks sur IFTTT constitue un moyen simple d’ajouter un contrôle vocal.

Consultez notre guide d'utilisation d'IFTTT pour vous aider à démarrer.

IFTTT Applet pour connecter des lampes intelligentes à Alexa

Une autre option consiste à utiliser les raccourcis Siri. Un seul raccourci avec des menus peut interroger le statut des voyants et utiliser les fonctions de remplacement pour les allumer et les éteindre.

Si vous avez apprécié ce projet, ne manquez pas ces projets étranges de Raspberry Pi. 10 Les plus étranges projets Raspberry Pi. 10 Les plus étranges projets Raspberry Pi Il y a un scientifique fou en chacun de nous et le Raspberry Pi vous permet de jouer. Parfois, les choses deviennent étranges. Vraiment étrange. Lisez plus pour plus d'idées.

En savoir plus sur: IFTTT, Raspberry Pi, Smart Lighting.