Une balance connectée au réseau SigFox

Une balance connectée au réseau SigFox

13 mai 2020 16 Par Philippe

Avertissement : ce document montre un exemple de combinaison de modules d’expérimentation pour réaliser une balance connectée. Les informations nécessaires à la réalisation de cette balance ont été « butinées » sur le web et le fruit d’expérimentations et d’essais. Ce document n’est pas une recette « complète et garantie » mais seulement des éléments pour vous permettre de bien démarrer votre propre réalisation de balance connectée.

La balance décrite équipe aujourd’hui 3 de mes ruches. Je ne fabrique pas de balance dans un but commercial et ne ferai donc pas la vôtre. Bon bricolage !

Pourquoi SigFox ?

Sigfox est une entreprise française qui a été créée en 2009. Elle a créé et exploite un réseau dédié à « l’internet des objets », qui utilise un mode radio UNB (Ultra Narrow Band : bande très étroite) sur des fréquences à licence libre, juste en dessous de la bande GSM. C’est un réseau à faible débit mais bien suffisant pour transmettre les données des sondes de télémétrie équipant nos ruches.

Une des raisons du choix de ce réseau, c’est la couverture très bonne de ce réseau : mon rucher est en zone blanche GSM et je ne pouvais donc pas utiliser le réseau des téléphones mobiles.

D’autre part, le fonctionnement de ces systèmes est très peu énergivore (plusieurs mois sur 2 piles bâtons 1,5V) et je n’ai donc pas besoin de panneau solaire (donc pas de risque de me le faire voler).

L’abonnement pour transmettre une série de mesures toutes les 10 minutes coûte environ 14 euros par an. Le budget est donc raisonnable.

On trouve finalement des modules de type «Arduino» avec le module SigFox installé, comme pour la plupart des systèmes de communications IoT. J’ai choisi le module Arduino MKRFOX 1200, qui comprend une carte d’expérimentation avec le module SigFox ainsi qu’un abonnement au réseau.

Le matériel de pesée

Il s’agit de jauges de contrainte prévues pour une charge maximale de 50kg. Ces 4 jauges sont reliées sur un circuit de conversion analogique-numérique HX711. Le signal de ce convertisseur sera directement connecté sur la plaque d’expérimentation. C’est très simple et il y a peu de matériel à construire.

J’ai juste taillé un cadre en bois pour porter les jauges. Il faut évider le dessous des capteurs avec une mèche à bois afin de permettre à celui-ci de se déformer.

Le cadre est percé pour faire passer les fils. Ici l’évidement sous le capteur n’est pas encore réalisé.

Une fente est faite à la scie sur table sur l’ensemble des éléments du cadre afin de faire passer les fils de connexion.

Si on le souhaite, le support des capteurs peut être ensuite recouvert d’un toit de ruche en tôle pliée qui met le système à l’abri des intempéries. Je ne l’ai pas fait et ce système a passé plus d’une année, hiver pluvieux et venteux compris, juste à l’abri de la ruche sans incident.

Le module MKRFOX1200 est installé dans un boitier en ABS qui le protège des intempéries. Une antenne pour le réseau SigFox sera ensuite ajoutée pour améliorer la qualité de la connexion

Il faut penser à laisser un petit trou en bas du boitier pour l’écoulement éventuel de l’eau de la condensation. Le boitier est ensuite fixé à l’arrière de la ruche et le câble provenant des jauges de contrainte entre dans le boitier par le dessous.

Schéma de câblage :

Programmation :

Il vous sera nécessaire de télécharger la bibliothèque du HX711

https://github.com/olkal/HX711_ADC

La première étape consiste à calibrer la balance. Cela sera réalisé grâce au programme « Calibration » fourni avec les bibliothèques du circuit HX711. Après avoir chargé le programme dans la mémoire de l’Arduino et exécuté le programme, on charge la balance d’une masse dont le poids est connu (en l’occurrence, ma personne, après être monté sur le pèse-personne de ma salle de bain), et on entre le poids connu (donné par le pèse-personne) via l’interface série connectée au circuit Arduino. Le programme calcule ensuite la valeur d’une constante à indiquer dans le programme de pesée.

Il faut calibrer la balance avec un poids proche des mesures qui seront effectuées, ici j’ai utilisé 80 kg. J’aurais aimé un poids autour de 50kg mais mon épouse a refusé de servir de poids étalon.

Il est important d’utiliser un programme de mesure du poids qui n’oblige pas à refaire une tare avant chaque mesure. En effet, le programme général ci-dessous met le système en pause très basse consommation d’énergie après chaque transmission : le système mesure la température sur le circuit MKR FOX1200 (température externe), le poids puis transmet ces données sur le réseau SigFox.

Un « Call back » est effectué par le site ThingSpeak en utilisant leur API.

L’affichage depuis le site ThingSpeak permet d’afficher en temps réel (données mises à jour toutes les 15 minutes) la température extérieure de la ruche et son poids.

ThingSpeak permet également d’afficher des courbes sur des périodes de temps définies et de faire des calculs (variation du poids par jour, par semaine et par mois) grâce au module intégré Matlab.

Pour terminer, vous pouvez également extraire les données pour par exemple les retraiter sur Excel :

On note les variations de température entre le jour et la nuit.

On note sur la courbe du poids qu’on a ajouté une hausse le 13 avril. Le 25 avril on a retiré quelques cadres de miel operculé (chute de 8kg du poids) avant une semaine fraiche (pour éviter que le miel cristallise). Les pics correspondent aux visites : la mesure a eu lieu alors que les hausses étaient enlevées.

Annexes

Le programme principal

Le programme est très simple :

Informations complémentaires

Le réseau SigFox

Couverture du réseau : https://www.sigfox.com/en/coverage

ThingSpeak

Le portail : https://thingspeak.com/

Utilisation de l’API de ThingSpeak : https://www.codeproject.com/Articles/845538/An-Introduction-to-ThingSpeak

Un autre exemple décrivant l’utilisation du module MKRFOX1200 avec ThingSpeak : https://fr.howto-wp.com/74695-Arduino-MKR-Fox-1200-Sigfox-Meteo-Station-88

Activation du module SigFox et utilisation de l’API ThingSpeak

Il faut activer le module SigFox en exécutant le programme de configuration (fourni avec les bibliothèques SigFox) et en se connectant au portail https://backend.sigfox.com/

Après enregistrement, le module doit être visible sous votre compte dans le backend :

Accéder aux données.

J’utilise les services gratuits de ThingSpeak pour afficher la température et le poids de la ruche. Cela se fait via un callback programmé sur le backend du portail SigFox