Save the Rhino

De Wiki de Projets IMA
Révision datée du 15 avril 2014 à 11:53 par Fviolier (discussion | contributions) (Shield DS GPM)

Cahier des charges - Système d’alerte SMS contre le braconnage des rhinocéros

Présentation

Ce projet consiste à concevoir un dispositif capable d'alerter un centre de secours si un animal est reconnu mort. Ils sera utiliser en Afrique du Sud pour prévoir la diminution rapide du nombre de rhinocéros dans le pays, victimes du braconnage. On créera donc un système défini en deux parties :

  • L'une située à l'oreille de l'animal, ayant comme rôle de détecter l'état (vivant ou mort) de l'animal.
  • L'autre accrochée à la jambe de l'animal doit recevoir cette donnée, l'analyser et agir en conséquence. Cette balise devra également transmettre une fois par jour et en cas de mort envoyer la position du rhinocéros.

Cahier des charges

Les différents modules auront pour rôle de :

  • Détecter l'état de l'animal à l'aide d'un capteur de vie
  • Analyser les données du capteur et les transmettre par liaison radio
  • Réceptionner la liaison radio
  • Détecter la position GPS du rhinocéros
  • Envoyer l'état de l'animal ainsi que sa position GPS en temps voulu (une fois par jour et si le capteur de vie indique la mort du rhinocéros), et ce par émission GSM


Dans un sens plus général, le système devra :

  • Se réveiller au moins une fois par jour et lorsque le capteur change d'état. On pourra agir par interruption ou par scrutation.
  • Assurer une durée de vie de deux ans minimum
  • Peser moins de 50kg
  • Résister à une forte pression correspondant au poids d'un rhinocéros


Si les contraintes essentielles sont respectées et que nous disposons du temps nécessaire, nous nous intéresserons aux options suivantes :

  • La fiabilité de la transmission pourra se vérifier grâce à un acknowledge ou un code correcteur
  • Un détecteur de brouilleur pourra être mis en place.
  • Un système d’alimentation du capteur de vie devra être proposé.
  • Un système de détection de batterie faible pourra s’avérer utile pour prévenir de l'arrêt du système. Une batterie de secours pourra également être intégrée pour continuer à émettre en cas de dysfonctionnement de la batterie principale, ou retard dans le processus de changement de celle-ci.

Ressources nécessaires

Pour répondre aux besoins principals du projet, nous devrons disposer de :

  • Carte Arduino Uno ou Méga en fonction des besoins en liaisons d'entrées sorties des modules : GPS... -reçu
  • Module GPS (compatible Arduino) -reçu
  • Module GSM (compatible Arduino) -reçu
  • Real Time Clock -reçue
  • Emetteur, Recepteur 433MHz (TR3000 (RFM)) -reçu
  • Voltmètre - disponible

Ressources optionnel

Si nous pouvons entretenir le projet jusqu'au bout, nous pourrons utiliser :

  • Capteur de vie
  • Panneau solaire
  • Batterie capteur
  • Batterie Arduino (grosse capacité)
  • Accéléromètre
  • Coque de protection (test de qualité de transmission et de pression)

Méthodologie envisagée

Afin de répondre à ce cahier des charges, nous avons opter pour une séparation des différents modules. Nous travaillerons donc chacun d'entre eux séparément, puis nous adapterons les modules les uns par rapport aux autres. Il existe 5 parties différents du système à traiter :

  1. Le capteur de vie (dont nous ne disposerons peut être pas avant la fin du projet)
  2. La transmission radio
  3. La détection de la position GPS
  4. L'envoi de messages
  5. Le réveil du système sur interruption de la RTC

Shield DS GPM

Le shield DS GPM possède environ 110 registres contenant des informations telles que la date ou l'heure mais surtout la position détectée par une puce GPS située dans le shield. Afin de récupérer les données, on utilisera le protocole I2C programmé en C pour plus de légèreté.

Shield GSM Arduino

Le développement de la librairie lié au shield arduino a pris une très grande part du temps alloué au projet. La développement a pris fin lors de la 7e semaine de projet.

Pour son développement, j'ai d'abord étudié les codes développés par Bastien Challo lors de son projet "Site Web par SMS". Cependant, ce code étant écrit en code Arduino. J'ai choisi de réécrire ce code en C.

Après avoir écris un code équivalent en C, je me suis heurté à un problème de communication avec le shield. En effet, celui-ci ne répondait pas à mes instructions.

Un Code Arduino était disponible avec le shield, mais celui-ci nécessité 15Ko de mémoire pour son implantation. Ce qui n'était pas envisageable pour notre projet, le shield GSM étant une fonctionnalité parmi d'autre, sacrifier 15ko de mémoire dés le début du projet n'était pas envisageable.

J'ai donc, à partir de la essayé de comprendre le fonctionnement du code Arduino, pour le retranscrire en C, et économiser de l'espace mémoire. Les très nombreuses librairies utilisé pour la gestion du shield ne m'ont pas facilité la tâche.

Après de nombreuses heures de rechercher et d'étude du code, et le temps avant le rendu du projet s'écoulant très rapidement. Il nous a été fourni un Arduino Méga, ainsi nous n'avions plus de problème d'espace mémoire, et pouvions coder en Arduino.

Dans le même temps, un camarade m'a proposé d'utiliser son Dongle USB permettant d'extraire la liaison série du port USB. Cet outil m'a permis de communiquer directement avec le shield GSM, mais aussi de récupérer les instructions écrite par le shield arduino sur le port de communication du shield.