j'utilise arduino depuis peu, avec un module bluetooth HC-05 qui s'apparie avec une tablette android.
Je suis en train de réaliser une alarme anti fuite d'eau: arduino envoie sur la tablette un message que je reçois parfaitement à l'aide d'une appli "Bluetooth Terminal". J'aimerai maintenant que cette tablette émette un son à la réception des messages.
J'ai essayé la fonction Serial.write (007,BYTE) car en ascii, 007 correspond à BELL... mais ça ne fonctionne pas...
Ma question est peut être très bête mais je débute... est ce qu'un terminal qui est la pour écrire une chaîne de caractères comprend cette ligne de commande???
Quelqu'un pourrait-il me conseiller ? Il faut peut être une autre appli , ou un autre commande?
Avez vous besoin de mon sketch pour me répondre?
Je remercie ceux qui prendront un peu de leur temps pour me débloquer....
Je ne c'est pas si les tablettes comprenne cette commande mais si tu à besoin de crée une application il y a App Inventor 2 très simple à utiliser et il y'a beaucoup de tutoriel sur internet.
visiblement mon explication n'est pas claire..; voici donc mon sketch:
#define detecteur 6 //indication des pin utilisés #define LED 13 #define Buzzer 4 int goutte; // variable de détection des gouttes long nombregoutte; // variable de comptage et mémorisation de la dernière valeur de milli utilisée
Serial.begin(9600); // initialise connexion série à 9600 bauds // IMPORTANT : régler le terminal côté PC avec la même valeur de transmission
// ------- Initialisation des variables utilisées ------- pinMode(LED, OUTPUT);// la led est une sortie pinMode(Buzzer, OUTPUT);// le buzzer est une sortie pinMode(detecteur, INPUT);// le detecteur est une entrée digitalWrite(LED,LOW);// au départ, la led est éteinte digitalWrite(Buzzer,LOW);// au départ, le buzzer est éteint nombregoutte=0;// au départ, le nombre de gouttes est égal à 0
} // fin de la fonction setup()
// la fonction loop() s'exécute sans fin en boucle aussi longtemps que l'Arduino est sous tension
void loop(){ // debut de la fonction loop() int goutte = digitalRead(detecteur);// la détection de gouute est une entrée numérique
if (goutte==LOW)// si une goutte tombe, le transistor est saturé, donc pin6 état bas { nombregoutte++; // incrémente le comptage des gouttes delay(300);// attend 0.3s pour éviter un rebond //Serial.print(" Nommbre de gouttes: ");//imprime " " // Serial.println(nombregoutte);// imprime " nombre de goutte" et passe à la ligne if (nombregoutte<=2) // si le nombre de goutte est inférieur ou égal à 2 {digitalWrite(LED, HIGH);// allume la del delay(500); // attend 0.5s digitalWrite(LED, LOW);// éteind la del } if(nombregoutte>2 && nombregoutte<=4) // si le nombre de gouttes est 3 ou 4 {digitalWrite(Buzzer, HIGH);// fait marcher le buzzer delay(500);// pendant 0.5s digitalWrite(Buzzer, LOW);// arrete le buzzer } if(nombregoutte==5) // si le nombre de gouttes est 5 { Serial.write (0x0c);// efface la ligne précédente Serial.write (0x7);// emet un signal sonore delay(300); Serial.print(" attention fuite ! ");//imprime " " delay(500);// attend 0.5s } if(nombregoutte==7) { Serial.write (0x0c);// efface la ligne précédente Serial.print(" Va fermer le robinet ! "); delay(500);// attend 0.5s } if(nombregoutte==10) { Serial.write (0x0c);// efface la ligne précédente Serial.print(" Tu as gaspillé 1,12 mL ! "); delay(500);// attend 0.5s } } }
La commande Serial.write(0x0c) fonctionne bien mais pas la Serial.write(0x7)....
Côté android j'ai chargé une appli bluetooth notifier mais elle n'emet aucun signal sonore...
alors pour commencer, je sais pas ce que t'as voulu faire avec tes envois de caractères, mais ça ne peut pas marcher comme ça.
le fait que ton arduino envoie des trucs à la tablette, OK.
mais que ce soit l'arduino qui commande la tablette, pour moi c'est une erreur.
je m'explique: si tu dois avoir une arduino qui communique avec une tablette, tu dois faire les deux programmes. ou utiliser un programme sur ta tablette qui fait les fonctionnalités que tu attends, à savoir relayer un message et une (ou plusieurs) sonnerie(s).
parce qu'utiliser des valeurs de caractères envoyés dans une liaison série (qui seront donc même pas lus pour être exécutés une fois arrivés sur l'objet android), ça ne peut pas marcher.
à moins que la doc de l'appli que tu tuilise existe, est complete à ce niveau-là, et à ce moment-là y'a plus qu'à lire pour savoir quoi envoyer.
cette commande (Serial.write (0x0c);// efface la ligne précédente) était donnée par le terminal série du l'android pour effacer son écran.
J'ai donc téléchargé App inventor et suis en train de "l'apprivoiser": je vais donc créer un programme sur l'appli qui , a la réception va faire biper la tablette et aussi afficher le message.
Comment faire biper un terminal bluetooth?
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
oui. non. enfin je regarde et je te dis.
oui. non. enfin je regarde et je te dis.