Comment construire un commutateur intelligent sensible à la lumière avec Raspberry Pi et IFTTT
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, voire 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 connexion.
- Quelques lumières à automatiser!
Module relais DC 5V SunFounder avec carte d'extension de coupleur optocoupleur pour Arduino UNO R3 MEGA 2560 1280 DSP BRAS PIC AVR STM32 Raspberry Pi Module relais DC 5V CC à 2 canaux avec optocoupleur Carte d'extension Trigger de niveau bas pour Arduino UNO R312 1280 DSP BRAS PIC AVR STM32 Raspberry Pi Acheter maintenant sur Amazon $ 6.79
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:
- Un horaire programmé.
- Le niveau de lumière ambiante.
- 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.
Tout étant é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, le spectre complet et la lumière visible de 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:
- Connectez la broche Pi 1 (3.3v) à Vin (ou VCC) sur le 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'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 ~ / é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 - * - de __future__ importation 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 de 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) fonctionnera 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 des tâches du système et du système de planification, 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 où 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 assez 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, à moins qu'elles ne soient 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:
- Allumer les lumières pendant quelques minutes, quel que soit le niveau de lumière ambiante.
- Éteindre les lumières.
- Découvrez si les lumières sont actuellement allumées ou éteintes.
- 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 ainsi:
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 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 afin que vous puissiez 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 capturera 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, assurez-vous de consulter ces étranges projets 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. Lire plus pour plus d'idées.
En savoir plus sur: IFTTT, Raspberry Pi, Smart Lighting.