Progetto controllo remoto (Bluetooth) dispositivi ed illuminazione con Arduino

Questo progetto è nato principalmente per accendere e spegnere dispositivi a distanza tramite qualunque dispositivo che dispone di una connessione bluetooth senza interagire direttamente con gli interrutturi dei dispositivi, ma può diventare qualcosa di più grande ed ampio se viene implementato nell’ambito della domotica. Così facendo si potrà restare tranquillamente seduti sul divano mentre si guarda la tv e poter spegnere una luce che è stata dimenticata accesa. Oppure può essere utilizzato per risparmiare sulla spesa della corrente elettrica. Infatti basta pensare all’angolo televisione per rendersi conto di quanti led luminosi ci siano accesi e talmente è la luce emessa che per passare dalla stanza non c’è nemmeno bisogno di accendere la luce.

Dopo che ho presentato la versione gestibile tramite Web con l’ausilio di un Raspberry Pi e la versione con Arduino comandato da un Telecomando IR, non potevo non presentare la versione Bluetooth.
Alla base di tutto questo ci sono gli stessi motivi che mi hanno spinto a realizzare questo progetto, come quello di prima, cioè il bisogno di non di non dovere attaccare e staccare fisicamente i dispositivi dalla presa di corrente ogni volta che ne ho bisogno e per non lasciare dei fili volanti dalla presa della scrivania e poter accendere e spegnere delle luci ed elettrodomestici a distanza utilizzando qualunque dispositivo che dispone di una connessione bluetooth.
Rispetto all'utilizzo di un telecomando IR, in questo modo è possibile aumentare il raggio di azione. Infatti, il telecomando IR deve essere puntato verso il sensore mentre con l’ausilio del bluetooth, ciò non è necessario.
Nulla vieta di implementare questo progetto insieme con quelli indicati in precedenza. Fondendo i diversi progetti si contribuirebbe ad estendere le capacità del proprio (piccolo) sistema domotico. Questo perchè oltre a poter attivare e disattivare dei dispositivi da fuori casa, quando si è in casa si può scegliere se tenere con se un telecomando o un dispositivo che possegga una connessione bluetooth (può essere uno smartphone, un tablet, un computer...) tramite il quale comandare i dispositivi collegati al sistema.

Come la versione con Telecomando IR, anche questa idea l'ho sviluppata e testata con l'ormai famosa piattaforma di sviluppo e prototipazione Arduino. E' un progetto davvero molto semplice, più versatile di quello presentato in precedenza e può essere creato da chiunque ne abbia bisogno e abbia un minimo di competenza, ma anche da coloro che ne hanno bisogno ma non hanno molta esperienza, dato che tramite questo Blog è possibile accrescere il proprio sapere e ricevere l'aiuto necessario per realizzare qualunque cosa (se ci si impegna). a questo proposito, vi segnalo che nel Forum c'è un pronto Feedback praticamente per ogni domanda. approfittatene!

Ecco un elenco con indicato il necessario per realizzare questo progetto:

  • Arduino (io ho utilizzato la board Arduino UNO, ma può essere utilizzata qualunque versione di Arduino) ;
  • Modulo Bluetooth HC-05
  • Board 8 relè;
  • Cavetteria varia;
  • Se si vuole, anche se non è strettamente necessario, si può costruire la mia shield per Arduino UNO tramite la quale è possibile effettuare i collegamenti della board dei relè ed il modulo bluetotth ad Arduino in maniera semplice e veloce senza utilizzare fili volanti. File Fidocad e PCB in allegato.

L’HC-05 è un modulo di ricezione/trasmissione Bluetooth a basso costo.
I contatti del modulo non sono facilmente saldabili in quanto il loro passo è di 1.9 mm, perciò per poterlo utilizzare con una breadboard o semplicemnete per semplificare la creazione del circuito, bisogna utilizzare un adattatore che, appunto, converte ed allinea i pin necessari al collegamento tramite UART da 1.9mm a 2.54mm.
Ecco le caratteristiche principali di questo modulo Bluetooth a basso costo:

  • Alimentazione: +3.3 VDC 50 mA (Tramite l’adattatore, del quale ho parlato in precedenza, è possibile alimentarlo direttamente a 5V)
  • Frequenza di funzionamento: 2.4GHz ISM band
  • Misura: 26.9 mm x 13 mm x 2.2 mm.
  • Basato sul CSR Bluetooth chip BC417143
  • Bluetooth specification v2.0 + EDR
  • Baudrate supportati 2400 – 1382400.
  • Modulazione: GFSK(Gaussian Frequency Shift Keying)
  • Emission power: ≤4dBm, Class 2
  • Sensitivity: ≤-84dBm at 0.1% BER
  • Velocità: Asincrona: 2.1Mbps(Max) / 160 kbps, Sincrona: 1Mbps/1Mbps
  • Sicurezza: Autenticazione e criptazione
  • Temperatura di funzionamento: -20°C ~ +75 °C

Per quello che riguarda la board dei relè voglio ricordare che è possibile utilizzarne una con più o con meno relè.
Per lo scopo, quella da 8 relè che già posseggo è ottima. Però, in base al numero di relè che si vorranno utilizzare, bisogna considerare il tipo di alimentazione e la corrente necessaria per pilotare il circuito.

Per collegare il Modulo Bluetooth SH-05 ad arduino bisogna seguire il seguente schema:

La shield per Arduino UNO che ho proposto è già predisposta per effettuare il collegamento con una board di 8 relè ma nel caso in cui non si voglia utilizzare la shield è possibile eseguire direttamente i collegamenti nel seguente modo:

PIN 2 DI ARDUINO - PIN 1 INPUT SCHEDA RELE
PIN 3 DI ARDUINO - PIN 2 INPUT SCHEDA RELE'
PIN 4 DI ARDUINO - PIN 3 INPUT SCHEDA RELE'
PIN 5 DI ARDUINO - PIN 4 INPUT SCHEDA RELE'
PIN 6 DI ARDUINO - PIN 5 INPUT SCHEDA RELE'
PIN 7 DI ARDUINO - PIN 6 INPUT SCHEDA RELE'
PIN 8 DI ARDUINO - PIN 7 INPUT SCHEDA RELE'
PIN 9 DI ARDUINO - PIN 8 INPUT SCHEDA RELE'
PIN 5V DI ARDUINO - PIN VCC SCHEDA RELE'
PIN GND DI ARDUINO - PIN GND SCHEDA RELE'

E’ evidente che i componenti necessari allo scopo sono pochi e facilmente collegabili tra di loro, perciò dovrebbe risultare abbastanza semplice realizzare questo progetto.

Bene, dopo aver parlato della parte Hardware, vediamo, ora, della parte Software.
Per prima cosa bisogna installare un software che permette di comunicare con il nostro Arduino tramite Bluetooth.
Nel mio caso, per l’esperimento ho voluto utilizzare il mio smartphone con sistema Android.
Perciò, per prima cosa mi sono munito di un programma adatto allo scopo.
Giusto mentre stavo realizzando l’applicazione per Android, ho trovato sul Play Store di Google un programma chiamato Bluetooth Control Device, che permette di connettersi ad Arduino in modo semplice e veloce per gestire i propri carichi.
Una interessante funzione di questa applicazione è la possibilità di inserire un Timer che stabilisce quanto tempo il dispositivo selezionato debba rimanere acceso.
Ecco uno Screenshot del programma:


Perciò, ho risparmiato un po' di tempo e mi sono messo a scrivere lo sketch per Arduino.
Quì di seguito il codice commentato, che dobbiamo caricare su Arduino:

/*
2013-11-19
Applicazione realizzata da Ivan Scordato, tutto il materiale 
disponibile sul sito EMC ELETTRONICA 
https://it.emcelettronica.com/user/18420
Contatti: [email protected]
*/
#include  // includo la libreria per la comunicazione seriale

SoftwareSerial mySerial(10, 11); // imposto i pin per la comunicazione seriale
// Collegare i pin nel seguente modo: RX=>11 TX=>10

void setup()
{
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);

   mySerial.begin(9600); // setto la comunicazione
   Serial.println("Ivan Scordato Creation");
   delay(1000);
}


void loop()
{
   while (mySerial.available())
   {
       char dato= mySerial.read(); // "dato" è il valore che viene ricevuto dalla seriale
       switch(dato)
       {
         case 'A': // Se ricevo la lettera A,
         {
  digitalWrite(2, HIGH); // eccito il relè collegato al pin2
            mySerial.println("Relè 1 ON");
           break;
         }
         case 'a': // Se ricevo la lettera a
         {
  digitalWrite(2, LOW); // Spenfo il relè
           mySerial.println("Relè 1 OFF");
           break;
         }    
                   // E così anche di seguito...
                  case 'B':
         {
  digitalWrite(3, HIGH);
            mySerial.println("Relè 2 ON");
           break;
         }
         case 'b':
         {
  digitalWrite(3, LOW);
           mySerial.println("Relè 2 OFF");
           break;
         }    


         case 'C':
         {
  digitalWrite(4, HIGH);
            mySerial.println("Relè 3 ON");
           break;
         }
         case 'c':
         {
  digitalWrite(4, LOW);
           mySerial.println("Relè 3 OFF");
           break;
         }    
                  case 'D':
         {
  digitalWrite(5, HIGH);
            mySerial.println("Relè 4 ON");
           break;
         }
         case 'd':
         {
  digitalWrite(5, LOW);
           mySerial.println("Relè 4 OFF");
           break;
         }    
                  case 'E':
         {
  digitalWrite(6, HIGH);
            mySerial.println("Relè 5 ON");
           break;
         }
         case 'e':
         {
  digitalWrite(6, LOW);
           mySerial.println("Relè 5 OFF");
           break;
         }    
                  case 'F':
         {
  digitalWrite(7, HIGH);
            mySerial.println("Relè 6 ON");
           break;
         }
         case 'f':
         {
  digitalWrite(7, LOW);
           mySerial.println("Relè 6 OFF");
           break;
         }    
                  case 'G':
         {
  digitalWrite(8, HIGH);
            mySerial.println("Relè 7 ON");
           break;
         }
         case 'g':
         {
  digitalWrite(8, LOW);
           mySerial.println("Relè 7 OFF");
           break;
         }    
                  case 'H':
         {
  digitalWrite(9, HIGH);
            mySerial.println("Relè 8 ON");
           break;
         }
         case 'h':
         {
  digitalWrite(9, LOW);
           mySerial.println("Relè 8 OFF");
           break;
         }    
       }       
   } 
}
// BUONA SPERIMENTAZIONE!

Come avete potuto vedere anche questa versione del progetto è molto semplice da realizzare, ma allo stesso tempo molto utile ed ingegnosa; d'altronde le cose semplici sono le migliori.
Anche quì, un accortezza da prendere è quella di inserire il circuito in un contenitore isolato in quanto i collegamenti tra i relè e i propri dispositivi da collegare al sistema sono stati effettuati con la rete elettrica e quindi collegati a 220 V. Spero che questo progetto possa essere utile a qualcuno.
In allegato una cartella compressa nella quale è presente tutto il materiale necessario per creare questo dispositivo.


Cosa ne pensate?
Pensate che questo progetto possa essere migliorato?
Se si, Come?
Quale potrebbe essere un suo ulteriore utilizzo?

 

Sono a disposizione nei commenti per ogni approfondimento.

Allegato

Controllo dispositivi Bluetooth Arduino

Scarica subito una copia gratis
Tags:

60 Commenti

  1. Avatar photo Antonello.90 18 Dicembre 2013
  2. Avatar photo Ivan Scordato 18 Dicembre 2013
    • Avatar photo Luca Grigatti 14 Novembre 2021
  3. Avatar photo Tiziano.Pigliacelli 18 Dicembre 2013
  4. Avatar photo Antonello.90 18 Dicembre 2013
  5. Avatar photo Ivan Scordato 18 Dicembre 2013
  6. Avatar photo gioam.lorenzini 18 Dicembre 2013
  7. Avatar photo gioam.lorenzini 18 Dicembre 2013
  8. Avatar photo Ivan Scordato 18 Dicembre 2013
  9. Avatar photo Giorgio B. 19 Dicembre 2013
  10. Avatar photo Piero Boccadoro 19 Dicembre 2013
  11. Avatar photo gioam.lorenzini 19 Dicembre 2013
  12. Avatar photo Antonello.90 19 Dicembre 2013
  13. Avatar photo Piero Boccadoro 20 Dicembre 2013
  14. Avatar photo Antonello.90 20 Dicembre 2013
  15. Avatar photo adrirobot 29 Dicembre 2013
  16. Avatar photo Ivan Scordato 29 Dicembre 2013
  17. Avatar photo adrirobot 31 Dicembre 2013
  18. Avatar photo Ivan Scordato 3 Gennaio 2014
  19. Avatar photo scunucchiuz 30 Gennaio 2014
  20. Avatar photo Piero Boccadoro 1 Febbraio 2014
  21. Avatar photo Ivan Scordato 1 Febbraio 2014
  22. Avatar photo Gianfranco.Pantaleo 9 Febbraio 2014
  23. Avatar photo Ivan Scordato 10 Febbraio 2014
  24. Avatar photo alex272 10 Febbraio 2014
  25. Avatar photo Emanuele 10 Febbraio 2014
  26. Avatar photo alex272 10 Febbraio 2014
  27. Avatar photo Ivan Scordato 10 Febbraio 2014
  28. Avatar photo Andrea.Cavallero 17 Marzo 2014
  29. Avatar photo salvatore.castorina 1 10 Giugno 2014
  30. Avatar photo Ivan Scordato 23 Giugno 2014
  31. Avatar photo mauroalfieri 27 Ottobre 2014
    • Avatar photo IvanScordato 27 Ottobre 2014
  32. Avatar photo Virgilio.Giannini 9 Novembre 2014
  33. Avatar photo Erik Fabbri 26 Marzo 2015
  34. Avatar photo stefal639 22 Aprile 2015
  35. Avatar photo stefal639 22 Aprile 2015
  36. Avatar photo stefal639 22 Aprile 2015
    • Avatar photo Emanuele 23 Aprile 2015
  37. Avatar photo diegooos_ 5 Maggio 2015
    • Avatar photo IvanScordato 21 Agosto 2015
  38. Avatar photo raffaele david 23 Luglio 2015
  39. Avatar photo Diego092 19 Agosto 2015
  40. Avatar photo Linux 26 Agosto 2015
  41. Avatar photo Sergio Tamburrini 4 Dicembre 2015
    • Avatar photo Nuccio Pepi 17 Febbraio 2016
      • Avatar photo IvanScordato 17 Febbraio 2016
  42. Avatar photo Nuccio Pepi 18 Febbraio 2016
  43. Avatar photo diman64 25 Novembre 2016
  44. Avatar photo Andrea Rizzato 3 Febbraio 2017
  45. Avatar photo Mandracam Calabrone 20 Febbraio 2017
  46. Avatar photo AleDi2 5 Marzo 2017
    • Avatar photo IvanScordato 5 Marzo 2017
      • Avatar photo AleDi2 5 Marzo 2017
      • Avatar photo Luca Bretta 25 Aprile 2017
  47. Avatar photo Bruno Leoni 23 Marzo 2018
  48. Avatar photo Filippo Invigorito 25 Settembre 2020

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend