Déconnection bluetooth

Bonjour a tous,

je suis en train de réaliser une station météo a base d'un arduino nano (V 3.0) et d'une poignée de composants (un BMP085 pour la pression atmo, quelques DS18b20 pour la température a divers endroits, auxquels je compte ajouter des capteurs de luminosité,d'humidité, une RTC, et puis (soyons fous) par la suite girouette, vitesse du vent et compteur geiger (mais bon, chaque chose en son temps)).
Bref, pour le moment j'ai juste 2 DS18b20, le BMP085 et un module "bluetooth slave" (en provenance d'eBay).

Coté arduino je me contente de lire mes capteurs chacun leur tour puis d'envoyer les valeurs soit sur l'usb, soit via la libraire "newsoftserial" en bluetooth vers mon mac.

Coté mac je récupère les valeurs dans processing, soit via l'usb, soit en bluetooth.

En USB ca se passe assez bien, je reçoit toutes les trames et je fait de "jolie" courbes sans problèmes particuliers.

En Bluetooth au bout d'un temps indéterminé je fini par avoir une déconnection (ça prends entre quelques heures et parfois 2/3 jours), et forcement après il ne se passe plus rien coté mac, alors que mon arduino continue de son coté a "parler tout seul".

J'aimerais trouver un moyen coté arduino et coté "processing" de détecter que la liaison a été coupée, ainsi qu'un moyen de la rétablir.

Salut,

Le bluetooth c'est pas super pour faire des connexions sur le long terme.
Le fait qu'il y ai des déconnexions ne m'étonne pas.

Il doit surement y avoir des moyens coté PC avec la librairie RxTx pour détecter un probléme sur le port série.
Mais la méthode la plus simple c'est encore (je pense) de faire un systéme de timeout qui détecte quand aucune info n'est recu durant un certain intervalle de temps.
En python je pourrai te donner un exemple sans probléme, par contre en java/processing j'ai jamais tenté de faire des lectures non bloquante avec la lib RxTx.

J'ai choisi le BT car c’était le plus simple a mettre en place, mon "serveur" étant déjà équipe tout ça tout ça.

J'ai réalisé mon traceur de courbes en processing parce que j'avais trouvé un programme de départ que j'ai adapté a peu prés a mon besoin, mais en fait j'y connais pas grand chose en processing, je découvre le langage.
Passer en Python si tu me dit que c'est plus facile, ma foi pourquoi pas. Il faut que je trouve quelques exemples de codes qui causent via le port série, et d'autres qui font des dessins.
A partir de ça je devrais me débrouiller.
Du reste processing pour écrire des trucs dans un fichier texte ca a l'air assez chiant. Je cherche toujours un équivalent au fopen("truc.txt",a) de php (pour loger les trames de mon arduino). Si c'est plus simple en python ca me va bien.

MiGaNuTs:
Passer en Python si tu me dit que c'est plus facile, ma foi pourquoi pas. Il faut que je trouve quelques exemples de codes qui causent via le port série, et d'autres qui font des dessins.
A partir de ça je devrais me débrouiller.

Quelques exemples maison :
Pour la gestion de fichier (open, write, ...) : [Arduino/Python/GLCD] Chargement d’image depuis carte SD | Skyduino - Le DIY à la française
Pour la gestion d'un port série : [Test] La GPRS Shield de seeedstudio | Skyduino - Le DIY à la française (requière PySerial)
Pour la gestion d'un graphique / 3D : [Python] IMU 9DOF modifié | Skyduino - Le DIY à la française (requière Vpython)
Pour la gestion d'une connexion réseau (bonus) : [Tutoriel] Arduino et Ethernet Shield | Skyduino - Le DIY à la française

MiGaNuTs:
Du reste processing pour écrire des trucs dans un fichier texte ca a l'air assez chiant. Je cherche toujours un équivalent au fopen("truc.txt",a) de php (pour loger les trames de mon arduino). Si c'est plus simple en python ca me va bien.

C'est vrai qu'en java la gestion de fichiers c'est "un peu" galére : Reading, Writing, and Creating Files (The Java™ Tutorials > Essential Java Classes > Basic I/O)
Avec processing tu as quand même une API plus simple, mais moins complète (voir files -> examples -> Topics -> File IO).

Merci :slight_smile:

Je part en vacances dans quelques heures, j'aurais surement pas trop le temps de regarder de trop pres, mais en attendant j'ai installé python sur mon mac.
Des fois qu'entre 2 descentes et quelques tartiflettes je sache pas quoi quoi faire :slight_smile: