Índice:
- Etapa 1: Coisas que você precisa
- Etapa 2: o circuito e a construção elétrica
- Etapa 3: Coeficientes da Sonda
- Etapa 4: Firmware
- Etapa 5: aplicativo para smartphone
- Etapa 6: Gabinete
- Etapa 7: Configurações do PC e configuração do Bluetooth
- Etapa 8: Conclusão
Vídeo: Termômetro Bluetooth: 8 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
Este instrutível detalha a fabricação de um termômetro de 2 canais simples usando sondas de termistor de 100K, um módulo Bluetooth e smartphone. O módulo Bluetooth é um LightBlue Bean que foi projetado para simplificar o desenvolvimento do aplicativo Bluetooth Low Energy usando o ambiente familiar Arduino para programar o módulo.
Depois de hesitar por um tempo tentando descobrir como transferir os dados de temperatura do módulo Bluetooth para o meu iPhone, encontrei um aplicativo chamado EvoThings que simplificou consideravelmente o lado de desenvolvimento de aplicativos do projeto. Não tenho um Mac (chocante, eu sei!), O que limita minha capacidade de desenvolver um aplicativo para iPhone, e não tenho tempo para decifrar as novas ferramentas da Microsoft que evidentemente suportam o desenvolvimento de plataforma cruzada para iOS e Android. Eu fiz vários aplicativos de estilo HTML5, mas a única maneira de obter dados Bluetooth é por meio de plug-ins para Cordova, que parecia mais um desafio do que eu tinha tempo. O EvoThings oferece um conjunto de ferramentas muito fácil de usar que transformou o desafio do Bluetooth para o iPhone em uma moleza. E eu gosto de bolo!
No geral, achei a combinação de Lightblue Bean e EvoThings uma solução muito prática com baixo investimento de tempo.
Etapa 1: Coisas que você precisa
Usei uma sonda termistor disponível comercialmente para um canal porque queria o termistor selado para imersão em líquidos. Para o segundo canal, fiz uma sonda básica com um termistor, um fio de bitola 26 e um plugue de fone de ouvido de 3,5 mm. Você é livre para usar qualquer termistor que quiser e pode fazer suas próprias sondas de epóxi termicamente condutor e canudos de plástico / agitadores de café, por exemplo. O que se segue é o que eu usei - não tem a intenção de ser uma lista prescritiva!
Hardware
- Sondas de termistor de 1 x 100K. Modelo Extech TP890. Estes estão comumente disponíveis no ebay e amazon.
- Conectores estéreo de 2 x 2,5 mm que correspondem ao plugue de 2,5 mm nas sondas Extech. Eu limpei conectores de 3,5 mm de um computador antigo, então cortei o plugue da sonda Extech e o substituí por plugues de 3,5 mm. Você deve evitar isso e usar apenas tomadas de 2,5 mm ou um plugue adaptador estéreo de 2,5 mm a 3,5 mm disponível no mercado.
- Talão de termistor de 100K mais fio de bitola 26 mais plugue estéreo de 3,5 mm se você quiser fazer sua própria sonda. Caso contrário, compre uma segunda sonda Extech!
- 1 x Feijão Lightblue por Punch Through Designs. Este é o módulo Bluetooth programável como uma placa de desenvolvimento Arduino. O módulo é meio caro, mas remove muita complexidade. Eles estão realizando uma campanha Kickstarter para o dispositivo de próxima geração que pode valer a pena considerar.
- 2 x 1 / 4W 100K resistores que são usados para dividir a tensão de referência para os termistores. Usei resistores de 5%, mas resistores de tolerância mais alta geralmente são menos sensíveis à temperatura e fornecerão melhor desempenho. 1% é um bom valor de tolerância para isso.
- Ferro de solda e solda
- Cortadores de fio e alguns comprimentos pequenos de fio de conexão de calibre 26 ou 28.
Software e Firmware
- Para programar o Bean, você precisará do aplicativo Bean Loader. Eu usei o Windows, então todos os links serão específicos do Windows. Tudo que você precisa para começar a usar o Bean, incluindo os detalhes do Arduino, está disponível no site LightBlueBean
- O workbench EvoThings para o aplicativo de smartphone está disponível aqui. Toda a documentação de "introdução" também está disponível. Está muito bem documentado.
Etapa 2: o circuito e a construção elétrica
Um termistor é um resistor dependente da temperatura. A sonda Extech tem um coeficiente de temperatura negativo, o que significa que conforme a temperatura aumenta, a resistência diminui. O valor da resistência é medido com um circuito simples que cria um divisor de tensão com o termistor em uma perna e um resistor fixo de 100K na outra. A tensão dividida é alimentada em um canal de entrada analógica no Bean e amostrada no firmware.
Para construir o circuito, eu limpei conectores de áudio de 3,5 mm de um PC velho quebrado. Um multímetro foi usado para determinar os dois pontos no PCB que correspondiam à ponta e à primeira banda da sonda. Os fios foram soldados aos conectores de áudio e ao Bean conforme mostrado nas imagens. Os conectores de áudio foram presos à área do protótipo do Bean usando fita dupla-face. A fita que usei é uma fita adesiva de grau automotivo que cria uma ligação muito forte entre as peças de reboque.
Etapa 3: Coeficientes da Sonda
Tão comum quanto a sonda Extech é, os coeficientes de Steinhart-Hart não foram publicados em qualquer lugar que eu pudesse encontrar. Felizmente, existe uma calculadora online que determinará os coeficientes de 3 medições de temperatura fornecidas por você.https://www.thinksrs.com/downloads/programs/Therm%2…
What foillows é o procedimento básico que usei para chegar aos coeficientes. Não ganhará nenhum ponto por estilo, mas é bom o suficiente para fazer você dizer +/- 1 grau de precisão (um total dedão da minha parte)…. dependendo da precisão do seu termômetro e multímetro de referência, é claro! Meu multímetro é um aparelho barato e sem nome de marca que comprei há muitos anos, quando o dinheiro estava apertado. O dinheiro ainda está apertado e ainda funciona!
Para calibrar, precisamos de três leituras de resistência de 3 temperaturas.
- Quase congelando, adicionando gelo a um copo de água e mexendo até a temperatura estabilizar. Uma vez estabilizado, use o multímetro para registrar a resistência da sonda e o termômetro de referência para registrar a temperatura.
- Agora coloque a sonda em um copo de água em temperatura ambiente, permita que a sonda se equalize com a temperatura da água e registre a temperatura em seu termômetro de referência e a leitura de resistência em seu multímetro.
-
Coloque a sonda em um copo de água quente e registre a resistência.
Temperatura Resistência 5.6 218K 21.0 97,1K 38.6 43.2
Todo esse processo é um pouco parecido com a situação do ovo e da galinha, pois você precisa de um termômetro calibrado para registrar a temperatura e de um multímetro calibrado para registrar a resistência. Erros aqui resultarão em imprecisões nas medições de temperatura que você faz, mas para meus propósitos, +/- 1 grau é mais do que eu preciso.
Conectar esses valores registrados na calculadora da web resulta no seguinte:
Os coeficientes (A, B e C) são inseridos na equação de Stenhart-Hart para deter a temperatura de um valor de resistência amostrado. A equação é definida como (fonte: wikipedia.com)
Onde T = Temperatura em Kelvin
A, B e C são os coeficientes da equação de Steinhart-Hart que estamos tentando determinar R é a resistência à temperatura T
O firmware fará este cálculo.
Etapa 4: Firmware
As tensões do termistor são amostradas, convertidas em temperatura e enviadas via Bluetooth para o aplicativo EvoThings em execução no smartphone.
Para converter a tensão em um valor de resistência dentro do Bean, uma equação linear simples é usada. A derivação da equação é fornecida como uma imagem. Em vez de converter o valor amostrado em tensão, uma vez que tanto o ADC quanto a tensão de entrada são referenciados à mesma tensão da bateria, podemos usar o valor ADC em vez da tensão. Para o Bean ADC de 10 bits, a tensão total da bateria resultará em um valor de ADC de 1023, portanto, usamos esse valor como Vbat. O valor real do resistor divisor é uma consideração importante. Meça o valor real do resistor divisor de 100K e use o valor medido na equação para evitar uma fonte desnecessária de erro devido à tolerância do resistor.
Depois que o valor da resistência é calculado, o valor da resistência é convertido em temperatura usando a equação de Steinhart-Hart. Esta equação é descrita em detalhes na Wikipedia.
Como temos 2 probes, faz sentido encapsular a funcionalidade do probe em uma classe C ++.
A classe encapsula os coeficientes da equação de Steinhart-Hart, o valor da resistência nominal do divisor e a porta analógica à qual o termistor está conectado. Um único método, temperatura (), converte o valor ADC em um valor de resistência e usa a equação de Steinhart-Hart para determinar a temperatura em Kelvin. O valor de retorno subtrai o zero absoluto (273,15 K) da temperatura calculada para fornecer o valor em Celsius.
O poder do Lightblue Bean é evidente no fato de que toda a funcionalidade Bluetooth é essencialmente implementada em 1 linha de código que grava os valores de temperatura amostrados em uma área de dados de rascunho na memória Bluetooth.
Bean.setScratchData (TEMPERATURE_SCRATCH_IDX, (uint8_t *) & temperatura [0], 12);
Cada valor de temperatura amostrado é representado por um flutuador que ocupa 4 bytes. A área de dados temporários pode conter 20 bytes. Estamos usando apenas 12 deles. Existem 5 áreas de dados de rascunho para que você possa transferir até 100 bytes de dados usando dados de rascunho.
O fluxo básico de eventos é:
- Verifique se temos uma conexão Bluetooth
- Em caso afirmativo, teste as temperaturas e grave-as na área de dados de rascunho
- Durma 200ms e repita o ciclo.
Se não estiver conectado, o firmware coloca o chip ATMEGA328P em hibernação por um longo tempo. O ciclo de sono é importante para conservar energia. O chip ATMEGA328P entra no modo de baixa energia e permanece lá até ser interrompido pelo módulo LBM313 Bluetooth. O LBM313 irá gerar uma interrupção para despertar o ATMEGA328P no final do período de hibernação solicitado, ou sempre que uma conexão Bluetooth for feita com o Bean. A funcionalidade WakeOnConnect é habilitada chamando explicitamente Bean.enableWakeOnConnect (true) durante setup ().
É importante observar que o firmware funcionará com qualquer aplicativo cliente BLE. Tudo o que o cliente precisa fazer é retirar os bytes de temperatura do banco de dados de trabalho e remontá-los em números de ponto flutuante para exibição ou processamento. O aplicativo cliente mais fácil para mim era usar o EvoThings.
Etapa 5: aplicativo para smartphone
O aplicativo de amostra Evo Things está muito próximo do que eu precisava, com apenas um pequeno esforço necessário para adicionar os elementos de exibição adicionais para completar o dispositivo de medição de temperatura de 3 canais.
A instalação e operação básica da plataforma EvoThings estão muito bem documentadas no site Evo Things, então não vale a pena repetir isso aqui. Tudo o que abordarei aqui são as alterações específicas que fiz em seu código de amostra para exibir 3 canais de informações de temperatura, extraídos da área de dados de rascunho do Bluetooth.
Depois de instalar o EvoThings Workbench, você encontrará o exemplo Lightblue Bean aqui (em computadores Windows de 64 bits):
ThisPC / Documents / EvothingsStudio_Win64_1. XX / Examples / Lightblue-bean-basic / app
Você pode substituir os arquivos index.html e app.js pelos arquivos anexados a esta etapa. As alterações feitas no arquivo jacascript extraem os 3 valores de temperatura de ponto flutuante da área de dados de rascunho e sobem o HTML interno de novos elementos criados no arquivo HTML.
function onDataReadSuccess (data) {
var temperatureData = novo Float32Array (dados);
var bytes = novo Uint8Array (dados);
var temperatura = temperaturaDados [0];
console.log ('Temperatura lida:' + temperatura + 'C');
document.getElementById ('temperatureAmbient'). innerHTML = temperatureData [0].toFixed (2) + "C °";
document.getElementById ('temperature1'). innerHTML = temperatureData [1].toFixed (2) + "C °";
document.getElementById ('temperature2'). innerHTML = temperatureData [2].toFixed (2) + "C °";
}
Etapa 6: Gabinete
A caixa é uma caixa simples impressa em 3D. Usei o Cubify Design para criar o design, mas qualquer programa de modelagem 3D será suficiente. O arquivo STL é anexado para você imprimir o seu. Se eu tivesse que fazer de novo, faria as paredes um pouco mais grossas do que agora e mudaria o design do clipe que mantém a placa no lugar. Os clipes se quebram facilmente porque a tensão está no mesmo plano das camadas impressas em 3D, que é a orientação mais fraca para as peças impressas em 3D. As paredes são muito finas, então o mecanismo de encaixe é um pouco fraco. Usei fita adesiva transparente para manter a caixa fechada porque as paredes eram muito frágeis - não elegantes, mas funciona!
Etapa 7: Configurações do PC e configuração do Bluetooth
O ciclo de construção e upload do firmware para o Bean é feito por Bluetooth. Só pode haver uma conexão Bluetooth ativa por vez. O Bean Loader está disponível na Windows App Store
O ciclo básico que uso para emparelhar e conectar (e reparar e reconectar quando as coisas dão errado) é o seguinte: No Painel de Controle; / Configurações de Bluetooth, você deve ver a seguinte tela:
Eventualmente, o Windows irá relatar "Pronto para emparelhar". Neste ponto, você pode clicar no ícone do Bean e, após alguns segundos, o Windows solicitará que você insira uma senha. A senha padrão para o bean é 00000
Se a senha for inserida corretamente, o Windows mostrará que o dispositivo está conectado corretamente. Você deve estar neste estado para poder programar o Bean.
Assim que estiver emparelhado e conectado, use o Bean Loader para carregar o firmware para o bean. Descobri que isso falhava com mais freqüência do que não e parecia estar relacionado à proximidade do meu computador. Mova o Bean até encontrar um local que funcione para você. Há momentos em que nada funcionará e o Bean Loader irá sugerir emparelhar novamente o dispositivo. Normalmente, passar pelo processo de emparelhamento novamente irá restaurar a conexão. Você deve "Remover o Dispositivo" antes de emparelhar novamente.
A operação do Bean Loader é direta e bem documentada em seu site. Com o Bean Loader aberto, escolha o item de menu "Programa" para abrir uma caixa de diálogo para navegar até o arquivo Hex fornecido na etapa de firmware deste instrutível.
Uma vez que o firmware é carregado, FECHE o Bean Loader para que a conexão entre o Bean Loader e o hardware Bean seja interrompida. Você só pode ter uma conexão por vez. Agora abra a bancada do EvoThings e inicie o cliente EvoThings no smartphone ou tablet.
Ao clicar no botão "Executar", o cliente EvoThings carregará automaticamente a página html do termômetro. Clique no botão Conectar para conectar ao Bean e você deverá ver as temperaturas exibidas. Sucesso!
Etapa 8: Conclusão
Se tudo estiver montado e configurado corretamente, você deve ter um sistema funcionando que permitirá monitorar as temperaturas com 2 sondas, bem como monitorar a temperatura do sensor BMA250 na placa de desenvolvimento do Bean. Há mais que pode ser feito com EvoThings - eu apenas arranhei a superfície, então deixo esta experiência para você! Obrigado por ler! Se alguma coisa der errado, é só deixar comentários e eu ajudarei no que puder.
Recomendado:
Termômetro luminoso - luz de jardim vitaminada (eNANO De Jardin): 6 etapas
Termômetro Luminoso - Luz de Jardim Vitaminizada (eNANO De Jardin): Luz de Jardim Vitaminizada com Arduino NANO e sensor de temperatura BMP180. Nossa humilde Luz de Jardim terá um poder secreto: será capaz de indicar a temperatura externa por meio de um código de cores e piscando. Sua operação é a seguinte: It i
Termômetro infravermelho inteligente IOT (COVID-19): 3 etapas
IOT Smart Infrared Thermometer (COVID-19): devido ao levante COVID de 2019, decidimos fazer um IOT Smart Infrared Thermometer que se conecta a dispositivos inteligentes para mostrar a temperatura registrada, esta não é apenas uma alternativa mais barata, mas também uma ótima módulo de ensino para tecnologia e IOT que w
Usar smartphone como termômetro sem contato / termômetro portátil: 8 etapas (com fotos)
Use Smartphone como termômetro sem contato / termômetro portátil: Medir a temperatura corporal com sem contato / sem contato como uma pistola térmica. Eu criei este projeto porque o Thermo Gun agora é muito caro, então preciso encontrar uma alternativa para fazer DIY. E o objetivo é fazer com a versão de baixo orçamento.SuppliesMLX90614Ardu
Termômetro infravermelho sem contato baseado em Arduino - Termômetro baseado em IR usando Arduino: 4 etapas
Termômetro infravermelho sem contato baseado em Arduino | Termômetro baseado em IR usando Arduino: Olá pessoal, neste instructables faremos um termômetro sem contato usando arduino. Já que às vezes a temperatura do líquido / sólido é muito alta ou muito baixa e então é difícil fazer contato com ele e ler sua temperatura então naquele cenário
RuuviTag e PiZero W e Blinkt! um termômetro baseado em Beacon Bluetooth: 3 etapas (com imagens)
RuuviTag e PiZero W e Blinkt! um termômetro Bluetooth Beacon: Este instrutível descreve uma abordagem para ler dados de temperatura e umidade de um RuuviTag usando Bluetooth com Raspberry Pi Zero W e para exibir os valores em números binários em um blinkt Pimoroni! pHAT.Ou resumindo: como construir um estado