Uncategorized

domotica a soli € 100.22

Con un epoca dove ormai sta diventado tutto digitale, i sistemi domotici si stanno insinuando nelle nostre case .

Oggi vedremo come costruire domotica  con un costo di soli 100.22 euro

 Installiamo il sistema operativi nel nostro Raspberry Pi:

nel nostro caso utilizziamo Raspbian e possiamo scricarlo da quì.

a.  Una volta scaricato dovrete preparare la SD con win32diskimager per windows (selezionando la iso di raspbian, la sd di destinazione e cliccando su write) o con il comando dd per linux.

 Una volta inserita la sd nel Raspberry e connesso l’alimentatore si accenderà il raspberry

e collegatolo ad uno schermo e una tastiera o tramite terminale ssh (se abbiamo un router e avremo collegato il raspberry via ethernet) ci connetteremo ed installeremo i pacchetti di cui avremo bisogno.

a.  Collegarsi via ssh al raspberry: trovare l’indirizzo ip del raspberry collegato al router (io utilizzo advanced ip scanner per trovare gli ip) e tramite putty collegarsi a quell’ip utilizzando la porta 22.

Utente: pi

Password: raspberry

 Primo Avvio – Configurazioni Opzionali:

a.  Cambio password di sistema

i.  sudo passwd pi (poi vi chiederà due volte la nuova password)

b.  Configurazioni Varie:

i.  sudo raspi-config (qui potrete cambiare l’hostname, la porta per il collegamento ssh, lingua del sistema e tanto altro)

c.  Connettere il Wi-Fi tramite GUI sul programma di gestione di rete (Manage Networks)

Installiamo i pacchetti di cui abbiamo bisogno:

a.  Aggiorniamo il S.O.

sudo apt-get update

sudo apt-get upgrade

b.  Installiamo i pacchetti di cui abbiamo bisogno (il codice è scritto in python quindi avete bisogno delle librerie python per le GPIO e potete trovare una guida semplice qui Step 4, ciò non toglie che potete riscriverlo nel linguaggio che preferite):

sudo apt-get intall lighttpd motion python

Inoltre per il trasferimento dei file di codice che scriverete vi conviene utilizzare un server ftp qui potete trovare una guida.

 Breve introduzione alle GPIO del Raspberry e colleghiamo i led per la nostra prova:


Image credits: Jeena.net

Come potete vedere dobbiamo controllare il polo positivo + in una delle GPIO disponibili del Raspberry. Nell’esempio in figura potremmo controllare l’accensione e lo spegnimento del led attraverso il pin 18. Nel nostro caso per controllare 3 luci e nell’esempio del codice che vedremmo tra poco verranno utilizzate le porte 17, 18 e 21. Per semplificare i collegamenti vi conviene collegare il tutto su una millefori.


Image credits: MakerMark

Una volta effettuati i collegamenti led resistenza e pin Raspberry ci occupiamo di preparare i file che gestiranno l’accensione e lo spegnimento dei led. Ecco il file per l’accensione:

import os
import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)#Imposto il tipo di pin a millefori

GPIO.setup(XX,GPIO.OUT)#imposto il pin XX in modalità OUTPUT

GPIO.output(XX,True)#imposto come acceso l’output sul pin XX

Dove XX deve essere sostituito dalla numero della GPIO utilizzata mentre per lo spegnimento ecco il codice:

import os

import RPi.GPIO as GPIO

GPIO.setwarnings(False)#Non genero eccezioni per modifica di pin

GPIO.setmode(GPIO.BCM)

GPIO.setup(XX,GPIO.IN)#Reimposto lo stato iniziale del pin

Ho impostato il codice in modo da avere una certa organizzazione nello specifico avrete 2 file uno per l’accensione e uno per lo spegnimento di ogni luce e divisioni per cartelle ovvero potete creare una cartella con i file per ogni stanza che vorrete controllare.

 A questo punto passiamo a gestire la videosorveglianza, sicuramente punto più semplice:

Una volta installato motion potrete fare tutte le configurazioni che volete come ad esempio inviare le immagini direttamente via mail o caricarle su un server ftp e chi più ne ha più ne metta, per la configurazione iniziale vi rimando a questa guida anche se una volta installato il pacchetto è pronto all’uso.


Image credits: MakerMark

In questa immagine potete vedere la webcam collegata all’hub usb, il raspberry alimentato (tramite il cavo bianco su una porta da 2A dell’hub usb e infine l’hub usb collegato ad una delle due porte usb del Raspberry così la webcam sarà alimentata direttamente dall’hub e il raspberry ugualmente alimentato da una porta del hub evitando così sbalzi di corrente dovuti all’assorbimento diretto delle periferiche)

  Configurazioni Finali:

Una volta effettuato tutto ciò detto sopra passiamo alla configurazione della gestione online:

Tutti i file python, html o php verranno inseriti in /var/www così da essere reperibili tramite portale internet. Nello specifico avremo dei bottoni nella pagina html per avviare i file python precedentemente scritti. Nello snippet di codice potete vedere all’interno del tag head i comandi php che faranno eseguire i file python mentre nella parte body i bottoni collegati a ciò che è stato dichiarato in php. Come si può notare dal codice php ho gerarchizzato i file python per stanza mentre vi è un terzo bottone per la visione delle webcam, di seguito trovereto lo snippet di codice.

Gestione delle luci:

<html>
 <head>

 <?php
  if (isset($_POST['CameraON']))
  {
  exec("sudo python3 Camera/on.py");
  }
  if (isset($_POST['CameraOFF']))
  {
  exec("sudo python3 Camera/off.py");
  }
 ?>

 </head>
<body>

 <input type="button" value="WebCam" onclick="location.href='webcam.html';">

  <form method="post">
  <table>
  <tbody>
  <tr>

   &lt<button name="CameraON">Accendi Luce Camera </button></td>

   &lt<button name="CameraOFF">Spegni Luce Camera </button></td>

  </tr>
  </tbody>
  </table>
  </form>

</body>

</html>

WebCam:

In questo caso basta inserire l’indirizzo ip del raspberry o altrimenti inserire l’hostname per poter visionare lo streaming webcam altrimenti si può collegare con VLC al flusso di rete utilizzando l’ipdelraspberry:8081. Vi è poi un bottone per tornare alla home di gestione delle luci.

<html>
<body>

 <img class="decoded" src="http://IPDELRASPBERRY:8081/" ></img>

 <input type="button" value="Premi per Home" onclick="location.href='index.php';">

</body>
</html>

Image credits: MakerMark

So che è spartana come grafica in quanto non ho ancora avuto abbastanza tempo per gestirla ma come potete immaginare si può lavorare per rendere la grafica responsive e gestire il tutto anche da smartphone (anche se è già possibile pur avendo la grafica scarna come da pc).

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *