controllare accensione led via bluetooth

ho appena provato a fare il pairing con il cell e il led lampeggia lentamente, segno che funziona.
pero' adesso mi serve un esempio da seguire per accende un led via cellulare(android).
grazie.

Ciao, anch'io avevo ordinato il tuo stesso modulo, ma più di una settimana e mezza fa e anche a me è arrivato oggi... Tu hai già fatto qualcosa?

ciao maggio93, allora oggi ho saldato tutto, ho provato prima a vedere con il cell il modulo bluetooth per verificare il suo funzionamento.
adesso ho installato amarino su android, ho provato a fare il pairing e funziona pero' non so come accendere e spegnere un led con amarino.
se trovi qualcosa fammelo sapere!!+caio

Cerca il topic di Pitusso che si chiama Guida moduli Bluetooth, piu' o meno.

ha scritto delle guide molto ben fatte, e ci sono stati molti interventi, io ho aggiunto i test eseguiti sull'ultima versione, la HC-07, dalla foto non si capisce che modulo e', se hai una versione programmabile puoi anche modificarlo in master

eccolo qui, scusami per il ritardo, il BT va collegato sulla seriale hardaware di arduino e il micro non va alimentato tramite USB sennò non funziona.

                                                const int BuzzerPin = 5;    // Pin en el que se conecta el vibrador 
 const int LedPin1 = 6;      // Pin en el que se conecta el LED 1 
 const int LedPin2 = 7;      // Pin en el que se conecta el LED 2
 const int LedPin3 = 8;      // Pin en el que se conecta el LED 3
 const int LedPin4 = 9;      // Pin en el que se conecta el LED 4
 const int LedPin5 = 10;     // Pin en el que se conecta el LED 5
 const int LedPin6 = 11;     // Pin en el que se conecta el LED 6
 const int LedPin7 = 12;     // Pin en el que se conecta el LED 7
 const int LedPin8 = 13;     // Pin en el que se conecta el LED 8
      
 void setup()
 {
   // configura la comunicacion serie:
   Serial.begin(9600);
   // configura los pines de los leds y buzzer como salida:
   pinMode(BuzzerPin, OUTPUT);
   pinMode(LedPin1, OUTPUT);
   pinMode(LedPin2, OUTPUT);
   pinMode(LedPin3, OUTPUT);
   pinMode(LedPin4, OUTPUT);
   pinMode(LedPin5, OUTPUT);
   pinMode(LedPin6, OUTPUT);
   pinMode(LedPin7, OUTPUT);
   pinMode(LedPin8, OUTPUT);
 }

 void loop() {
   byte dato;
   char* mensaje;

   // mira si se ha recibido algo del puerto serie:
   if (Serial.available()) {
     // lee el ultimo byte recibido (valor entre 0 y 255)
     dato=Serial.read();
     switch(dato){
       case 113: // q
         digitalWrite(LedPin1, HIGH);   // enciende el LED 1
         mensaje="LED 1 Encendido";
         break;
       case 97: // a
         digitalWrite(LedPin1, LOW);   // apaga el LED 1
         mensaje="LED 1 Apagado";
         break;
       case 119: // w
         digitalWrite(LedPin2, HIGH);   //  enciende el LED 2
         mensaje="LED 2 Encendido";
         break;
       case 115: //s
         digitalWrite(LedPin2, LOW);   // apaga el LED 2
         mensaje="LED 2 Apagado";
         break;
       case 101: // e
         digitalWrite(LedPin3, HIGH);   //  enciende el LED 3
         mensaje="LED 3 Encendido";
         break;
       case 100: // d
         digitalWrite(LedPin3, LOW);   // apaga el LED 3
         mensaje="LED 3 Apagado";
         break;
       case 114: // r  
         digitalWrite(LedPin4, HIGH);   //  enciende el LED 4
         mensaje="LED 4 Encendido";
         break;
       case 102: // f
         digitalWrite(LedPin4, LOW);   // apaga el LED 4
         mensaje="LED 4 Apagado";
         break;
       case 116: // t
         digitalWrite(LedPin5, HIGH);   //  enciende el LED 5
         mensaje="LED 5 Encendido";
         break;
       case 103: // g
         digitalWrite(LedPin5, LOW);   // apaga el LED 5
         mensaje="LED 5 Apagado";
         break;
       case 121: // y
         digitalWrite(LedPin6, HIGH);   // enciende el LED 6
         mensaje="LED 6 Encendido";
         break;
       case 104: // h
         digitalWrite(LedPin6, LOW);   // apaga el LED 6
         mensaje="LED 6 Apagado";
         break;
       case 117: // u
         digitalWrite(LedPin7, HIGH);   // enciende el LED 7
         mensaje="LED 7 Encendido";
         break;
       case 106: //j
         digitalWrite(LedPin7, LOW);   // apaga el LED 7
         mensaje="LED 7 Apagado";
         break;
        case 105: // i
         digitalWrite(LedPin8, HIGH);   // enciende el LED 8
         mensaje="LED 8 Encendido";
         break;
       case 107: // k
         digitalWrite(LedPin8, LOW);   // apaga el LED 8
         mensaje="LED 8 Apagado";
         break; 
      case 122: // z 
         digitalWrite(LedPin1, HIGH);   // enciende TODOS los LEDs
         digitalWrite(LedPin2, HIGH);
         digitalWrite(LedPin3, HIGH);
         digitalWrite(LedPin4, HIGH);
         digitalWrite(LedPin5, HIGH);
         digitalWrite(LedPin6, HIGH);
         digitalWrite(LedPin7, HIGH);
         digitalWrite(LedPin8, HIGH);
         mensaje="TODOS los LEDs Encendidos";
         break;
       case 109: // m
         digitalWrite(LedPin1, LOW);   // apaga TODOS los LEDs
         digitalWrite(LedPin2, LOW);   
         digitalWrite(LedPin3, LOW);  
         digitalWrite(LedPin4, LOW);   
         digitalWrite(LedPin5, LOW);  
         digitalWrite(LedPin6, LOW);  
         digitalWrite(LedPin7, LOW);  
         digitalWrite(LedPin8, LOW);   
         mensaje="TODOS los LEDs Apagados";
         break;
       default:
         Serial.print(dato);
         Serial.print(": ");
         mensaje="Tecla no admitida !";
         digitalWrite(BuzzerPin, HIGH);
         delay(200);
         digitalWrite(BuzzerPin, LOW);
         delay(200);
     }
     // Emite un pitido
     digitalWrite(BuzzerPin, HIGH);
     delay(200);
     digitalWrite(BuzzerPin, LOW);
     // Envia respuesta
     Serial.println(mensaje);
   }
 }

Ciao,

dalla foto non si capisce che modulo e'

leggendo pure la descrizione, dovrebbe essere un HC-05 :slight_smile:

Se vuoi provare un'alternativa, giusto per iniziare, un poco più semplice, puoi:

Ti giro link di questa gallery, ci sono una serie di screenshot sequenziali (che finiranno in un tutorial accodato ai precedenti) relativi alla creazione di una app base :
https://picasaweb.google.com/101137849928958778147/BasicAppInventorAppForArduinoWithBTModule?authuser=0&feat=directlink

Qui il codice Arduino da utilizzare con quella app:

#include <SoftwareSerial.h>     //IDE >= 1.0
//#include <NewSoftSerial.h>    //IDE <= 0023

const int rxPin = 2;
const int txPin = 3;
const int ledPin = 13;
byte btval = 0;

SoftwareSerial bluetooth(rxPin, txPin);  //IDE >= 1.0
//NewSoftSerial bluetooth(rxPin, txPin);   //IDE <= 0023

void setup() {
  
  Serial.begin(9600);
  bluetooth.begin(9600);

  pinMode(ledPin,OUTPUT);
}

  
void loop() {

  if (bluetooth.available()) {  
    btval = bluetooth.read();
    if (btval == 1) {
       digitalWrite(ledPin, HIGH);
    } else {
        digitalWrite(ledPin, LOW);
    }
  }
}

Di seguito print screen dell'emulatore con la banale applicazione in funzione:

Come puoi vedere nulla di complesso, con la speranza che sia comprensibile a tutti.

grazie ratto lo provero' quando scarichero blueterm sul mio cell perche' adesso non ho internet.
grazie anche pitusso, pero' io non so' come fare delle app. per l'app scaricare l'app di cui mi hai parlato cui sopra come faccio??

Ciao

pero' io non so' come fare delle app. per l'app scaricare l'app di cui mi hai parlato cui sopra come faccio??

quella app base è fatta con AppInventor, come già detto.
Le immagini nella galleria picasa, che ti avevo linkato nel mio precedente post, sono una serie di passaggi atti a realizzare proprio quell'applicazione.
Una volta pronta si può scaricare su smartphone in vari modi, uno di questi è usando un qrcode - che altro non fa che passare al telefono una url dove recuperare la app.

ciao
ho scaricato blueterm, ho caricato lo sketch passatomi da ratto93.
su blueterm faccio connect device e si connete al mio modulo bluetooth, pero' non capisco perche' non riesco a controllare niente via bluetooth.
ho provato a scrivere sul serialmonitor le varie lettere per accendere e spegnere il led e si accende e si spegne il led, pero' non ricevo niente sul cellulare.anche quando provo a mandare la lettera dal blueterm, arduino non riceve niente.
mi potete speigare come devo fare per favore?
e se ci sono altri sketch per provare con blueterm.

ciao, continuando con le mie prove nel tentativo di accendere il led 13 via bluetooth usando blueterm, sono giuto al punto che usando lo sketch qui sotto carico il codice, connetto il cellulare al modulo bluetooth(e fin qui funziona tutto), apro il serial monitor, quando scrivo sul serial monitor a il led 13 si accende e su blueterm mi compre scritto "Arduino Led On" e fin qui tutto bene.
il problema che non riesco ad accendere il led usando il cell(con blueterm), non capisco perche' e come fare.
per favore potete darmi una mano??!
grazie.

 void setup(){
  //make sure your bluesmirf module is
  //configured at 115200 baudrate setting
  Serial.begin(9600);
  //let's test arduino led
  pinMode(13, OUTPUT);
}

void loop(){
  if(Serial.available()){
    //read first characer received
    unsigned char charreceived = Serial.read();
    
    switch(charreceived){
      case 'a':
        digitalWrite(13, HIGH);
        Serial.println("Arduino Led On");
        break;
      case 'b':
        digitalWrite(13, LOW);
        Serial.println("Arduino Led Off");
        break;
      default:
        break;
    }
    
    //flush remaining characters
    //we only want first character
    Serial.flush();
  }
  delay(10);
}

Ciao

ma il modulo bluetooth è collegato sempre ai PIN 0 e 1 (seriale hw) di Arduino?

si é. collegato alla seriale hw. in un altro sketch che ho provato cera l'uso della. seriale sw solo che non mi funziona niente. ci sono suggerimenti?

Il consiglio è di usare due seriali:

  • quella hw per il dialogo con il PC (debug...)
  • una software per il dialogo con il modulo

così puoi stampare su seriale hw i vari dati che ricevi e capire cosa non va...

in che senso, mi puoi spiegare meglio?!

usi SoftSerial per dialogare con il modulo bluetooth su due pin diversi (es. 2-3) da quelli della seriale hw

penso di aver gia' provato usando la newsoftderial pero' non cambia niente.
oggi ho ripravato a usare il programma che ti ho elencato sopra, solo che questa quando scrivo sul serialmonitor mi compare solo sul serialmonitor e su blueterm no.
non capisco se devo impostare qualcosa nel modulo bluetooth via codice.
mi serve un aiutino.
ciao

ciao

purtroppo non ho il tuo modulo bt quindi non so aiutarti sulla fase di inizializzazione... ma lato smartphone riesci a vederlo e a collegarti (associazione + collegamento via Blueterm)?

si riesco a collegarmi, fino a ieri riuscivo a leggere cio' che venivavo scritto su serial monitor lo vedevo su blueterm.

e cosa è cambiato da ieri ad oggi? sketch? collegamenti?

Lo sketch nel post di Pitusso (controllare accensione led via bluetooth - #10 by pictux - Generale - Arduino Forum) usa già la SoftSerial.
Hai modificato i collegamenti come indicato?