bluetooth con autoconnessione

Salve ragazzi piccolo problema: utilizzo un arduino uno al quale è collegato un modulo ht05 e tramite una applicazione realizzata con appinventor comando dei rele.Vengo al problema .... tutte le volte che devo connettermi al modulo devo passare tramite la scelta dei vari dispositivi bluetooth e selezionare il mio h05 che viene riconosciuto e agganciato ma è possibile saltare questo passaggio ed effettuare un aggancio automatico al dispositivo una volta che il cellulare si trova nel raggio del modulo h05?Un po' come funziona con le auto che connettono il cellulare in automatico.

Premetto che la prima volta che ho agganciato il modulo al cellulare ho digitato la password che poi non mi viene piu' richiesta.

Grazie tante a chiunque vorrà darmi qualche dritta

Se per agevolarvi devo aggiungere qualche dettaglio chiedetemi pure...

Perdonatemi ma ho fatto lunghe ricerche e non affiora nulla riguardo a questo problema che non mi sembra sia mai stato trattato nel topic delle schede h05 (vedi pitusso). Non saprei proprio dove documentarmi e purtroppo è un lavoro di cui avrei proprio bisogno.

a prima vista direi che il problma non è legato al modulo ma ad appinvertor.

ora ho dato un'occhiata veloce a questo "linguaggio", magari puoi metterlo nell screen initialize?

Oggi pubblico tutto il possibile.grazie per l'interessamento

Mi sembra chiaro che il problema non è in HC05 dove il nome viene specificato nella configurazione, il problema è solo nell'applicazione del cellulare

Vedi il bt come la seriale, prima attacchi il cavo e poi ti connetti. Ora nella seriale il primo step non lo consideri in quanto è palese che devi fisicamente connettere il cavo, ma nel BT sono due operazioni.

Ora come appinventor gestisca questa cosa non so.

Con androidstudio tranquillamente puoi in un solo click connetterti all'ultimo device usato
E volendo anche senza click mettendo al boot la chiamata a funzione

ragazzi intanto grazie mille stasera (avrò piu' tempo) pubblicherò sia lo sketch arduino e lo shot di appinventor così possiamo centrare meglio il problema.

Salve ragazzi allego lo shot di appinventor e lo skecth di arduino....

#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11);


// imposto i pin per la comunicazione seriale
// Collegare i pin: RX=>11 TX=>10

void setup()
{
  pinMode(2, OUTPUT); //questi sono i pin di ciascun relè
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  digitalWrite(2, HIGH);
  digitalWrite(3, HIGH);
  digitalWrite(4, HIGH);
  digitalWrite(5, HIGH);
  digitalWrite(6, HIGH);
  digitalWrite(7, HIGH);
  digitalWrite(8, HIGH);
  digitalWrite(9, HIGH);
  delay(2000);




  mySerial.begin(9600); // setto la comunicazione seriale
   Serial.println("ok go");  //scrivo sul monitor seriale
   delay(1000);
}


void loop()
  
{
  
  while (mySerial.available())
  {
    char dato = mySerial.read(); // "dato" è il valore che viene ricevuto dalla seriale
    switch (dato)
    {
      case 'A': // Se ricevo la lettera A,
     
        {
          digitalWrite(2, LOW); // attivo il relè collegato al pin12
          mySerial.println("Relè 1 ON");
          break;
        }
      case 'a': // Se ricevo la lettera a
        {
          digitalWrite(2, HIGH); // Spengo il relè
          mySerial.println("Relè 1 OFF");
          break;
        }
      // E così anche di seguito...
      case 'B':
        {
          digitalWrite(3, LOW);
          mySerial.println("Relè 2 ON");
          break;
        }
      case 'b':
        {
          digitalWrite(3, HIGH);
          mySerial.println("Relè 2 OFF");
          break;
        }


      case 'C':
        {
          digitalWrite(4, LOW);
          mySerial.println("Relè 3 ON");
          break;
        }
      case 'c':
        {
          digitalWrite(4, HIGH);
          mySerial.println("Relè 3 OFF");
          break;
        }
      case 'D':
        {
          digitalWrite(5, LOW);
          mySerial.println("Relè 4 ON");
          break;
        }
      case 'd':
        {
          digitalWrite(5, HIGH);
          mySerial.println("Relè 4 OFF");
          break;
        }
      case 'E':
        {
          digitalWrite(6, LOW);
          mySerial.println("Relè 5 ON");
          break;
        }
      case 'e':
        {
          digitalWrite(6, HIGH);
          mySerial.println("Relè 5 OFF");
          break;
        }
      case 'F':
        {
          digitalWrite(7, LOW);
          mySerial.println("Relè 6 ON");
          break;
        }
      case 'f':
        {
          digitalWrite(7, HIGH);
          mySerial.println("Relè 6 OFF");
          break;
        }
      case 'G':
        {
          digitalWrite(8, LOW);
          mySerial.println("Relè 7 ON");
          break;
        }
      case 'g':
        {
          digitalWrite(8, HIGH);
          mySerial.println("Relè 7 OFF");
          break;
        }
      case 'H':
        {
          digitalWrite(9, LOW);
          mySerial.println("Relè 8 ON");
          break;
        }
      case 'h':
        {
          digitalWrite(9, HIGH);
          mySerial.println("Relè 8 OFF");
          break;
        }
    }
  }
}

Mi è venuta l'orticaria :slight_smile:

ho fatto un disastro????

No è l'uso di un approccio grafico al codice che non digerisco :slight_smile:
App inventore fornisce anche il codice scritto a lettere ?

all'avvio (SCREEN1 inizializza) fai uno scan dei bluethoot e ti colleghi se trovi uno il cuo nome corrisponde ad uno di qeulli in cui ti sei collegato in passato. (quindi quando ti colleghi devi salvarti il nome).

non so se questo sistema fornisce un sistema per farlo automagicamente, altrimenti ti devi scrivere la logica.

Ah, e per evitare di bloccare l'inizializzaoizne dello schermo, ovvero rendere irresponsiva la app durante lo scan del bluethoot, dovresti fare la ricerca in un thread a parte oppure usando un approccio ad eventi.

grazie molto lesto ma tutto quello che mi hai scritto prevede una parte di studio che non ho ancora affrontato per ora mi risulta un po' astruso.Ti chiedo una cortesia: sai dove posso studiare queste tematiche (fonti tipo siti,pdf o altro?)
Grazie molte

Ovviamente estendo l'invito a chiunque sia in grado di fornirmi notizie in tal senso.Vi ringrazio anticipatamente

Ok per il momento grazie cercherò di risolverlo e poi lo pubblicherò in modo che sia di aiuto ad altri.Se qualcun altro nel frattempo avesse altre fonti può pubblicarle liberamente.....grazie

abbandona app inventor e' passa ad AndroidStudio, il tempo che userai per impararlo sara' molto meglio speso rispetto al'inventore di app

confermo, appinventor va bene se devi fare una cosa veloce, se no non stare a perdere tempo e prendi in mano l'SDK ufficiale andorid...

grazie ragazzi delle dritte