Frigoduino

En cours de réalisation (Vincent)

Le but de ce projet est de mesurer la température au cours du temps dans un milieu (par exemple un réfrigérateur) et de collecter les données par une liaison sans fil pour ensuite les afficher dans un graphe. J’ai baptisé ce projet Frigoduino.

Nous aurons donc besoin du matériel suivant:

  1. Une carte Arduino, ici la breakout board Adafruit pour Atmega32U, compatible Arduino Leonardo.
  2. Un capteur de température. Nous commencerons par le TMP36 (analogique) mais le but est de passer à une version numérique dans un deuxième temps.
  3. Un module Bluetooth pour la communication sans fil, connecté à l’Arduino. Nous avons retenu le module assez populaire JY-MCU.
  4. Un téléphone Android (ici Samsung Galaxy Spica) pour récupérer les données et les afficher. Celui-ci fournit en effet directement la seconde partie de la liaison sans fil + du stockage et un écran d’affichage. Nous prévoyons d’utiliser le framework SL4A qui permet d’accéder facilement aux API Android depuis un language de script, en l’occurrence Python.

Mesure de température

TBD

Faire fonctionner le JY-MCU

Beaucoup d’informations éparses existent sur le net à propos de ce module. Voici par exemple quelques liens : ici, ou encore là.

Pour le mien (BT_BOARD V1.05, firmware linvor1.5), on y accède en 9600-8-N-1 sans avoir à faire quelque chose de particulier sur la broche STATE. Attention par contre, le module est sensible au timing des caractères : la commande ‘AT’ peut être tapée seule mais les commandes plus longues (comme ‘AT+VERSION’ pour avoir la version de firmware) doivent être copiées-collées pour que le module interprète la commande correctement.

D’autres commandes utiles peuvent être ‘AT+BAUDXXX’ (pour changer la vitesse du port) ou ‘AT+nameXXX’ (pour changer le nom Bluetooth du module, XXX étant son nouveau nom). Notez que le firmware linvor1.5 ne semble pas accepter le changement de rôle du module (‘AT+ROLE’) qui permet normalement de mettre 2 modules en mode auto-connexion lors du démarrage.

Le but ici est d’utiliser la 2ème liaison série du Leonardo pour communiquer avec le module par le biais du moniteur série Arduino. Je vous conseille de partir du sketch d’exemple ‘SerialInput’ et de remplacer les appels à SoftwareSerial par Serial1 (la 2ème liaison du Leonardo). Cela permettra de connecter les 2 liaisons ensemble. Attention aux réglages de fin de ligne du moniteur cependant. J’ai du mettre ‘No newline’ pour que le module réponde bien aux commandes (la plus simple est ‘AT’ et le module répond ‘OK’).

Voici le module connecté (n’oubliez pas : TX Arduino -> RX module et vice-versa):

Arduino Leonardo et JY-MCU

Une fois appairé avec le téléphone (la diode rouge ne clignote alors plus), une app comme BlueTerm vous permet d’utiliser la liaison BT comme un cable série. Les caractères envoyés par BlueTerm doivent apparaître sur votre moniteur et inversement.

En cas de problème, connectez le module à un PC (par exemple avec un cable série Raspberry Pi) et vérifiez que le module répond. Idem pour la 2ème liaison du Leonardo (vous aurez peut-être à fouiller dans hardware/arduino/variants/leonardo/pins_arduino.h).

Récupération des mesures de température

TDB

Laisser un commentaire