Communication Capteur Température - Bluetooth - Smartphone

Actuellement en terminale SSI, je dois rendre un projet.
Celui ci consiste en un robot autonome mesurant la température grâce a son capteur de température et d’envoyer cette mesure à un smartphone par un module bluetooth.
Ma partie individuelle consiste en la communication de cette information entre le robot et le smarthpone.

Je vous joins ici la programmation et l’interface de mon application réalisé sur MIT App Inventor2:

Cette application est censé afficher la température sur le label mais cela ne fonctionne pas.
Soit j’ai une multitude de symbole incompréhensible à la place du zéro soit rien ne change.

Je vous montre le programme du capteur seul de base qui me donne la température en continu sur le moniteur Arduino:

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

analogReference(INTERNAL) ;
}

void loop()
{

int valeur_brute = analogRead(A5);

float temperature_celcius = valeur_brute * (10.0 / 1023.0 * 10.0);

Serial.println(temperature_celcius);
delay(250) ;
}

Je vous montre maintenant le programme une fois modifié pour pouvoir se connecter au module bluetooth et envoyer l’information au smartphone:

#include <SoftwareSerial.h>
int Rx = 0;
int Tx = 1;
int tempBrute = 0;
float tempCelcius = 0.0;

SoftwareSerial BT(Rx, Tx); // (RX, TX) (pin Rx BT, pin Tx BT)

void setup()
{
Serial.begin(9600);
// Ouvre la voie série avec le module BT
BT.begin(9600);

analogReference(INTERNAL);
pinMode(Tx, OUTPUT);
pinMode(Rx, INPUT);

}

void loop() // en boucle
{
tempBrute = analogRead(A5);
tempCelcius = tempBrute * (10.0 / 1023.0 * 10.0);

BT.print(tempCelcius);
BT.println("|");

delay(1000);
}

J’ai renommé des noms entre temps.
J’inclus une bibliothèque qui permet la communication entre le smarthpone et le module nommé SoftwareSerial.
La communication ne marche pas, la température ne s’affiche pas et je ne vois pas d’ou proviens le problème, merci a la communauté de bien vouloir m’aider c’est pour mon bac j’ai grandement besoin d’aide.
Merci de me répondre.
Voici mon mail ou je suis beaucoup plus disponible: brasselet.kenzo@orange.fr
Ou mon numéro de téléphone: 0750451343
N’hésitez pas.

Salut,

Je ne connais pas la programmation par blocks donc je sais pas t'aider mais le problème pourrait venir de là aussi vu que tu n'as pas accès à la partie programmation.

Quel est la version de ton module BT HC05, HC06 ?

Sais tu communiquer avec le module en employant les commandes AT ? Si pas, il peut s'agir d'un problème de baudrate entre ton module BT et la board arduino ;).

Tu utilises Software serial sur les broches du Serial de la carte. Ca ne peut pas marcher.

Soit tu utilises software serial sur d'autres broches, soit tu utilises le Serial de la carte mais tu ne peux pas brancher ta carte sur un ordinateur.

renaudyes:
Salut,

Je ne connais pas la programmation par blocks donc je sais pas t'aider mais le problème pourrait venir de là aussi vu que tu n'as pas accès à la partie programmation.

Quel est la version de ton module BT HC05, HC06 ?

Sais tu communiquer avec le module en employant les commandes AT ? Si pas, il peut s'agir d'un problème de baudrate entre ton module BT et la board arduino ;).

Salut, c'est un module HC05. J'ai un programme de base qui me permet de me connecter au smartphone. Mon probleme est plutot que je ne reçois pas la température sur le smartphone.

Jambe:
Tu utilises Software serial sur les broches du Serial de la carte. Ca ne peut pas marcher.

Soit tu utilises software serial sur d’autres broches, soit tu utilises le Serial de la carte mais tu ne peux pas brancher ta carte sur un ordinateur.

Je ne comprends pas vraiment, je débute en arduino, pouvez vous m’expliquez plus en profondeur ce que je dois faire ?
Actuellement j’ai un shield sur ma carte pour pouvoir y connecter les capteurs de température et d’obstacle donc beaucoup de broches sont prises mais il reste de la place.

Il dit que tu dois pas utiliser cette classe "software serial"(Arduino - SoftwareSerial)

Mais plutôt la classe "Serial" qui est déjà faite pour toi : Serial - Arduino Reference

J’ai bien compris que tu ne recevais rien sur ton smartphone. Je te recommande aussi cette lecture qui te permettra d'avancer ( regarde l'étape 4 "setting up the connection") : http://www.instructables.com/id/AT-command-mode-of-HC-05-Bluetooth-module/

Tu comprendras par la suite que pour que ton arduino et ton module bluetooth puissent fonctionner correctement, il faut que leurs baudrate soient égale.

C'est en anglais je ne suis pas sur de tout comprendre, cela aurait été plus simple si quelqu'un m'aurait écrit le code, mais merci de votre aide.

renaudyes:
Il dit que tu dois pas utiliser cette classe "software serial"(Arduino - SoftwareSerial)

Mais plutôt la classe "Serial" qui est déjà faite pour toi : Serial - Arduino Reference

Pas tout a fait, je dis que Software Serial et Serial ne peuvent pas cohabiter sur les mêmes broches.

Soit il change les broches de SoftwareSerial s'il en reste de dispo. Soit il utilise uniquement Serial, mais il pourra plus communiquer avec un PC.

kenzo:
cela aurait été plus simple si quelqu'un m'aurait écrit le code,

C'est pas la philosophie de ce forum, encore moins pour les projets scolaire

Jambe:
Pas tout a fait, je dis que Software Serial et Serial ne peuvent pas cohabiter sur les mêmes broches.

Soit il change les broches de SoftwareSerial s'il en reste de dispo. Soit il utilise uniquement Serial, mais il pourra plus communiquer avec un PC.

C'est pas la philosophie de ce forum, encore moins pour les projets scolaire

Je sais bien, mais j'aurais aimé plus d'aide que "fais ça" alors que je ne sais même pas en quoi cela consiste

Pouvez-vous m'expliquer la différence entre software serial et serial tout court et lequel suis-je censé utiliser ?

Essaie de faire un effort quand même, tu attends un peu que la solution te tombe dessus.

Cherches un peu par toi même ce qu'est une communication serie.

Je t'ai en plus deja dit pourquoi ca marche pas. Tu as un conflit entre software serial et Serial.

Pour essayer d'avancer: Est ce que la carte Arduino sera branchée en usb pour dialoguer avec un PC? Ou juste avec le smartphone en bluetooh?

Jambe:
Essaie de faire un effort quand même, tu attends un peu que la solution te tombe dessus.

Cherches un peu par toi même ce qu'est une communication serie.

Je t'ai en plus deja dit pourquoi ca marche pas. Tu as un conflit entre software serial et Serial.

Pour essayer d'avancer: Est ce que la carte Arduino sera branchée en usb pour dialoguer avec un PC? Ou juste avec le smartphone en bluetooh?

Disons que je passe mon bac dans moins d'une semaine donc oui j'aimerais qu'elle tombe du ciel, nous étions 3 de base je ne suis plus que tout seul a m'occuper de la proggrammation du capteur de température, des moteurs, du shield, de la confection du chassis et de la coque, des leds suiveurs de ligne et du capteur infrarouge. Il ne manque plus que l'application et je suis débordé.
Voila une simple anecdote au cas ou.

Et la carte arduino n'est connecté qu'au smartphone via bluetooth.

Je ne sais pas ce qu'est un software serial et un serial.

Cela vas faire 3 jours entiers que j'essaie des choses je suis en train de perdre tout de mes programmes initiaux et mon robot ne fonctionne toujours pas, pardonnez mon impatience mais je suis un peu desespéré

Pour faire simple,

Serial, c’est de la communication série qui utilise 2 fils (+ un 3eme pour mettre les GND en commun).

Ce qu’il faut savoir c’est que Serial, c’est une voie matérielle, c’est a dire qu’il y a des composant dédié pour ça, et le micro-contrôleur de la uno le gère très bien indépendamment de ce que peux faire le programme pendant ce temps la.

Il y a un fil pour la Réception de donnée, sur une uno c’est la broche 0, dite RX
Il y a un fil pour la Transmission (émission) de donnée, sur une uno c’est la broche 1 dite TX.

Pour que ça fonctionne bien, il faut croiser les fils avec le module avec qui la uno “parle”, donc RX de la uno sur TX du module et TX uno sur RX du module.

Par contre, la voie série ne permet le dialogue uniquement entre 2 participants.

C’est la qu’intervient Software Serial, comme la uno n’a qu’un seul port serie, si tu as plusieurs modules a qui causer, tu peux “émuler” une voie série de façon logicielle. L’avantage de cette librairie, c’est qu’elle reprend les même fonctions de la classe Serial.

Par contre, les broches 0 et 1 sont réservé pour la voie série matérielle, donc tu ne peux pas dans ton code, demander a Software Serial d’utiliser les broches 0 et 1, et c’est ce que tu fais, en plus de démarrer le Série matériel.

Dans ton code, soit tu garde le Software serial et donc dans ton code.

#include <SoftwareSerial.h>
int Rx = 0;
int Tx = 1;

Redéfini des pins qui sont libre et change les 2 lignes ci dessus. Adapte le câblage aussi en conséquence.

SI tu as plus d’autre pin dispo dans ce cas faudra adapter le code