Ga naar inhoud

Natuur- en Technische Zaken

We weten dat velen van jullie graag bezig zijn met dingen uit te proberen. Dus, voor de geïnteresseerde en gemotiveerde student, hier is meer informatie en doe-het-zelf software.

BLE Advertentie-informatie

Opmerking: Als je suggesties hebt voor verbetering van de uitleg, geef ons dan de details.

Voor de moedige zielen met de durf om hun eigen gegevensverzamelingsapparatuur te maken, bieden wij informatie over het BLE-advertentieprotocol dat BroodMinder gebruikt. Inderdaad gebruiken onze eigen BroodMinder-CELL, WiFi en -SubHub de advertentie om af te luisteren op de apparaten en vervolgens de gegevens rechtstreeks door te sturen naar MyBroodMinder.com.

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

  • Android & iOS – nrfConnect van Nordic Semiconductor. De Android-versie is het beste, maar we gebruiken beide altijd. Het heeft een leuke functie voor signaalniveaugrafieken.
  • PC – Bluetooth LE Explorer van Microsoft. Helaas toont dit programma de advertentiegegevens niet.
  • Mac – BlueSee – Deze app lijkt goed te werken en laat de fabrikantsgegevens zien 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 ware ID, dus we nemen die ook op in het naamveld in het uitgebreide advertentiepakket.

Samenstelling van het Advertentiepakket voor BroodMinder

Wanneer je advertentiepakketten leest van BLE, 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 ]

Let op: Waarden zijn in decimalen tenzij voorafgegaan door 0x

1) Controleer op de vlag "Fabrikantspecifieke gegevens" Bytes 6,7 = 0x18, 0xff

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

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

De toewijzing voor alle modellen is op de volgende pagina

PRIMAIRE
Byte Type Value Parameter
0 Ad-veldlengte 02
1 Veldtype 01 Verbindbaar
2 Waarde 06 LE Algemene Ontdekking, Verbindbaar, Enkelvoudig Modus Apparaat
3 Ad-veldlengte 02
4 Veldtype 0A Verzendvermogen
5 Waarde 03 Vermogen in DB
6 Ad-veldlengte 24
7 Veldtype FF Fabrikantsgegevens
8 Waarde 8d IF, LLC = 0x028d, 653
9 Waarde 02 IF, LLC = 0x028d, 653
10 Waarde Model
11 Waarde Versie Minor
12 Waarde Versie Major
13 Waarde Realtime Temp1 47/49/56/57/58 (SM&XLR)
14 Waarde Batterij
15 Waarde Verstreken
16 Waarde Verstreken
17 Waarde Temperatuur 47 en hoger is centicenigraad + 5000
18 Waarde Temperatuur
19 Waarde Realtime Temp2 47/49/56/57/58 (SM&XLR)
20 Waarde GewichtL
21 Waarde GewichtL
22 Waarde GewichtR
23 Waarde GewichtR
24 Waarde Vochtigheid zal 0 zijn voor 41/47/49/52
25 Waarde GewichtL2/SM_Tijd0 49/57/58 (XLR)
26 Waarde GewichtL2/SM_Tijd1 49/57/58 (XLR)
27 Waarde GewichtR2/SM_Tijd2 49/57/58 (XLR)
28 Waarde GewichtR2/SM_Tijd3 49/57/58 (XLR)
29 Waarde Realtime totaalgewicht / Zwermtoestand 47/49/56/57/58 (SM&XLR)
30 Waarde Realtime totaalgewicht 47/49/56/57/58 (SM&XLR)
SECUNDAIR Uitgebreid reclamepakket
Byte Type Waarde Parameter
0 Lengte Ad-veld 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)
{
    temperatuurGradenF = e.data[byteNumAdvTemperatuur_2V2] +  (e.data[byteNumAdvTemperatuur_2V2 + 1] << 8);
    temperatuurGradenF = (temperatuurGradenF / Math.Pow(2, 16) * 165 - 40) * 9 / 5 + 32;
}
else
{
    dubbele temperatuurGradenC = e.data[byteNumAdvTemperatuur_2V2] + (e.data[byteNumAdvTemperatuur_2V2 + 1] << 8);
    temperatuurGradenC = (temperatuurGradenC - 5000) / 100;
    temperatuurGradenF = temperatuurGradenC * 9 / 5 + 32;
}
    luchtvochtigheidProcent = e.data[byteNumAdvVochtigheid_1V2];
if (ModelNumber == 43)
{
    gewichtL = e.data[byteNumAdvGewichtL_2V2 + 1] * 256 + e.data[byteNumAdvGewichtL_2V2 + 0] - 32767;
    geschaaldGewichtL = gewichtL / 100;
    gewichtR = e.data[byteNumAdvGewichtR_2V2 + 1] * 256 + e.data[byteNumAdvGewichtR_2V2 + 0] - 32767;
    geschaaldGewichtR = gewichtR / 100;
} 
else if (ModelNumber == 49 | ModelNumber == 57 | ModelNumber == 58)
{
    gewichtR = e.data[byteNumAdvGewichtL_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 de laatste temperatuurevenement. Time0 = LSB, Time3 = MSB, het zal de tijd sinds opstarten zijn als de tijd niet is ingesteld in het apparaat door een apparaatsynchronisatie.

BRM-52 BroodMinder-SubHub

De -SubHub voert wat slimme reclame uit. De reclame verandert elke 5 seconden om een ander apparaat uit te zenden. Het zal alle apparaten doorlopen (inclusief zichzelf) en dan herhalen.

We noemen deze Mock-advertenties. Afhankelijk van het gebruikte besturingssysteem kunt u al dan niet (bijv. iOS) de ware apparaat-ID zien (bijv. 06:09:16:52:01:23). Daarom plaatsen we de apparaat-ID in de uitgebreide advertentiebyte. Merk ook op dat het moeilijk kan zijn om de uitgebreide advertenties voor sommige apparaten te lezen, maar voor diegene kunt u meestal wel de ware apparaat-ID lezen.

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

  1. Vaststellen of dit een -SubHub is aan de hand van de ID (ofwel de ware ID of de ID in de uitgebreide advertenties). Het zal altijd 52:xx:xx zijn.
  2. Als het een "52" apparaat is, analyseer dan bytes 13/19/30. Bijv. 43/01/23 zal 43:01:23 zijn.
  3. Analyseer de rest van het advertentiepakket volgens het apparaattype op basis van het modelbyte (byte 10)

Eitje 😉

BroodMinder-W natuurkunde

Er zijn vele manieren waarop de bijenmonitoringsweegschaal van BroodMinder kan worden gebruikt en aangezien deze slechts een fractie van het totale gewicht van de bijenkorf meet, wordt het ontwerp en de plaatsing van de hulpsteun en de positie van de BroodMinder-weegschaal een integraal onderdeel van het totale meetsysteem van het korfgewicht. Over het algemeen geldt dat hoe meer moeite hierin wordt gestoken, hoe beter de resultaten zullen zijn. De bijensteunsystemen hieronder beginnen van de makkelijkste naar de meest geavanceerde met de grootste onzekerheid tot de laagste. Het is aan de individuele gebruiker om te beslissen wat te implementeren.

OPMERKING: de meest voorkomende foutbron is onvoldoende ondersteuning onder de weegschaal. Dit kan resulteren in vreemd gedrag doordat de korf buigt wanneer deze uitzet en krimpt door zon, regen, temperatuur, enz. Het bieden van een vlakke ondersteuning zal de resultaten verbeteren. Een eenvoudige oplossing is om een ​​¾" multiplex plaat (of equivalent) onder de weegschalen te plaatsen.

AANVULLENDE OPMERKING: Als u alleen de honingstroom wilt zien, is goede ondersteuning niet vereist. U zult gewoon de dagelijkse schommelingen moeten negeren. U kunt nog steeds de algehele gewichtsverandering waarnemen.

a) Standaard Opstelling

Dit is de standaard opstelling met de weegschaal aan de voorkant van de korf en een 2x4 als hulpondersteuning (steunpunt) aan de achterkant:

image-20230409132020233

Hier zijn enkele berekeningen rond deze opstelling:

Aannames

Het korfgewicht W is gelijkmatig verdeeld en het zwaartepunt bevindt zich in het midden van de korf. Voor eenvoudigheid wordt de overhang aan de voorkant van het bodemrooster niet in overweging genomen. Het korfgewicht wordt verondersteld 100% te zijn.

Berekeningen

image-20230409132049073

Bij het gebruik van standaard 2x4 hout als achtersteun en het uitlijnen ervan met de achterkant van de korf, kan het totale korfgewicht W worden berekend aan de hand van het gewicht op de weegschaal S als:

image-20230409132117498

Gebruik daarom 2,09 als de standaard korfschaalfactor in de app als u deze opstelling gebruikt. Dit kan natuurlijk worden afgestemd zodra enkele gewichtsmetingen beschikbaar zijn.

De grafiek hieronder toont de schaalcorrectiefactor voor verschillende weegschalen en steunopstellingen. De X-as is de positie van het steunpunt in inches vanaf de achterkant van de korf. De verschillende lijnen vertegenwoordigen de positie van het centrumpunt van de weegschaal in inches vanaf de achterkant van de korf. Pijlen tonen het bovenstaande voorbeeld.

image-20230409132140051

b) Alternatieve Opstelling 1

Op basis van het bovenstaande moet de hulpsteun 1" vanaf de achterkant van de korf worden geplaatst. Het wordt aanbevolen om bovenop de 2x4 een afwerkingsstuk te bevestigen. Dit zal helpen bij een nauwkeurige positionering van de hulpsteun.

image-20230409132159801

Nu We hebben gelijke momentarmen E en F en de correctiefactor van de kastweegschaal wordt 2.0, wat de standaardinstelling is in de mobiele app. Er zijn echter nog andere invloedsfactoren die niet over het hoofd mogen worden gezien. Het werkelijke draaipunt van de hulpondersteuning bevindt zich ergens tussen de achterkant van de kast en de voorkant van de hulpondersteuning als gevolg van variaties in het niveau van het ondersteuningssysteem en mogelijke vervorming van de 2x4 zelf.

c) Alternatieve regeling 2

Er kan een ander ondersteuningssysteem worden gebruikt met een gedefinieerd draaipunt en dat niet wordt beïnvloed door de uitlijning van de ondersteuningsstructuur:

Neem een stuk grenen of eiken, ongeveer ¾” dik en 2” breed. De lengte moet gelijk zijn aan de breedte van de kast. Maak een kleine inkeping erin. De inkeping moet even diep zijn als de breedte van het zaagblad. Bevestig dit stuk aan de onderkant van de bodemplank van de kast. Lijn het uit met de achterkant. Plaats vervolgens een stuk aluminium hoek van 1” bij 1/8” 6061 of 6063, dezelfde lengte als de houten strip, eronder om de kast te ondersteunen. De hoek van het aluminium rust in de inkeping. De totale hoogte van de aluminium hoek en het hout moet gelijk zijn of iets groter dan de hoogte van de weegschaal om ervoor te zorgen dat de kast waterpas staat of zelfs lichtjes naar voren gekanteld is om ervoor te zorgen dat water wegloopt van de ingang van de kast.

d) Lateraal balanceren

Alle bovengenoemde ondersteuningssystemen worden beïnvloed door een ongedefinieerde laterale gewichtsverschuiving omdat de kast rust op meer dan drie punten. Er zijn twee punten aan de voorkant binnen in de kastweegschaal en een lineaire ondersteuning aan de achterkant van de kast. Dit zou kunnen leiden tot overbelasting van een van de loadcellen in de weegschaal en daarom is lateraal balanceren meestal vereist als het ondersteuningssysteem onder de kast geen continu platform is, dat wil zeggen afzonderlijke betonblokken voor de voorkant en de achterkant van de kast.

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

Indien niet, schuif dan de weegschaal aan de kant met het lagere gewicht totdat de gewichtsaflezingen overeenkomen. Het is ook mogelijk om de weegschaal onder de achterste ondersteuning aan de tegenovergestelde zijde van de lage gewichtsaflezing te schuiven.

e) 3-Punts kastondersteuning

Er is een manier om de noodzaak van lateraal balanceren te verminderen door een echt 3-punts ondersteuningssysteem te introduceren. De onderdelen zijn vergelijkbaar met die gebruikt in regeling 2, maar in plaats van een 1” hoek te gebruiken, heb je voor deze regeling een ¾” hoek nodig. In het midden van het bord wordt een gat van 7/32” geboord in plaats van een inkeping te maken. Als centrale ondersteuning wordt een sleufmachinebout van ¼” x 0,5” gebruikt. De bout zal zelf zijn schroefdraad in het bord snijden. De sleuf in de kop van de bout is uitgelijnd zodat deze op de rand van de aluminium hoek kan rusten op één punt zonder eraf te schuiven.

Er bevindt zich een kleine opening tussen de aluminium hoek en het houten bord. Zorg ervoor dat deze opening gelijkmatig is over de gehele breedte van de kast. De bout in het midden moet het enige contactpunt zijn. Hierdoor wordt ervoor gezorgd dat het juiste gewicht wordt gemeten en tegelijkertijd is het de "veiligheidsnet" tegen het omvallen van de kast als er sprake is van overmatige ongelijke belasting, bijvoorbeeld tijdens kastinspecties.

f) Positie van de BroodMinder weegschaal

De meeste bovenstaande punten hebben te maken met de hulpondersteuning. Laten we ons nu richten op de positie van de weegschaal.

Zoals getoond in de vorige secties, is het wenselijk om het voorvlak van de weegschaal in lijn te hebben met het voorvlak van het kastlichaam. Als het verder naar binnen wordt verplaatst, verbetert dit de nauwkeurigheid ten koste van de stabiliteit van de kast en als het verder naar buiten wordt verplaatst, vermindert dit de nauwkeurigheid met weinig verbeterde stabiliteit van de kast.

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

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