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

  • Brian Curtis
  • 0
  • 3210
  • 826
Publicité

Les commutateurs Dusk-til-dawn et les minuteries sont des moyens pratiques d'automatiser vos lumières. Ne serait-ce pas formidable de pouvoir 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 pincée 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 connexion.
  • 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. , vous pouvez programmer un Raspberry Pi pour allumer et éteindre un circuit d’éclairage à heures fixes. 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 du GPIO, commencez par lire Tout ce que vous devez savoir sur le Raspberry Pi GPIO Pins.

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.

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) à VCC sur la carte de 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

É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électionner Options d'interfaçage> P5 I2C, Alors choisi Oui.

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 de capteur. Tapez les commandes suivantes:

sudo apt-get mise à jour 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:

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

Vous n'êtes 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 bottle, 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 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:

clone git https://github.com/adafruit/Adafruit_Python_GPIO.git clone git 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 # - * - codage: utf-8 - * - from __future__ import absolute_import, division, print_function, unicode_literals de tsl2561 importez TSL2561 si __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 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. Puis relancez 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 fait jour.

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

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. . 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, il les éteindra sauf s'ils ont été remplacés..

Le script utilise une variable appelée lowlux décider à quel point 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/eae5a6057a4727907c7d061f0a48b07da944/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. Allumer les lumières pendant quelques minutes, quel que soit le niveau de lumière ambiante.
  2. Éteindre 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é éteintes.

Téléchargez le script:

wget https://gist.githubusercontent.com/hamishdownell/2303bfd9fb30d42e79923bdb7e69ed4e/raw/7dcb456b81b8ae58efa225adb41ba7d7f69c/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 une 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 pi, changer 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 voulez éteindre les lumières vont 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.

redémarrage sudo

É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 va cliquer quand il s'ouvre.

É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:

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 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 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 est un moyen simple d’ajouter un contrôle vocal..

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

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 bizarre. pour plus d'idées.




Personne n'a encore commenté ce post.

De la technologie moderne, simple et abordable.
Votre guide dans le monde de la technologie moderne. Apprenez à utiliser les technologies et les gadgets qui nous entourent chaque jour et à découvrir des choses intéressantes sur Internet.