Go Down

Topic: [HOWTO] Guida (più o meno) completa all'utilizzo di Moduli Bluetooth (Read 117828 times) previous topic - next topic

swipon

Scusate ma sarebbe possibile passare al setup dello sketch i valori di default da impostare aziché passare tramite comandi seriali? (sono ancora in attesa del modulo bt quindi non posso ancora effettuare test)
In questo modo si otterrebbe un preset all'avvio con le ns. impostazioni personalizzate.

Allego l'Esempio che sto scrivendo:

Code: [Select]

#include <SoftwareSerial.h>

// ###########################################
// Programma di configurazione Bluetooth stack
// ###########################################

// pin ricezione n 2 sul modulo bt
const int rxPin = 2; //con resistenza 2k2

// pin trasmissione n 1 sul modulo bt
const int txPin = 3; //nessuna resistenza necessaria

// pin configurazione n pio11 su modulo bt
const int atPin = 4; //con resistenza 2k2

// pin arduino led integrato
const int connPin = 13;

// attivo la trasmissione e ricezione seriale
SoftwareSerial bluetooth(rxPin,txPin);

void setup() {
 
  // wait 2 second for inizialize
  delay (2000);
 
  // inizializzo la seriale
  Serial.begin(9600);
  // inizializzo Bluetooth SoftwareSerial port
  bluetooth.begin(9600);
 
  // attivo la configurazione del modulo bt
  pinMode(connPin, OUTPUT);
  pinMode(atPin,OUTPUT);
  Serial.println("Seriali attive...");
  digitalWrite(atPin,HIGH);
 
  // imposto la baudrate di default
  digitalWrite(connPin, HIGH);
  bluetooth.write("AT+BAUD4");
  digitalWrite(connPin, LOW);
//     1----1200bps
//     2----2400bps
//     3----4800bps
//     4----9600bps // consigliata per HC-03-04
//     5----19200bps
//     6----38400bps // consigliata per HC-05-06
//     7----57600bps
//     8----115200bps
//     9----230400bps
//     A----460800bps
//     B----921600bps
//     C----1382400bps
 
  // imposto nome device bluetooth di default
  digitalWrite(connPin, HIGH);
  bluetooth.write("AT+NAMEArduinoBluetooth");
  digitalWrite(connPin, LOW);
 
  // imposto password bluetooth di default
  digitalWrite(connPin, HIGH);
  bluetooth.write("AT+PIN0000");
//  bluetooth.write("AT+PSWD0000");
  digitalWrite(connPin, LOW);

  // imposto modalità master o slave
  digitalWrite(connPin, HIGH);
  bluetooth.write("AT+ROLE1"); // 0=slave(default) / 1=master / 2 Slave-Loop
  digitalWrite(connPin, LOW);
 
  // imposto abbinamento fisso master/slave (binding)
  //digitalWrite(connPin, HIGH);
  //bluetooth.write("AT+CMODE=1"); //connect to everyone
  //bluetooth.write("AT+CMODE=0"); //connect only to slave
  //bluetooth.write("AT+BIND=11,3,252002"); // set mac address dello slave
  //digitalWrite(connPin, LOW);
 
  //clean pairing list
  digitalWrite(connPin, HIGH);
  bluetooth.write("AT+RMAAD");
  digitalWrite(connPin, LOW);
}

void loop() {
  if (bluetooth.available() > 0) {
    digitalWrite(connPin, HIGH);
    Serial.write(bluetooth.read());
    digitalWrite(connPin, LOW);
  }
  if(Serial.available() > 0) {
    digitalWrite(connPin, HIGH);
    bluetooth.write(Serial.read());
    digitalWrite(connPin, LOW);
  }
}


Ciao a tutti
Luca

alex27riva

Ho collegato un HC-05 direttamente ad Arduino e ha funzionato per un bel po' ma adesso con il telefono non riesco più a connettermi al modulo, dite che si è bruciato a causa della tensione del modulo di 3,3V e Arduino UNO 5V?
Arduino UNO starter kit.

ciscothehellspawn

Qualcuno conosce hc-10 e hc-11?

non sono molto esperto, ma il mio bisogno è quello di poter collegare uno slave BT ai device Apple.

http://www.robot-italy.com/it/bluetooth-v4-0-hm-11-ble-module.html

gpb01

Per farlo devi saper programmare su iOS dato che i moduli BLE NON vengono visti come normali moduli Bluetooth.

Puoi leggere QUESTO thread dove c'è anche il link ad un semplice programmino per iOS che si interfaccia con il BLE.

Guglielmo
Search is Your friend ... or I am Your enemy !

ciscothehellspawn

Per farlo devi saper programmare su iOS dato che i moduli BLE NON vengono visti come normali moduli Bluetooth.

Puoi leggere QUESTO thread dove c'è anche il link ad un semplice programmino per iOS che si interfaccia con il BLE.

Guglielmo
Provo a spiegarmi meglio, più passa il tempo e più questa questione del BT mi è meno chiara...

Io nel mio prototipo sto utilizzando uno shield come questo: http://www.adafruit.com/product/1535
che è una tastiera bluetooth. Con questo riesco a collegarmi a qualsiasi dispositivo android e iOS.

Attualmente sono di uno shield BT che mi permetta di fare una tastiera BT con un Leonardo, nel disperato tentativo di rendere il progettino un po' più "economico" da realizzare.

La mia ipotesi era questa: collegare un modulino HM-11 via seriale ad Arduino Leonardo ed usare questo come tastiera BT. E' possibile?

gpb01

Non facilmente ... ripeto, o sai programmare, e bene, sotto iOS (Core Bluetooth framework, CBCentralManager, ...) o non ne veni fuori.

Il problema NON è lato Arduino, dove la cosa è banale, il problema è lato iOS ... un conto è un modulo bluetooth, come quello di AdaFruit, che implementa un profilo HID, un altro è il profilo SPP che emula una seriale ...

Guglielmo
Search is Your friend ... or I am Your enemy !

ciscothehellspawn

Non facilmente ... ripeto, o sai programmare, e bene, sotto iOS (Core Bluetooth framework, CBCentralManager, ...) o non ne veni fuori.

Il problema NON è lato Arduino, dove la cosa è banale, il problema è lato iOS ... un conto è un modulo bluetooth, come quello di AdaFruit, che implementa un profilo HID, un altro è il profilo SPP che emula una seriale ...

Guglielmo
chiarissimo! grazie

Quindi, tornando al mio "problemino" o uso lo shied di adafruit, oppure un'alternativa potrebbe essere questa: https://www.sparkfun.com/products/10938 ma costa di più...

gpb01

Direi che quello di AdaFruit va benissimo e ... QUI è documentato come simulare una tastiera/mouse da seriale ;)

Guglielmo
Search is Your friend ... or I am Your enemy !

ciscothehellspawn

Grazie Guglielmo, approfitto della tua disponibilità e competenza...

Con lo shield adafruit ho già fatto diverse cose, è stato molto semplice usarlo ed integrarlo nel mio progettino.

Grazie alla tua esauriente spiegazione, ho continuato le mie ricerche, e mi sembra di aver capito che tutti gli shield HID bluetooth compatibili apple, sono basati su schede Microchip RN41 e RN42, è corretto?

Quindi volendo individuare un hardware per una futura produzione del mio progetto, potrei partire da questi componenti?

gpb01

Dipende un po' da ciò che devi fare, direi comunque che, più o meno, se ti orienti su quelli vai abbastanza sul sicuro ...

Altrimenti ci sono sempre quelli della Jinan Huamao ... :)

Guglielmo
Search is Your friend ... or I am Your enemy !

bigjohnson

Uella,
oggi trovandomi in un particolare e irripetibile Stato di Grazia ho convertito ad Appinventor 2 l'esempio per Android e bluetooth
http://ai.kittywolf.net/index.php/BTArduinoLED1
non l'ho ancora provato con l'Arduino, ho solo usato l'app sullo smartphome e pare andare.
Allego il file uplodabile su Mit Appinventor 2

Alberto

Edit 1: Provata connessione a modulino HC05, ricevuti e trasmessi dati da terminale con adattatore usb seriale attaccato all'Arduino per il debug, corretto errorino e sostituito file zip.

doppiozero

Ciao a tutti, ho questo problema:

non riesco ad utilizzare il monitor seriale per collegarmi via bluetooth ad arduino; l'errore riportato è questo:
Error opening serial port ' /dev/rfcomm0' . (Port busy)

Sto utilizzando Ubuntu 15.04 live usb con persistenza, un HC05 e l'ide 1.6.5.  Su windows non ho problemi ma per altri motivi sono costretto ad utilizzare linux.

Ho seguito passo passo la guida di pitusso ma continuo a non venirne fuori.

Dopo due giorni di tentativi sono passato dall'errore Error opening serial port ' /dev/rfcomm0' . (Permission denied) a quello che vedete sopra ma non riesco a saltarci fuori.

Dall'interfaccia grafica riesco a fare il pairing e a creare un porta seriale rfcomm0, il led sull'hc05 da lampeggiante passa a fisso, la porta rfcomm0 compare nell'elenco dell' IDE ma quando provo ad aprire il monitor seriale mi compare l'errore che vi dicevo.

Provando dal terminale invece succede questo: rilevo l'hc05, modifico rfcomm.conf, riavvio il bluetooth ma il file rfcomm1 (nel mio caso) non compare nella cartella /dev quindi non riesco a proseguire.

L'unico file che compare all'interno della cartella /dev è rfcomm0 e si materializza solo quando mi connetto dall'interfaccia grafica all'hc05

ho cercato molto online e fatto vari tentativi per modificare permessi ecc ma adesso sono bloccato.

Ogni indicazione è ben accetta, grazie a tutti  :)

Edit: risolto
"Doc, ma che diavolo è un Gigowatt? "

Go Up