Ultimamente mi sono concentrato sulla domotica e volevo simulare il comportamento di Alexa con luci smart su un Raspberry vero e proprio!
Andiamo subito al sodo:
Strumenti necessari:
- Raspberry Pi
- Scheda di memoria SD (per installare il sistema operativo)
- Dispositivi connessi da controllare come lampadine e se volete termostati, sensori, ecc...
- Relè per controllare i dispositivi connessi: possono essere necessari per interfacciare i dispositivi connessi con il Raspberry Pi.
- Cavi e adattatori
Importante verificare la compatibilità dei dispositivi con il Raspberry Pi!

Rendere una lampadina smart?
Per cominciare bisogna collegare bene i terminali del relè ai pin di uscita del Raspberry Pi e i terminali della lampadina al relè, mi raccomando rispettando la polarità dei terminali e di utilizzando i cavi adatti.
Successivamente installate il pacchetto "RPi.GPIO" sul Raspberry, molto utile per utilizzare i pin di uscita del Raspberry Pi per controllare il relè.
Il prossimo passo sarà quello di scrivere un codice in Python usando la libreria RPi.GPIO per controllare un relè e accendere/spegnere una lampadina:
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
relay_pin = 18
GPIO.setup(relay_pin, GPIO.OUT)
def turn_on_light():
GPIO.output(relay_pin, GPIO.HIGH)
print("Lampadina accesa")
def turn_off_light():
GPIO.output(relay_pin, GPIO.LOW)
print("Lampadina spenta")
turn_on_light()
time.sleep(1)
turn_off_light()
GPIO.cleanup()
Ovviamente se avete manualità potete modificare il codice e aggiungere un infinità di funzioni questo è solo un esempio!
Vorrei illustrare anche come impostare i COMANDI VOCALI, bene o male quello che fa Alexa!
In questo caso io ho utilizzato Google Speech Recognition ma ne esistono anche altri come PocketSphinx.
Ecco il codice in Python:
import RPi.GPIO as GPIO
import speech_recognition as sr
GPIO.setmode(GPIO.BCM)
relay_pin = 18
GPIO.setup(relay_pin, GPIO.OUT)
r = sr.Recognizer()
while True:
with sr.Microphone() as source:
print("Ascolto...")
audio = r.listen(source)
command = r.recognize_google(audio).lower()
print("Hai detto: " + command)
if "accendi" in command:
turn_on_light()
elif "spegni" in command:
turn_off_light()
def turn_on_light():
GPIO.output(relay_pin, GPIO.HIGH)
print("Lampadina accesa")
def turn_off_light():
GPIO.output(relay_pin, GPIO.LOW)
print("Lampadina spenta")
Il codice utilizza un ciclo while per ascoltare continuamente i comandi vocali e controllare se sono "accendi" o "spegni".
Importante verificare sempre la connessione del relè e delle lampadine prima di eseguire il codice!
In seguito potete collegare il vostro script ad un interfaccia per controllare la lampadina!
Io ho preferito crearla con la libreria Tkinter:
import RPi.GPIO as GPIO
from tkinter import *
GPIO.setmode(GPIO.BCM)
relay_pin = 18
GPIO.setup(relay_pin, GPIO.OUT)
def turn_on_light():
GPIO.output(relay_pin, GPIO.HIGH)
print("Lampadina accesa")
def turn_off_light():
GPIO.output(relay_pin, GPIO.LOW)
print("Lampadina spenta")
root = Tk()
root.title("Interfaccia per la lampadina")
on_button = Button(root, text="Accendi", command=turn_on_light)
off_button = Button(root, text="Spegni", command=turn_off_light)
on_button.pack()
off_button.pack()
root.mainloop()
In questo esempio si vanno a creare due pulsanti per accendere/spegnere la lampadina!
In conclusione molti strumenti che possono essere considerati "semplici" come appunto lampadine si possono trasformare in veri e propri gadget "smart"!
Interessante il fatto che si potrebbero integrare anche sensori di temperatura, umidità, movimento, porte e finestre, pulsanti, prese intelligenti e così via.
La parte 2 con il controllo del termostato la trovate qui!
Spero di esservi stato utile, se avete domande non esitate a chiedere!
Consumi:
Consumo Raspberry Pi con lampada a LED: 3 W + 6 W = 9W
Consumo di una lampada a incandescenza: 60W
