Collegare arduino tramite bluetooth al pc

Salve,
ho un modulo hc05, riesco ad associare arduino al pc ma non riesco ad aprire la seriale in quanto mi dà l'errore "port busy (COM3)". Come potrei risolvere questo problema? Vorrei ricevere dei dati a distanza sul pc.

In genere è sempre bene postare anche lo sketch usato, ma il modulo a quali pin lo hai collegato? Saranno mica i pin 0 ed 1, vero?...

Ho utilizzato questo sketch e sono riuscito a reimpostare sia il pin che il nome al modulo

#include <SoftwareSerial.h>

int rxPin = 3;
int txPin = 2;
SoftwareSerial bluetooth(rxPin, txPin);

String message; //string that stores the incoming message

void setup() {
  Serial.begin(9600);
  bluetooth.begin(9600);
  Serial.println("Lista dei comandi HC-06:\n");
  Serial.println("AT              Se la comunicazione funziona il modulo risponde OK");
  Serial.println("AT+VERSION      Restituisce la versione del firmware");
  Serial.println("AT+BAUDx        Imposta il Baudrate, al posto di x mettere 1 per 1200 bps, 2=2400, 3=4800, 4=9600, 5=19200, 6=38400, 7=57600, 8=115200, 9=230400, A=460800, B=921600, C=1382400");
  Serial.println("AT+NAMEstring   Al posto di string mettere il nome che vuoi dare al modulo (massimo 20 caratteri)");
  Serial.println("AT+PINxxxx      Imposta il pincode del modulo bluetooth (es.1234)");
}

void loop() {

  if (bluetooth.available()) {
    Serial.write(bluetooth.read());
  }

  if (Serial.available()) {
    bluetooth.write(Serial.read());
  }
}

Ok ma intanto non ho capito se hai risolto o meno.
Se così non fosse, quindi, visto lo sketch devo supporre che tu voglia utilizzare il modulo in modalità AT ma questo non è propriamente necessario almeno per iniziare, e comunque tu lo hai impostato in modalità AT (e quindi sai come entrare o uscire dalla modalità AT)?
Poi chi/cosa è che ti dà l'errore della porta "busy", il monitor seriale dell'IDE (e che versione?) o altro?
Di quale sistema operativo parliamo? Sei su Windows o Linux?

E, in fondo, a che ti serve entrare in modalità AT se devi solamente iniziare a verificare le possibilità di comunicazione BT dal telefono ad Arduino (e da qui via seriale al PC)?

Per esempio, senza stare in modalità AT, con questo programmino che usai a suo tempo (oltre 4 anni fa) puoi far accendere o spegnere il LED di Arduino mandando i comandi 'A' o 'a' via bluetooth (puoi usare una delle tante app di terminale Bluetooth su Android come "Serial Bluetooth Terminal" o "Arduino bluetooth controller", o una tua semplice app fatta con App inventor):

#include <SoftwareSerial.h>
/* 
Collegare il modulo BT:
TXD <--> Pin 9 (Rx)
RXD <--> Pin 8 (Tx)
VCC <--> 5V
GND <--> GND

Un LED e resistenza tra massa e positivo e pin 13
*/
#define LED 13
SoftwareSerial HC05(8, 9); // TX, RX

void setup ()
{
  Serial.begin(115200);
  HC05.begin(9600);
  pinMode (LED, OUTPUT);
  Serial.println("INIT");
}
void loop ()
{
  if ( HC05.available() ) {
    char c = HC05.read();
    Serial.print(c);
    Serial.println(" ricevuto");
    if (c == 'A') {
      digitalWrite(LED, HIGH);
      Serial.println("ON");
    }
    if (c == 'a') {
      digitalWrite(LED, LOW);
      Serial.println("OFF");
    }
    delay(100);
  }
}

Scusami, hai ragione. Opero su windows... il mio progettino era collegare oltre al modulo bluetooth un modulo rfid e farmi inviare a distanza le letture sul seriale del pc senza collegare arduino alla usb... si può fare?

Spiegati meglio, che non ho capito. Cosa intendi con "farmi inviare a distanza le letture sul seriale del pc senza collegare arduino alla usb"? Se parli della seriale del PC significa che o hai una "vera" seriale (ossia una seriale "fisica", che i PC ormai non hanno più) oppure usi, come ora, la connessione USB che ti manda sulla seriale "virtuale" i dati ricevuti via BT.

Ma stando a questa tua descrizione o non ho capito io, oppure temo che tu abbia in mente qualcosa di diverso da quello che sembra di capire, per cui ti chiederei di descrivere meglio cosa dovrebbe fare il progetto che hai in mente, prima di iniziare a pensare a collegamenti e modalità di comunicazione.

Diciamo che hai un lettore rfid collegato ad un Arduino e questo a sua volta ha il modulo BT, per cui quando si passa una chiavetta il relativo codice lo vorresti avere sul PC. Ma questo puoi già farlo senza dover usare il BT, ti basta usare la seriale/USB e quindi facendo un programmino lato PC che apre la seriale, puoi poi fare quello che ti occorre del codice.

Se è qualcosa di diverso, spiegami meglio.

Ora ti spiego meglio, vorrei alimentare arduino con una batteria da 9V senza collegarlo alla porta usb e farmi inviare le letture dei tag rfid tramite bluetooth... non so se serve la modalità AT del modulo hc05

Ok più chiaro ora. Allora si può fare, i valori li vedi sul telefonino usando una delle app per BT che ti ho indicato. La modalità AT non è necessaria se non per modificare qualcosa nella sua configurazione (come il nome o la velocità ad esempio) ma ti consiglierei in prima battuta di non "pasticciare" su questa cosa, che rischia solo di farti fare confusione.
Per cui inizia ascrivere lo sketch che manda per ora su Serial i dati che vorresti inviare successivamente via BT e vedi su PC tramite monitor seriale se funziona come vorresti e tutto ti torna. Tanto poi per il BT ti basterà aggiungere una SoftwareSerial e mandare (anche?) a questa i dati con le stesse modalità.

Se poi li vorrai ricevere invece su PC, forse la cosa più pratica sarebbe usare il WiFi ma è una estensione alla quale potrai pensare successivamente. Per ora limitati a scrivere il primo sketch e mandare i dati via seriale al PC e successivamente al modulo BT.

Utilizzo un iphone, si può fare comunque? Quindi se ho capito bene alimentando arduino con una batteria da 9V e collegando i vari sensori (ble e RFId) posso riceve sul mio smartphone i valore delle letture del tag senza passare dal seriale del pc, giusto?

Non ho un iPhone (mai ne ho avuti e mai ne avrò, perché odio i "mondi chiusi") quindi non so dirti.

Se l'iPhone ha anche il normale Bluetooth che hanno tutti gli altri device "cristiani" del mondo, e se esiste anche per iPhone una app simile a quelle che ti ho indicato per avere un terminale Bluetooth, allora potrebbe essere semplice, ti basta fare una prova col codice che ti avevo postato.

Altrimenti mi spiace, ma non essendo io pratico in alcun modo di roba della mela, non so cosa altro consigliarti se non di procurarti un Android per fare i test ("hai voluto la bicicletta? E mo' pedala!" :smiley: ).

NO, non si può fare, iOS permette liberamente SOLO il collegamento a moduli BLE (Bluetooth Low Energy v4.x o superiori), ma NON ha moduli Bluetooth classico (v2.x) come il HC-05.

Guglielmo

va bene, grazie a tutti! Proverò con un android ahah

Ecco, appunto. Mi conferma che faccio bene ad odiare qualsiasi cosa venga dalla mela (tranne le crostate, gli strudel, ed il liquore di mela... :wink: )

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.