Latest revision |
Your text |
Line 2: |
Line 2: |
| == Hola Mundo eImp == | | == Hola Mundo eImp == |
| | | |
− | ESTADO: Verisón Inicial | + | ESTADO: borrador |
| Miembros: [[User:Tumaku]] | | Miembros: [[User:Tumaku]] |
| | | |
Line 17: |
Line 17: |
| * un hardware (''"imp"'') que combina un microcontralador con un módulo wifi. Puede conectarse automáticamente a una red inalámbrica y desde ahí a internet. El micro puede programarse en remoto | | * un hardware (''"imp"'') que combina un microcontralador con un módulo wifi. Puede conectarse automáticamente a una red inalámbrica y desde ahí a internet. El micro puede programarse en remoto |
| * un servicio en la nube que permite ejecutar agentes en el servidor de electric imp. Los agentes pueden conectarse de forma segura a internet y a los dispositivos ''imp'' | | * un servicio en la nube que permite ejecutar agentes en el servidor de electric imp. Los agentes pueden conectarse de forma segura a internet y a los dispositivos ''imp'' |
− | * un entorno de desarrollo IDE y una consola (también en la nube) que permiten desarrollar y depurar aplicaciones desde un navegador y descargarlas tanto al servidor de electric imp como a los dispositivos ''imp'' | + | * un entorno de desarrollo IDE y una consola (también en la nube) que permiten desrrollar y depurar aplicaciones desde un navegador y descargarlas tanto al servidor de electric imp como a los dispositivos ''imp'' |
| | | |
| Se sigue el tutorial [http://www.electricimp.com/docs/gettingstarted/ Getting Started] del [http://www.electricimp.com/docs/ Dev Center] de electric imp | | Se sigue el tutorial [http://www.electricimp.com/docs/gettingstarted/ Getting Started] del [http://www.electricimp.com/docs/ Dev Center] de electric imp |
Line 97: |
Line 97: |
| // write current state to led pin | | // write current state to led pin |
| led.write(state); | | led.write(state); |
− | server.log("Estado" + state);
| + | |
| // schedule imp to wakeup in .5 seconds and do it again. | | // schedule imp to wakeup in .5 seconds and do it again. |
| imp.wakeup(0.5, blink); | | imp.wakeup(0.5, blink); |
Line 104: |
Line 104: |
| // start the loop | | // start the loop |
| blink(); | | blink(); |
− |
| |
− | * Pulsar el botón "Build and Run" en la parte superior del IDE. La aplicación se compilará y si hay errores se mostrarán en la consola. Si todo va bien, tras la compilación el servidor de electric imp cargará la aplicación en nuestro imp a través de internet y la conexión wifi (el imp debe estar encendido y conectado a la red wifi)
| |
− | * Una vez cargada la aplicación, el imp empezará a ejecutarlo y el LED parpadeará. Cada vez que cambié el estado del LED también aparecerá un mensaje en la caja Log del IDE
| |
− |
| |
− | ===== Explicación básica del código =====
| |
− | electric imp utiliza un lenguaje de programación llamado [http://www.squirrel-lang.org/doc/sqstdlib3.html Squirrel]. Lo mejor para aprender es empezar a jugar con los ejemplos de código disponibles en la sección [http://www.electricimp.com/docs/api/ API Docs] del Dev Center de electric Imp.
| |
− |
| |
− | Un programa se ejecuta en modo secuencial empezando por la primera línea.
| |
− | Las funciones se definen precedidas por el keyword 'function'. Pueden colocarse en cualquier parte del código y no forman parte del flujo secuencial. Por ejemplo, en el programa "Hello world" se define la función "function blink()" para cambiar el estado del LED. Sin embargo, esta función sólo se ejecuta porque al final del código hay una línea que la llama:
| |
− | blink();
| |
− |
| |
− | Las variables se inicializan al principio. Se les puede asignar números, cadenas, PINes,... El programa "Hello world" define una variable para gestionar el PIN al que se conecta el LED y otra variable para definir su estado.
| |
− |
| |
− | Todo el código se realiza en la función blink(). Básicamente cada vez que se llama a está función se cambia el estado del LED y se escribe el PIN en consecuencia. También se envía un mensaje al Log del servidor indicando el cambio de estado
| |
− | server.log("Estado " + state);
| |
− |
| |
− | Realizado esto, se le dice al imp que entre en modo ''sleep'' durante medio segundo y que cuando vuelva a despertarse ejecute de nuevo la función blink() para así generar el parpadeo del LED
| |
− | imp.wakeup(0.5, blink);
| |
− |
| |
− | === Y ahora, ¿qué?===
| |
− | El siguiente paso será implementar un agente en el servidor. Hay un ejemplo en el tutorial [http://www.electricimp.com/docs/gettingstarted/3-agents/ Agents]. Después es cuestión de trastear por los ejemplos en [http://www.electricimp.com/docs/api/ API Docs] e ir aprendiendo sobre la marcha.
| |
− |
| |
− | Con la ayuda de Hugo de electric imp creé un ejemplo para conectar un lector NFC a un imp y enviar la identidad de las tarjetas leídas al servidor. El código y una pequeña explicación están disponibles en [https://github.com/jmgjmg/eImpNFC github] Podríamos crear un proyecto sobre esto para la gestión de la puerta o el acceso a las máquinas.
| |
− |
| |
− | También he documentado un ejemplo de un termómetro conectado que utiliza electricImp y muchas otras cosas [http://wiki.makespacemadrid.org/index.php?title=Term%C3%B3metro_conectado_online]
| |
− |
| |
− |
| |
− | [[Category:Proyectos]][[Category:Internet de las cosas]][[Category:Electric Imp]]
| |