Pages: 1 2 3 [4] 5   Go Down
Author Topic: Help Modulo Bluetooth  (Read 6339 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Edison Member
*
Karma: 28
Posts: 2031
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

allora anche io vorrei comprarne un'altro, il mio si è conneso una volta lui autonamente al pc non so come(cioè lui ha richiesto la connesione col pc e non viceversa) ed ora non ci riesco piu chissà come diavolo funziona questo modulino , ora vorrei prenderne uno che sicuro funzioni non e che puoi indicarmene uno slave con cui posso tranquillamente fare il paring e inviare dati dal mio pc non mi interessa neanche trasmettere.
Logged

"Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi..." Albert Einstein

Offline Offline
Full Member
***
Karma: 0
Posts: 156
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Finalmente è cambiato qualcosa, ma non ancora ok.
Come già detto ho acquistato 2 moduli e ho scoperto
che sono HC-05.
Ho provato a farli dialogare senza risultati, ho poi
acquistato una chiavetta USB-Bluetooth e ho scoperto
che uno dei 2 moduli non funziona, l'altro lo rileva
e riesco a configurarlo, passkey: 1234 (Windows XP)
           COM14 in uscita e
           COM15 in ingresso.
Fin d'ora il LED sul pin 31 lampeggia veloce e regolare.
Con un qualsiasi terminale se si apre la porta COM14
il LED sul pin31 cambia lampeggio 2 piccoli impulsi e pausa
abbastanza lunga e il LED sul pin32 acceso fisso.
Credo si possa dire che il collegamento è avvenuto.
Se apro solo la COM15 questo non avviene.
Comunque provo ad inviare sia da terminale che da Arduino
ma non avviene scambio.
Ho provato con terminale fatto da me in Visual Basic,
con Termite e con puTTY sempre stesso risultato.


Il pin 4 di Arduino <- coll. al pin 1 UART_TXD del Bluetooth
Il pin 5 di Arduino -> coll. al pin 2 UART_RXD del Bluetooth


Grazie per suggerimenti.
Carletto.



Qui sotto il codice caricato su Arduino UNO.
================================================================
 
#include <icrmacros.h>
#include <NewSoftSerial.h>
byte ricevuto;
byte pu1=A0;   //Invio comandi AT.
byte pu2=A1;   //Invio dati.
byte LED1=10;
byte LED2=11;
byte LED3=12;
byte pinRX=4;  //Pin ricezione    da Bluetooth.
byte pinTX=5;  //Pin trasmissione a Bluetooth.
byte pinAT=6;  //Pin Modo ricetrasmissione=0, Modo AT=1;
NewSoftSerial blue(pinRX,pinTX);
//---Invia comandi AT--------------------------------------------
void comandiAT(char *v){
  int i=0;
  while(v!='\n'){
    blue.print(v);  //Invia un carattere per volta.
    i++;
  }
  blue.print('\n');
  Serial.print("Comandi AT inviati: ");
  Serial.print(v);
}
//---Routine di Predisposizione----------------------------------
void setup() {
  blue.begin(38400);
  Serial.begin(38400);  //Apre la porta seriale a 9600 bps.
  Serial.println("Inizializzo sistema...");
  pinMode(pu1,INPUT);      //Pulsante (1) invio comandi At al proprio modulo.
  pinMode(pu2,INPUT);      //Pulsante (2) invia dati all'altro modulo.
  pinMode(LED1,OUTPUT);    //LED (1) invio comandi AT in corso.
  pinMode(LED2,OUTPUT);    //LED (2) invio dati al modulo.
  pinMode(LED3,OUTPUT);    //LED (3) ricezione in corso.
  digitalWrite(pu1,HIGH);  //Pull-UP pulsante 1.
  digitalWrite(pu2,HIGH);  //Pull-UP pulsante 2.
  pinMode(pinAT,OUTPUT);   //Predisposizione invio comandi AT.
  delay(100);
  digitalWrite(LED3,HIGH);
  delay(3000);
  digitalWrite(LED3,LOW);
}
//---Routine principale------------------------------------------
void loop() {
  if (blue.available() > 0) {
    ricevuto=blue.read();
    digitalWrite(LED3,HIGH);       //LED (3) ricezione in corso.   
    Serial.println("ricevuto");      //Visualizza il dato ricevuto
    delay(5000);
    digitalWrite(LED3,LOW);        //LED (3) fine ricezione. 
  }
  if(digitalRead(pu1)==0){         //Pulsante (P1) invio comandi AT.   
    digitalWrite(LED1,HIGH);       //LED (1) invio comandi AT.
    char s1[]="AT+ROLE=0\r\n";     //Modulo slave.
    char s2[]="AT+ROLE=1\r\n";     //Modulo master.
    char s4[]="AT+ROLE=2\r\n";
    char s3[]="AT+ORGL\r\n";
    digitalWrite(pinAT,HIGH);      //Pred.invio comandi AT.
    comandiAT(s4);                 //Invio comando al modulo
    delay(50);
    digitalWrite(pinAT,LOW);       //Pred. ricetrasmissione dati.
    delay(3000);
    digitalWrite(LED1,LOW);        //LED (1) fine invio comandi AT.
  }
  if(digitalRead(pu2)==0){         //Pulsante (P2) invio dati al modulo.
    digitalWrite(LED2,HIGH);       //LED (2) invio dati.
    Serial.println("Slave invia"); //Visualizza dati invio al modulo.
    blue.println("Slave invia");   //Invio dati al modulo.
    delay(3000);
    digitalWrite(LED2,LOW);        //LED (2) fine invio dati.
  } 
}
Logged

Bologna
Offline Offline
Sr. Member
****
Karma: 2
Posts: 454
La gente spesso definisce impossibili cose che semplicemente non ha mai visto. [Albert Einstein]
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@pitusso
ho installato putty
ho cambiato il codice per essere sicuro che il bluetooth riceva qualcosa:
Code:
#include <NewSoftSerial.h>
NewSoftSerial bluetooth(2,3); // (RX,TX)
int led=13;
int num=0;
void setup()
{
pinMode(led,OUTPUT);
bluetooth.begin(4800); // testare 38400
Serial.begin(9600);
}
void loop()
{
  if(bluetooth.read()==45)
  {
  digitalWrite(led,HIGH);
  }
  if(bluetooth.read()==0)
  {
  digitalWrite(led,LOW);
  }
  Serial.println(bluetooth.read());
}
putty mi apre la seriale del bluetooth senza alcun errore, con l'IDE apro il serial monitor per vedere Serial. e visualizzo sempre e solo -1
mi sono accorto che mi dà queste notifiche:
Quote
at gnu.io.RXTXPort.nativeavailable(Native Method)
   at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1532)
   at processing.app.Serial.serialEvent(Serial.java:215)
   at gnu.io.RXTXPort.sendEvent(RXTXPort.java:732)
   at gnu.io.RXTXPort.eventLoop(Native Method)
   at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1575)
[/quote]
Logged

0
Offline Offline
Edison Member
*
Karma: 24
Posts: 2309
Have you mooed today?
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@carletto
il fatto che un modulo lo vedi e l'altro no, potrebbe derivare dalla configurazione del modulo stesso.
Devi metterlo in modalità Slave (o Slave-Loop) perchè sia visibile.

@valvale97
ti stampa sempre -1 persumo perchè non sta leggendo dalla read (bluetooth.read()).
Riguardo a quel che ti appare nell'ide, mancano alcune righe (la prima innanzitutto), che son quelle più chiarificatrici.
Se poi l'errore te lo da in fase di compilazione, stai sicuro che quello sketch no lo hai caricato, su Arduino!

Che IDE stai utilizzando?
Logged

Bologna
Offline Offline
Sr. Member
****
Karma: 2
Posts: 454
La gente spesso definisce impossibili cose che semplicemente non ha mai visto. [Albert Einstein]
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

IDE 0023
l'errore me lo dà dopo l'upload dello sketch, domani faccio la prova usando due PC.
Con uno invio i dati al modulo bluetooth, con l'altro vedo se lo riceve.
Grazie.
Valerio.
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 156
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

il fatto che un modulo lo vedi e l'altro no, potrebbe derivare dalla configurazione del modulo stesso.
Devi metterlo in modalità Slave (o Slave-Loop) perchè sia visibile.
Sono in WindowsXP, con il comando "Dispositivi Bluetooth" non lo rileva.

Per quanto riguarda l'altro modulo lo rileva, assegna due porte una in uscita e una in entrata.
Ho configurato il modulo come:
                char s1[]="AT+ROLE=0\r\n";  //modo slave           
ma ho provato anche con:
                char s4[]="AT+ROLE=2\r\n";  //modo slave-loop.
Quando apro la porta in usita;

Il LED sul 31 cambia lampeggio e il LED sul 32 si accende fisso, quindi connessione avvenuta.
Io però  con diversi Terminali non riesco a ricevere da Arduino ne inviare ad Arduino.

Carletto
Logged

Bologna
Offline Offline
Sr. Member
****
Karma: 2
Posts: 454
La gente spesso definisce impossibili cose che semplicemente non ha mai visto. [Albert Einstein]
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

E con quali terminali riesci ?
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 156
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

E con quali terminali riesci ?
Come ho detto purtroppo non riesco ne inviare ne ricevere dati, riesco solo a connettere
il modulino bluetooth con WindowsXP tramite la chiavetta Bluetooth-USB.
Mi accorgo che la connessione è avvenuta quando dal terminale che utilizzo apro la porta
in uscita dal PC ingresso modulino, LED sul pin 32 acceso fisso e LED sul pin 31 cambia lampeggio.
Come terminali ho provato con Termite, putty e un terminale autocostruito in Visual Basic.
Purtroppo sono ancora in alto mare.

Carletto.
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 156
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mi chiedo se i comandi AT che invio il modulo li riceve.

Nel manuale HongKong Electronis, dove ho acquistato trovo esempio:
   
           "Command"            e          "Response"
           "AT+ROLE=2\r\n"                 OK

Come si fa a leggere i comandi inseriti nel modulo?

Grazie

Carletto.
Logged

Bologna
Offline Offline
Sr. Member
****
Karma: 2
Posts: 454
La gente spesso definisce impossibili cose che semplicemente non ha mai visto. [Albert Einstein]
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Prova a far così apri l'IDE, connettiti al bluetooth che però deve essere settato per ricevere i comandi AT,
poi dopo aver inserito il corretto baudrate provi a scrivergli i comandi e ti dovrebbero uscire le risposte.
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 156
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Prova a far così apri l'IDE, connettiti al bluetooth che però deve essere settato per ricevere i comandi AT,
poi dopo aver inserito il corretto baudrate provi a scrivergli i comandi e ti dovrebbero uscire le risposte.

Come le leggi le risposte? con
         risposta=blue.read();
         Serial.print(risposta);
Ma un comando del genere non dovrebbe leggere i dati inviati dal master?

Carletto.

Logged

Bologna
Offline Offline
Sr. Member
****
Karma: 2
Posts: 454
La gente spesso definisce impossibili cose che semplicemente non ha mai visto. [Albert Einstein]
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

io non metto in mezzo arduino.
Per mandare comandi AT collego il modulo bluetooth al PC tramite convertitore TTL-USB e poi apro la COM a cui è connesso e comunico.
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 156
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Prova a far così apri l'IDE, connettiti al bluetooth che però deve essere settato per ricevere i comandi AT,
poi dopo aver inserito il corretto baudrate provi a scrivergli i comandi e ti dovrebbero uscire le risposte.

@valvale97
   Intendi una cosa simile?

   byte v;
   digitalWrite(pinAT,HIGH);    //Modo AT.
   v=blue.read();                   //Lettura.
   delay(20);
   Serial.println(v);                 //Invio al Serial monitor.
   digitalWrite(pinAT,LOW);    //Modo trasmissione dati.
   
   Bene, io ricevo solo un carattere strano.
   Secondo me dovrei ricevere almeno 'A', la prima lettera
   del comando "AT+ROLE..."
 
   Sei d'accordo?
   Dove sbaglio?

   Carletto.

 
Logged

Offline Offline
Edison Member
*
Karma: 28
Posts: 2031
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ho ho avuto un idea mmm se utilizzassi questo convertitore:
http://www.ebay.com/itm/180865158065?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649
e questi 2 moduli uno collegato ad arduino l'altro al convertitore e quindi al pc potrei comunicare facilmente con arduino tramite serial port giusto?
http://www.ebay.com/itm/2PCS-NRF24L01-2-4GHz-Wireless-Transceiver-Module-NEW-/140716242089?pt=LH_DefaultDomain_0&hash=item20c35774a9

che ne dite?
Logged

"Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi..." Albert Einstein

0
Offline Offline
Edison Member
*
Karma: 24
Posts: 2309
Have you mooed today?
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao

Quote
che ne dite?

che sei OT  smiley-evil, visto che qui si parla di BT  smiley-mr-green

Logged

Pages: 1 2 3 [4] 5   Go Up
Jump to: