Collegare Arduino al pc tramite bluetooth

Ciao a tutti,

spiego brevemente il mio progetto:

Vorre leggere i valori in ingresso di un potenziometro collegato ad arduino, via bluetooth.

Ho acquistato un modulo Bluetooth SH-M08 4.0 e collegato alla scheda.

Il modulo lo trovo da pc ma come faccio per vedere i dati in ingresso senza collegarmi alla porta USB ed utilizzando appunto il bluetooth?

Grazie in anticipo per l' aiuto!

Simone

Hai spiegato troppo brevemente... :wink:

Arduino quale? "collegato alla scheda" ossia come lo hai collegato fisicamente?
Quale programma (sketch) stai usando su Arduino? Lo puoi postare?
Dici "il modulo lo trovo da pc" quindi intendi che lo vedi e riesci a fare il pairing, ma cosa intendi con "come faccio per vedere i dati in ingresso senza collegarmi alla porta USB ed utilizzando appunto il bluetooth"? Se il PC lo hai connesso via Bluetooth devi avere "qualcosa" sul PC che fa la connessione e manda/riceve i dati previsti.

Spiega meglio, posta il programma attuale e cosa esattamente fai e cosa vuoi fare, così vediamo.

Devi usare il bluetooth come una seriale che deve essere tra i servizi esposti che ti ritrovi sul PC una volta collegato al modulo.

Poi spari i valori sulla seriale di Arduino che è collegata al modulo. Puoi usare una seriale software.

Ciao a tutti allora utilizzo una scheda Arduino/Genuino UNO ed il programma che ho messo insieme è questo (non so se sia corretto) :

#include <SoftwareSerial.h>
#define BT_TX_PIN 12
#define BT_RX_PIN 11
int encoderPin1 = 2;
int encoderPin2 = 3;

volatile int lastEncoded = 0;
volatile long encoderValue = 0;

long lastencoderValue = 0;

int lastMSB = 0;
int lastLSB = 0;

SoftwareSerial bt = SoftwareSerial (BT_RX_PIN, BT_TX_PIN) ;

void setup() {
 // put your setup code here, to run once:
pinMode (BT_RX_PIN, INPUT) ;
pinMode (BT_RX_PIN, OUTPUT ) ;

 Serial.begin(9600);

 bt.begin(9600);

 Serial.begin (9600);

 pinMode(encoderPin1, INPUT_PULLUP);
 pinMode(encoderPin2, INPUT_PULLUP);

 attachInterrupt(0, updateEncoder, CHANGE);
 attachInterrupt(1, updateEncoder, CHANGE);

 
}

void loop() {
 // put your main code here, to run repeatedly:
while (Serial.available()>0) 
bt.print (Serial.read() );


while (bt.available() > 0) 
 Serial.println(bt.read());
  Serial.println(encoderValue);
}

void updateEncoder(){
 int MSB = digitalRead(encoderPin1); //MSB = most significant bit
 int LSB = digitalRead(encoderPin2); //LSB = least significant bit

 int encoded = (MSB << 1) |LSB; //converting the 2 pin value to single number
 int sum  = (lastEncoded << 2) | encoded; //adding it to the previous encoded value

 if(sum == 0b1101 || sum == 0b0100 || sum == 0b0010 || sum == 0b1011) encoderValue ++;
 if(sum == 0b1110 || sum == 0b0111 || sum == 0b0001 || sum == 0b1000) encoderValue --;

 lastEncoded = encoded; 
}

Praticamente il mio problema è che anzichè utilizzare la com3 come connessione seriale vorrei utilzzare il bluetooth e vedere i valori sul mio monitor seriale di Arduino.

Da Pc ho attivato la connessione bluetooth, vedo il mio dispositivo (SH-M08) collegato ad arduino e mi sono "Associato" però da "strumenti" mi da come connessione possibile solo la COM3.

Spero di essermi spiegato sufficentemente bene anche perchè ammetto di non essere ferratissimo in quest' ambito!

Simone

Ok (ma per favore sistema il codice, per regolamento devi metterlo tra i tag "code" che trovi andando in modify quindi selezioni il codice e poi premi il pulsantino in alto a sinistra "</>") ora è un poco più chiaro.
Il problema non è Arduino né il modulo. Se tu da PC ti connetti ad un device BT come pensi di poter comunicare con quel device senza usare nessun programma?
Cerca (ed installa) un programma tipo "Bluetooth Serial Terminal" e potrai gestire la tua connessione, e vedere su terminale ciò che Arduino manda sul BT.

Ok grazie mille! Era una cosa basilare in effetti!! A saperlo...

Prego. ma ora MODIFICA il tuo post #3 per conformità al regolamento.

Devi cliccare su "More..." che vedi sotto al post, poi "Modify", seleziona tutto e solo il codice del programma e poi clicca sul pulsante "</>", quindi salva.

Ok, ecco fatto! Scusa per l' errore e grazie per la dritta!

Ho scaricato il programma ma non mi trova il bluetooth... Non riesco a capire il perchè!
Per caso devo prima configurare il mio dispositivo sh-m08 in qualche modo?

Non credo che ci sia nulla di più da configurare ma non avendo quel modulo (io ho sempre usato solo HC05) non so dirti. Se hai un qualunque programma di esempio con il tuo SH-M08 perché non provi a caricarlo e vedere? Un esempio che lo mette in attesa e una volta connesso ti manda su seriale i caratteri ricevuti da bluetooth penso ci sia...
Io a suo tempo con il HC05 avevo fatto questo come test, se riceve "A" accende il LED, con "a" lo spegne (i test li feci con una piccola app su cellulare):

#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);
  }
}

Ma non avevi detto che il bluetooth di Arduino da PC lo vedevi e lo avevi anche accoppiato? Perché ora dici che non lo trova? E hai quindi caricato quel programma DOPO aver fatto queste cose (ossia il pairing dal PC ad Arduino)?
Ed eventualmente se usassi il cellulare intanto con una app tipo Arduino BT monitor?

@simone91,
l'adattatore bluetooth sul PC dovrebbe averti creato una o più porte seriali virtuali. Di solito è una sola.
Quando i due bluetooth, quello del PC e quello di Arduino, sono accoppiati i caratteri che Arduino manda dovrebbero apparire su una di queste seriali virtuali.

Allora il pc mi vede il Bluetooth e lo associa però il programma "bluetooth serial terminal" non me lo trova... Non so se sto perdendo qualche passaggio...
Adesso ho provato a caricare il tuo programma che presumo dovrebbe andare lostesso anche sul mio modulo: sul monitor seriale adesso leggo "INIT" ma si ferma li.
Per l' app ho IOS e da cosa ho capito non ne esistono...

Per zoomx non ho capito dove trovare questa seriale bluetooth

Aggiorno dicendo che mi sembra che il pc non trovi più il bluetooth! E' possibile che si sia danneggiato?

Ho fatto una prova con una lampada bluetooth che ho e comunica percui mi viene da pensare che si sia veramente danneggiato! Non riesco a darmi altre spiegazioni

Scusa ma se non leggo male, l'SH-M08 è BLE (non Bluetooth "liscio")...
Ma tu hai qualche programma di esempio da usare o no?
Se hai iOS vedi QUI ad esempio.

No in effetti non ho trovato un programma esempio del mio dispositivo in particolare... Adesso guardo subito il tuo link grazie!

Comunque hai proprio ragione non avevo considerato la differenza...

simone91:
Per zoomx non ho capito dove trovare questa seriale bluetooth

Gestione dispositivi, se usi Windows.

docdoc:
Scusa ma se non leggo male, l'SH-M08 è BLE (non Bluetooth "liscio")...
Ma tu hai qualche programma di esempio da usare o no?
Se hai iOS vedi QUI ad esempio.

Ho scaricato l' app e sono riuscito a connettermi grazie mille!!! Unica cosa riesco ad inviare dati dal monitor serial al telefono ma non viceversa... Comunque ho già fatto dei progressi!

Ho trovato un tutorial per eseguire un programmino e controllarlo dall' app... Ho svolto tutti i passaggi come da spiegazione ma non funziona... Vi lascio il link se qualcuno per caso avesse voglia di dare un' occhiata e dirmi dove sia l' errore.

Definisci "non funziona".

Non è che vai dal meccanico e gli dici solo "la macchina non funziona"... :wink: