Fisica e Tecnologia
Sappiamo che molti di voi amano smanettare. Quindi, per lo studente interessato e motivato, ecco ulteriori informazioni e materiale software DIY.
Informazioni sulla Pubblicità BLE
Nota: Se hai suggerimenti per migliorare la spiegazione, inviaci i dettagli.
Per quelle anime coraggiose con la determinazione di creare il proprio equipaggiamento per la raccolta dati, forniamo informazioni sul protocollo di pubblicità BLE utilizzato da BroodMinder. Infatti, il nostro BroodMinder-CELL, WiFi e -SubHub utilizza la pubblicità per intercettare i dispositivi e poi inoltrare i dati direttamente a MyBroodMinder.com.
Ci sono diversi ottimi programmi BLE Explorer disponibili. I nostri preferiti sono:
- Android e iOS – nrfConnect di Nordic Semiconductor. La versione Android è la migliore, ma utilizziamo entrambe tutto il tempo. Ha una bella funzione di grafico del livello del segnale.
- PC – Bluetooth LE Explorer di Microsoft. Sfortunatamente, questo programma non mostra i dati di pubblicità.
- Mac – BlueSee – Questa app sembra funzionare bene e mostra i dati del produttore nel pacchetto di pubblicità.
Probabilmente noterai che i primi 3 byte dell'ID del dispositivo sono sempre 06:09:16, seguito dall'ID del dispositivo particolare che è sempre Model:ID:ID. Alcuni dispositivi (iOS e Mac) nascondono il vero ID, quindi includiamo anche quello nel campo nome nel pacchetto di pubblicità esteso.
Composizione del Pacchetto di Pubblicità per BroodMinder
Quando leggi i pacchetti di pubblicità da BLE, puoi identificare i prodotti BroodMinder osservando quanto segue.
I dati appariranno in questo modo. – questo esempio è dal dispositivo 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 ]
Nota: I valori sono in decimale a meno che non siano preceduti da 0x
1) Controlla il flag "Dati Specifici del Produttore" Bytes 6,7 = 0x18, 0xff
2) Controlla per IF, LLC come produttore Bytes 8,9 = 0x8d, 0x02
Bytes 10-29 sono i dati provenienti dal BroodMinder come descritto di seguito. DeviceModelIFllc_1 = 0x2b (43d = bilancia) DeviceVersionMinor_1 = 0x15 (21d) DeviceVersionMajor_1 = 0x02 (FW 2.21) Elapsed_2V2 = 0x21 (33d) Temperature_2V2 = 0x62d0 WeightL_2V2 = 0x7FFF WeightR_2V2 = 0x8005
La mappatura per tutti i modelli è nella pagina successiva
| PRIMARIO | ||||
|---|---|---|---|---|
| Byte | Tipo | Valore | Parametro | |
| 0 | Lunghezza campo | 02 | ||
| 1 | Tipo di campo | 01 | Connettibile | |
| 2 | Valore | 06 | Dispositivo di Scoperta Generale LE, Connettibile, Modalità Singola | |
| 3 | Lunghezza campo | 02 | ||
| 4 | Tipo di campo | 0A | Potenza di Trasmissione | |
| 5 | Valore | 03 | Potenza in DB | |
| 6 | Lunghezza campo | 24 | ||
| 7 | Tipo di campo | FF | Dati del produttore | |
| 8 | Valore | 8d | IF, LLC = 0x028d, 653 | |
| 9 | Valore | 02 | IF, LLC = 0x028d, 653 | |
| 10 | Valore | Modello | ||
| 11 | Valore | Versione Minore | ||
| 12 | Valore | Versione Maggiore | ||
| 13 | Valore | Temperatura Reale 1 | 47/49/56/57/58 (SM&XLR) | |
| 14 | Valore | Batteria | ||
| 15 | Valore | Trascorso | ||
| 16 | Valore | Trascorso | ||
| 17 | Valore | Temperatura | 47 e oltre è centigrado + 5000 | |
| 18 | Valore | Temperatura | ||
| 19 | Valore | Temperatura in tempo reale 2 | 47/49/56/57/58 (SM&XLR) | |
| 20 | Valore | PesoL | ||
| 21 | Valore | PesoL | ||
| 22 | Valore | PesoR | ||
| 23 | Valore | PesoR | ||
| 24 | Valore | Umidità | sarà 0 per 41/47/49/52 | |
| 25 | Valore | PesoL2/SM_Tempo0 | 49/57/58 (XLR) | |
| 26 | Valore | PesoL2/SM_Tempo1 | 49/57/58 (XLR) | |
| 27 | Valore | PesoR2/SM_Tempo2 | 49/57/58 (XLR) | |
| 28 | Valore | PesoR2/SM_Tempo3 | 49/57/58 (XLR) | |
| 29 | Valore | Peso totale in tempo reale / Stato dello sciame | 47/49/56/57/58 (SM&XLR) | |
| 30 | Valore | Peso totale in tempo reale | 47/49/56/57/58 (SM&XLR) | |
| SECONDARY | Pacchetto pubblicitario esteso | |||
| Byte | Tipo | Valore | Parametro | |
| 0 | Lunghezza campo pubblicitario | 09 | ||
| 1 | Tipo | 09 | Nome locale completo | |
| 2 | 4' | nome ascii | ||
| 3 | 2' | |||
| 4 | :' | |||
| 5 | 0' | |||
| 6 | 0' | |||
| 7 | :' | |||
| 8 | 0' | |||
| 9 | 0' |
Nota: BRM52 BroodMinder-SubHub è diverso come spiegato di seguito.
Ecco le equazioni
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 è il tempo unix dell'ultimo evento di temperatura. Time0 = LSB, Time3 = MSB, sarà il tempo dall'avvio se il tempo non è stato impostato nel sensore tramite una sincronizzazione del dispositivo.
BRM-52 BroodMinder-SubHub
Il -SubHub fa pubblicità in modo ingegnoso. La pubblicità cambia ogni 5 secondi per inviare un dispositivo diverso. Scorrerà attraverso tutti i dispositivi (incluso se stesso) e poi ripeterà.
Chiamiamo queste pubblicità simulate. A seconda del sistema operativo utilizzato, potresti o meno (ad esempio iOS) essere in grado di vedere il vero ID del dispositivo (ad esempio 06:09:16:52:01:23). Ecco perché posizioniamo l'ID del dispositivo nel byte di pubblicità estesa. Nota anche che è difficile leggere la pubblicità estesa per alcuni dispositivi, tuttavia per quelli, di solito puoi leggere il vero ID del dispositivo.
L'ID simulato risiede nei byte 13, 19 e 30. Questo rende il processo come segue:
- Stabilire se questo è un -SubHub dall'ID (sia l'ID vero che l'ID nella pubblicità estesa). Sarà sempre 52:xx:xx.
- Se è un dispositivo “52”, allora analizza i byte 13/19/30. Ad esempio 43/01/23 sarà 43:01:23
- Analizza il resto del pacchetto di pubblicità in base al tipo di dispositivo in base al byte del modello (byte 10)
Facile facile 😉
Fisica del BroodMinder-W
Ci sono molti modi in cui la bilancia dell'arnia BroodMinder può essere utilizzata e poiché misura solo una frazione del peso totale dell'arnia, il design e il posizionamento del supporto ausiliario e la posizione della bilancia BroodMinder diventano una parte integrante del sistema di misurazione del peso totale dell'arnia. In generale, maggiore è lo sforzo messo in questo, migliori saranno i risultati. I sistemi di supporto per arnie mostrati di seguito partono dal più semplice al più sofisticato con la maggiore incertezza alla minore. Spetta all'utente individuale decidere cosa implementare.
NOTA: la fonte di errore più tipica è un supporto inadeguato sotto la bilancia. Questo può risultare in comportamenti strani mentre l'arnia si flette mentre si espande e si contrae a causa del sole, della pioggia, della temperatura, ecc. Fornire un supporto piatto migliorerà i risultati. Una soluzione semplice è posizionare un pannello di compensato da ¾” (o equivalente) sotto le bilance.
NOTA AGGIUNTIVA: Se tutto ciò che vuoi vedere è il flusso di miele, un buon supporto non è necessario. Dovrai solo ignorare le fluttuazioni giornaliere. Sarai comunque in grado di osservare il cambiamento complessivo del peso.
a) Disposizione Predefinita
Questa è la disposizione predefinita con la bilancia nella parte anteriore dell'arnia e un 2×4 come supporto ausiliario (fulcro) sul retro:
Ecco alcuni calcoli riguardanti l'impostazione:
Assunzioni
Il peso dell'arnia W è distribuito uniformemente e il centro di gravità è al centro dell'arnia. Per semplicità, il sovrappeso anteriore della tavola inferiore non è considerato. Si assume che il peso dell'arnia sia il 100%.
Calcoli

Quando si utilizza legno standard 2×4 come supporto posteriore e allineandolo con il retro dell'arnia, il peso totale dell'arnia W può essere calcolato dal peso sulla bilancia S come:

Pertanto, utilizza 2.09 come fattore di scala predefinito nell'app se stai utilizzando questa impostazione. Questo ovviamente può essere affinato una volta disponibili alcune misurazioni di peso.
Il grafico sottostante mostra il fattore di correzione della bilancia per diverse disposizioni della bilancia e del fulcro. L'asse X è la posizione del punto di fulcro in pollici dal retro dell'arnia. Le diverse linee rappresentano la posizione della linea centrale della bilancia in pollici dal retro dell'arnia. Le frecce mostrano l'esempio sopra.

b) Disposizione Alternativa 1
Basato su quanto sopra, il supporto ausiliario dovrebbe essere posizionato a 1” dal retro dell'arnia. Si raccomanda di fissare un pezzo di rifinitura sopra il 2×4. Questo aiuterà per un posizionamento accurato del supporto ausiliario.
Ora abbiamo bracci di leva E e F uguali e il fattore di correzione della bilancia dell'arnia diventa 2.0, che è il valore predefinito nell'app mobile. Ci sono tuttavia alcuni altri fattori di influenza che non dovrebbero essere trascurati. Il vero punto di fulcro del supporto ausiliario si trova ovunque tra la parte posteriore dell'arnia e la parte anteriore del supporto ausiliario a causa delle variazioni del livello del sistema di supporto e della potenziale deformazione del 2×4 stesso.

c) Disposizione Alternativa 2
Può essere utilizzato un diverso sistema di supporto che ha un punto di fulcro definito e non è influenzato dall'allineamento della struttura di supporto:
Prendere un pezzo di pino o rovere, spesso circa ¾” e largo 2”. La lunghezza deve essere pari alla larghezza dell'arnia. Tagliare una piccola fessura in esso. La fessura deve essere profonda quanto la larghezza della lama della sega. Attaccare questo pezzo alla parte inferiore della tavola di fondo dell'arnia. Allinearlo a filo con la parte posteriore. Quindi posizionare un pezzo di angolo in alluminio 1” per 1/8” 6061 o 6063, della stessa lunghezza della striscia di legno, sotto di esso per supportare l'arnia. L'angolo in alluminio si appoggia nella fessura. L'altezza totale dell'angolo in alluminio e del legno deve essere uguale o leggermente superiore all'altezza della bilancia per garantire che l'arnia sia livellata o leggermente inclinata in avanti per garantire il drenaggio dell'acqua lontano dall'ingresso dell'arnia.

d) Bilanciamento Laterale
Tutti i sistemi di supporto sopra descritti sono influenzati da uno spostamento di peso laterale indefinito poiché l'arnia poggia su più di tre punti. Ci sono due punti nella parte anteriore all'interno della bilancia dell'arnia e un supporto lineare nella parte posteriore dell'arnia. Questo potrebbe portare a un sovraccarico su uno dei celle di carico nella bilancia e quindi, il bilanciamento laterale è tipicamente richiesto se il sistema di supporto sotto l'arnia non è una piattaforma continua, ad esempio blocchi di cemento separati per la parte anteriore e posteriore dell'arnia.
Leggere il peso da ciascuna cella di carico individualmente passando alla visualizzazione in tempo reale con l'app. In questa modalità, il peso sulla bilancia è mostrato come %Sinistra, %Destra. Il lato destro della bilancia è il lato con l'etichetta di identificazione del dispositivo. Non è necessaria alcuna ulteriore azione se la differenza L/D è inferiore al 10%.
Se non è così, inserire un distanziale sulla bilancia dal lato con la lettura di peso più bassa fino a quando le letture di peso non corrispondono. In alternativa, il distanziale può essere inserito anche sotto il supporto posteriore sul lato opposto della lettura di peso bassa.
e) Supporto per Arnia a 3 Punti

C'è un modo per alleviare la necessità di bilanciamento laterale introducendo un vero sistema di supporto a 3 punti. I pezzi sono simili a quelli utilizzati nella disposizione 2, ma invece di utilizzare un angolo da 1”, per questa disposizione sarà necessario un angolo da ¾”. Un foro da 7/32” viene praticato nel mezzo della tavola invece di tagliare una fessura. Una vite a macchina slottata da ¼” x 0.5” viene utilizzata come supporto centrale. La vite taglierà i propri filetti nella tavola. La fessura nella testa della vite è allineata in modo che possa appoggiarsi sul bordo dell'angolo in alluminio in un unico punto senza scivolare via.

C'è un piccolo spazio tra l'angolo in alluminio e la tavola di legno. Deve essere garantito che questo spazio sia di larghezza uniforme su tutta l'arnia. La vite al centro dovrebbe essere l'unico punto di contatto. Questo garantirà che il peso corretto venga misurato e allo stesso tempo funge da "rete di sicurezza" contro la caduta dell'arnia se si verifica un carico eccessivamente irregolare, ad esempio durante le ispezioni dell'arnia.
f) Posizionamento della Bilancia BroodMinder
La maggior parte di quanto sopra ha trattato il supporto ausiliario. Concentrandoci ora sul posizionamento della bilancia.
Come mostrato nelle sezioni precedenti, è desiderabile avere la faccia anteriore della bilancia allineata con la faccia anteriore del corpo dell'arnia. Spostarla ulteriormente all'interno migliorerebbe l'accuratezza a scapito della stabilità dell'arnia e spostarla ulteriormente all'esterno ridurrebbe l'accuratezza con una leggera miglioramento della stabilità dell'arnia.

Questo grafico mostra l'influenza del posizionamento della bilancia sul fattore di correzione della bilancia e sull'errore della bilancia introdotto a causa di un posizionamento impreciso della bilancia. L'influenza è del 5.6% per pollice.

È consigliabile segnare la posizione della bilancia sulla tavola di fondo dell'arnia o attaccare un fermo meccanico. Questo aiuterà a riposizionare la bilancia nello stesso luogo dopo che è stata rimossa per un cambio batteria o per qualche altro motivo.