Ga naar inhoud

Fysica en Technische Zaken

We weten dat veel van jullie graag knutselen. Dus, voor de geïnteresseerde en gemotiveerde student, hier is meer informatie en DIY software.

BLE Advertentie Informatie

Opmerking: Als je suggesties hebt voor het verbeteren van de uitleg, laat het ons weten.

Voor die dappere zielen met de moed om hun eigen gegevensverzamelingsapparatuur te creëren, bieden we informatie over het BLE-advertentieprotocol dat BroodMinder gebruikt. Inderdaad, onze eigen BroodMinder-CELL, WiFi, en -SubHub gebruiken de advertenties om af te luisteren naar de apparaten en vervolgens de gegevens rechtstreeks naar MyBroodMinder.com door te sturen.

Er zijn verschillende leuke BLE Explorer-programma's beschikbaar. Onze favorieten zijn:

  • Android & iOS – nrfConnect van Nordic Semiconductor. De Android-versie is het beste, maar we gebruiken beide de hele tijd. Het heeft een mooie functie voor het grafisch weergeven van signaalniveaus.
  • PC – Bluetooth LE Explorer van Microsoft. Helaas toont dit programma de advertentiegegevens niet.
  • Mac – BlueSee – Deze app lijkt goed te werken en toont de gegevens van de fabrikanten in het advertentiepakket.

Je zult waarschijnlijk opmerken dat de eerste 3 bytes van de apparaat-ID altijd 06:09:16 zijn, gevolgd door de specifieke apparaat-ID die altijd Model:ID:ID is. Sommige apparaten (iOS & Mac) verbergen de echte ID, dus we voegen die ook toe in het naamveld in het uitgebreide advertentiepakket.

Samenstelling van het Advertentiepakket voor BroodMinder

Wanneer je advertentiepaketten van BLE leest, kun je BroodMinder-producten identificeren door naar het volgende te kijken.

De gegevens zullen er ongeveer zo uitzien. – dit voorbeeld is van apparaat 43:30:07

GAP Scan Response Event ------------------------------------------------------------------------------------

ble_evt_gap_scan_response: rssi=-77, packet_type=0, sender=[ 07 30 43 80 07 00 ], address_type=0, bond=255, data=[ 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 ]

Opmerking: Waarden zijn in decimaal, tenzij voorafgegaan door 0x

1) Controleer op "Fabrikant Specifieke Gegevens" vlag Bytes 6,7 = 0x18, 0xff

2) Controleer op IF, LLC als de fabrikant Bytes 8,9 = 0x8d, 0x02

Bytes 10-29 zijn de gegevens van de BroodMinder zoals hieronder beschreven. DeviceModelIFllc_1 = 0x2b (43d = schaal) DeviceVersionMinor_1 = 0x15 (21d) DeviceVersionMajor_1 = 0x02 (FW 2.21) Elapsed_2V2 = 0x21 (33d) Temperature_2V2 = 0x62d0 WeightL_2V2 = 0x7FFF WeightR_2V2 = 0x8005

De mapping voor alle modellen staat op de volgende pagina

PRIMARY
Byte Type Value Parameter
0 Ad field Length 02
1 Field Type 01 Connectible
2 Value 06 LE General Discovery, Connectible, Single Mode Device
3 Ad field Length 02
4 Field Type 0A Xmit Power
5 Value 03 Power in DB
6 Ad field Length 24
7 Field Type FF Fabrikantgegevens
8 Value 8d IF, LLC = 0x028d, 653
9 Value 02 IF, LLC = 0x028d, 653
10 Value Model
11 Value Versie Minor
12 Value Versie Major
13 Value Realtime Temp1 47/49/56/57/58 (SM&XLR)
14 Value Batterij
15 Value Verstreken
16 Value Verstreken
17 Value Temperatuur 47 en hoger is centigrade + 5000
18 Value Temperatuur
19 Value Realtime Temp2 47/49/56/57/58 (SM&XLR)
20 Value GewichtL
21 Value GewichtL
22 Value GewichtR
23 Value GewichtR
24 Value Vochtigheid zal 0 zijn voor 41/47/49/52
25 Value GewichtL2/SM_Tijd0 49/57/58 (XLR)
26 Value GewichtL2/SM_Tijd1 49/57/58 (XLR)
27 Value GewichtR2/SM_Tijd2 49/57/58 (XLR)
28 Value GewichtR2/SM_Tijd3 49/57/58 (XLR)
29 Value Realtime totaal gewicht / Zwermstatus 47/49/56/57/58 (SM&XLR)
30 Waarde Realtime totaal gewicht 47/49/56/57/58 (SM&XLR)
SECUNDAIR Uitgebreid Advertentiepakket
Byte Type Waarde Parameter
0 Ad veld Lengte 09
1 Type 09 Volledige Lokale Naam
2 4' ascii naam
3 2'
4 :'
5 0'
6 0'
7 :'
8 0'
9 0'

Opmerking: BRM52 BroodMinder-SubHub is anders zoals hieronder uitgelegd.

Hier zijn de vergelijkingen

if (ModelNumber == 41 | ModelNumber == 42 | ModelNumber == 43)
{
    temperatureDegreesF = e.data[byteNumAdvTemperature_2V2] +       (e.data[byteNumAdvTemperature_2V2 + 1] << 8);
    temperatureDegreesF = (temperatureDegreesF / Math.Pow(2, 16) * 165 - 40) * 9 / 5 + 32;
}
else
{
    double temperatureDegreesC = e.data[byteNumAdvTemperature_2V2] + (e.data[byteNumAdvTemperature_2V2 + 1] << 8);
    temperatureDegreesC = (temperatureDegreesC - 5000) / 100;
    temperatureDegreesF = temperatureDegreesC * 9 / 5 + 32;
}
    humidityPercent = e.data[byteNumAdvHumidity_1V2];
if (ModelNumber == 43)
{
    weightL = e.data[byteNumAdvWeightL_2V2 + 1] * 256 + e.data[byteNumAdvWeightL_2V2 + 0] - 32767;
    weightScaledL = weightL / 100;
    weightR = e.data[byteNumAdvWeightR_2V2 + 1] * 256 + e.data[byteNumAdvWeightR_2V2 + 0] - 32767;
    weightScaledR = weightR / 100;
} 
else if (ModelNumber == 49 | ModelNumber == 57 | ModelNumber == 58)
{
    weightR = e.data[byteNumAdvWeightL_2V2 + 1] * 256 + 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 is de unix tijd van het laatste temperatuur evenement. Time0 = LSB, Time3 = MSB, het zal tijd sinds opstart zijn als de tijd niet is ingesteld in het apparaat door een apparaat synchronisatie.

BRM-52 BroodMinder-SubHub

De -SubHub doet wat ingewikkelde advertenties. De advertentie verandert elke 5 seconden om een ander apparaat uit te zenden. Het zal door alle apparaten (inclusief zichzelf) rollen en dan herhalen.

We noemen deze Nepadvertenties. Afhankelijk van welk besturingssysteem wordt gebruikt, kun je mogelijk de echte apparaat-ID zien (bijv. 06:09:16:52:01:23). Daarom plaatsen we de apparaat-ID in de uitgebreide advertentiebyte. Houd er ook rekening mee dat het moeilijk kan zijn om de uitgebreide advertentie voor sommige apparaten te lezen, echter voor die apparaten kun je meestal de echte apparaat-ID lezen.

De Nep-ID bevindt zich in byte 13, 19 en 30. Dat maakt het proces als volgt:

  1. Bepaal of dit een -SubHub is aan de hand van de ID (ofwel de echte ID of de ID in de uitgebreide advertentie). Het zal altijd 52:xx:xx zijn.
  2. Als het een “52” apparaat is, parse dan bytes 13/19/30. Bijv. 43/01/23 zal 43:01:23 zijn
  3. Parse de rest van het advertentiepakket volgens het apparaattype op basis van de modelbyte (byte 10)

Makkelijk Peasy 😉

BroodMinder-W fysica

Er zijn veel manieren waarop de BroodMinder bijenschaal kan worden gebruikt en aangezien deze slechts een fractie van het totale bijenkorfgewicht meet, wordt het ontwerp en de plaatsing van de aanvullende ondersteuning en de BroodMinder schaalpositionering een integraal onderdeel van het totale bijenkorfgewicht meet systeem. Over het algemeen geldt: hoe meer moeite hierin wordt gestoken, hoe beter de resultaten zullen zijn. De bijenkorf ondersteuningssystemen die hieronder worden getoond, beginnen van de gemakkelijkste tot de meest geavanceerde met de hoogste onzekerheid tot de laagste. Het is aan de individuele gebruiker om te beslissen wat te implementeren. OPMERKING: de meest typische foutbron is onvoldoende ondersteuning onder de schaal. Dit kan leiden tot vreemd gedrag terwijl de bijenkorf zich uitrekt en samentrekt door zon, regen, temperatuur, enz. Het bieden van een vlakke ondersteuning zal de resultaten verbeteren. Een gemakkelijke oplossing is om een ¾” multiplexplaat (of gelijkwaardig) onder de schalen te plaatsen.

AANVULLENDE OPMERKING: Als je alleen de honingstroom wilt zien, is goede ondersteuning niet vereist. Je moet gewoon de dagelijkse schommelingen negeren. Je kunt nog steeds de algehele verandering in gewicht observeren.

​

a) Standaard Indeling

Dit is de standaard indeling met de schaal aan de voorkant van de bijenkorf en een 2×4 als aanvullende ondersteuning (hefpunt) aan de achterkant:

​ image-20230409132020233

Hier zijn enkele berekeningen met betrekking tot de opstelling:

Aannames

Het gewicht van de bijenkorf W is gelijkmatig verdeeld en het zwaartepunt bevindt zich in het midden van de bijenkorf. Voor de eenvoud wordt de overhang aan de voorkant van de bodemplaat niet in overweging genomen. Het gewicht van de bijenkorf wordt verondersteld 100% te zijn.

Berekeningen

image-20230409132049073

Bij gebruik van standaard 2×4 hout als achterste ondersteuning en het uitlijnen met de achterkant van de bijenkorf, kan het totale gewicht van de bijenkorf W worden berekend vanuit het gewicht op de schaal S als:

image-20230409132117498

Gebruik daarom 2.09 als de standaard bijenkorf schaalfactor in de app als je deze opstelling gebruikt. Dit kan natuurlijk verder worden verfijnd zodra er enkele gewichtmetingen beschikbaar zijn.

De onderstaande grafiek toont de schaalcorrectiefactor voor verschillende schaal- en hefpuntindelingen. De X-as is de positie van het hefpunt in inches vanaf de achterkant van de bijenkorf. De verschillende lijnen vertegenwoordigen de positie van de schaalmiddellijn in inches vanaf de achterkant van de bijenkorf. Pijlen tonen het bovenstaande voorbeeld.

image-20230409132140051

​

b) Alternatieve Indeling 1

Op basis van het bovenstaande moet de aanvullende ondersteuning 1” van de achterkant van de bijenkorf worden geplaatst. Het wordt aanbevolen om een afwerkingsstuk bovenop de 2×4 te bevestigen. Dit zal helpen voor een nauwkeurige positionering van de aanvullende ondersteuning.

image-20230409132159801

Nu hebben we gelijke momentarmen E en F en de schaalcorrectiefactor van de bijenkorf wordt 2.0, wat de standaard is in de mobiele app. Er zijn echter enkele andere invloedsfactoren die niet over het hoofd mogen worden gezien. Het werkelijke hefpunt van de aanvullende ondersteuning bevindt zich ergens tussen de achterkant van de bijenkorf en de voorkant van de aanvullende ondersteuning vanwege variaties in de vlakheid van het ondersteuningssysteem en mogelijke kromming van de 2×4 zelf.

image-20230409132222112

​

c) Alternatieve Indeling 2

Een ander ondersteuningssysteem kan worden gebruikt dat een gedefinieerd hefpunt heeft en niet wordt beïnvloed door de uitlijning van de ondersteuningsstructuur:

Neem een stuk dennen- of eikenhout, ongeveer ¾” dik en 2” breed. De lengte moet de breedte van de bijenkorf zijn. Snijd een kleine kerf erin. De kerf moet zo diep zijn als de breedte van het zaagblad. Bevestig dit stuk aan de onderkant van de bodemplaat van de bijenkorf. Lijn het gelijk met de achterkant uit. Plaats vervolgens een stuk van 1” bij 1/8” 6061 of 6063 aluminium hoek, dezelfde lengte als de houten strip, eronder om de bijenkorf te ondersteunen. De hoek van de aluminium hoek rust in de kerf. De totale hoogte van de aluminium hoek en het hout moet gelijk of iets groter zijn dan de hoogte van de schaal om ervoor te zorgen dat de bijenkorf vlak is of zelfs iets naar voren is gekanteld om waterafvoer weg van de ingang van de bijenkorf te waarborgen.

image-20230409132309128

d) Lateral Balancing

Al deze ondersteuningssystemen worden beïnvloed door ongedefinieerde laterale gewichtverschuiving, aangezien de bijenkorf op meer dan drie punten rust. Er zijn twee punten aan de voorkant binnen de bijenkorf schaal en een lineaire ondersteuning aan de achterkant van de bijenkorf. Dit kan leiden tot overbelasting van een van de belastingcellen in de schaal en daarom is laterale balans doorgaans vereist als het ondersteuningssysteem onder de bijenkorf geen continu platform is, d.w.z. aparte betonblokken voor de voorkant en de achterkant van de bijenkorf.

Lees het gewicht van elke belastingcel afzonderlijk door over te schakelen naar de realtime weergave met de app. In deze modus wordt het gewicht op de schaal weergegeven als %Links, % Rechts. De rechterkant van de schaal is de kant met de apparaatidentificatiesticker. Er zijn geen verdere acties vereist als het L/R-verschil minder dan 10% is.

Zo niet, shim de schaal aan de kant met de lagere gewichtsaanduiding totdat de gewichtsaanduidingen overeenkomen. Alternatief kan shimmen ook worden gedaan onder de achterste ondersteuning aan de tegenovergestelde kant van de lage gewichtsaanduiding.

​

e) 3-Punt Bijenkorf Ondersteuning

image-20230409132329198

Er is een manier om de noodzaak voor laterale balans te verlichten door een echt 3-punt ondersteuningssysteem in te voeren. De onderdelen zijn vergelijkbaar met die in indeling 2, maar in plaats van een 1” hoek te gebruiken, heb je voor deze indeling een ¾” hoek nodig. Een 7/32” gat wordt in het midden van de plaat geboord in plaats van een kerf te snijden. Een ¼” x 0.5” sleufmachine schroef wordt gebruikt als centrale ondersteuning. De schroef snijdt zijn eigen schroefdraad in de plaat. De sleuf in de schroefkop is uitgelijnd zodat deze op de rand van de aluminium hoek kan rusten in een enkel punt zonder eraf te glijden.

image-20230409132356839

Er is een kleine opening tussen de aluminium hoek en de houten plaat. Het moet worden gegarandeerd dat deze opening gelijkmatig is over de bijenkorf. De schroef in het midden moet het enige contactpunt zijn. Dit zal ervoor zorgen dat het juiste gewicht wordt gemeten en tegelijkertijd is het het “veiligheidsnet” tegen het omvallen van de bijenkorf als er een overmatige ongelijke belasting plaatsvindt, d.w.z. tijdens bijenkorfinspecties.

​ f) BroodMinder Weegschaal Positionering

Het bovenstaande heeft voornamelijk betrekking gehad op de aanvullende ondersteuning. Laten we nu focussen op de weegschaal positionering.

Zoals in de voorgaande secties is aangetoond, is het wenselijk om de voorkant van de weegschaal in lijn te plaatsen met de voorkant van de kast. Het verder naar binnen verplaatsen zou de nauwkeurigheid verbeteren ten koste van de stabiliteit van de kast, en het verder naar buiten verplaatsen zou de nauwkeurigheid verminderen met weinig verbeterde stabiliteit van de kast.

image-20230409132418897

Deze grafiek toont de invloed van de plaatsing van de weegschaal op de correctiefactor van de weegschaal en de fout van de weegschaal die wordt geïntroduceerd door onjuiste positionering van de weegschaal. De invloed is 5,6% per inch.

image-20230409132434621

Het is raadzaam om de positie van de weegschaal op de bodem van de kast te markeren of een mechanische stop te bevestigen. Dit zal helpen om de weegschaal terug te plaatsen op dezelfde locatie nadat deze is verwijderd voor een batterijwissel of om een andere reden.