Publicité

Les commutateurs du crépuscule à l'aube et les commutateurs de minuterie sont deux moyens pratiques d'automatiser vos lumières. Ce ne serait pas génial si vous pouviez combiner les deux, ou même les connecter à Internet pour un système d'éclairage vraiment intelligent?

Un Raspberry Pi, un relais, un capteur de lumière et un tiret de code sont tout ce dont vous avez besoin pour réaliser ce nirvana d'éclairage automatique sur une courte distance.

Ce dont vous aurez besoin

Les composants de votre interrupteur intelligent sensible à la lumière sont faciles à trouver. Tu auras besoin:

  • Tout modèle Raspberry Pi exécutant Raspbian.
  • UNE carte relais, facilement trouvé sur Amazon.
  • Une Capteur de luminosité Adafruit TSL2561.
  • Fils de liaison.
  • Quelques lumières pour automatiser!

Fonctionnement d'un interrupteur intelligent sensible à la 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

instagram viewer
Dans ce tutoriel, nous vous montrerons comment automatiser votre porte de garage en utilisant rien de plus qu'un Raspberry Pi et IFTTT. Lire la suite , vous pouvez programmer un Raspberry Pi pour allumer et éteindre un circuit d'éclairage à des heures fixes. L'ajout d'un capteur de luminosité au mélange signifie que le Pi peut détecter le niveau de lumière ambiante et choisir d'allumer les lumières uniquement lorsque cela est vraiment nécessaire.

Parce qu'un Pi est un petit ordinateur qui peut être connecté à un réseau, vous pouvez également le configurer pour qu'il soit contrôlé via Internet. Vos lumières intelligentes auront trois entrées pour déterminer quand elles s'allument:

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

Étape 1: connectez le Raspberry Pi au relais

Si vous débutez avec le GPIO, commencez par lire Tout ce que vous devez savoir sur les broches GPIO du Raspberry Pi.

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

Cavalier de carte relais JD-VCC à VCC

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

  • Pi Pin 2 (5v) au JD-VCC sur la carte relais.
  • Pi Pin 6 (GND) à GND sur la carte relais.
  • Pi Pin 15 (GPIO 22) à IN1 sur la carte relais
  • Pi Pin 17 (3.3v) à VCC sur la carte relais.
Raspberry Pi Zero W connecté à une carte relais

Étape 2: connexion du capteur de luminosité

Le TSL2561 est un capteur de lumière qui peut 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 brillant).

La carte TSL2561 parle au Raspberry Pi utilisant le protocole i2c. I2C n'a besoin que de deux connexions, une pour une horloge pour synchroniser les deux appareils et une pour les données transférées. Bien sûr, le capteur lux a également besoin de puissance, il y a donc quatre connexions à faire en tout:

  • Connectez Pi Pin 1 (3.3v) à Vin (ou VCC) sur le capteur lux
  • Connectez Pi Pin 3 (SDA) à SDA sur le capteur lux
  • Connectez Pi Pin 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: configurer et installer les dépendances

Avant d'aller plus loin, vous devrez 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électionner Options d'interfaçage> P5 I2C, Alors choisi Oui.

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

Frappé Entrer puis sélectionnez terminer pour quitter l'écran de configuration. Redémarrez votre Pi pour que le changement prenne effet:

redémarrage sudo

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

mise à jour sudo apt-get. sudo apt-get install -y python-smbus. sudo apt-get install -y i2c-tools

Vous pouvez vérifier que tout fonctionne en tapant:

sudo i2cdetect -y 1

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

Utilitaire IC-Detect signalant l'adresse du capteur lux

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

Vous n'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 ~ / éclairage. cd ~ / éclairage

Ensuite, téléchargez bouteille, un framework léger qui créera un simple serveur web sur votre Pi. Vous l’utiliserez pour contrôler vos lumières à partir du Web.

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

Les autres bibliothèques dont vous aurez besoin sont sur Github, donc si votre Raspberry Pi n'a pas déjà installé Git, ajoutez-le maintenant:

sudo apt-get install git

Maintenant, clonez 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 ce code (gracieuseté de Adafruit):

#! / usr / bin / env python. # - * - codage: utf-8 - * - depuis __future__ import import_absolu, division, fonction_impression, unicode_literals. à partir de tsl2561, importez TSL2561. if __name__ == "__main__": tsl = TSL2561 (debug = True) print (tsl.lux ())

presse 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 récupérerez un numéro. Ce nombre est une lecture lux du capteur. Essayez de bloquer le capteur ou de le déplacer pour qu'il soit plus ou moins lumineux. Exécutez à nouveau le script de test et voyez comment le nombre change.

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

Le Raspberry Pi allume les lumières lorsqu'il fait sombre, mais les éteint également à certains moments. Par exemple, vous voudrez peut-être que vos lumières s'allument quand il fait sombre le soir, puis s'éteignent vers minuit pour économiser de l'électricité. Ils pourraient réapparaître tôt le matin, puis s'éteindre quand il fait jour.

Pour gérer un planning avec plusieurs fuseaux horaires comme celui-ci, il existe deux scripts différents. Une (onzone.py) s'exécutera toutes les minutes pendant les heures où vous souhaitez que vos lumières soient allumées s'il fait sombre. L'autre (offzone.py) s'exécutera toutes les minutes pendant les moments où vous souhaitez que les lumières soient éteintes quel que soit le niveau de lumière.

Horaire du script d'éclairage intelligent

Les scripts doivent être exécutés utilisation des tâches cron Comment planifier des tâches sous Linux avec Cron et CrontabLa capacité d'automatiser des tâches est l'une de ces technologies futuristes qui est déjà là. Chaque utilisateur Linux peut bénéficier du système de planification et des tâches utilisateur, grâce à cron, un service d'arrière-plan facile à utiliser. Lire la suite . En choisissant quelles heures du jour et de la nuit chaque script s'exécute, il sera facile de définir les heures auxquelles vos lumières peuvent s'allumer automatiquement. Vous pouvez configurer autant de périodes d'activation et de désactivation que vous le souhaitez.

En plus des scripts pour contrôler automatiquement les lumières, il existe un troisième script pour gérer les situations de priorité. 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 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 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, il les allumera. S'il ne fait pas nuit, le script verra si les lumières sont allumées. S'ils le sont, il les désactivera sauf s'ils ont été annulés.

Le script utilise une variable appelée lowlux pour décider à quel moment il fait assez sombre pour allumer les lumières. Vous pouvez le changer en quelque chose qui convient à votre propre installation en modifiant la valeur dans cette ligne près du haut 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 luminosité ou de l'obscurité. Son travail consiste simplement à éteindre les lumières si elles sont allumées (sauf si elles ont été annulées).

Script 3: le serveur prioritaire

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

  1. Allumez les lumières pendant un certain nombre de 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écouvrez combien de temps les lumières doivent rester allumées lorsqu'elles ont été annulé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 ceci:

python offzone.py

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

Étape 5: planifier 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 celui par défaut pi, modifiez le chemin d'accès en conséquence.

Énumérez toutes les heures où vous souhaitez que les lumières s'allument quand il fait sombre dans la première ligne. Toutes les heures où vous voulez éteindre les lumières passent sur la deuxième ligne.

Maintenant, définissez 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 pouvoir vérifier que le script du serveur se charge comme il se doit

redémarrage sudo

Étape 6: tester le relais

Avant de connecter vos lumières, vérifiez que tout fonctionne en utilisant la fonction de priorité. 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 ont été allumées pendant trois minutes.

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

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 à nouveau avec:

11.22.33.44:1234/overrideoff

Le relais cliquera à l'ouverture.

Étape 7: connectez vos lumières

Éteignez et débranchez votre Raspberry Pi avant de connecter vos lumières au relais. Utilisez les connecteurs normalement ouverts (NO) sur la carte relais à la place d'un interrupteur normal, comme ceci:

Insertion du relais dans le circuit d'éclairage

Enfin, vous pouvez installer votre capteur lux dans un endroit où il capturera le niveau de lumière ambiante. Notez que le TSL2561 signalera qu'il est saturé s'il rencontre la lumière directe du soleil, il est donc préférable de le garder à 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 lourd. Une meilleure façon est de brancher quelque chose comme un Amazon Echo pour faciliter les choses. Combiner le service Alexa et le service Webhooks sur IFTTT est un moyen simple d'ajouter une commande vocale.

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

Applet IFTTT pour connecter des lumières intelligentes à Alexa

Une autre option consiste à utiliser les raccourcis Siri. Un seul raccourci avec des menus peut interroger l'état des lumières et utiliser les fonctions de priorité pour les allumer et les éteindre.

Si vous avez aimé ce projet, assurez-vous de les consulter projets étranges Raspberry Pi 10 projets Raspberry Pi les plus étrangesIl y a un savant fou en chacun de nous, et le Raspberry Pi laisse votre huard intérieur sortir et jouer. Parfois, les choses deviennent étranges. Vraiment étrange. Lire la suite pour plus d'idées.

Hamish est un écrivain indépendant, un amoureux de la technologie depuis toujours et un nerd confirmé. Il a travaillé dans les départements informatiques de plusieurs multinationales avant de finalement licencier son patron et de faire cavalier seul.