Paso 10: Firmware - agente Imp eléctrico y dispositivo de
Disculpas por el siguiente volver a usar el texto de mi anterior electric imp instructable - los requisitos son los mismos. Sólo le ahorra de navegar en otro link!
Con el fin de obtener su imp para trabajar, necesita conectarse a su red inalámbrica. Imp eléctrica ofrece una herramienta que hace la configuración ópticamente. El proceso se llama BlinkUp y es detallada https://electricimp.com/docs/gettingstarted/1-blinkup/ aquí Una vez completada la BlinkUp, su imp aparecerá en su IDE bajo nuevos dispositivos. Si no ha utilizado a un Imp eléctricos antes, le sugiero que intente primero el ejemplo de Hola mundo en el sitio de Electric Imp para pillarle el truco de la Imp. También es una gran guía de la imp en instructables escrito por
El firmware para el imp se adjunta a este paso como RewardSystemDeviceCode.nut
Se adjunta el código del agente de RewardSystemAgentCode.nut
Interacción de código firmware y agente
Su agente tiene una dirección URL específica a él. Cuando se envía un mensaje HTTP a esta dirección URL, el código de agente en la nube Imp comprueba la validez de la solicitud comparando la entrada API Key (cualquier tecla constituyen - más bits hacen más difícil de adivinar) con el API Key almacenado en la memoria del agente (idea clave de la API de http://forums.electricimp.com/discussion/comment/8281#Comment_8281). Si el fósforo de la llave, el mensaje se comprueba para determinar si la solicitud está en la API para este sistema.
Eventos que pasan del agente con el firmware del dispositivo Imp, se pasan sobre la comunicación segura de imp eléctrica canal entre el Imp y el servidor basado en agente. La Imp "recibe" a través de las funciones agent.on definidas en el firmware del dispositivo
- Agent.on ("addGoalStep", {} de la función (valor));
- Agent.on ("buttonPressed", función (valor) {});
La API de esta aplicación:
{petición: buttonPressed} - se utiliza para el diagnóstico y a los niveles meta
{petición: persistValues} - almacena los valores para la comunicación de SendHub definido por el cliente de la aplicación
{petición: addGoalStep} - incrementa el nivel de corriente hacia la meta según el valor de la entrada. En caso que gestionamos los pasos según la siguiente ponderación (donde super A es 100%):
Si (valor == "superA")
goalLevel += 2;
else if (valor == "A")
goalLevel += 1;
else if (valor == "B")
goalLevel += 0.5;
else if (valor == "C")
goalLevel += 0.25;
else if (valor == "restartGoal")