Créer une Balance pour Surveiller le Poids des Ruches
Dans cet article, je vais vous montrer comment réaliser une balance DIY pour surveiller le poids de nos ruches. Depuis un certain temps, j’avais envie de trouver une solution pour suivre les miellées, surtout lorsque nous sommes éloignés de notre exploitation.
Les solutions proposées sur le marché sont souvent très évoluées et parfois coûteuses, surtout si nous devons en installer plusieurs. Je tiens à préciser que je ne critique pas ce qui existe déjà, mais je souhaite partager une approche personnelle qui pourrait être utile pour notre exploitation. Bien sûr, cela ne remplace pas les visites régulières, mais cela peut nous orienter vers des visites plus rapprochées ou à réaliser avant de vérifier certains ruchers.
Il est également intéressant de pouvoir suivre l’évolution d’une ruche. Nous avons ajouté une option pour mesurer la température et l’hydrométrie, dans le but de lier toutes ces données à une future interface pour les étudier convenablement.
Enfin, nous avons fixé un budget de 150 € pour l’ensemble afin de rester compétitifs par rapport aux offres actuelles. De plus, le montage ne doit pas être trop complexe.
Le Matériel Nécessaire et les Prix Environ
- Fer à souder et étain
- Arduino MKRFox1200 Sigfox (environ 45 €)
- DHT22 (optionnel pour la température et l’hydrométrie, environ 9 €)
- Module de charge 120 kg avec amplificateur HX711 (environ 20 €)
- Quelques fils pour connecter les différents modules électroniques
- Du bois ou des morceaux de fer au choix (environ 20 € de ferraille à souder)
- Batterie 12V 7A
- Module transformateur 12/24V en 5V 3A USB
En gros, le coût total est d’environ 150 €, sans passer par des sites comme AliExpress qui pourraient réduire encore plus les prix.
À Quoi Servent Tous Ces Éléments ?
- Le Arduino MKRFox1200 Sigfox est une carte de transmission de données via le réseau Sigfox. C’est un petit ordinateur que nous allons programmer pour effectuer des tâches préconçues répondant à nos besoins.
- Le module HX711 est une petite carte reliée à des sondes pour mesurer le poids.
- Le DHT11 ou DHT22 sert à mesurer la température et l’hydrométrie (module optionnel si l’on ne souhaite mesurer que le poids).
Assemblage des Éléments


Support en H
Le Montage Électronique
Voici le Code pour l’Arduino
#include <SigFox.h> #include <ArduinoLowPower.h> #include <Adafruit_Sensor.h> #include <HX711.h> // /////////////////// temperature #include <DHT.h> #define DHTPIN 4 #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); // ////////////////////////// balance #define DOUT 3 #define CLK 2 HX711 scale(DOUT, CLK); float calibration_factor = 13200; String poidslimite; String poids; String dec; // ///////// typedef struct __attribute__ ((packed)) sigfox_message { float poids; float t; float h; } SigfoxMessage; SigfoxMessage msg; void reboot() { NVIC_SystemReset(); while (1); } void setup() { scale.set_scale(calibration_factor); scale.tare(); } void loop() { dht.begin(); float t = dht.readTemperature(); float h = dht.readHumidity(); Serial.begin(115200); delay(100); if (!SigFox.begin()) { Serial.println("SigFox error, rebooting"); reboot(); } float poids = (scale.get_units()) * 0.453592; delay(100); SigFox.debug(); msg.t = (float)(t); msg.h = (float)(h); msg.poids = (float)(poids); Serial.print(msg.poids); SigFox.status(); delay(1); SigFox.beginPacket(); SigFox.write((uint8_t*)&msg, sizeof(SigfoxMessage)); Serial.print("Status: "); Serial.println(SigFox.endPacket()); SigFox.end(); LowPower.sleep(4000000); }
Les Différents Codes
Voici le code que j’ai réalisé pour envoyer les données sur une page PHP avec une base de données MySQL afin de rendre mes données plus visibles sur mon site internet. Vous pouvez également envoyer vos données directement sur votre boîte mail.
Pour configurer l’envoi de données sur le backend de Sigfox, rendez-vous dans CALLBACKS et créez un UPLINK avec le bouton New en haut à droite.
Mon code PHP pour réaliser l’enregistrement sur un serveur avec MySQL (ceci peut être amélioré pour la sécurité, c’est un exemple) :

Pour rendre les données plus visibles, voici le code correspondant :

Et voici le rendu en direct lorsque la balance est active :