Go Down

Topic: [HOWTO] Guida (più o meno) completa all'utilizzo di Moduli Bluetooth (Read 111475 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 al modulo, corretto errorino e sostituito file zip.

Go Up