Termómetro de barbacoa Chef IMP: Internet-Connected (7 / 7 paso)

Paso 7: Una mirada más de cerca cómo funciona: código de agente

El firmware de agente es mucho más largo, pero como verá en un segundo, eso es porque contiene dos grandes trozos de código que hacen trabajos más generales.

Lo primero que el agente hace cuando arranca para arriba es comprobar y ver si se reinicia solo y ya sabe el ID de dispositivo. Cuando el agente tiene que ir y obtener el ID del dispositivo desde el dispositivo, guarda en la nube de imp con server.save() tan pronto como consiga la actualización. Así, si el agente siempre se reinicia, puede tomar el ID de inmediato sin necesidad de comprobar con el dispositivo llamando al server.load():

Justo debajo de esto, llevamos a cabo en una función gigante con una cadena muy grande de varias líneas en él. Esta función se llama prepWebpage, y todo lo que hace es concatenar cadenas unos juntos. Estas cadenas tan resultan ser un sitio web. Este sitio web es la web UI para el termómetro de la barbacoa, y es lo que se ve cuando se solicita la agentURL en un navegador. Porque el agente tiene la capacidad para configurar un controlador HTTP, puede responder a ciertas peticiones por que esta muy larga cadena - básicamente, el agente actúa como un servidor web pequeño. El sitio web incluye incluso un simple javascript que se ejecuta en el equipo cliente.

Después de la página web, el agente tiene una función que realiza un seguimiento de actividad en el dispositivo y utiliza un contador de tiempo y algunas heurísticas simples para averiguar si el dispositivo debe ir a dormir para ahorrar batería.

Esto funciona mucho como verter arena en la parte superior de un reloj de arena. Si la temperatura está cambiando rápidamente, el agente agrega más arena a la cima del reloj de arena, dando el dispositivo más tiempo para trabajar. Si disminuye la tasa de cambio de temperatura, el agente deja agregar arena, el reloj de arena acabe finalmente, y el agente le dice el dispositivo para ir a dormir. Si la temperatura está sobre cierto umbral, el agente asume que el dispositivo está todavía involucrado en algo de cocina y espera a que la temperatura disminuya otra vez antes de enviar la orden de dormir.

Después de esto, hay una gran parte del código dedicada a trabajar con Xively. Se trata de una clase genérica, y puede aprender más sobre ella, así como otras clases para trabajar con otros servicios web, por echar un vistazo a electric imp webservices página de github.

A continuación, vemos al agente registrando algunos controladores de eventos para los eventos del dispositivo, tal como vimos en el código anterior. Lo más interesante aquí es el controlador de eventos "temp", que hace todo lo tiene que hacer para publicar los nuevos datos de temperatura para Xively y actualización del temporizador:

Debido a cómo está cableado este dispositivo, realmente no siempre disparará la alarma de batería baja; Esto fue para un dispositivo similar que fue impulsado en un par de pilas AA de litio sin un regulador entre las baterías y el imp, por lo que el imp podría ver directamente el voltaje de la batería. El código quedó por si acaso alguien se intrépido y construye uno dentro de la caja original!

En la parte inferior del firmware agente, vemos una de las partes más importantes del agente: el controlador de solicitudes HTTP. Este controlador procesa las solicitudes HTTP entrantes y define cómo debe responder el agente.

La mayoría de las peticiones al agente van a ser las peticiones para la página web, para las solicitudes sin parámetros adicionales a la página web como respuesta. También hay un "gancho" aquí para servicios externos a la imp para ir a dormir, que no utiliza la página web.

Por último, el agente crea una instancia de un objeto de cliente Xively que utilizará en tiempo de ejecución para publicar datos en la secuencia de Xively, pide el ID del dispositivo si es necesario y comienza a ejecutar el temporizador:

Y eso es todo allí está a él!

Buena suerte y bon appetit :)

Artículos Relacionados

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
Aumentar la gama de un termómetro inalámbrico de barbacoa (rev 2)

Aumentar la gama de un termómetro inalámbrico de barbacoa (rev 2)

este instructivo describe un proceso muy simple para aumentar la gama de un termómetro inalámbrico de barbacoa.Mientras que el proceso debe ser similar para casi todos los termómetros RF, el modelo específico que estoy Pirateando es un "Maverick Redi
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
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
Construir el termómetro Digital más simple!

Construir el termómetro Digital más simple!

a pesar de que un aficionado electrónico desde hace años, esta será mi primera instructable aquí!Este proyecto no es una solución permanente para un termómetro digital, pero una rápida para construir uno en caso de que usted no puede encontrar su ded
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
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
Termómetro con LM35 de Arduino

Termómetro con LM35 de Arduino

Hola, todo el mundo!!!!!! Hoy voy a mostrarte cómo hacer un termómetro con Arduino y LM35 sensor de temperatura, construido en un protoboard y conectado con puentes (manojo de cables: D).Paso 1: Reunir las partes Esta es la lista de las piezas necesi
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
Termómetro LCD - Arduino

Termómetro LCD - Arduino

Vamos a aprender cómo crear un termómetro que muestra la temperatura en un LCD!Paso 1: Hardware necesario -Un Arduino Uno-Un protoboard-Jumper cables-Un potenciómetro de 10K-Un sensor de temperatura- Y por supuesto, una pantalla LCD (pantalla de cris
Termómetro digital de ventana

Termómetro digital de ventana

Hola, mundo! Si alguien preguntara lo que hoy es la temperatura, probablemente sería capaz de decir mirando su teléfono o un termómetro de la ventana. De hecho, usted probablemente lo haría con ningún pensamiento acerca de cómo llegó a la temperatura