Ir para o conteúdo

Física e Tecnologia

Sabemos que muitos de vocês gostam de mexer com tecnologia. Portanto, para os estudantes interessados e motivados, aqui estão mais informações e coisas de software para fazer você mesmo.

Informações sobre Publicidade BLE

Nota: Se tiver sugestões para melhorar a explicação, envie-nos os detalhes.

Para aqueles corajosos o suficiente para criar seu próprio equipamento de coleta de dados, fornecemos informações sobre o protocolo de publicidade BLE que o BroodMinder utiliza. De fato, nossos próprios BroodMinder-CELL, WiFi e -SubHub utilizam a publicidade para interceptar os dispositivos e, em seguida, encaminhar os dados diretamente para MyBroodMinder.com.

Existem vários programas bons de Explorador BLE disponíveis. Nossos favoritos são:

  • Android e iOS – nrfConnect da Nordic Semiconductor. A versão para Android é a melhor, mas usamos ambas o tempo todo. Tem um recurso legal de gráfico de nível de sinal.
  • PC – Bluetooth LE Explorer da Microsoft. Infelizmente, este programa não mostra os dados de publicidade.
  • Mac – BlueSee – Este aplicativo parece funcionar bem e mostra os dados do fabricante no pacote de publicidade.

Provavelmente você notará que os três primeiros bytes do ID do dispositivo são sempre 06:09:16, seguidos pelo ID específico do dispositivo, que é sempre Model:ID:ID. Alguns dispositivos (iOS e Mac) ocultam o verdadeiro ID, então também incluímos isso no campo de nome no pacote de publicidade estendido.

Composição do Pacote de Publicidade para o BroodMinder

Quando você lê os pacotes de publicidade do BLE, você pode identificar os produtos BroodMinder observando o seguinte.

Os dados se parecerão com algo assim - este exemplo é do dispositivo 43:30:07

Evento de Resposta de Verificação GAP ------------------------------------------------------------------------------------

ble_evt_gap_scan_response: rssi=-77, tipo_do_pacote=0, remetente=[ 07 30 43 80 07 00 ], tipo_de_endereço=0, vínculo=255, dados=[ 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: Os valores estão em decimal, a menos que precedidos por 0x

1) Verificar a flag "Dados Específicos do Fabricante" Bytes 6,7 = 0x18, 0xff

2) Verificar se o IF, LLC é o fabricante Bytes 8,9 = 0x8d, 0x02

Os bytes 10-29 são os dados do BroodMinder, conforme detalhado abaixo. DeviceModelIFllc_1 = 0x2b (43d = escala) DeviceVersionMinor_1 = 0x15 (21d) DeviceVersionMajor_1 = 0x02 (FW 2.21) Elapsed_2V2 = 0x21 (33d) Temperature_2V2 = 0x62d0 PesoL_2V2 = 0x7FFF PesoR_2V2 = 0x8005

A tabela de mapeamento para todos os modelos está na próxima página

PRIMÁRIO
Byte Comprimento do campo Ad 02
1 Tipo de campo 01 Conectável
2 Valor 06 Descoberta Geral LE, Conectável, Dispositivo de Modo Único
3 Comprimento do campo Ad 02
4 Tipo de campo 0A Potência Xmit
5 Valor 03 Potência em DB
6 Comprimento do campo Ad 24
7 Tipo de campo FF Dados do fabricante
8 Valor 8d IF, LLC = 0x028d, 653
9 Valor 02 IF, LLC = 0x028d, 653
10 Valor Modelo
11 Valor Versão Menor
12 Valor Versão Maior
13 Valor Temperatura em Tempo Real 47/49/56/57/58 (SM&XLR)
14 Valor Bateria
15 Valor ```
Tempo decorrido
16 Valor Tempo decorrido
17 Valor Temperatura 47 e acima é centígrado + 5000
18 Valor Temperatura
19 Valor Temperatura em tempo real 47/49/56/57/58 (SM&XLR)
20 Valor Peso E
21 Valor Peso E
22 Valor Peso D
23 Valor Peso D
24 Valor Umidade será 0 para 41/47/49/52
25 Valor Peso E2/SM_Hora0 49/57/58 (XLR)
26 Valor Peso E2/SM_Hora1 49/57/58 (XLR)
27 Valor Peso D2/SM_Hora2 49/57/58 (XLR)
28 Valor Peso D2/SM_Hora3 49/57/58 (XLR)
29 Valor Peso total em tempo real/Estado de Enxame 47/49/56/57/58 (SM&XLR)
30 Valor Peso total em tempo real 47/49/56/57/58 (SM&XLR)
SECUNDÁRIO Pacote de Publicidade Estendido
Byte Tipo Valor Parâmetro
0 Comprimento do campo de Ad 09
1 Tipo 09 Nome Local Completo
2 4' nome ascii
3 2'
4 :'
5 0'
6 0'
7 :'
8 0'
9 0'

Observação: BRM52 BroodMinder-SubHub é diferente como explicado abaixo.

Aqui estão as equações

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; } A temperatura em tempo real é ((float)(e.data[byteNumAdvRealTimeTemperature2] * 256 + e.data[byteNumAdvRealTimeTemperature1] - 5000) / 100) * 9 / 5 + 32;

O peso em tempo real é (float)(e.data[byteNumAdvRealTimeWeight2] * 256 + e.data[byteNumAdvRealTimeWeight1] - 32767 ) / 100;

O SM_Time é o tempo Unix do último evento de temperatura. Time0 = LSB, Time3 = MSB, será o tempo desde a inicialização se o tempo não tiver sido definido no dispositivo por uma sincronização do dispositivo.

BRM-52 BroodMinder-SubHub

O -SubHub faz alguma publicidade astuciosa. A publicidade muda a cada 5 segundos para enviar um dispositivo diferente. Ele passará por todos os dispositivos (incluindo ele próprio) e depois repetirá.

Chamamos isso de Mock Advertisements. Dependendo do sistema operacional que está sendo usado, você pode ou não (por exemplo, iOS) ser capaz de ver o verdadeiro ID do dispositivo (por exemplo, 06:09:16:52:01:23). É por isso que colocamos o ID do dispositivo no byte de publicidade estendida. Observe também que é difícil ler a publicidade estendida para alguns dispositivos, no entanto, para esses, você geralmente pode ler o verdadeiro ID do dispositivo.

O ID falso reside nos bytes 13, 19 e 30. Isso torna o processo o seguinte:

  1. Estabeleça se este é um -SubHub pelo ID (seja o verdadeiro ID ou o ID na publicidade estendida). Sempre será 52:xx:xx.
  2. Se for um dispositivo "52", em seguida, analise os bytes 13/19/30. Por exemplo, 43/01/23 será 43:01:23.
  3. Analise o restante do pacote de publicidade de acordo com o tipo de dispositivo com base no byte do modelo (byte 10).

Fácil fácil 😉

Física do BroodMinder-W

Existem muitas maneiras pelas quais a balança da colmeia BroodMinder pode ser usada e, como mede apenas uma fração do peso total da colmeia, o design e a colocação do suporte auxiliar e a posição da balança BroodMinder tornam-se parte integrante do sistema de medição total do peso da colmeia. Geralmente, quanto mais esforço é dedicado a isso, melhores serão os resultados. Os sistemas de suporte de colmeia mostrados abaixo vão desde os mais simples até os mais sofisticados, com a maior incerteza para a menor. Cabe ao usuário individual decidir o que implementar.

OBSERVAÇÃO: a fonte de erro mais típica é o suporte inadequado sob a balança. Isso pode resultar em comportamentos estranhos, pois a colmeia se flexiona à medida que se expande e contrai devido ao sol, à chuva, à temperatura, etc. Fornecer um suporte plano melhorará os resultados. Uma solução fácil é colocar uma folha de compensado de ¾ polegadas (ou equivalente) sob as balanças.

NOTA ADICIONAL: Se tudo o que você deseja ver é o fluxo de mel, um bom suporte não é necessário. Você só precisará ignorar as flutuações diárias. Ainda será possível observar a mudança total no peso.

​​​​​​​

a) Arranjo Padrão

Este é o arranjo padrão com a balança na frente da colmeia e um 2x4 como suporte auxiliar (apoio) na parte de trás:

image-20230409132020233

Aqui estão alguns cálculos sobre a configuração:

Suposições

O peso da colmeia W está distribuído uniformemente e o centro de gravidade está no meio da colmeia. Para simplicidade, a projeção frontal da placa inferior não é considerada. O peso da colmeia é assumido como 100%.

Cálculos

image-20230409132049073

Ao usar madeira padrão 2x4 como suporte traseiro e alinhá-lo com a parte de trás da colmeia, o peso total da colmeia W pode ser calculado a partir do peso na balança S como:

image-20230409132117498

Portanto, use 2,09 como fator de escala padrão da colmeia no aplicativo se estiver usando esta configuração. Isso, é claro, pode ser ajustado após disponíveis algumas medições de peso.

O gráfico abaixo mostra o fator de correção da balança para diferentes arranjos de balança e fulcro. O Eixo-X é a posição do ponto de fulcro em polegadas a partir da parte de trás da colmeia. As diferentes linhas representam a posição da linha central da balança em polegadas a partir da parte de trás da colmeia. As setas mostram o exemplo acima.

image-20230409132140051

​​​​​​​

b) Arranjo Alternativo 1

Com base no acima, o suporte auxiliar deve ser colocado a 1” da parte de trás da colmeia. É recomendável fixar uma peça de acabamento no topo do 2x4. Isso ajudará na posição precisa do suporte auxiliar.

image-20230409132159801

Agora Temos braços de momento iguais E e F, e o fator de correção da balança da colmeia se torna 2,0, que é o padrão no aplicativo móvel. No entanto, há outros fatores de influência que não devem ser negligenciados. O ponto real do fulcro do suporte auxiliar está em algum lugar entre a parte de trás da colmeia e a frente do suporte auxiliar devido às variações do nivelamento do sistema de suporte e ao potencial empenamento do sarrafo em si.

c) Arranjo Alternativo 2

Pode ser utilizado um sistema de suporte diferente que tenha um ponto de apoio definido e não seja afetado pelo alinhamento da estrutura de suporte:

Pegue um pedaço de pinheiro ou carvalho, com cerca de ¾” de espessura e 2” de largura. O comprimento precisa ser a largura da colmeia. Faça um pequeno corte nele. O corte deve ser tão profundo quanto a largura da lâmina da serra. Fixe este pedaço na parte inferior da placa inferior da colmeia. Alinhe-o com a parte de trás. Em seguida, coloque um pedaço de ângulo de alumínio 1” por 1/8” 6061 ou 6063, do mesmo comprimento que a tira de madeira, embaixo para apoiar a colmeia. O canto do ângulo de alumínio repousa no corte. A altura total do ângulo de alumínio e da madeira precisa ser igual ou ligeiramente maior que a altura da balança para garantir que a colmeia esteja nivelada ou até mesmo ligeiramente inclinada para frente para garantir o escoamento da água para longe da entrada da colmeia.

d) Equilíbrio Lateral

Todos os sistemas de suporte acima são afetados por um deslocamento de peso lateral indefinido, uma vez que a colmeia repousa em mais de três pontos. Há dois pontos na frente dentro da balança da colmeia e um suporte linear na parte de trás da colmeia. Isso pode levar à sobrecarga em uma das células de carga na balança e, portanto, o equilíbrio lateral geralmente é necessário se o sistema de suporte sob a colmeia não for uma plataforma contínua, ou seja, blocos de cimento separados para a frente e a parte de trás da colmeia.

Leia o peso de cada célula de carga individualmente alternando para a exibição em tempo real com o aplicativo. Neste modo, o peso na balança é mostrado como %Esquerda, % Direita. O lado direito da balança é o lado com a etiqueta de identificação do dispositivo. Nenhuma ação adicional é necessária se a diferença E/D for inferior a 10%.

Caso contrário, ajuste a balança no lado com a leitura de peso mais baixa até que as leituras de peso se igualem. Alternativamente, também pode ser feito ajustes sob o suporte traseiro no lado oposto à leitura de peso baixa.

e) Suporte de 3 Pontos para Colmeia

Existe uma maneira de evitar a necessidade de equilíbrio lateral introduzindo um verdadeiro sistema de suporte de 3 pontos. As peças são semelhantes às usadas no arranjo 2, mas em vez de usar um ângulo de 1”, para este arranjo você precisará de um ângulo de ¾”. Um furo de 7/32” é feito no meio da placa em vez de cortar um sulco. Um parafuso de máquina ranhurado de ¼” x 0.5” é usado como suporte central. O parafuso vai cortar suas próprias roscas na placa. A fenda na cabeça do parafuso é alinhada de modo que possa repousar na borda do ângulo de alumínio em um único ponto sem deslizar.

Há um pequeno espaço entre o ângulo de alumínio e a placa de madeira. Deve-se garantir que este espaço tenha a mesma largura em toda a colmeia. O parafuso no meio deve ser o único ponto de contato. Isso garantirá que o peso correto seja medido e, ao mesmo tempo, é a "rede de segurança" contra a colmeia tombar se ocorrer uma carga desigual excessiva, por exemplo, durante inspeções na colmeia.

f) Posicionamento da Balança BroodMinder

A maioria do que foi discutido até agora tratou do suporte auxiliar. Vamos agora focar no posicionamento da balança.

Como mostrado nas seções anteriores, é desejável que a face frontal da balança seja colocada alinhada com a face frontal do corpo da colmeia. Movê-la mais para dentro melhoraria a precisão às custas da estabilidade da colmeia, e movê-la mais para fora reduziria a precisão com pouca melhoria na estabilidade da colmeia.

Este gráfico mostra a influência do posicionamento da balança sobre o fator de correção da balança e o erro introduzido devido ao posicionamento impreciso da balança. A influência é de 5,6% por polegada.

É aconselhável marcar a posição da balança na placa inferior da colmeia ou fixar um batente mecânico. Isso ajudará a colocar a balança de volta na mesma localização após ter sido retirada para troca de bateria ou por alguma outra razão.