TempBug: termómetro conectado a internet (7 / 7 paso)

Paso 7: Excavación en el código

Imp los firmwares están escritos en un lenguaje orientado a objetos llamado ardilla, que se ve y se siente mucho como javascript. Ardilla corre en una máquina virtual sobre la imp OS dentro de la imp, errores de tiempo de ejecución no golpee el dispositivo fuera de línea, y usted tiene acceso a un montón de características interesantes basados en OS, como con entrada serial y fácil una línea API para establecer GPIOs o comunicarse con dispositivos periféricos.

Para echar un vistazo en todas las cosas que puede hacer en el firmware del imp, comprobar hacia fuera el imp eléctrica referencia de la API y electric imp trabajado página de ejemplos. Para ver que pines pueden hacer qué, Compruebe hacia fuera el imp pin mux.

Aquí nuestro código es bastante simple. Aquí está nuestro procedimiento operativo básico:

  • Establecer algunas constantes
  • Definir una clase para el sensor de temperatura
  • Crear una instancia de nuestra clase para crear un objeto de sensor de temperatura
  • Leer el Sensor de temperatura
  • Enviar la datapoint al agente
  • Horario para despertar un poco y hacerlo todo otra vez

Las constantes en las líneas 8 y 9 parecen un poco siniestras, pero son simples. Estos son los parámetros para el termistor - puede encontrar en la hoja de datos para el termistor que está utilizando. Si estás usando el termistor ligado al anterior, incluso puede guardar los parámetros ya establecidos aquí.

Líneas 20 a 71 son una definición de clase - esto es básicamente un conjunto de instrucciones de cómo hacer diferentes cosas importantes con un termistor, como leer la temperatura. Esto viene directamente de github - es una pieza bonita, modular de código por lo que fácilmente pueden ser reutilizado.

Después de eso, sólo necesitamos definir nuestra lógica de alto nivel. En las líneas 79 a 83, configuramos los dos pernos que estamos utilizando. Acuérdate de cuando construimos el dispositivo, uno de los pasadores es un pin depermitir , que permitirá que la corriente fluya a través del termistor cuando se encuentra bajo. El otro pin es nuestro pin entrada analógica, que usaremos para leer el voltaje en el termistor.

Línea 86, hacemos un llamamiento a nuestra definición de clase de principios para crear un objeto de termistor. Este objeto toma las constantes que hemos creado anteriormente y tiene métodos que nos permiten leer la temperatura en Celsius o Fahrenheit.

Líneas de 88 a 96 son donde la magia sucede, activar el sensor, tomar una lectura, envíe al agente y desactivar el sensor para ahorrar batería.

Y por último, programar un despertador en quince minutos. Vamos a ir a un sueño profundo en el tiempo, ahorro de la batería:

Es el firmware del dispositivo - echemos un vistazo al agente. Ya hemos visto parte del agente - establecemos las líneas Sparkfun clave pública y clave privada 6 y 7 del agente antes. A continuación, tenemos otra definición de la clase; éste define métodos para interactuar con un flujo de datos de Sparkfun.

Líneas 62 a 65 son algo realmente interesante de código - este es el gancho que utiliza el agente para recibir nuevos datos de temperatura del dispositivo. Esto se hace mediante el registro de un agente "callback" con agent.on. Esto, dice, "cuando el dispositivo le envía un evento llamado"temp", llame la función siguiente con los datos marcados con esa etiqueta". Mirando hacia atrás en la línea 95 del firmware del dispositivo, vemos que enviamos datos marcados "temp" con una función llamada "agent.send". Esto es donde los datos fueron!

Por último, vemos el agente hacer dos cosas cuando empieza a correr. La primera: envía un mensaje avisándonos que comenzó y está listo para recibir datos. Segundo, se crea una instancia de un objeto de secuencia de datos de Sparkfun con la clase que definimos antes, dejarnos usar los métodos de esas clases para enviar datos a Sparkfun, como viene en.

El agente no reiniciar o dormir; se inicia la primera vez el dispositivo arranca con este modelo y continúa funcionando para siempre, manejando cada datapoint nueva cuando se trata llamar a la devolución de llamada "device.on". Es el cerebro del dispositivo en la nube!

Es el firmware! Disfrute de su nuevo termómetro conectado a Internet.

Artículos Relacionados

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
ImPrinter: la impresora térmica Imp eléctricos inalámbrica, conectados a internet

ImPrinter: la impresora térmica Imp eléctricos inalámbrica, conectados a internet

impresoras térmicas han conseguido (otra vez) muy populares en los últimos meses; muchas personas parecen estar muy interesada en tener información relevante surge en un pequeño carrete de papel térmico en vez de en las alertas de teléfono o similare
Tablero de conexión Wi-Fi ESP8266: NeoPixels, termómetro, sueño profundo, AP servidor Web config, EEPROM

Tablero de conexión Wi-Fi ESP8266: NeoPixels, termómetro, sueño profundo, AP servidor Web config, EEPROM

En el archivo adjunto zip puede leer tutoriales sobre hacer divertidas las cosas con la Junta de ESP8266 WiFi de bajo costo:Módulo Wi-Fi ESP8266 de programación de IDE Arduino.Interruptor ON/OFF luz usando su teléfono móvil sobre Wi-Fi."NeoPixels&quo
Arduino Nano: Con DS1820/DS18S20 Maxim un termómetro Sensor módulo

Arduino Nano: Con DS1820/DS18S20 Maxim un termómetro Sensor módulo

He recibido muchas peticiones para tutorial de termómetro OneWire Maxim DS1820/DS18S20 , así que aquí está el primer tal Instructable.En la siguiente Instructables demuestro cómo trabajar con varios termómetros conectados al mismo pin, así como obten
Arduino Nano: Leer múltiples DS1820/DS18S20 Maxim un alambre Termómetros con Visuino

Arduino Nano: Leer múltiples DS1820/DS18S20 Maxim un alambre Termómetros con Visuino

Una de las razones que los Termómetros DS18B20 OneWire Maxim DS1820 DS18S20 / / son tan populares es que varios termómetros pueden ser conectados e incluso funciona con sólo 2 hilos. Ya postee Instructables en cómo conectar un termómetro y cómo obten
Arduino Nano: Leer DS1820/DS18S20 Maxim un cable termómetro dirección con Visuino

Arduino Nano: Leer DS1820/DS18S20 Maxim un cable termómetro dirección con Visuino

OneWire Maxim DS1820 DS18S20 / / DS18B20 son termómetros muy populares y con razón. Termómetros de múltiples se pueden conectar e incluso funciona con sólo 2 hilos. Ya postee Instructable sobre cómo conectar y leer OneWire termómetro aquí.Cada termóm
Reloj con termómetro usando Arduino i2c 16 x 2 lcd, RTC DS1307 y DHT11 sensor.

Reloj con termómetro usando Arduino i2c 16 x 2 lcd, RTC DS1307 y DHT11 sensor.

Hello! Ya ha pasado un tiempo no me he posteado nada en Instructables, pero ahora hice un simple proyecto que he visto en internet en varias formas. He conseguido crear un código con otros códigos que he encontrado en internet y tengo que decir es tr
Termómetro al aire libre de LED

Termómetro al aire libre de LED

si no quieres leer cualquier cháchara sin sentido puede sentirse libre saltar a la página dos.Estáis avisados.Durante el verano una vez más estaba buscando un divertido proyecto, que podría aprender algo de (AKA lío hasta veinte veces y corregir mis
Arduino WiFi termómetro (con página web) - Arduino wireless

Arduino WiFi termómetro (con página web) - Arduino wireless

Lo que usted necesitaUna placa Arduino (cualquier placa compatible es aceptable).LM-35 (para utilizar con el archivo suministrado se puede utilizar DS18B20 pero tienes que convertir el código fuente respectivamente).Módulo de router WiFi HLK-RM04.Fue
PICAXE lanzador perfecto termómetro

PICAXE lanzador perfecto termómetro

A veces, tonto parece que funciona.  Estaba terminando el software para un termómetro digital con todas las piezas en la mesa de trabajo y se me ocurrió que aún no había dado ninguna consideración a un recinto.  Esto es inusual para mí ya que pido ge
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
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