balances connectées sur le réseau SIGFOX

Concept #

Cet autre projet s’inscrit dans le développement de systèmes connectés au réseau commercial Sigfox en vue de peser des ruches, de prendre la température de leur environnement et pourquoi pas celle au cœur du couvain pour en observer l’évolution en périodes extrêmes: hiver, canicule, afin de démontrer les capacités d’adaptation des abeilles.

Le système repose :

  • sur des balances électroniques dont on ôte les composants pour ne garder que la structure et les 4 capteurs de pression.
  • sur des convertisseurs analogiques-digitaux XH711 pour numériser les données des jauges de contrainte (capteurs de poids).
  • sur des capteurs de température et d’hygrométrie DHT22 pour mesurer l’environnement climatique du rucher.
  • sur des sondes de température DS18B20 pour mesurer l’intérieur de la ruche.
  • un module radio pour communiquer avec les réseau Sigfox.
  • une platine de développement pro-mini programmable en C++

Réseau SIGFOX #

Ce réseau nécessite un abonnement d’environ 12€ / an et par objet. Il permet l’envoi de 140 messages par jour d’un longueur de 24 octets.

Les données, une trame d’octets alignant poids, tension batterie, météo etc, sont recueillies par les milliers d’antennes Sigfox et recueillies par l’abonné dans un backend du serveur Sigfox. L’abonné crée sur ce backend un script appelé callback qui pointe l’adresse vers laquelle Sigfox doit envoyer ses données, en occurrence un petit serveur chez l’abonné afin qu’il traite ces informations.

Les informations sont remises en forme sur le serveur de l’abonné par une application Node-Red. Elle fait le tri en extrayant les informations de la trame d’octets pour les interpréter et les envoyer sous forme décimale dans une base de données Influxdb.

Il reste à visualiser les mesures dans une application Grafana sous forme de graphiques et de jauges afin d’en garder l’historique et visualiser l’évolution chronologique des mesures.

Programmation des modules Mini ATMEGA328 Pro 328, 3.3V/8MHz #

Ce module peut se programmer en C++. Il a été choisi pour réduire au maximum la consommation d’énergie à quelques micro ampères. Il n’a que les accès TX RX du processeur. Il faut donc utiliser un FTDI (adaptateur TX RX / USB) pour le programmer.

Afin de réduire la consommation, il faut dessouder le régulateur de tension pour entre directement le 4V d’une batterie LIPO ou une alcaline par exemple car l’alimentation du processeur n’est pas critique.

Il faut aussi dessouder la LED qui visualise la mise sous tension du processeur et qui se trouve juste après le régulateur.

Recueil et visualisation des données via Node-Red et Grafana #

Le soft #

Le projet se trouve sur https://github.com/patrickdcp77/pro-mini-sigfox/blob/main/src/programme%20MASTER%20sigfox%201ds18b20%202balances.cpp

L’éditeur pour créer le code C++ est Visual Studio Code. Il utilise l’extension Platformio pour compiler les lignes de C++.

Le fichier Github est un peut touffu car c’est une base de travail qui évolue. Le dossier important est est « scr » dans lequel il y a le code principal. Les bibliothèques sont répertoriées dans le fichier « platformio.ini ». Le reste est constitué de dossiers de documentations ou d’essais de programmation. Quand le tout sera abouti, il aura peut être un peu de ménage qui sera fait.

Extrait du code principal pour comprendre le fonctionnement du système et faire sa programmation.

fonctionne correctement

+++++++++++++++++++++++++++++++++++++++++++++++
code rédigé pour
4 balances et une sonde temp hum DHT22
mesure et hibernation tous les 1/4H
envoi sur réseau sigfox

pour les balances, cablage des connecteurs
utiliser les canaux B des HX711 si l’on veut économiser les convertisseurs

cordon crème et plat
noire A,B+
rouge E-
jaune E+
vert A,B-

cordon blanc et plat avec 4 fils couleurs pales
rose E+
bleu E-
blanc AB-
jaunes AB+

correspondance avec les cables noirs étanches
vert A,B+
noir E-
rouge E+
bleu A,B-

cablage des balances vues en dessous (donc platine porte jauges retournée)
vue eu U inversé
————————-
| E- A,B+ |
| |
| |
| A,B- E+ |

fils noirs des jauges relient les jauges E- avec AB- et AB+ avec E+
fils blancs des jauges telient E- avec AB+ et AB- avec E+

consignes pour programmation du minipro arduino qui n’a pas de schip USB via TX RX pour baisser la consommation
utiliser un FTDI externe qui adaptera le TX RX à l’USB
utiliser la position 3V3
déconnecter le TX RX de sigfox pour ne pas perturber le TX RX du promini
mettre la valeur **** boolean AUTODETECT_HX711_N34 = 0**** ; à UN pour observer sur le terminal les valeurs données par les capteurs
mettre la valeur ****const unsigned int MAX_COUNTER_POWER_DOWN_WAKE_UP = 116 ;**** à 2 ou 3 pour ne pas attendre un cycle de 15mn entre chaque mesure
ne rien mettre sur les balances avant chaque RESET et voir l’évolution des valeurs selon les poids posés
si tout semble bon, remettre les valeurs à ZERO pour ne pas débugger et à 116 pour avoir un cycle de 15mn entre chque envoi de trame sigfox

mise en mémoire de la tare (offset) tant qu’il n’y a pas de reset

pas de DHT22 sur les derniers prototypes
sinon alime+ de la DHT sur D12 et DATA sur A3

pas de panneau solaire mais utilisation d’une pile plate 4V5 alcaline d’environ 3000 mA
l’alimentation se fait via le connecteur latéral du PRO MINI VCC et GND

modifications sur PRO MINI:
régulateur enlevé
résistance enlevée de la led de visualisation de l’alimentation
mesure de la tension batterie appliquée sur VCC
on met une résistance CMS de 47K entre A0 et A1 coté supérieur du processeur
on met une résistance CMS de 10K entre A0 et le plan de masse en parallele à un condensateur de 1,1 nano soudés l’un sur l’autre

cablage du module radio sigfox*****************
le reset est à coté du + et connecté sur GPIO 2
le + est sur VCC car on ne peut pas alimenter le module avec un GPIO qui serait trop faible

cablage du HX711 pour 2 balances sur un seul HX711************
GPIO 3 chaque HX711 a une alimentation commune sur un même GPIO mis à zéro pour couper l’alimentation
GPIO 4 connexion au DATA
GPIO 8 connexion à l’horloge SCK
balance N1_Channel A : connecter sur E+ E- A+ A-
balance N1_Channel B : connecter sur E+ E- B+ B-

Operating voltage:
●2.7V to 5.5V for ATmega328P donc pile plate alcaline de 4V5 possible sans régulateur
Low power consumption
● Active mode: 1.5mA at 3V – 4MHz
● Power-down mode: 1μA at 3V

● Write/erase cycles: 10,000 flash/100,000 EEPROM

Documentation alimentation par piles #

Un partenariat est en cours de réalisation avec un distributeur pour nous aider à avancer dans nos projets multiples de la FabLab, consommatrice de pile en tous genres.

Vous trouverez le site de notre partenaire ici www.cell-expert.com

La FabLab a vocation à accueillir des collégiens, des lycéens et des adultes passionnés par les technologies.

Liens techniques sur les piles distribuées par notre partenaire #

PROCELL (la partie Professionnelle de DURACELL)  https://www.procell.com/fr/

ENERGIZER Industrial : https://energizerindustrial.com/tech-library/

Un livre numérique super détaillé et passionnant sur le fonctionnement des piles, leur histoire, leur utilisation diverses et mis à notre disposition par notre partenaire Cell-expert: « Piles et Batteries, tout savoir en 150 questions » :

https://www.pilesbatteries-toutsavoir.fr/#page=1

Powered by BetterDocs