Interface capteurs météo DEV pour microbit et Arduino
Cette platine (livrée en kit) est spécialement conçue pour pouvoir raccorder très facilement un capteur anémomètre, un capteur pluviomètre et une girouette (non livrés) sur une carte arduino, une carte micro:bit ou une carte d'interface au standard Grove.
La platine de cette interface intègre 2 connecteurs RJ11 destinés à recevoir les cordons des différents capteurs météo. Des résistances de tirage sont également présentes pour permettre de générer des signaux numériques pour les capteurs pluviomètre et anémomètre ou une tension analogique pour le capteur girouette. L'interface s'assemble très rapidement (il vous faudra simplement souder les 2 connecteurs RJ11 et les 3 résistances). Dans sa version de base, l'interface est directement compatible avec la carte micro:bit.
Pour utiliser cette interface en tant que shield sur une carte arduino, il vous faudra souder 2 connecteurs supplémentaires.
Pour utiliser cette interface pour un raccordement sur les platines au format Grove, il vous faudra souder un jeu de connecteurs Grove.
Configuration de la carte en fonction du type de capteur météo utilisé:
La première opération de câblage à réaliser sur la carte va consister à positionner 2 straps aux emplacements A et B en fonction du modèle de girouette et anémomètre utilisés. Vous pourrez concevoir ces straps à l'aide des queues de résistances qu'il vous faudra couper.
Assemblage de la platine pour une utilisation sur une carte micro:bit:
Soudez en premier lieu la résistance centrale (les 2 autres résistances ne seront pas utilisées). Soudez ensuite les 2 connecteurs RJ11.
Les signaux des différents capteurs sont accessibles sur les broches avec les grosses pastilles en haut de la platine. Afin de pouvoir utiliser l'interface avec une carte micro:bit, il vous faudra relier celle-ci avec des cordons dotés de pinces crocodiles aux 2 extrémités (ces cordons ne sont pas livrés, nous les proposons en option en haut à droite de cette page).
Le connecteur RJ11 de gauche permet de recevoir au choix les capteurs pluviomètres LEXCA001 ou LEXCA009. Le connecteur RJ11 de droite est prévu pour recevoir un couple de capteurs anémomètre + girouette (LEXCA002+ LEXCA003) ou l'ensemble LEXCA007. Attention le connecteur RJ11 de droite ne peut pas recevoir un capteur anémomètre seul ou un capteur girouette seul... mais uniquement un couple de capteurs (anémomètre + girouette : dans cette configuration le cordon de la girouette devra être raccordé sur l'anémomètre et seul le cordon de l'anémomètre (qui véhicule les signaux des 2 capteurs) sera à relier sur le connecteur RJ11. La platine est également compatible avec les capteurs de la station météo SEN-08942 ou LEXCA008.
Exemple d'application de la girouette avec une carte micro:bit:
Les girouettes que nous proposons en option en haut à droite de la page disposent d'une résistance interne dont la valeur change en fonction de la direction du vent. Selon le modèle de capteur, ce dernier générera 8 ou 16 valeurs de résistances différentes (pour différencier 8 ou 16 positions différentes). L'exemple ci-dessous se limite à l'exploitation de 8 positions différentes. Il vous permettra d'afficher en temps réel sur la matrice à led de la carte micro:bit la direction du vent retournée par la girouette par l'intermédiaire d'une petite flèche qui symbolisera la flèche de la girouette.
Pour ce faire il vous suffira de réaliser le montage ci-dessous.
La première opération va consister à récupérer les valeurs des résistances retournées par la girouette pour chacune des 8 positions de sa flèche: N - NE - E - SE - S - SO - O - NO. De part la présence d'une résistance de tirage sur la platine d'interface (faisant office de pont diviseur), on récupérera en fait des valeurs de tension différentes pour chaque position de la flèche du capteur. Pour récupérer les valeurs de ses tensions, nous utilisons un programme écrit en Python qui affiche dans le moniteur série de l'éditeur les valeurs analogiques lues sur le port P1 de la carte micro:bit. Pensez à cliquer sur le bouton "Open Serial" après avoir chargé le programme dans la carte micro:bit pour que les valeurs s'affichent dans le moniteur de l'éditeur. Vous trouverez le programme source ci-dessous.
from microbit import *
while True:
girouette = pin1.read_analog()
print(girouette)
sle ep(1000)
Dans notre cas, nous avons relevé les valeurs suivantes (ces valeurs peuvent être différentes selon le type de girouette utilisée et de par la tolérance ou la valeur des résistances de tirage de l'interface Grove-Arduino-micro:bit):
N = 871 - NE = 805 - E = 915 - SE = 851 - S = 927 - SO = 780 - O = 832 - NO = 741
La suite de l'application sera développée sous l'éditeur graphique Makecode.
Elle consistera à récupérer la valeur analogique sur le port P1 de la carte micro:bit et à faire une suite de tests sur cette valeur pour en déterminer la position de la flèche de la girouette et à en afficher la position représentative sur la matrice à led de la carte micro:bit.
Ainsi pour repérer la position "Nord" de la flèche de la girouette, on testera si la valeur analogique lue est < à 880 et > à 860. Si tel est le cas on affichera le symbole d'une flèche "droite vers le nord". La valeur que nous avions lue avec le programme Python pour la position nord était de 871. Cette position sera donc bien interprétée comme la position nord par notre programme. Nous avons pris soin de faire un test sur une plage 680 à 880 assez grande afin de s'affranchir des possibles variations de la valeur lue suite aux tolérances des résistances et autres fluctuations du convertisseur.
7 autres tests similaires seront également présents dans le programme pour valider les 7 autres positions de la flèche.
Une fois le programme chargé dans la carte micro:bit il vous suffira de faire tourner la girouette et de regarder la matrice de la carte micro:bit dont la flèche devra suivre celle de la girouette.
Cliquez sur l'image ci-dessus pour avoir accès à au programme sous Makecode.
Exemple d'application du pluviomètre avec une carte micro:bit:
Les pluviomètres que nous proposons en option en haut à droite de la page ferment momentanément un contact sec d'un qu'un certain volume de pluie est tombé. L'exemple ci-dessous simule le remplissage d'un récipient sur la matrice à led de la carte micro:bit. A chaque fois que le pluviomètre délivre une impulsion sur son contact de sortie, une ligne horizontale monte au fur et à mesure sur la matrice à led. Cette application très simple (développée sous l'éditeur graphique Makecode) se limite à la détection de 5 actions du pluviomètre, se traduisant par le remplissage complet du récipient. Dans la vidéo ci-dessous, le remplissage du godet du pluviomètre est simulé par l'inclinaison manuelle du boitier du pluviomètre tantôt dans un sens, tantôt dans l'autre sens).
L'application commence par initialiser une variable qui servira à comptabiliser le nombre de fois que le pluviomètre se déclenchera. Ensuite le port P0 de la carte micro:bit sera configuré de tel sorte que ce port dispose d'une résistance de tirage interne au niveau logique haut.
Une boucle principale teste ensuite si le port P0 détecte un niveau bas (c'est à dire s'il détecte la fermeture fugitive du contact sec du pluviomètre). Si tel est le cas, la variable comptabilisant le nombre d'activation du pluviomètre est incrémentée. S'en suit une série de tests qui en fonction de la valeur de cette variable tracera de une à cinq lignes horizontales pour simuler le remplissage du récipient. Une temporisation d'une seconde est utilisée en fin de boucle pour éviter les problèmes de détection multiples via des rebonds sur le contact sec du pluviomètre.
Cliquez sur l'image ci-dessus pour avoir accès à au programme sous Makecode.
Assemblage de la platine pour une utilisation sur une carte arduino:
Dans cette configuration, soudez en premier lieu les 3 résistances puis soudez les 2 connecteurs RJ11. Soudez ensuite le connecteur femelle 8 broches PRT-09279. Soudez enfin le connecteur femelle 6 broches PRT-09280. Très important: Ne coupez pas les pattes des connecteurs PRT-09279 et PRT-9280 une fois soudés. Ce sont ces pattes qui vous permettrons d'enficher la carte sur l'Arduino.
Une fois assemblée il vous suffira simplement d'enficher la platine sur une carte Arduino (non livré) en faisant coïncider les connecteurs mâle/femelle 6 et 8 points de la platine avec ceux de l'Arduino (attention à ne pas décaler les broches). La platine ne s'enfiche pas directement au dessus de la carte Arduino comme un shield standard, mais de façon décalée vers le bas.
Le connecteur RJ11 de gauche permet de recevoir au choix les capteurs pluviomètres LEXCA001 ou LEXCA009. Le connecteur RJ11 de droite est prévu pour recevoir un couple de capteurs anémomètre + girouette (LEXCA002+ LEXCA003) ou l'ensemble LEXCA007. Attention le connecteur RJ11 de droite ne peut pas recevoir un capteur anémomètre seul ou un capteur girouette seul... mais uniquement un couple de capteurs (anémomètre + girouette : dans cette configuration le cordon de la girouette devra être raccordé sur l'anémomètre et seul le cordon de l'anémomètre (qui véhicule les signaux des 2 capteurs) sera à relier sur le connecteur RJ11. La platine est également compatible avec les capteurs de la station météo SEN-08942 ou LEXCA008.
Le signal du capteur pluviomètre est directement relié au port A0 de l'Arduino.
Le signal du capteur girouette est directement relié au port A1 de l'Arduino.
Le signal du capteur anémomètre est directement relié au port A2 de l'Arduino.
Test des différents capteurs lorsque l'interface est reliée sur une carte Arduino:
Nous vous proposons 3 petits programmes de test qui vous permettrons de tester chacun des 3 capteurs.
(1) Test du pluviomètre
Saisissez le programme ci-dessous. Ce dernier permet de faire "flasher" la led de la platine arduino (sortie 13) à chaque basculement du godet du capteur afin de mettre en évidence son bon fonctionnement.
(2) Test de l'anémomètre
Saisissez le programme ci-dessous. Ce dernier permet de faire "flasher" la led de la platine arduino (sortie 13) en fonction de la rotation du capteur afin de mettre en évidence son bon fonctionnement.
(3) Test de la girouette
Saisissez le programme ci-dessous. Ce dernier va vous permettre de récupérer la valeur de la tension (générée par la variation de la résistance de la girouette) via le port de conversion "Analogique/Numérique" P1 de l'arduino. Téléchargez et exécutez le programme dans l'arduino. Puis lancez de moniteur dans l'IDE de l'aduino (icône avec la petite loupe en haut à droite). Dès lors, vous obtiendrez l'affichage de la tension sur l'écran de votre PC. Faite tourner la girouette pour repérer les 16 valeurs de tensions différentes relatives à ses différentes positions.
Assemblage de la platine pour une utilisation sur une carte au format Grove:
Dans cette configuration, soudez en premier lieu les 3 résistances puis soudez les 2 connecteurs RJ11. Soudez ensuite les 3 connecteurs Grove 110990030 - ATTENTION à bien repérer le sens des connecteurs en vous repérant avec la sérigraphie. Il vous faudra également utiliser des cordons Grove 110990031 pour pourvoir relier l'ensemble à une carte au standard Grove.
Le connecteur RJ11 de gauche permet de recevoir au choix les capteurs pluviomètres LEXCA001 ou LEXCA009. Le connecteur RJ11 de droite est prévu pour recevoir un couple de capteurs anémomètre + girouette (LEXCA002+ LEXCA003) ou l'ensemble LEXCA007. Attention le connecteur RJ11 de droite ne peut pas recevoir un capteur anémomètre seul ou un capteur girouette seul... mais uniquement un couple de capteurs (anémomètre + girouette : dans cette configuration le cordon de la girouette devra être raccordé sur l'anémomètre et seul le cordon de l'anémomètre (qui véhicule les signaux des 2 capteurs) sera à relier sur le connecteur RJ11. La platine est également compatible avec les capteurs de la station météo SEN-08942 ou LEXCA008.
Le signal du capteur pluviomètre est accessible sur le connecteur Grove de gauche.
Le signal du capteur girouette est accessible sur le connecteur Grove du millieu.
Le signal du capteur anémomètre est accessible sur le connecteur Grove de droite.
Si vous désirez raccorder la platine sur un shield Grove au format Grove pour arduino, vous pourrez utiliser les exemple de programmes pour l'Arduino donnés ci-avant en prenant soin de raccorder les cordons grove sur les mêmes ports que ceux utilisés dans le code source ou modifier les ports utilisés en fonction du raccordement que vous ferez sur la platine grove.
Produits associés