Editing Hola Mundo eImp

Jump to: navigation, search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
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 11: Line 11:
  
 
=== Motivación ===
 
=== Motivación ===
Empezar a trabajar con las muestras que electric imp ha donado a Makespace :-)
+
Empezar a trabajar con las muestras que electric imp ha donado a Makespace
  
 
=== Antecedentes ===
 
=== Antecedentes ===
 
electric imp es una plataforma basada en tres componenetes fundamentales:
 
electric imp es una plataforma basada en tres componenetes fundamentales:
* 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 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 HW
* 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
  
 
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 30: Line 30:
 
* el imp propiamente dicho (tiene factor de forma de una tarjeta de memoria pero no funciona si se introduce en un lector de tarjetas estándar)
 
* el imp propiamente dicho (tiene factor de forma de una tarjeta de memoria pero no funciona si se introduce en un lector de tarjetas estándar)
 
* la placa (April breakout board) para conectar el imp. Esta placa tiene un conector para alimentación vía USB y los pines del imp desdoblados
 
* la placa (April breakout board) para conectar el imp. Esta placa tiene un conector para alimentación vía USB y los pines del imp desdoblados
==== 1er Paso: Conectar electric imp a una red Wifi ====
+
==== '''1er Paso:''' Conectar electric imp a una red Wifi ====
 
Seguir los pasos indicados en la página [http://www.electricimp.com/docs/gettingstarted/1-blinkup/ BlinkUp]
 
Seguir los pasos indicados en la página [http://www.electricimp.com/docs/gettingstarted/1-blinkup/ BlinkUp]
 
* Crear una cuenta en la web de electric imp
 
* Crear una cuenta en la web de electric imp
 
* Descargar la aplicación iPhone o Android de electric imp
 
* Descargar la aplicación iPhone o Android de electric imp
El smartphone y la app móvil sólo se utilizan para configurar el dispositivo. No importa que dispositivo (tableta, teléfono) se utiliza para instalar y ejecutar  la app. El dispositivo utilizado no queda enlazado de ningún modo al electric imp, a la red wifi configurada o a la cuenta de electric imp creada
+
El smartphone y la app móvil sólo se utilizan para configurar el dispositivo. Se puede utilizar un dispositivo (tableta, teléfono) de otra persona. El dispositivo utilizado no queda enlazado de ningún modo al electric imp, a la red wifi configurada o a la cuenta de electric imp creada
 
* Encender el electric imp
 
* Encender el electric imp
 
Alimentar la placa April a través del conector mini USB. Asegurarse de que el jumper de selección de alimentación (3 PINes verticales) está en la posición "USB". Introducir el electric imp en la placa.
 
Alimentar la placa April a través del conector mini USB. Asegurarse de que el jumper de selección de alimentación (3 PINes verticales) está en la posición "USB". Introducir el electric imp en la placa.
Line 58: Line 58:
 
Si todo ha ido bien, la luz del imp debería ponerse a parpadear en verde. Eso significa que se ha conectado a la red wifi y a la plataforma cloud de electric imp en internet. En caso de que la luz no parpadee en verde, consultar la página de [http://www.electricimp.com/docs/troubleshooting/blinkup/ Solución de problemas]
 
Si todo ha ido bien, la luz del imp debería ponerse a parpadear en verde. Eso significa que se ha conectado a la red wifi y a la plataforma cloud de electric imp en internet. En caso de que la luz no parpadee en verde, consultar la página de [http://www.electricimp.com/docs/troubleshooting/blinkup/ Solución de problemas]
  
==== 2º Paso: Cargar la aplicación Hola Mundo ====
+
==== '''2º Paso:''' Cargar la aplicación Hola Mundo ====
Uno vez configurado el dispositivo imp y la cuenta en el servidor, vamos a seguir el tutorial [http://www.electricimp.com/docs/gettingstarted/2-helloworld/ Hello world] para cargar y ejecutar el primer programa, el "Hola mundo" de los objetos conectados.
+
 
+
Tras crear el circuito con un LED y una resistencia y conectarlo al imp como se indica en la figura del tutorial, hay que realizar los siguientes pasos:
+
 
+
* Hacer login en la página de electric imp para acceder al IDE
+
* En el menú de navegación de la izquierda pulsa en "New Devices" para expandir la lista de dispositivos
+
* Pulsar sobre el icono de configuración a la derecha del nuevo dispositivo imp que acabamos de flashear (su nombre será una ristra de caracteres hexadecimales)
+
* Se puede cambiar el nombre del dispositivo a algo más amigable ("Makespace Imp" por ejemplo). Este nombre se asocia a la placa April y no al dispositivo imp propiamente dicho
+
* Pulsar sobre la lista desplegable "Associated Model" y escribir el nombre del nuevo modelo que vamos a crear "Hello world". Pulsar "Save Changes"
+
* El modelo "Hello world" aparecerá en el menú de navegación de la izquierda y pulsando sobre él se muetra el nombre de nuestro dispositivo. Directamente o pulsando sobre el nombre del dispositivo, la sección principal del IDE mostrará el editor de código donde vamos a codificar la aplicación
+
* Nuestra aplicación sólo utiliza código en el dispositivo (no requiere un agente en el servidor) con lo que nos situaremos en el cuadro de texto llamado "Device".
+
La aplicación del servidor se incluiría en la caja llamada "Agent". La tercera caja "Log" es el equivalente del Monitor serie del IDE de Arduino, tanto aplicaciones de dispositivo como agentes del servidor pueden escribir en tiempo real sobre el IDE utilizando el comando:
+
 
+
server.log("Mi texto");
+
 
+
* Copiar y pegar el siguente código en la caja "Device"
+
 
+
imp.configure("Hello World", [], []);
+
+
// create a global variabled called led,
+
// and assign pin9 to it
+
led <- hardware.pin9;
+
+
// configure led to be a digital output
+
led.configure(DIGITAL_OUT);
+
+
// create a global variable to store current
+
// state of the LED
+
state <- 0;
+
+
function blink() {
+
  // invert the value of state:
+
  // when state = 1, 1-1 = 0
+
  // when state = 0, 1-0 = 1
+
  state = 1-state; 
+
+
  // write current state to led pin
+
  led.write(state);
+
  server.log("Estado" + state);
+
  // schedule imp to wakeup in .5 seconds and do it again.
+
  imp.wakeup(0.5, blink);
+
}
+
+
// start the loop
+
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]]
+

Please note that all contributions to Wiki Makespace Madrid may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Wiki Makespace Madrid:Copyrights for details). Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to type the two words you see in the box below:

Cancel | Editing help (opens in new window)