Aller au contenu

Physique et Technologie

Nous savons que beaucoup d'entre vous aiment bricoler. Ainsi, pour l'étudiant intéressé et motivé, voici plus d'informations et des éléments logiciels à faire soi-même.

Informations sur la Publicité BLE

Note : Si vous avez des suggestions pour améliorer l'explication, utilisez les détails.

Pour les âmes courageuses et pleines d'audace qui souhaitent créer leur propre équipement de collecte de données, nous fournissons des informations sur le protocole de publicité BLE utilisé par BroodMinder. En effet, notre propre BroodMinder-CELL, WiFi et -SubHub utilise la publicité pour écouter les appareils, puis transmettre les données directement à MyBroodMinder.com.

Il existe plusieurs programmes d'exploration BLE intéressants. Nos favoris sont :

  • Android et iOS – nrfConnect de Nordic Semiconductor. La version Android est la meilleure, mais nous utilisons les deux tout le temps. Il dispose d'une fonctionnalité de graphique du niveau de signal agréable.
  • PC – Bluetooth LE Explorer de Microsoft. Malheureusement, ce programme ne montre pas les données publicitaires.
  • Mac – BlueSee – Cette application semble bien fonctionner et montre les données du fabricant dans le paquet publicitaire.

Vous remarquerez probablement que les 3 premiers octets de l'identifiant de l'appareil sont toujours 06:09:16, puis suit l'identifiant particulier de l'appareil qui est toujours Modèle:ID:ID. Certains appareils (iOS et Mac) masquent le véritable identifiant, nous l'incluons donc également dans le champ du nom dans le paquet publicitaire étendu.

Composition du Paquet Publicitaire pour BroodMinder

Lorsque vous lisez des paquets publicitaires BLE, vous pouvez identifier les produits BroodMinder en examinant ce qui suit.

Les données ressembleront à ceci, cet exemple provient de l'appareil 43:30:07.

Événement de Réponse de Numérisation GAP

ble_evt_gap_scan_response : rssi=-77, type_de_paquet=0, expéditeur=[ 07 30 43 80 07 00 ], type_adresse=0, liaison=255, données=[ 02 01 06 02 0a 03 18 ff 8d 02 2b 15 02 00 02 21 00 d0 62 00 ff 7f 05 80 37 07 30 43 00 00 00 ]

Remarque : Les valeurs sont en décimal sauf si précédées de 0x

1) Vérifiez le drapeau "Données Spécifiques du Fabricant" Octets 6,7 = 0x18, 0xff

2) Vérifiez si IF, LLC est le fabricant Octets 8,9 = 0x8d, 0x02

Les octets 10 à 29 sont les données provenant de BroodMinder telles que décrites ci-dessous. DeviceModelIFllc_1 = 0x2b (43d = balance) DeviceVersionMinor_1 = 0x15 (21d) DeviceVersionMajor_1 = 0x02 (FW 2.21) Elapsed_2V2 = 0x21 (33d) Temperature_2V2 = 0x62d0 PoidsG_2V2 = 0x7FFF PoidsD_2V2 = 0x8005

La correspondance pour tous les modèles se trouve à la page suivante

PRIMAIRE
Octet Type Valeur Paramètre
0 LongueurduChamp 02
1 TypeDuChamp 01 Connectable
2 Valeur 06 Découverte Générale LE, Connectable, Périphérique en Mode Simple
3 LongueurduChamp 02
4 TypeDuChamp 0A Puissance d'Émission
5 Valeur 03 Puissance en dB
6 LongueurduChamp 24
7 TypeDuChamp FF Données du Fabricant
8 Valeur 8d IF, LLC = 0x028d, 653
9 Valeur 02 IF, LLC = 0x028d, 653
10 Valeur Modèle
11 Valeur Version Mineure
12 Valeur Version Majeure
13 Valeur Température en Temps Réel 1 47/49/56/57/58 (SM&XLR)
14 Valeur Batterie
15 Valeur Durée écoulée
16 Valeur Durée écoulée
17 Valeur Température 47° et plus en centigrade + 5000
18 Valeur Température
19 Valeur Température en temps réel 2 47/49/56/57/58 (SM et XLR)
20 Valeur PoidsG
21 Valeur PoidsG
22 Valeur PoidsD
23 Valeur PoidsD
24 Valeur Humidité sera 0 pour 41/47/49/52
25 Valeur PoidsG2/SM_Temps0 49/57/58 (XLR)
26 Valeur PoidsG2/SM_Temps1 49/57/58 (XLR)
27 Valeur PoidsD2/SM_Temps2 49/57/58 (XLR)
28 Valeur PoidsD2/SM_Temps3 49/57/58 (XLR)
29 Valeur Poids total en temps réel / État de la ruche 47/49/56/57/58 (SM et XLR)
30 Valeur Poids total en temps réel 47/49/56/57/58 (SM et XLR)
SECONDAIRE Paquet publicitaire étendu
Octet Type Valeur Paramètre
0 Longueur Champ Ad 09
1 Type 09 Nom Local Complet
2 4' nom en ascii
3 2'
4 :'
5 0'
6 0'
7 :'
8 0'
9 0'

Remarque : BRM52 BroodMinder-SubHub est différent comme expliqué ci-dessous.

Voici les équations

si (NuméroModèle == 41 | NuméroModèle == 42 | NuméroModèle == 43)
{
    températureDegrésF = e.data[byteNumAdvTemperature_2V2] + (e.data[byteNumAdvTemperature_2V2 + 1] << 8);
    températureDegrésF = (températureDegrésF / Math.Pow(2, 16) * 165 - 40) * 9 / 5 + 32;
}
else
{
    double températureDegrésC = e.data[byteNumAdvTemperature_2V2] + (e.data[byteNumAdvTemperature_2V2 + 1] << 8);
    températureDegrésC = (températureDegrésC - 5000) / 100;
    températureDegrésF = températureDegrésC * 9 / 5 + 32;
}
    humiditéPourcentage = e.data[byteNumAdvHumidité_1V2];
si (NuméroModèle == 43)
{
    poidsG = e.data[byteNumAdvPoidsG_2V2 + 1] * 256 + e.data[byteNumAdvPoidsG_2V2 + 0] - 32767;
    poidsÉquilibréG = poidsG / 100;
    poidsD = e.data[byteNumAdvPoidsD_2V2 + 1] * 256 + e.data[byteNumAdvPoidsD_2V2 + 0] - 32767;
    poidsÉquilibréD = poidsD / 100;
} 
else si (NuméroModèle == 49 | NuméroModèle == 57 | NuméroModèle == 58)
{
    poidsD = e.data[byteNumAdvPoidsG_2V2 + 1] * 256 ```fr
  • e.data[byteNumAdvWeightL_2V2 + 0] - 32767; weightScaledR = weightR / 100; weightL = e.data[byteNumAdvWeightR_2V2 + 1] * 256 + e.data[byteNumAdvWeightR_2V2 + 0] - 32767; weightScaledL = weightL / 100; weightR2 = e.data[byteNumAdvWeightL2_2V2 + 1] * 256 + e.data[byteNumAdvWeightL2_2V2 + 0] - 32767; weightScaledR2 = weightR2 / 100; weightL2 = e.data[byteNumAdvWeightR2_2V2 + 1] * 256 + e.data[byteNumAdvWeightR2_2V2 + 0] - 32767; weightScaledL2 = weightL2 / 100; } realTimeTemperature = ((float)(e.data[byteNumAdvRealTimeTemperature2] * 256 + e.data[byteNumAdvRealTimeTemperature1] - 5000) / 100) * 9 / 5 + 32;

    realTimeWeight = (float)(e.data[byteNumAdvRealTimeWeight2] * 256 + e.data[byteNumAdvRealTimeWeight1] - 32767 ) / 100 ; SM_Time est le temps Unix du dernier événement de température. Time0 = LSB, Time3 = MSB, ce sera le temps écoulé depuis le démarrage si le temps n'a pas été défini dans l'appareil par une synchronisation de l'appareil.

BRM-52 BroodMinder-SubHub

Le -SubHub effectue une publicité astucieuse. La publicité change toutes les 5 secondes pour envoyer un appareil différent. Il passera en revue tous les appareils (y compris lui-même) puis recommencera.

Nous appelons cela des publicités simulées. Selon le système d'exploitation utilisé, vous pourrez ou non (par exemple sous iOS) voir le vrai ID de l'appareil (par exemple 06:09:16:52:01:23). C'est pourquoi nous plaçons l'ID de l'appareil dans l'octet de publicité étendu. Notez également qu'il est difficile de lire la publicité étendue pour certains appareils; cependant, pour ceux-ci, vous pouvez généralement lire le véritable ID de l'appareil.

L'ID simulé réside dans les octets 13, 19 et 30. Le processus est donc le suivant :

  1. Déterminez s'il s'agit d'un -SubHub par l'ID (soit le vrai ID, soit l'ID de la publicité étendue). Il sera toujours 52:xx:xx.
  2. S'il s'agit d'un appareil "52", alors analysez les octets 13/19/30. Par exemple, 43/01/23 sera 43:01:23.
  3. Analysez le reste du paquet publicitaire en fonction du type d'appareil en fonction de l'octet de modèle (octet 10).

Facile 😉

BroodMinder-W physique

Il existe de nombreuses façons d'utiliser la balance de ruche BroodMinder et comme elle ne mesure qu'une fraction du poids total de la ruche, la conception et le positionnement du support auxiliaire et de la position de la balance BroodMinder deviennent une partie intégrante du système de mesure du poids total de la ruche. En général, plus d'efforts sont déployés à cet effet, meilleurs seront les résultats. Les systèmes de support de ruche indiqués ci-dessous vont du plus simple au plus sophistiqué, de l'incertitude la plus élevée à la plus faible. Il appartient à l'utilisateur individuel de décider de ce qu'il faut mettre en œuvre.

REMARQUE : la source d'erreur la plus courante est un support inadéquat sous la balance. Cela peut entraîner des comportements étranges car la ruche fléchit lorsque qu'elle se dilate et se contracte en raison du soleil, de la pluie, de la température, etc. Fournir un support plat améliorera les résultats. Une solution facile est de placer une feuille de contreplaqué de ¾" (ou équivalent) sous les balances.

NOTE SUPPLÉMENTAIRE : si tout ce que vous voulez voir est le flux de nectar, un bon support n'est pas nécessaire. Vous devrez simplement ignorer les fluctuations quotidiennes. Vous pourrez toujours observer le changement global de poids.

a) Disposition par défaut

C'est l'arrangement par défaut avec la balance à l'avant de la ruche et un 2x4 comme support auxiliaire (fulcrum) à l'arrière :

13+19/30. Cela rend le processus comme suit :

  1. Déterminer s'il s'agit d'un -SubHub par l'ID (soit le vrai ID, soit l'ID dans la publicité étendue). Ce sera toujours 52:xx:xx.
  2. S'il s'agit d'un appareil "52", alors analyser les octets 13/19/30. Par exemple, 43/01/23 sera 43:01:23.
  3. Analyser le reste du paquet de publicité en fonction du type d'appareil en fonction de l'octet de modèle (octet 10).

Facile 😉

BroodMinder-W physique

Il existe de nombreuses façons d'utiliser la balance de ruche BroodMinder et comme elle ne mesure qu'une fraction du poids total de la ruche, la conception et le positionnement du support auxiliaire et de la position de la balance BroodMinder deviennent une partie intégrante du système de mesure du poids total de la ruche. En général, plus d'efforts sont déployés à cet effet, meilleurs seront les résultats. Les systèmes de support de ruche indiqués ci-dessous vont du plus simple au plus sophistiqué, de l'incertitude la plus élevée à la plus faible. Il appartient à l'utilisateur individuel de décider de ce qu'il faut mettre en œuvre.

REMARQUE : la source d'erreur la plus courante est un support inadéquat sous la balance. Cela peut entraîner des comportements étranges car la ruche fléchit lorsque qu'elle se dilate et se contracte en raison du soleil, de la pluie, de la température, etc. Fournir un support plat améliorera les résultats. Une solution facile est de placer une feuille de contreplaqué de ¾" (ou équivalent) sous les balances.

NOTE SUPPLÉMENTAIRE : si tout ce que vous voulez voir est le flux de nectar, un bon support n'est pas nécessaire. Vous devrez simplement ignorer les fluctuations quotidiennes. Vous pourrez toujours observer le changement global de poids.

a) Disposition par défaut

C'est l'arrangement par défaut avec la balance à l'avant de la ruche et un 2x4 comme support auxiliaire (fulcrum) à l'arrière :

image-20230409132020233

Voici quelques calculs entourant la configuration :

Suppositions

Le poids de la ruche W est réparti également et le centre de gravité est au milieu de la ruche. Pour simplifier, le surplomb avant de la planche inférieure n'est pas pris en compte. Le poids de la ruche est supposé à 100%.

Calculs

image-20230409132049073

Lors de l'utilisation de planches de 2x4 standard comme support arrière et en les alignant avec l'arrière de la ruche, le poids total de la ruche W peut être calculé à partir du poids sur la balance S comme suit :

image-20230409132117498

Par conséquent, utilisez 2,09 comme facteur de correction de balance de ruche par défaut dans l'application si vous utilisez cette configuration. Cela peut bien sûr être affiné une fois que des mesures de poids sont disponibles.

Le graphique ci-dessous montre le facteur de correction de balance pour différents agencements de balance et de support. L'axe des X est la position du point de pivot en pouces à partir de l'arrière de la ruche. Les différentes lignes représentent la position de la ligne centrale de la balance en pouces à partir de l'arrière de la ruche. Les flèches montrent l'exemple ci-dessus.

image-20230409132140051 ``` Nous avons des bras de moment égaux E et F, et le facteur de correction de la balance de la ruche devient 2.0, ce qui est la valeur par défaut dans l'application mobile. Cependant, il existe d'autres facteurs d'influence qui ne doivent pas être négligés. Le véritable point de pivot du support auxiliaire se situe quelque part entre l'arrière de la ruche et l'avant du support auxiliaire en raison des variations de la planéité du système de support et du potentiel de gauchissement du morceau de bois de 2×4 lui-même.

c) Schéma alternatif 2

Un système de support différent peut être utilisé, ayant un point de pivot défini et non affecté par l'alignement de la structure de support : Prenez un morceau de pin ou de chêne, d'environ ¾” d'épaisseur et 2” de largeur. La longueur doit être celle de la largeur de la ruche. Faites une petite rainure. La rainure doit être aussi profonde que la largeur de la lame de scie. Fixez ce morceau sur la partie inférieure du plancher de la ruche. Alignez-le de manière à ce qu'il soit affleurant à l'arrière. Ensuite, placez un morceau d'angle en aluminium de 1” par 1/8” 6061 ou 6063, de la même longueur que la bande de bois, en dessous pour soutenir la ruche. Le coin de l'angle en aluminium repose dans la rainure. La hauteur totale de l'angle en aluminium et du bois doit être égale ou légèrement plus grande que la hauteur de la balance pour assurer que la ruche est de niveau ou même légèrement inclinée vers l'avant pour garantir l'écoulement de l'eau loin de l'entrée de la ruche.

d) Équilibrage latéral

Tous les systèmes de support ci-dessus sont affectés par un déplacement latéral de poids indéfini car la ruche repose sur plus de trois points. Il y a deux points à l'avant à l'intérieur de la balance de la ruche et un support linéaire à l'arrière de la ruche. Cela pourrait entraîner une surcharge sur l'une des cellules de charge de la balance et donc, un équilibrage latéral est généralement nécessaire si le système de support sous la ruche n'est pas une plateforme continue, c'est-à-dire des parpaings séparés pour l'avant et l'arrière de la ruche.

Lisez le poids de chaque cellule de charge individuellement en passant à l'affichage en temps réel avec l'application. Dans ce mode, le poids sur la balance est affiché en % à gauche, % à droite. Le côté droit de la balance est le côté avec l'autocollant d'identification du dispositif. Aucune autre action n'est nécessaire si la différence G/D est inférieure à 10%.

Dans le cas contraire, caler la balance du côté affichant le poids le plus bas jusqu'à ce que les poids affichés correspondent. En alternatif, le calage peut également se faire sous le support arrière du côté opposé à la lecture de poids faible.

e) Support de ruche à 3 points

Il existe un moyen d’éviter le besoin d'équilibrage latéral en introduisant un véritable système de support à 3 points. Les pièces sont similaires à celles utilisées dans l'agencement 2, mais au lieu d'utiliser un angle de 1”, pour ce schéma, vous aurez besoin d'un angle de ¾”. Un trou de 7/32” est percé au milieu de la planche au lieu de couper une rainure. Une vis à fente de ¼” x 0.5” est utilisée comme support central. La vis va se tailler ses propres filets dans la planche. La fente dans la tête de la vis est alignée de manière à ce qu'elle puisse reposer sur le bord de l'angle en aluminium en un seul point sans glisser.

Il y a un petit espace entre l'angle en aluminium et la planche de bois. Il faut s'assurer que cet espace est de largeur uniforme sur toute la ruche. La vis au milieu devrait être le seul point de contact. Cela garantira que le poids correct soit mesuré et, en même temps, c'est le "filet de sécurité" contre le renversement de la ruche en cas de chargement inégal excessif, par exemple pendant les inspections de ruche.

f) Positionnement de la Balance BroodMinder

La plupart des éléments mentionnés ci-dessus concernent le support auxiliaire. Concentrons-nous maintenant sur le positionnement de la balance.

Comme indiqué dans les sections précédentes, il est souhaitable d'avoir la face avant de la balance placée en ligne avec la face avant du corps de la ruche. La déplacer plus à l'intérieur améliorerait la précision au détriment de la stabilité de la ruche, et la déplacer plus à l'extérieur réduirait la précision avec peu d'amélioration de la stabilité de la ruche.

Ce schéma montre l'influence du positionnement de la balance sur le facteur de correction de la balance et l'erreur de la balance introduite en raison du positionnement inexact de la balance. L'influence est de 5.6% par pouce.

Il est recommandé de marquer la position de la balance sur la planche inférieure de la ruche ou d'attacher une butée mécanique. Cela aidera à replacer la balance au même endroit après l'avoir retirée pour un changement de batterie ou pour toute autre raison.