Le Yocto-SDI12 est enfin disponible ! Près de deux ans après nos premiers tests de SDI-12 dans le cadre d'un article sur un système d'irrigation contrôlé, le Yocto-SDI12 est désormais une réalité. Ce module de communication peut être utilisé comme enregistreur de données avec des capteurs utilisant la communication SDI-12, et il peut également interfacer n'importe quel capteur SDI-12 comme s'il s'agissait d'un capteur Yoctopuce.
Qu'est-ce que le SDI-12 ?
Le protocole SDI-12 (Serial Data Interface à 1200 bauds) est un standard de communication utilisé principalement dans les domaines de la mesure environnementale, en particulier en agronomie. Il repose sur un bus à trois fils, qui implémente une interface série fonctionnant à 1200 bauds avec des impédances bien spécifiées. Ce bus permet des transmissions de données multi-points sur de longues distances, comme par exemple dans des serres. Le protocole offre une communication bidirectionnelle entre l'enregistreur de données et les capteurs: l'enregistreur envoie des commandes aux capteurs pour demander des mesures spécifiques, et les capteurs effectuent ces mesures et renvoient le résultat à l'enregistreur.
Les capteurs SDI-12 sont en général alimentés en 12 V, fournis directement sur le bus SDI-12, ce qui simplifie le câblage et l'installation sur le terrain. Le protocole SDI-12 définit un format de message standardisé pour la transmission des données, avec des commandes et des réponses généralement sous forme de chaînes de caractères ASCII.
Pour communiquer en SDI-12, il ne suffit pas simplement de prendre une interface série TTL et de changer les niveaux électriques, car le protocole impose des timings très précis, sans quoi la communication avec les capteurs est interrompue. Mais pour vous simplifier la tâche, le Yocto-SDI12 gère automatiquement pour vous tous ces timings, ainsi que le réveil des capteurs en sommeil avant l'envoi des commandes au capteur.
Le Yocto-SDI12
Le Yocto-SDI12 se présente sous la forme d'un module compact de 60x20mm, avec un bornier à trois fils: la terre (GND), une ligne de data SDI-12 et une sortie 12V pouvant fournir jusqu'à 200mA pour alimenter les capteurs SDI-12 si nécessaire.
Le Yocto-SDI-12
Comme pour toutes nos interfaces électriques digitales, vous pouvez piloter le Yocto-SDI12 directement depuis votre programme. De plus, grâce au système de jobs intégré, le Yocto-SDI12 peut interroger vos capteurs de manière autonome et vous présenter les résultats comme un capteur Yoctopuce, avec tous les avantages qui en découlent : callbacks, enregistreur de données, calibration, etc.
Le Yocto-SDI12 est conçu pour fonctionner comme un maître SDI-12, vous permettant de contrôler plusieurs capteurs SDI-12 avec le même module, pour autant que ces capteurs utilisent bien des adresses SDI-12 différentes. De plus, le module est capable d'analyser une communication SDI-12 entre deux tiers sans influencer la communication, et d'enregistrer séparément les données dans les deux sens.
Fonction API Yoctopuce
Vous trouverez dans les librairies Yoctopuce une nouvelle classe Sdi12Port permettant d'interroger facilement un capteur pour obtenir des informations sur son modèle, les mesures qu'il fournit, lancer des mesures, lire les résultats ou même changer l'adresse du capteur. La librairie supporte les fonctions de discovery avancées introduites dans la version 1.4 du standard SDI-12.
sensorInfo = sdi12Port.getSensorInformation("1");
// Envoie une commande 'M' au capteur et retourne la réponse du capteur
List<double> valSensor = sdi12Port.readSensor("1","M",500);
// Changement d'adresse du capteur
sdi12Port.changeAddress("1","2");
Le Yocto-SDI12 interprète les messages SDI-12 échangés et peut ainsi procéder automatiquement à l'attente du temps nécessaire après l'envoi d'une commande de mesure pour ensuite interroger le capteur et obtenir les valeurs mesurées. Il gère de manière transparente les retransmissions si nécessaires, pour une fiabilité accrue dans des conditions environnementales difficiles.
Conclusion
Le Yocto-SDI12 est une solution facile à mettre en œuvre pour interfacer vos capteurs SDI-12, que ce soit à proximité d'un PC ou non: il vous suffira de le connecter à un YoctoHub pour bénéficier d'une mesure continue sans PC grâce aux jobs Yoctopuce.