
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

Ciao Ivan,
davvero un bel progetto, prima o poi dovrò decidermi a fare qualcosa del genere, se non in casa, almeno in camera mia! 😀 Dunque, mi pare di capire che l’app dello smartphone comanda Arduino, che a sua volta comanda i relè collegati a vari dispositivi. Quindi c’è la possibilità (ovviamente) di accendere e spegnere o temporizzare questi dispositivi. Però di questi sistemi non mi è chiara una cosa: il dispositivo centrale (in questo caso Arduino) rimane sempre acceso? Sta sempre collegato all’alimentazione, o si può decidere di spegnere anche Arduino, tipo con un interruttore generale? Se sì, per riaccenderlo si dovrebbe necessariamente fare in modo manuale, giusto? Scusa la domanda banale, ma ogni volta che leggo di questi sistemi mi viene questo dubbio!
Ancora complimenti,
Anto
Ciao Antonio, grazie per i complimenti 🙂
Si, ti coniglio di provare proprio qualcosa del genere, sicuramente otterrai grandi soddisfazioni…
L’app installata sullo smartphone serve solo per inviare, in questo caso, delle lettere ad Arduino tramite bluetooth che appena li riceve, decide cosa fare (in base all’azione che abbiamo programmato). Infatti, nel codice che presentato è evidente:
” case ‘A’: // Se ricevo la lettera A,
{
digitalWrite(2, HIGH); // eccito il relè collegato al pin2
mySerial.println(“Relè 1 ON”);
break;
}
”
Riguardo la tua domanda: ” il dispositivo centrale (in questo caso Arduino) rimane sempre acceso?”
Dipende… 😀
Se vuoi avere la possibilità di utilizzare questo sistema in ogni momento la risposta è SI.
Mentre, se non sei interessato ad averlo sempre in funzione (ad esempio quando esci da casa) la risposta è NO.
Come hai detto tu stesso, basterebbe inserire un pulsante tra l’alimentatore e la presa elettrica.
In questo caso per accenderlo e spegnerlo devi farlo in maniera manuale.
Oppure se vuoi che l’accensione sia automatizzata, devi necessariamente utilizzare un relè ed un microcontrollore (oltre al RTC), perciò non credo che ti convenga optare per questa soluzione.
Spero di aver colmato il tuo dubbio; nel caso in cui dovessi averne degli altri, non esitare a chiedere 😉 (Puoi utilizzare anche il forum)
A presto,
Ivan
Salve, avrei l’esigenza di riconoscere un particolare device BT: se si collega quel device, allora cambia stato a relè, questo dispositivo non è più collegato, dopo x tempo, diseccita relè.
È fattibile questo progetto?
Grazie in anticipo per l’attenzione e la disponibilità.
L.G.
Bravo Ivan, aspettavo con ansia il tuo nuovo articolo 🙂
Hai ragione, a volte nella semplicità si trova il vero genio.
Sarebbe davvero utile poter avere un comando per abilitare o disabilitare la scheda come richiesto da Antonello, ma se deve essere utilizzato un microcontrollore, a questo punto penso che esistano altri progetti già presenti che si possono utilizzare. Io a casa ho delle prese radiocomandate comprate già pronte… potrebbero essere una soluzione 😉
La cosa che mi piace di più di questo progetto è che se lo volessi utilizzare per i miei scopi, è altamente personalizzabile: immagino già di poter accendere a sequenza temporizzata più dispositivi. Ad esempio con un comando unico potrei vedere accendersi prima l’albero di Natale, poi il presepe dopo un paio di secondi, e poi magari le luci esterne…
L’hai pensato per delle tue necessità? Hai già avuto modo di provarlo e utilizzarlo? Forse l’unica cosa che manca è una foto della tua creatura.
Ciao Ivan,
grazie della spiegazione. In effetti, come ha detto Tiziano, se deve essere usato un altro microcontrollore il gioco non vale la candela, però si potrebbe (forse) usare un sistema per spegnerlo da remoto, e poi operare l’accensione manualmente. Sto pensando a una mia possibile esigenza: spesso mi capita di navigare in internet dal tablet, mentre me ne sto sdraiato a letto, quindi ho pensato che, senza doversi recare dove si trova la scheda, si potrebbe dedicare uno dei relè allo spegnimento della scheda Arduino, in modo da poter spegnere da remoto il tutto per la notte; la mattina dopo, invece, si può riaccendere tutto il sistema con un normale interruttore. Può essere fattibile o sto sognando? 😀
Buon pomeriggio a tutti,
Antonello
Grazie Tiziano 🙂
” Io a casa ho delle prese radiocomandate comprate già pronte… potrebbero essere una soluzione ;)”
Si, ho capito di cosa parli, ma… non sarebbe DIY 😀
Inoltre, perchè pensi che dovrebbe esserci la necessità di accendere e spegnere il sistema che ho presentato con uno simile che non è nenache un po versatile?
Mi spiego meglio… perchè pensi che sia necessariio spegnerlo? La vita sarebbe migliore se questo dispositivo restasse perennemente acceso 😀
“L’hai pensato per delle tue necessità?”
Si, inizialmente stavo utilizzando la versione IR con il telecomando, ma doppo aver sperimentato con la connessione bluetooth, ho voluto sostituirlo, anche perchè così facendo posso comandare i dispositivi da un altra stanza, visto che il raggio d’azione rispetto al telecomando è maggiore.
Come ho anche scritto nell’articolo, ciò che principalmente mi ha spinto a realizzare questo progetto è “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…”.
Potrebbe sembrare banale, ma invece devi sapere che sulla mia scrivania non mancano dispositivi che funzionano con la corrente di casa, e quindi ho voluto “nascondere” i fili.
“Hai già avuto modo di provarlo e utilizzarlo?”
Si, come ho detto prima
Non ho caricato la foto della realizzazione in quanto non credevo che potesse essere utile a qualcuno, ma visto che ci tieni, ecco una foto che ho scattato durante i test (proprio mentre testavo la comunicazione bluetooth).
Al momento il mio sistema che ho creato è fuori uso 😀
Questo perchè ho voluto prendere in prestito il modulo bluetooth per testare la mia ultima creazione, e dopo averla testato, mi sono subito accorto di aver sbagliato a collegare un filo. Questo perchè ho fuso un Arduino, il modulo bluetooth, i led, le resitenze(carbonizzate!).
Morale della favola: Sbagliando si impara, adesso aspetto due moduli bluetooth 🙂
A presto,
Ivan
Bravo Ivan, bel articolo
si potrebbe dedicare uno dei relè allo spegnimento della scheda Arduino, in modo da poter spegnere da remoto il tutto per la notte; la mattina dopo, invece, si può riaccendere tutto il sistema con un normale interruttore. Può essere fattibile o sto sognando?
Secondo me è fattibile, collegando il cavo dell’alimentatore ad un relè, ed inoltre collegandolo ad un pulsante, o interruttore da premere e rilasciare subito, che praticamente fa un ponte sul relè, quindi l’alimentazione arriva all’arduino, che chiude il relè, che inizia a condurre e quindi fino a quando non gli diamo il comando di spegnere l’arduino, questo non si spegne anche se l’interuttore è stato rilasciato.
Qui ho caricato uno schema per chiarirvi le idee http://it.emcelettronica.com/files/u28085/Immagine.png
lo sketch è da modificare così usando l’ultimo relè:
aggiungere nel setup:
digitalWrite (9, HIGH);
così si accende il relè che terrà acceso l’Arduino fino al suo spegnimento via bluetooth.
Ho tagliato la corrente prima dell’alimentatore così non si consuma niente, ma state attenti, ci sono 230v
Consiglio sul modulo bluetooth
Ivan ha scritto che per il bluetooth serve un adattatore:
”
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.
”
ma vendono un modulo bluetooth, che ho acquistato anche io, già saldato e con i pin che servono in uscita.
Vi do il link dove lo ho comprato http://www.ebay.com/itm/Wireless-Serial-4-Pin-Bluetooth-RF-Transceiver-Module-HC-06-RS232-With-backplane-/200924726178?
Però viene dalla cina e ci mette circa un mese ad arrivare!!!
Potete creare delle app per android personalizzate su questo sito: http://beta.appinventor.mit.edu/#127213138 dove dovete registrarvi con un account google. è molto semplice creare app, utilizzando i blocchi.
Si, lo so che vendono dei moduli già saldati, l’ho anche scritto subito dopo 🙂
Si, conosco appinventor, ottimo!
potresti pensare anche ad un’attivazione col telecomando.
Se per esempio ci fosse un sensore ad infrarossi e tu avessi un semplice pulsante che aziona un led iR su una scheda a parte, potresti tranquillamente inviare il comando, alimentare soltanto il fototransisotr e una volta che questo riceve il segnale, far scattare un relè per attivare Arduino.
Però in effetti così è abbastanza macchinoso.
Da un lato risparmi l’alimentazione di Arduino dall’altro devi pensare al circuito per fare l’attivazione, costruire il telecomando e così via dicendo.
La domanda è: ti conviene?
per un sistema così semplice val la pena di metter su qualcosa di così complicato? Anche se in realtà non è complicato perché sarebbe semplice, concettualmente non c’è nulla di difficile da fare.
Però è lungo e forse un po’ macchinoso.
gioam.lorenzini…
Cosa abbiamo detto sul quoting????
Per questa volta, ti sono stati solo revocati i punti (del commento!)!
Mi raccomando… 😉
Scusate. 😉
Esatto Gioam,
avevo immaginato uno schema simile, esattamente con quelle caratteristiche!
Sì, decisamente appena avrò un po’ di tempo libero dagli esami credo che mi dedicherò a un progetto come questo! Ho anche visto il sito per creare app: non credevo che ci fossero tool del genere, ma forse è perché non mi ero mai posto il problema, dato che il mio cellulare non è uno smartphone!
Un’altra domanda per Ivan: innanzi tutto gli elettrodomestici che collegherai alla relè board funzionano anche se Arduino è spento? Se sì, il sistema ha un modo per restituire lo stato di ciascun relè al momento dell’accensione di Arduino? Mi spiego meglio: ammettiamo che io mi trovi nella stanza dove è Arduino, e che l’apparecchio che voglio controllare sia in un’altra e sia acceso. Al momento in cui accendo Arduino ho possibilità di conoscere lo stato del relè corrispondente a quell’apparecchio?
Grazie e buona serata,
Antonello
Arduino non può essere spento del tutto.
Il sistema deve monitorare necessariamente una condizione di risveglio perché altrimenti non si accenderebbe mai.
È come con il computer oppure con i telefonini: almeno il tasto di accensione deve sempre essere alimentato.
Che poi il consumo sia basso e quindi non incida particolarmente sulla durata della batteria è un conto ma per poter accendere qualunque dispositivo almeno il tasto ON/OFF deve essere polarizzato.
Questo significa che la scelta può essere se mantenere l’intero sistema acceso oppure prevedere che il pulsante effettivamente accenda il sistema.
Io sarei per la seconda perché effettivamente le considerazioni che ho letto rispetto al consumo di potenza non sono mica poi così sbagliate.
C’era qualcuno che faceva una proposta su un telecomando… Non male ma serve?
La verità è che si potrebbe utilizzare, per l’appunto, l’idea della presa temporizzata anche in questo caso.
Io però non ho ben capito se voi volete semplicemente che il sistema non sia acceso continuativamente per consumare di meno oppure se state facendo riferimento qualche esigenza esplicita oppure entrambe le cose 🙂
Ciao Piero,
forse tutte e due le cose. Mi rendo conto che il mio ragionamento poteva risultare un po’ contorto, ma è stato determinato da tre considerazioni a cascata.
1) ci sono dei momenti in cui non mi serve avere apparecchi accesi o in stand by, come di notte: infatti spengo la ciabatta e pc, tv e quant’altro sono totalmente spenti. Volevo sapere se anche con Arduino è possibile fare una cosa del genere, per evitare inutili assorbimenti di energia, ancorché ridotti. E in particolare se si può fare da remoto, dedicando uno dei relè solo allo spegnimento di Arduino, in modo da non dovermi alzare. Poi, al mattino, quando mi serve di riaccenderlo, lo faccio con un normale pulsante.
2) SE Arduino si può spegnere è possibile far funzionare ugualmente gli apparecchi ad esso collegati, anche quando è spento? Così avrei la possibilità di scegliere se usare o no il controllo remoto.
3) in quest’ultimo caso, se voglio accendere Arduino DOPO aver acceso qualcuno degli altri apparecchi, Arduino è in grado di dirmi quali sono già accesi e quali no?
Spero di essermi spiegato meglio!
Buon pomeriggio,
Antonello
Ciao
Ho dato un’occhiata a questa tipologia di moduli, personalmente ho utilizzato per i miei progetti il modulo RN-42 della ROVING Networks acquisita recentemente dalla Microchip.
Nel mio ultimo progetto ho utilizzato uno di questi moduli come Master e uno come Slave, e volevo valutare la possibilità di sostituirlo appunto con uno di questi moduli, ma ho visto che il modello HC-05 nasce già programmato come master o slave e non è possibile riprogrammarlo.
Mentre il modello HC-06 permette la riprogrammazione, anche se con una procedura più complessa che quella con l’RN-42.
Perciò consiglio a chi dovesse inserire questa tipologia di moduli, di cui su ebay si trovano svariati venditori di sincerarsi bene il modello che viene preso, considerando che esistono oltre ai modelli HC-05 e HC-06 anche gli HC-03 e gli HC-07.
Per cui sincerarsi bene prima dell’acquisto che il modello che vi serve sia quello giusto.
Un saluto
Adriano
Ciao Adriano,
ne sei sicuro?
Tramite i comandi AT è possibile programmarlo e quindi decidere se utilizzarlo come master o slave, impostare il nome del device e se si vuole, impostare una password.
Purtroppo non sono arrivato a testare quello che dico in quanto non molti giorni fa ho letteralmente CARBONIZZATO una scheda Arduino, il mio unico modulo bluetooth ed altri componenti minori. Come ho fatto? ***** 😀
Comunque sia, ho ordinato più di un HC-06, così non resterò mai senza (forse…).
A presto,
Ivan
Ciao Ivan
Mi dispiace per la morte della scheda Arduino e del modulo Bluetooth, spero non abbiano sofferto 😀
Effettivamente a quanto avevo scritto nel mio precedente messaggio, sembra che HC-05 (il modello che hai utilizzato per le prove) siano quelli effettivamente riprogrammabili e che siano i modelli HC-06 a essere limitati.
-The HC-05 module can build a connection to other modules. E.g. a Robot being a master and connecting to slave bluetooth module. Or in slave mode to make a wireless bridge to a notebook.
-The HC-06 module only can be a slave. This makes it only useful for say connecting a notebook as a master to a robot with a slave module e.g. for a wireless serial bridge.
Come ho letto, per esempio, in questi link
http://mcuoneclipse.com/2013/06/19/using-the-hc-06-bluetooth-module/
http://wiki.pinguino.cc/index.php/SPP_Bluetooth_Modules
http://forum.arduino.cc/index.php?PHPSESSID=e64kia924ntg6jrnvg72ggtvn3&topic=104903.30
Ne convieni anche tu?
Un saluto
Adriano
Esatto 🙂
Ciao sapete se esiste una app per utilizzare questo progetto con I Phone?
grazie in anticipo
Ciao,
Sono sicuro che l’autore potrà sciogliere questo dubbio.
Nel frattempo, ti annuncio che temo di no.
Ciao, io non utilizzo prodotti Mac, perciò non so se esiste già un app pronta, ma dopo una ricerca ho scoperto che puoi creare tu stesso l’applicazione di cui necessiti per controllare Arduino.
Guarda Quì.
Saluti,
Ivan
Ciao Ivan!
Sono un appassionato di elettronica e anche da parte mia non posso che farti i migliori complimenti per questo interessantissimo progetto.
Volevo dirti che ho seguito passo passo il tuo articolo su come realizzare il tutto, adoperando ArduinoUno. Sono molto soddisfatto nel dirti che funziona alla grande!!
Unica cosa che non mi va è che quando apro il monitor seriale di Arduino non mi compare scritto nulla (né “Ivan Scordato Creation”, né le frasi di quando si accendono o spengono i relè) pur avendo caricato correttamente il codice su Arduino, facendo copia e incolla.
Ti ringrazio in anticipo per la lettura del il mio post.
Spero mi darai un consiglio su cosa fare.
Saluti e complimenti ancora!
Ciao, grazie per i complimenti, sempre graditi!
Guardando il codice mi sono accorto che c’è un riga incompleta, chissà perchè 🙂
La riga errata é:
#include // includo la libreria per la comunicazione seriale
Devi includere la libreria SoftwareSerial.h nel seguente modo:
#include <SoftwareSerial.h> // includo la libreria per la comunicazione seriale
Fammi sapere l’esito.
A presto,
Ivan
forse intendevi:
#include SoftwareSerial.h //includo la libreria per la comunicazione seriale
scusa se preciso ma altrimenti non si capisce bene …
Ciao
Quando si inseriscono i tag, in particolare l’apertura <
si deve inserire il codice html altrimenti viene interpretato come tag di apertura appunto e non come simbolo.
P.S. ho modificato io il commento sopra, ora OK 🙂
sembrava che si fosse dimenticato di scrivere il nome della libreria nella riga. E comunque anche colpa mia, mi ero dimenticato dei simboli di sintassi.
Perfetto grazie per la precisazione.
Se potresti cambiare il titolo del commento in “errata corrige” te ne sarei grato.
Saluti,
Ivan
Salve sono uno studente al 5° anno di telecomunicazioni e elettronica, ho visto il progetto e mi è piaciuto davvero molto, vorrei realizzarlo ma non trovo nè lo schema elettrico nè il datasheet per il montaggio fisico e il collegamento delle varie parti, vedo solamente lo schema di collegamento dell'HC-05.
Avrei bisogno di aiuto, vi ringrazio in anticipo per qualche indicazione fornitami.
cordiali saluti,
Andrea
ciao a tutti,mi chiamo Salvo ho 30 anni e sono un appassionato di elettronica da poco avvicinatomi ad arduino.
Ho realizzato questo progetto dopo aver atteso per molto tempo il modulo bluetooth, il mio dubbio è:
non c'è un modo o un app con dei pulsanti astabili? cioè se volessi collegare il rele di arduino in parallelo ai pulsanti di casa , arduino terrebbe sempre la bobina del relè eccitata no?
Grazie ancora COMPLIMENTI
Ciao, scusami se non ho risposto prima ma il commento mi era sfuggito…
Forse non ho capito bene la domanda, ma provo a risponderti:
Dopo aver collegato i relè in parallelo ai pulsanti, tramite i pulsanti potrai tranquillamente accendere le luci nel caso in cui siano spente, ma se vengono accese dal sistema, non potrai spegnerle dal pulsante.
Se vorresti effettuare questa modifica dovrai modificare il sistema, collegando i pulsanti ad arduino e riconoscendo quando essi vengono premuti.
Saluti,
Ivan
Ciao Ivan,
complimenti per l’articolo.
Secondo te è possibile utilizzare l’app che hai usato in questo articolo con questa shield:
http://bit.ly/1yFPder
Grazie in anticipo
Mauro
Ciao Mauro, grazie mille 🙂
Si, è possibile, è un app generica che semplicemente invia delle lettere tramite bluetooth.
Comunque sia, secondo me è una shield troppo limitatata.
Secondo me ti conviene acquistare separatamente una board relay (meglio con gli optoisolatori) ed un modulo bluetooth HC-05.
A presto,
Ivan
Salve sto utilizzando un modulo JY-MCU BT_BOARD V1.02 il modulo ha i livelli dei segnali a 3.3 v quindi per collegare l’uscita di arduino (tx della seriale) utilizzo un partitore resistivo.
Sono riuscito a modificare il nome associato al dispositivo e la password imposta. Dal Tablet riusco ad associare i due dispositivi (il led sul modulo da lampeggio diventa fisso) e tutto il testo che invio sulla seriale dove è collegato il modulo vengono correttamente trasmessi sul table (utilizzando chiaramente la connessione bluetooth) quello che non riesco è l’inverso !!! sul rx della seriale di arduino non ricevo quanto trasmesso dal tablet.
Non riesco a capire il motivo.
Grazie per l’attenzione.
Virgilio
Ciao, stavo seguendo il tuo posto, ho copiato il codice e lo riportato nel mio scketh visto che mi sto avvicinando al mondo di arduino e nn ci capisco niente di programmazione mi aiuti a capire i seguenti errori?
Arduino:1.6.1 (Windows 7), Scheda:”Arduino Uno”
AccensioniLuci.ino:10:62: error: #include expects “FILENAME” or
AccensioniLuci.ino:12:1: error: ‘SoftwareSerial’ does not name a type
AccensioniLuci.ino: In function ‘void setup()’:
AccensioniLuci.ino:26:4: error: ‘mySerial’ was not declared in this scope
AccensioniLuci.ino: In function ‘void loop()’:
AccensioniLuci.ino:34:11: error: ‘mySerial’ was not declared in this scope
Errore durante la compilazione
inoltre io volevo implementare lo schermo lcd per vedere i messaggi del tipo luce salotto accesa/spenta e così via per le altre lampadine… Puoi aiutarmi?
Allora ragazzi, l’ .ino corretto è questo, se potete includerlo direttamente sull’articolo sarebbe migliore, perchè io da neofita ci ho messo un po’ a capire che mancava qualcosa (la stringa per la comunicazione seriale):
/*
2013-11-19
Applicazione realizzata da Ivan Scordato, tutto il materiale
disponibile sul sito EMC ELETTRONICA
http://it.emcelettronica.com/user/18420
Contatti: [email protected]
*/
#include
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!
Una cosa mi domando, mettendo ad ogni comando di accensione o spegnimento di ogni singolo relè questo mySerial.println(“AZIONE”) non si usa in questo modo il modulo bluetooth per inviare il messaggio tramite seriale, cosa inutile dato che il programma che abbiamo su android non riceve le informazioni. Sarebbe molto più comodo sostituirlo con Serial.println(“AZIONE”) in modo da vederlo dal monitor seriale, oppure aggiungere uno schermino e fare in modo che compaia li sopra.
Ragazzi, scusate, ma nonostante ho introdotto il codice corretto nel post sopra, sulla stringa #include, l’elemento tra non appare.
si deve introdurre:
#include
niente, non lo mette, il sistema che aggiunge i commenti elimina alcune parti del codice.
Dovete aggiungere questo
#include (minore)SoftwareSerial.h(maggiore)
Dove (minore) e (maggiore) sono i rispettivi simboli che il forum non so perchè non gradisce.
Salve Stefal639,
i simboli maggiore e minore, essendo tag html devono essere inseriti in formato codice numerico, altrimenti vengono interpretati 😉
Comunque con i tuoi commenti hai reso comunque comprensibile la cosa. Grazie.
Salve, vorrei sapere dove posso trovare il file PCB per la shield che hai realizzato tu. Grazie mille 🙂
Ciao, sembra proprio che sia sparito l’allegato dell’articolo.. se Emanuele non riuscisse a risolvere contattami pure!
Allegato ora disponibile 🙂
Scusate sono alle prime armi… caricando il votro sketch ho questo errore..come mai?
Arduino:1.6.0 (Windows 8), Scheda:”Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)”
bluetooth_ard.ino:22:1: error: stray ‘\’ in program
bluetooth_ard.ino:22:1: error: stray ‘\’ in program
bluetooth_ard.ino:32:1: error: stray ‘\’ in program
bluetooth_ard.ino:32:1: error: missing terminating ‘ character
bluetooth_ard.ino:35:1: error: stray ‘\’ in program
bluetooth_ard.ino:35:1: error: stray ‘\’ in program
bluetooth_ard.ino:35:1: error: stray ‘\’ in program
bluetooth_ard.ino:38:1: error: stray ‘\’ in program
bluetooth_ard.ino:38:1: error: missing terminating ‘ character
bluetooth_ard.ino:41:1: error: stray ‘\’ in program
bluetooth_ard.ino:41:1: error: stray ‘\’ in program
bluetooth_ard.ino:41:1: error: stray ‘\’ in program
bluetooth_ard.ino:45:1: error: stray ‘\’ in program
bluetooth_ard.ino:45:1: error: missing terminating ‘ character
bluetooth_ard.ino:48:1: error: stray ‘\’ in program
bluetooth_ard.ino:48:1: error: stray ‘\’ in program
bluetooth_ard.ino:48:1: error: stray ‘\’ in program
bluetooth_ard.ino:51:1: error: stray ‘\’ in program
bluetooth_ard.ino:51:1: error: missing terminating ‘ character
bluetooth_ard.ino:54:1: error: stray ‘\’ in program
bluetooth_ard.ino:54:1: error: stray ‘\’ in program
bluetooth_ard.ino:54:1: error: stray ‘\’ in program
bluetooth_ard.ino:57:1: error: stray ‘\’ in program
bluetooth_ard.ino:57:1: error: missing terminating ‘ character
bluetooth_ard.ino:60:1: error: stray ‘\’ in program
bluetooth_ard.ino:60:1: error: stray ‘\’ in program
bluetooth_ard.ino:60:1: error: stray ‘\’ in program
bluetooth_ard.ino:63:1: error: stray ‘\’ in program
bluetooth_ard.ino:63:1: error: missing terminating ‘ character
bluetooth_ard.ino:66:1: error: stray ‘\’ in program
bluetooth_ard.ino:66:1: error: stray ‘\’ in program
bluetooth_ard.ino:66:1: error: stray ‘\’ in program
bluetooth_ard.ino:69:1: error: stray ‘\’ in program
bluetooth_ard.ino:69:1: error: missing terminating ‘ character
bluetooth_ard.ino:72:1: error: stray ‘\’ in program
bluetooth_ard.ino:72:1: error: stray ‘\’ in program
bluetooth_ard.ino:72:1: error: stray ‘\’ in program
bluetooth_ard.ino:75:1: error: stray ‘\’ in program
bluetooth_ard.ino:75:1: error: missing terminating ‘ character
bluetooth_ard.ino:78:1: error: stray ‘\’ in program
bluetooth_ard.ino:78:1: error: stray ‘\’ in program
bluetooth_ard.ino:78:1: error: stray ‘\’ in program
bluetooth_ard.ino:81:1: error: stray ‘\’ in program
bluetooth_ard.ino:81:1: error: missing terminating ‘ character
bluetooth_ard.ino:84:1: error: stray ‘\’ in program
bluetooth_ard.ino:84:1: error: stray ‘\’ in program
bluetooth_ard.ino:84:1: error: stray ‘\’ in program
bluetooth_ard.ino:87:1: error: stray ‘\’ in program
bluetooth_ard.ino:87:1: error: missing terminating ‘ character
bluetooth_ard.ino:90:1: error: stray ‘\’ in program
bluetooth_ard.ino:90:1: error: stray ‘\’ in program
bluetooth_ard.ino:90:1: error: stray ‘\’ in program
bluetooth_ard.ino:93:1: error: stray ‘\’ in program
bluetooth_ard.ino:93:1: error: missing terminating ‘ character
bluetooth_ard.ino:96:1: error: stray ‘\’ in program
bluetooth_ard.ino:96:1: error: stray ‘\’ in program
bluetooth_ard.ino:96:1: error: stray ‘\’ in program
bluetooth_ard.ino:99:1: error: stray ‘\’ in program
bluetooth_ard.ino:99:1: error: missing terminating ‘ character
bluetooth_ard.ino:102:1: error: stray ‘\’ in program
bluetooth_ard.ino:102:1: error: stray ‘\’ in program
bluetooth_ard.ino:102:1: error: stray ‘\’ in program
bluetooth_ard.ino:105:1: error: stray ‘\’ in program
bluetooth_ard.ino:105:1: error: missing terminating ‘ character
bluetooth_ard.ino:108:1: error: stray ‘\’ in program
bluetooth_ard.ino:108:1: error: stray ‘\’ in program
bluetooth_ard.ino:108:1: error: stray ‘\’ in program
bluetooth_ard.ino:111:1: error: stray ‘\’ in program
bluetooth_ard.ino:111:1: error: missing terminating ‘ character
bluetooth_ard.ino:114:1: error: stray ‘\’ in program
bluetooth_ard.ino:114:1: error: stray ‘\’ in program
bluetooth_ard.ino:114:1: error: stray ‘\’ in program
bluetooth_ard.ino:117:1: error: stray ‘\’ in program
bluetooth_ard.ino:117:1: error: missing terminating ‘ character
bluetooth_ard.ino:120:1: error: stray ‘\’ in program
bluetooth_ard.ino:120:1: error: stray ‘\’ in program
bluetooth_ard.ino:120:1: error: stray ‘\’ in program
bluetooth_ard.ino:123:1: error: stray ‘\’ in program
bluetooth_ard.ino:123:1: error: missing terminating ‘ character
bluetooth_ard.ino:126:1: error: stray ‘\’ in program
bluetooth_ard.ino:126:1: error: stray ‘\’ in program
bluetooth_ard.ino:126:1: error: stray ‘\’ in program
bluetooth_ard.ino:9:24: error: redefinition of ‘SoftwareSerial mySerial’
sketch_jul03a.ino:3:16: error: ‘SoftwareSerial mySerial’ previously declared here
bluetooth_ard.ino: In function ‘void setup()’:
bluetooth_ard.ino:11:6: error: redefinition of ‘void setup()’
sketch_jul03a.ino:6:6: error: ‘void setup()’ previously defined here
bluetooth_ard.ino:22:17: error: ‘u201cIvan’ was not declared in this scope
bluetooth_ard.ino: In function ‘void loop()’:
bluetooth_ard.ino:25:6: error: redefinition of ‘void loop()’
sketch_jul03a.ino:24:6: error: ‘void loop()’ previously defined here
bluetooth_ard.ino:32:7: error: ‘u2018A’ was not declared in this scope
bluetooth_ard.ino:33:1: error: expected ‘:’ before ‘{‘ token
bluetooth_ard.ino:35:19: error: ‘u201cRel’ was not declared in this scope
bluetooth_ard.ino:38:7: error: ‘u2018a’ was not declared in this scope
bluetooth_ard.ino:39:1: error: expected ‘:’ before ‘{‘ token
bluetooth_ard.ino:41:19: error: ‘u201cRel’ was not declared in this scope
bluetooth_ard.ino:45:7: error: ‘u2018B’ was not declared in this scope
bluetooth_ard.ino:46:1: error: expected ‘:’ before ‘{‘ token
bluetooth_ard.ino:48:19: error: ‘u201cRel’ was not declared in this scope
bluetooth_ard.ino:51:7: error: ‘u2018b’ was not declared in this scope
bluetooth_ard.ino:52:1: error: expected ‘:’ before ‘{‘ token
bluetooth_ard.ino:54:19: error: ‘u201cRel’ was not declared in this scope
bluetooth_ard.ino:57:7: error: ‘u2018C’ was not declared in this scope
bluetooth_ard.ino:58:1: error: expected ‘:’ before ‘{‘ token
bluetooth_ard.ino:60:19: error: ‘u201cRel’ was not declared in this scope
bluetooth_ard.ino:63:7: error: ‘u2018c’ was not declared in this scope
bluetooth_ard.ino:64:1: error: expected ‘:’ before ‘{‘ token
bluetooth_ard.ino:66:19: error: ‘u201cRel’ was not declared in this scope
bluetooth_ard.ino:69:7: error: ‘u2018D’ was not declared in this scope
bluetooth_ard.ino:70:1: error: expected ‘:’ before ‘{‘ token
bluetooth_ard.ino:72:19: error: ‘u201cRel’ was not declared in this scope
bluetooth_ard.ino:75:7: error: ‘u2018d’ was not declared in this scope
bluetooth_ard.ino:76:1: error: expected ‘:’ before ‘{‘ token
bluetooth_ard.ino:78:19: error: ‘u201cRel’ was not declared in this scope
bluetooth_ard.ino:81:7: error: ‘u2018E’ was not declared in this scope
bluetooth_ard.ino:82:1: error: expected ‘:’ before ‘{‘ token
bluetooth_ard.ino:84:19: error: ‘u201cRel’ was not declared in this scope
bluetooth_ard.ino:87:7: error: ‘u2018e’ was not declared in this scope
bluetooth_ard.ino:88:1: error: expected ‘:’ before ‘{‘ token
bluetooth_ard.ino:90:19: error: ‘u201cRel’ was not declared in this scope
bluetooth_ard.ino:93:7: error: ‘u2018F’ was not declared in this scope
bluetooth_ard.ino:94:1: error: expected ‘:’ before ‘{‘ token
bluetooth_ard.ino:96:19: error: ‘u201cRel’ was not declared in this scope
bluetooth_ard.ino:99:7: error: ‘u2018f’ was not declared in this scope
bluetooth_ard.ino:100:1: error: expected ‘:’ before ‘{‘ token
bluetooth_ard.ino:102:19: error: ‘u201cRel’ was not declared in this scope
bluetooth_ard.ino:105:7: error: ‘u2018G’ was not declared in this scope
bluetooth_ard.ino:106:1: error: expected ‘:’ before ‘{‘ token
bluetooth_ard.ino:108:19: error: ‘u201cRel’ was not declared in this scope
bluetooth_ard.ino:111:7: error: ‘u2018g’ was not declared in this scope
bluetooth_ard.ino:112:1: error: expected ‘:’ before ‘{‘ token
bluetooth_ard.ino:114:19: error: ‘u201cRel’ was not declared in this scope
bluetooth_ard.ino:117:7: error: ‘u2018H’ was not declared in this scope
bluetooth_ard.ino:118:1: error: expected ‘:’ before ‘{‘ token
bluetooth_ard.ino:120:19: error: ‘u201cRel’ was not declared in this scope
bluetooth_ard.ino:123:7: error: ‘u2018h’ was not declared in this scope
bluetooth_ard.ino:124:1: error: expected ‘:’ before ‘{‘ token
bluetooth_ard.ino:126:19: error: ‘u201cRel’ was not declared in this scope
Errore durante la compilazione
Salve Ivan
Un belllissimo progetto il tuo di rinomato rispetto .
Visto l’importanza del progetto ho voluto realizzarlo con il mio arduino Leonardo , solo che non appena carico lo sketch mi dà tanti errori 🙁 non sò come fare per farlo andare bene sull’Arduino Leonardo . Mi potresti dire se ciò và su Leonardo o bisogna modificare qualcosa nello sketck ? . Grazie
Buon giorno Diego, grazie per l’interesse 🙂
Molto probabilmente qualche libreria non è compatibile con la board Leonardo…
Dimmi che errori vengono generati così vediamo se riesco ad aiutarti..
Nel frattempo, se vuoi dare un occhiata, questa è la seconda versione del progetto:http://www.prometheusnow.com/blog/progetto-domotica-bluetooth-arduino-temperatura-e-lcd/
A presto,
Ivan
Salve , innanzitutto grazie , nell’articolo c’è scritto :
In allegato una cartella compressa nella quale è presente tutto il materiale necessario per creare questo dispositivo.
Dovè l’allegato ?
GRAZIE.
L’allegato è ora disponibile.
Ciao Ivan, il progetto è molto interessante e molto semplice. Ho letto velocemente dei post sulla presenza di un interruttore per spegnere il sistema. Non conosco bene Arduino ma a naso dovrebbe essere possibile, secondo me, poter mandare il micro controllore in sleep e far si che si risvegli quando arrivano dati sulla seriale. Se a questo si abbina l’utilizzo di un modulo Bluetooth 4.0 Low Energy, il consumo a riposo del dispositivo sarebbe veramente minimo, quasi come se lo si tenesse spento. Non so quanta complicazione tutto questo possa aggiungere, sono solo impressioni che ho avuto dando uno sguardo al progetto.
ciao a tutti
grazie a questa guida sono riuscito a gestire da remoto tramite bt l’accensione e lo spegnimento di vari dispostitivi ma ho ustato una app creata da me su app inventor. che pero’ vorrei implementarla tramite i digital output di arduino che mi segnalino l’effettiva accensione del dispositivo trasmettemdo un segale 0-1 dove magari 1 sia la conferma di accensione 0 quella di spegnimento.
riuscite a darmi una dritta su come fare?
grazie in anticipo.
Ciao Nuccio, sono contento che tu ci sia riuscito senza problemi 🙂
Non sono sicuro di aver capito quello che vuoi fare…
Forse ti serve che nel momento in cui accendi o spegni un dispositivo, tramite l’applicazione, lo smartphone riceva un “segnale” ad’operazione avvenuta con successo?
A presto,
Ivan
ciao Ivan, grazie per avermi risposto ed alla tua domanda rispondo di si e cerco di spiegarmi meglio.
Praticamente ho usato per l’accensione della lampada un relè finder con due contatti normalemte aperti che nel momento in cui l’arduino tira fuori un segnale high alimenta la bobbina di un rele 5v che chiude un contatto azionando la bobbina 220v di un relè finder che chiude i due contatti nc dove in uno e collegata la lampadina e nell’altro è collegato i 5v di ritorno ad arduino che mi permetterano si sapere lo stato del relè finder, così che se il relè finder è eccitato il contatto è chiuso ed arduino riceve 5v altrimeti è aperto ed arduino riceve 0v.
L’idea è quella di far trasmettere ad arduino, attraverso il modulo bt un dato che io possa ricevere con la mia app creata con app inventor e trasformarla in segnalazione che possa essere l’accensione di un quadratino colorato o l’apparire di una scritta ecc.
spero sia stato un po più chiaro di ieri e ti ringrazio anticipatamente per la tua risposta.
Ciao Ivan,
vorrei creare la logica impulsiva (1 secondo o 2 ecc..) su alcuni relè per comandare relè passo passo in parallelo ai pulsanti esistenti, ma non ho idea su come fare.
Ho provato con i delay ma mi si blocca arduino e sono in alto mare.
la logica attuale per classico interruttore e la seguente:
int relay1 = 2;
int relay2 = 3;
byte serialA;
void setup()
{
pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
digitalWrite( relay1, HIGH );
digitalWrite( relay2, HIGH );
}
void loop() {
case 1:
digitalWrite(relay1, LOW);//pulsante 1 on
break;
//
case 2:
digitalWrite(relay1, HIGH);//pulsante 1 off
break;
}
}
ma voglio modificarla per un pulsante.
Cosa mi consigli??
grazie
Ciao Ivan,vorrei chiederti se te sapevi cosa fare quando su un arduino mega 2560 ti da questi errori su qualsiasi sketch che provi a caricare.Sono in alto mare e su internet ho trovato cose molto discordanti tra loro su questo fatto.
gli errori sono questi:
” avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer”
Spero di avere una tua risposta.
Grazie,
Andrea.
ciao! nello sketch se al posto della lettera ‘a’ scrivo ‘uno acceso’ non mi funziona.
cosa dovrei fare?
Vorrei metterci una parola (uno acceso) perche’ siccome tramite app do il comando con la voce, non mi piace dire la lettera ‘a’ ‘A’ ‘b’ ‘B’ ecc ecc ma vorrei impostare una parola, come dovrei fare? grazie
ciao, ho un problema con lo sketch:
SoftwareSerial mySerial(10, 11); // imposto i pin per la comunicazione seriale
questa riga la da come errore e dice:
“SoftwareSerial’ does not name a type.
come mai? grazie in anticipo
Ale
Ciao Ale,
Credo che tu non abbia incluso la libreria Software serial
Si, scusa…
Copiando lo sketch direttamente dal forum non mi ero accorto che non c’era inclusa la libreria. Scaricandolo al link che hai dato invece c’era e quindi tutto ok. Domani se riesco testo il tutto e ti faccio sapere.
Grazie della risposta.
Ciao Ivan, scusa la domanda che può sembrare banale ma non riesco a trovare il link per scaricare la libreria, riusciresti a commentarmelo? grazie in anticipo
Leggo solo oggi il tuo interessante articolo: in pratica comanda da remoto varie utenze (8 nel tuo caso) che sono però tutte collegate wired il.blocco dei relè e quindi anche se distanti dal comando dovranno essere abbastanza vicine tra di loro.
Io sto cercando di superare questo limite realizzando vari moduli, ciascuno equipaggiato con uno o due relè, un Arduino (io uso il nano che oggi si compra un tanto al kilo) e un modulo BT HC-05 configurato Slave.
Ogni relè sarà quindi fisicamente vicino all’utenza, dovendo essere wired ad essa, e tutti i moduli faranno capo ad un modulo Master equipaggiato con un Arduino, tanti BT HC-05 configurati Master quanti sono i moduli periferici (in quanto ogni Master può essere paired ad un solo Slave), un BT HC-05 configurato Slave che parlerà con lo Smartphone equipaggiato con il Bluetooth Control Device.
L’Arduino del modulo Master si occuperà di ricevere i comandi dallo Smartphone, capire a chi sono diretti, mandarli al relativo BT Maste che non farà altro che inoltrarlo al suo Slave remoto lo invierà per l’azionamento del relè.
Ho buttato giù anche lo sketch, un po’ complicato ma neanche tanto, ed ecco la sorpresa, motivo per cui ti sto scrivendo sperando in una dritta:
Ognuno dei 4+1 BT del modulo Master, alimentati a parte per non caricare Arduino, sono collegati ad Arduino con la coppia di segnali Tz e Rx che impegnano quindi 10 PIN ( nel mio caso da 5 a 12). Ebbene collegando uno alla volta i 5 BT tutti sono riconosciuti dallo Smartphone, ma non appena ne collego 2 i BT non sono più visibili.
Ho curato attentamente nello skecth di fa parlare un BT alla volta facendo largo uso di xx.listen() ed ho fatto una infinità di prove ma temo che il problema sia hardware e che la libreria SoftwareSerial che moltiplica via software le porte seriali non faccia lo stesso effetto sulle connessioni BT.
In rete non si trova nulla in proposito. Qualcuno sa darmi una mano? Grazie
Ciao Ivan una domanda posso utilizzare un app x trasmettere i dati solo con il bluetooth HC o6 utilizzando l uscita Tdx e Rdx?
Grazie