Paso 3: El trabajo integrado
Primera orden del día en que el botón de vida consiguiendo al Imp interfaz correctamente con el botón y el LED, entonces conseguir que hablar con el Internet.
Si usted tiene alguna experiencia con Arduino u otros microcontroladores, este paso normalmente sería:
- la leña de su IDE preferido (entorno de desarrollo integrado o software que se escribe código en una ofrece características adicionales como el control de su sintaxis, para colorear el código para leer y otros)
- escribir un programa que configura los pines en el microcontrolador como entradas para el botón y salidas para los LEDs, entonces lógica el controlador utiliza para tomar secuencias de evento (botón empuja) para conducir sus actuadores (colores claros y secuencias de envío de mensajes a internet)
- carga ese programa en el microcontrolador con algún tipo de cable de comunicación (a menudo USB)
Sin embargo, el Imp eléctrico utiliza un IDE en línea. Esto significa escribir el programa en un explorador web en el sitio de la Imp, a continuación, pulse un botón que automáticamente empuja el programa a la Imp sobre Wifi. Tiene la ventaja de no necesitar instalar un IDE en cualquier equipo que desee programar de, como manteniendo su código seguro en nube de Imp.
Electric Imp developer wiki tiene un montón de ejemplos sobre cómo programa de ardilla para obtener el Imp para hacer lo que quiera.
Si estás familiarizado con Arduino, sintaxis de la ardilla es relativamente similar (similar a C y Java), pero es más dinámicos como Python. Las diferencias principales que necesita para envolver la cabeza alrededor de:
- No es una función de bucle de ardilla. En su lugar se ejecuta el código de principio a fin, ejecutando funciones como funciona en ellos. Código funcional recurrente correr (como una función de bucle) puede crearse como sigue. Si tienes una función testFunction, utilice imp.wakeup (X, testFunction) al final de la definición de testFunction. Imp.WakeUp dice el Imp llamar testFunction nuevamente en X segundos. Así que cada vez que se llama testFunction, se ejecutará otra vez en X segundos. Como un bucle donde en lugar de correr tan rápido como sea posible, se puede establecer el tiempo entre pistas.
- Si el código está dirigido por eventos que no necesitan un bucle (por ejemplo, entradas de la web), es definir las clases de entrada para el Imp, que dicen lo que funciona para llamar cuando se detecta esa entrada particular.
- Por último existen las clases de salida, que se utilizan para enviar datos específicos a los puertos de salida en el planificador eléctrico Imp.
- Definición de puertos de entrada y salida permite conectar bloques funcionales (como peticiones HTTP) en el planificador para hacer sus dispositivos interactúan con internet
¿Qué flujo de lógica queremos? Realmente simple.
- Controles de interrupción de hardware cuando se presiona el botón.
- Cuando se presiona el botón, activar la clase de salida de impServerOut (que tenemos una conexión para una solicitud HTTP a nuestro servidor que se presiona el botón)
- Además, es una máquina de estado simple que realiza un seguimiento de si o no el botón está en modo de baile y anima a la luz cuando es.
La danceButtonSimple.txt de código adjunto, junto con la configuración del planificador, es todo lo que necesitamos en el lado del microcontrolador. Cuando se presiona el botón, el planificador envía una solicitud POST de HTTP al servidor, que se mantenga un seguimiento de los tiempos de las solicitudes por lo que se puede actualizar sus páginas web en consecuencia. Ahora en el servidor!