Termómetro Bluetooth (4 / 8 paso)

Paso 4: Firmware

Los voltajes de termistor son muestreados, convertidos a temperatura y enviados via Bluetooth a la aplicación de EvoThings en el smartphone.

Para convertir el voltaje a un valor de resistencia en el grano, se utiliza una ecuación lineal simple. La derivación de la ecuación se presenta como una imagen. En lugar de convertir el valor muestreado a tensión, ya que el ADC y el voltaje de entrada se hace referencia a la misma tensión de la batería, podemos utilizar el valor del ADC en vez de la tensión. Para el ADC de 10 bits haba, voltaje de la batería completa dará como resultado un valor ADC de 1023 para que usar este valor como Vbat. El valor real de la resistencia del divisor es una consideración importante. Medir el valor real de la resistencia del divisor de 100K y utilice el valor medido en la ecuación para evitar una innecesaria fuente de error debido a la tolerancia de la resistencia.

Una vez calculado el valor de la resistencia, el valor de la resistencia se convierte en temperatura usando la ecuación de Steinhart-Hart. Esta ecuación se describe en detalle en la Wikipedia.

Porque tenemos 2 puntas de prueba, tenía sentido para encapsular la funcionalidad de la sonda en una clase de C++.

La clase encapsula los coeficientes de la ecuación de Steinhart-Hart, el valor de la resistencia nominal del divisor y el puerto analógico para que el termistor está conectado. Un único método, la temperatura, convierte la ADC valor a un valor de la resistencia y luego utiliza el Steinhart-Hart ecuación para determinar la temperatura en Kelvin. El valor devuelto resta cero absoluto (273.15K) de la temperatura calculada para proporcionar el valor en grados Celsius.

El poder de la Lightblue Bean es evidente en el hecho de que toda la funcionalidad de Bluetooth es aplicada esencialmente en 1 línea de código que escribe los valores muestreados de la temperatura en una zona cero datos en la memoria de Bluetooth.

Bean.setScratchData(TEMPERATURE_SCRATCH_IDX, (uint8_t*)&temperature[0], 12);

Cada valor muestreado es representado por un flotador que ocupa 4 bytes. El área de datos rasguño puede llevar 20 bytes. Estamos utilizando sólo 12 de ellos. Hay 5 zonas de datos rasguño podría transferir hasta 100 bytes de datos utilizando datos de rasguño.

El flujo básico de eventos es:

  • Compruebe para ver si tenemos una conexión Bluetooth
  • Si es así, las temperaturas de la muestra y escribir en el área de datos cero
  • Dormir 200ms y repetir el ciclo.

Si no está conectado, el firmware pone el chip ATMEGA328P dormir durante mucho tiempo. El ciclo del sueño es importante para la conservación de energía. El chip ATMEGA328P entra en modo de baja potencia y permanece allí hasta que se interrumpe por el módulo de Bluetooth LBM313. El LBM313 genera una interrupción para activar la ATMEGA328P al final del período de sueño solicitados, o cuando se realiza una conexión de Bluetooth a la haba. Está habilitada la funcionalidad de WakeOnConnect, explícitamente llamando al Bean.enableWakeOnConnect(true) setup().

Es importante tener en cuenta que el firmware funcionará con cualquier aplicación de cliente BLE. Todo el cliente tiene que hacer es los bytes de la temperatura del Banco de datos del rasguño de la tira y reagruparlas en números de punto para la exhibición o procesamiento flotante. La aplicación de cliente más fácil para mí era usar EvoThings.

Artículos Relacionados

Termómetro en interruptor de pared

Termómetro en interruptor de pared

Proyecto simpleEs realmente sencillo proyecto sin cualquier microprocesador.Necesitaba indicar y controlar la humedad, la temperatura en algunas habitaciones de la casa de la familia. Para encontrar el lugar adecuado para instalar termómetro/higrómet
Bufanda de termómetro de Neopixel gigante

Bufanda de termómetro de Neopixel gigante

Pluma de motor, es exterior frío.Hacer esta bufanda vestibles tech alta tecnología, baja con un termómetro incorporado.Ya no se estarán preguntando cómo mucho frío es cuando paso fuera.Esto es conveniente como un proyecto bonito principiante profundi
Construcción de termómetro de bricolaje compost $2

Construcción de termómetro de bricolaje compost $2

Aquí están algunas instrucciones básicas sobre cómo construir un $2 termómetro de compost utilizando fuentes fácilmente disponibles. Parece cutre (en un buen rústico tipo de forma), pero funciona muy bien y utiliza pocos materiales.Realmente no neces
Arduino OLED termómetro e higrómetro con DHT11 para principiantes

Arduino OLED termómetro e higrómetro con DHT11 para principiantes

¡ Hola! Voy a mostrarte cómo hacer un Arduino OLED termómetro e higrómetro * con DHT11.El OLED que utilizamos hoy en día es 1.3″ pulgadas en tamaño, características 128 × 64 píxeles y usa el Bus SPI. En el siguiente paso encontrará más información út
Un termómetro adecuado

Un termómetro adecuado

Una noche bien te das cuenta de que están recibiendo una fiebre. ¿Preguntas como debo ver a un médico en este momento de la noche o debo esperar hasta mañana, es mi fiebre que uno malo o suave? comenzar rebotando en la cabeza. Usted revise su botiquí
Termómetro de VFD-tubo

Termómetro de VFD-tubo

Este es un tutorial corto sobre mi termómetro tubo de VFD. Lo construyo porque me gustó un termómetro interior que nadie, excepto yo.He utilizado los tubos de VFD porque me gusta el estilo retro.Para medida de temperatura que utilicé un DS1621 conect
Termómetro de tubo Nixie bargraph analógico en 13

Termómetro de tubo Nixie bargraph analógico en 13

este es un proyecto para un gráfico de barras ruso IN-13 tubo de Nixie para utilizar como un termómetro de habitación interior.Se llama "NixieTherm" y también está disponible como un recinto de incluido kit completo como se muestra en www.Nixiek
Termómetro interior/exterior reloj/Nixie de VFD Retro Fit Linden manto de reloj

Termómetro interior/exterior reloj/Nixie de VFD Retro Fit Linden manto de reloj

Me decidí a hacer algo que no había visto todavía y combinado (2) separar la electrónica usando pantallas de tubo de vacío de diferentes tipos (2) para hacer esta exhibición única. Nixie tubos para el termómetro y VFD (vacío flouresent pantalla) para
TempBug: termómetro conectado a internet

TempBug: termómetro conectado a internet

En enero pasado, tuvimos algunos problemas con el calor en mi oficina. Específicamente, el tipo de problemas en donde el calor no es, que suba y todavía no no encendido. Esto se encendió por más de unos días y terminó un día o dos después de que cons
Termómetro Digital DIY

Termómetro Digital DIY

este instructable le mostrará cómo hacer un termómetro que muestra la temperatura del aire.No es el termómetro más preciso en el mundo, pero para este precio y el hecho de que es casero...Paso 1: partesSe necesita:1 x ATMega8pantalla de 2 x 7 segment
Termómetro de barbacoa Chef IMP: Internet-Connected

Termómetro de barbacoa Chef IMP: Internet-Connected

cuando era un niño, cocinar nuestras vacaciones pavo o asado con uno de los termómetros poco pop-up que usted simplemente pega en el pájaro, que aparece (probablemente) cuando el pájaro está hecho, o por lo menos seguro para comer. Teníamos un montón
Smart termómetro Personal con Arduino

Smart termómetro Personal con Arduino

Este instructable es preparado como parte de nuestra tarea para TfCD (tecnología para el diseño de concepto) el curso en TU Delft. Se prepara el siguiente instructivo:bo Koperdraat: 4209567Karthik Mahadevan: 4501578En este instructable aprenderá a co
Hacer un termómetro digital

Hacer un termómetro digital

en este instructable, usted aprenderá cómo hacer un simple termómetro digital por menos de £10 utilizando algunos componentes simples y 1 IC.Proyecto terminado debería ser algo como esto:Paso 1: Las partesAquí está una lista de todas las piezas que n
Con un solo LED RGB o una tira de LED para mostrar información: reloj, termómetro y un comunicador raro

Con un solo LED RGB o una tira de LED para mostrar información: reloj, termómetro y un comunicador raro

Uno de los primeros proyectos que hice con un Arduino era una guirnalda de luces de Navidad. De hecho, fue hecho de una tira de LED RGB sencilla cortar en dos, como Arduino tiene sólo 6 salidas PWM de hardware. No quería triviales arcoiris y colores