Come costruire uno Smart Switch Sensore di luce con Raspberry Pi e IFTTT
Gli interruttori del crepuscolo e dell’alba e gli interruttori del timer sono entrambi modi pratici per automatizzare le luci. Non sarebbe fantastico se potessi combinare i due, o addirittura collegarli a Internet per un sistema di illuminazione veramente intelligente?
Un Raspberry Pi, un relè, un sensore di luce e un pizzico di codice sono tutto ciò che serve per ottenere questo nirvana di illuminazione automatica con pochi soldi.
Cosa ti serve
I componenti per il tuo interruttore intelligente per la rilevazione della luce sono facili da reperire. Avrai bisogno:
- Qualsiasi modello Raspberry Pi su cui è in esecuzione Raspbian.
- Una [amazon link=”B00E0NTPP4″ title=”scheda relay”], facilmente reperibile su Amazon.
- Un sensore di luminosità TSL2561 di Adafruit .
- Fili di ponticello.
- Alcune luci per automatizzare!
[amazon box=”B00E0NTPP4″]
Come funziona uno Smart Switch Sensore di luce
Utilizzando un relè allo stesso modo del nostro progetto di apertura automatica della porta del garage , è possibile programmare un Raspberry Pi per accendere e spegnere un circuito di illuminazione a orari prestabiliti. Aggiungendo un sensore di luminosità al mix, il Pi può rilevare il livello di luce ambientale e scegliere di accendere le luci solo quando sono realmente necessarie.
Poiché un Pi è un minuscolo computer che può essere connesso a una rete, è possibile configurarlo anche per controllarlo su Internet. Le tue luci intelligenti avranno tre ingressi per determinare quando accenderanno:
- Un programma programmato.
- Il livello di luce ambientale
- Un segnale di override inviato sulla rete.
Passaggio 1: collegare il Raspberry Pi al relè
Se non hai mai utilizzato GPIO, inizia leggendo tutto ciò che ti serve sui pin GPIO di Raspberry Pi .
Innanzitutto, controlla se la tua scheda relè ha un ponticello che collega i pin VCC e JD-VCC insieme. Se è così, rimuovilo.
Con tutto spento, collega la scheda relay al tuo Pi come segue:
- Pi Pin 2 (5v) al JD-VCC sulla scheda relè.
- Pi Pin 6 (GND) a GND sulla scheda relè.
- Pi Pin 15 (GPIO 22) a IN1 sulla scheda relè
- Pi Pin 17 (3.3 v) a VCC sulla scheda relè.
Passaggio 2: collegare il sensore di luminosità
TSL2561 è un sensore di luce in grado di rilevare la luce a infrarossi, a spettro completo e visibile dall’uomo. Può inviare una lettura digitale molto precisa al Raspberry Pi. Il sensore riporta il livello di luce su una scala da 0,1 (senza luce) a 40.000 (sole splendente).
La scheda TSL2561 parla con il Raspberry Pi utilizzando il protocollo i2c . I2C richiede solo due connessioni, una per un orologio per mantenere sincronizzati i due dispositivi e uno per i dati da trasferire. Ovviamente anche il sensore lux ha bisogno di energia, quindi ci sono quattro connessioni per fare del tutto:
- Collegare Pi Pin 1 (3.3v) a Vin (o VCC) sul sensore lux
- Collegare il Pi Pin 3 (SDA) a SDA sul sensore lux
- Collegare Pi Pin 5 (SCL) a SCL sul sensore lux
- Collegare il Pi Pin 9 (GND) a GND sul sensore lux
Passaggio 3: configurare e installare le dipendenze
Prima di proseguire, è necessario verificare che I2C sia abilitato sul tuo Raspberry Pi (è disabilitato di default). Digitare quanto segue nel terminale:
sudo raspi-config
Selezionare Opzioni di interfaccia> P5 I2C, quindi selezionare Sì .
Premi Invio quindi seleziona Fine per uscire dalla schermata di configurazione. Riavvia il Pi per rendere effettive le modifiche:
sudo reboot
Alcune dipendenze sono necessarie affinché Pi possa essere in grado di comunicare con la scheda sensore. Digita i seguenti comandi:
sudo apt-get update sudo apt-get install -y python-smbus sudo apt-get install -y i2c-tools
Puoi controllare che tutto funzioni digitando:
sudo i2cdetect -y 1
Se le tue dipendenze sono installate e il tuo sensore lux è collegato correttamente, ve
drai una risposta come questa:
Qui l’utility riporta che ha trovato un dispositivo I2C (il sensore lux) all’indirizzo I2C 39.
Non hai ancora finito con le dipendenze. Avrai bisogno anche di alcune librerie. Innanzitutto, crea una cartella per mantenere tutto ciò che è relativo a questo progetto in:
mkdir ~/lighting cd ~/lighting
Successivamente, scarica la bottiglia , una struttura leggera che creerà un semplice server web sul tuo Pi. Lo userai per controllare le luci dal web.
wget https://bottlepy.org/bottle.py
Le altre librerie di cui hai bisogno sono su Github, quindi se il tuo Raspberry Pi non ha già installato Git, aggiungilo ora:
sudo apt-get install git
Ora clona due librerie, in questo modo:
git clone https://github.com/adafruit/Adafruit_Python_GPIO.git git clone https://github.com/adafruit/Adafruit_Python_PureIO.git
E infine, crea uno script di test creando un nuovo file:
nano test.py
Incolla questo codice (per gentile concessione di 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())
Premi Ctrl + X per salvare, seguendo le istruzioni su schermo per uscire.
Quando hai finito, esegui lo script di test:
python test.py
Se tutto è installato e funzionante, riceverai un numero. Quel numero è una lettura lux dal sensore. Prova a bloccare il sensore o spostalo in modo che diventi più o meno leggero. Quindi eseguire di nuovo lo script di test e vedere come cambia il numero.
Passaggio 4: creare gli script di automazione
Il Raspberry Pi accenderà le luci quando fa buio, ma le spegnerà anche in determinati momenti. Ad esempio, potresti desiderare che le luci si accendano quando fa buio la sera, quindi vai a mezzanotte per risparmiare elettricità. Potrebbero tornare di nuovo presto la mattina, poi spegnersi quando diventa luce.
Per gestire una pianificazione con più fusi orari come questa, ci sono due diversi script. Uno ( onzone.py ) verrà eseguito ogni minuto durante i periodi in cui desideri che le luci si accendano se è buio. L’altro ( offzone.py ) verrà eseguito ogni minuto durante i periodi in cui si desidera che le luci siano spente indipendentemente dal livello di illuminazione.
Gli script verranno pianificati per l’esecuzione tramite cron jobs . Scegliendo in quali ore del giorno e della notte viene eseguito ogni script, sarà facile impostare le ore in cui le luci si accenderanno automaticamente. Puoi impostare quanti periodi di attivazione e disattivazione vuoi.
Oltre agli script per il controllo automatico delle luci, c’è un terzo script per gestire le situazioni di override. Questo ti permetterà di accendere le luci a distanza indipendentemente dal livello di luce ambientale.
Script 1: The ON Zone
Questo script Python verrà eseguito ogni minuto del giorno in cui si desidera che le luci si accendano se è buio. Scarica lo script copiando e incollando questo comando nel terminale:
wget https://gist.githubusercontent.com/hamishdownell/ea151d2ff7c888ac09f8a850afaab4ee/raw/10b0e9d8ec42f8577750941da46a93d16b597c05/onzone.py
Ogni volta che onzone.py viene eseguito, otterrà un valore lux dal sensore per vedere se è buio. Se lo è, controllerà quindi se le luci sono accese o spente. Se sono spenti, li accenderà. Se non è buio, lo script vedrà se le luci sono accese. Se lo sono, li spegnerà a meno che non siano stati sostituiti.
Lo script usa una variabile chiamata lowlux per decidere a quale punto è abbastanza buio da accendere le luci. Puoi cambiarlo in qualcosa di adatto alla tua installazione modificando il valore in questa linea vicino a su onzone.py:
lowlux = 50
Script 2: The OFF Zone
Questo script verrà eseguito ogni minuto del giorno in cui si desidera che le luci rimangano spente, a meno che non siano state sostituite. Scarica lo script:
wget https://gist.githubusercontent.com/hamishdownell/fb8970909145bbfefbbef8dba5f5a00f/raw/eae5a6057a51ca4727907c7d061f0a48b07da944/offzone.py
Questo script non si preoccupa di quanto sia chiaro o scuro. Il suo compito è semplicemente spegnere le luci se sono accese (a meno che non siano state sostituite).
Script 3: il server override
Questo script crea un semplice servizio Web che può accettare i comandi per eseguire le azioni seguenti:
- Accendi le luci per un numero di minuti indipendentemente dal livello di luce ambientale.
- Spegni le luci.
- Scopri se le luci sono attualmente accese o spente.
- Scopri per quanto tempo ancora le luci devono rimanere accese quando sono state sostituite.
Scarica lo script:
wget https://gist.githubusercontent.com/hamishdownell/2303bfd9fb30d42e79923bdb7e69ed4e/raw/7dcb456b81b8ae58ae48efa225adb41ba7d7f69c/lightserver.py
Prima di passare al passaggio successivo, esegui lo script offzone.py in questo modo:
python offzone.py
Questo creerà i file di controllo che gli script usano per tenere traccia di tutto.
Passaggio 5: Pianifica gli script
Il tuo Raspberry Pi può eseguire gli script di automazione con cron. Imposta il programma in questo modo:
sudo crontab -e
Incolla queste due righe nell’editor di testo:
* 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
Nota: se il nome utente che hai registrato nel tuo Raspberry Pi non era quello predefinito pi , cambia il percorso di conseguenza.
Elenca tutte le ore in cui desideri che le luci si accendano quando è buio nella prima riga. Tutte le ore in cui vuoi spegnere le luci vanno nella seconda riga.
Ora imposta lo script di override per l’esecuzione automatica all’avvio di Pi:
sudo nano /etc/rc.local
Incolla questa riga nella parte inferiore del file, quindi salva e esci:
nohup python /home/pi/lighting/lightserver.py &
Infine, riavvia il Raspberry Pi in modo da poter controllare che lo script del server si carichi come dovrebbe
sudo reboot
Passaggio 6: test del relè
Prima di collegare le luci, verifica che tutto funzioni utilizzando la funzione di sostituzione. Digitare quanto segue in un browser Web sulla stessa rete del proprio Pi, sostituendo l’indirizzo IP con l’indirizzo del proprio Raspberry Pi:
< pre> 11.22.33.44:1234/overrideon/3
Se tutto va bene, sentirai il clic del relay e il browser risponderà che le luci sono state accese per tre minuti.
Mentre il relè è chiuso, è possibile testare le altre funzioni di override. Questo ti dirà per quanti altri minuti le luci rimarranno accese a causa dell’override:
11.22.33.44:1234/getoverrideremaining
Questo dovrebbe dirti che le luci sono accese:
11.22.33.44:1234/lightstatus
Infine, puoi spegnerli di nuovo con:
11.22.33.44:1234/overrideoff
Il relè farà clic mentre si apre.
Step 7: Connetti le tue luci
Spegni e scollega il tuo Raspberry Pi prima di collegare le luci al relè. Utilizzare i connettori normalmente aperti (NO) sulla scheda relè al posto di un normale interruttore, in questo modo:
Infine, è possibile installare il sensore di lux in un punto in cui catturerà il livello di luce ambientale. Notare che il TSL2561 verrà segnalato come saturo se incontra la luce diretta del sole, quindi è meglio tenerlo all’ombra se possibile.
Altri progetti Raspberry Pi da provare
Escludere a distanza la tua nuova configurazione di illuminazione intelligente digitando i comandi in un browser Web è piuttosto ingombrante. Un modo migliore è quello di collegare qualcosa come Amazon Echo per rendere le cose più facili. La combinazione del servizio Alexa e del servizio Webhooks su IFTTT è un modo semplice per aggiungere il controllo vocale.
Consulta la nostra guida sull’utilizzo di IFTTT per aiutarti a iniziare.
Un’altra opzione è usare le scorciatoie Siri. Una singola scorciatoia con i menu può interrogare lo stato delle luci e utilizzare le funzioni di override per attivarle o disattivarle.
Se ti è piaciuto questo progetto, assicurati di dare un’occhiata a questi strani progetti di Raspberry Pi per avere più idee.
Leggi l’articolo completo: Come costruire uno Smart Switch Sensore di luce con Raspberry Pi e IFTTT
Fonte: Utilizzare