Saltar la navegación

Ejercicio cero

Archivos para realizar el ejercicio

En el siguiente link tienes los dos archivos necesarios para realizar este ejercicio.
El primero, estensión INO es para abrir en el IDE de Arduino y hacer un par de cambios.
El segundo es para ser abierto en la web de MIT AI2
Link

Esquema conexiones ESP8266 y una tira de leds

esp tira

Video del proyecto

Vamos a encender y apagar una tira de leds desde nuestro móvil

Pasos a seguir

Vamos a realizar un ejercicio previo consitente en ver como funciona nuestra ESP8266
Dado que, al principio. los pasos pueden parecer un poco complicados, vamos a realizar un ejercicio cero para
remarcar los pasos a seguir. 
Pasos:
0. Abrir el IDE de Arduino en nuestro ordenador. 
Hay que haber seleccionado la placa y el puerto. El modelo de ESP8266 con el que estamos trabajando
   corresponde a la placa NodeMCU 1.0 de la relación de placas que aparecen en ESP8266 Boards.

    Copiar el código que encontrareis a continuación y engancharlo dentro del IDE.
    Antes de hacerlo deberemos de cambiar la wifi (veréis que
  aparecen unas letras XXX, por la nuestra) y poner el password correspondiente.

Código Ejercicio 0

Aqui teneis el código completo. Copiar y pegar en IDE Arduino con el cambio.
................................................................................................................................................................................

//sacosta.org
//jercicio 0
//cuatro botones, cada botón enciende la tira del color correspondiente.
//un quinto botón apaga la tira
// Neopixel
//GRB
#include <Adafruit_NeoPixel.h>
#define NeoPIN D6
#define NUM_LEDS 30
int brightness = 150;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, NeoPIN, NEO_RGB + NEO_KHZ800);

#include <ESP8266WiFi.h>
const char *ssid = "XXXXXXXXXXXXX";
const char *password = "XXXXXXXXXXXXX";
WiFiServer server(80);

void setup() {
Serial.begin(115200);
delay(10);
strip.setBrightness(brightness);
strip.begin();
strip.show();
delay(50);
Serial.println("NeoPixel started");


// Conecta a la red wifi.
Serial.println();
Serial.println();
Serial.print("Conectado con ");
Serial.println(ssid);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("Connectado WiFi.");

// Inicio del Servidor web.
server.begin();
Serial.println("Servidor web iniciado");

// Esta es la IP
Serial.print("Esta es la IP para connectarse: ");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
}

void loop() {
// Consulta si se ha connectado algún cliente.
WiFiClient client = server.available();
if (!client) {
return;
}

// Espera hasta que el cliente envie datos
Serial.println("Nuevo cliente.");
while(!client.available()){
delay(1);
}

/////////////////////////////////////////////////////
// Lee la información enviada por el cliente.

String req = client.readStringUntil('\r');
Serial.println(req);
client.flush();

// Consulta la petición del cliente.
String val;
if (req.indexOf("/dato=1") != -1)
{
//grb
for(int i=0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, strip.Color( 0, 255,0 ) );
}
// init
strip.show();
}
else if (req.indexOf("/dato=2") != -1)
{
for(int i=0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, strip.Color( 0, 0 ,255) );
//delay(100);
}
// init
strip.show();
}

else if (req.indexOf("/dato=3") != -1)
{

for(int i=0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, strip.Color( 255,0, 0 ) );
}
// init
strip.show();//
}
else if (req.indexOf("/dato=4") != -1)
{

for(int i=0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, strip.Color(239,236,177) );
}
// init
strip.show();//
}
else {
Serial.println("Error.");
client.stop();
return;
}
Serial.println(val);
delay(10);


//////////////////////////////////////////////
// Página WEB. ////////////////////////////
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("");
client.println(val);
Serial.println("Cliente desconectado.");
}

.................................................................................................................................................................................

Localizar IP

2. Abrir Monitor serie para saber el numero de la IP que se va a necesitar.
    No hay que preocuparse si aparecen signos extraños cuando realizemos esta operación.
    Dado que esta información se ejecuta en el momento de subir el código, es necesario
    clicar en el botón de reset de la placa  (señalado en rojo en la foto) para que vuelva a ejecutar el código.
Hay que abrir el monitor serie, una vez subido el código, y cambiar la velocidad por esta (1152000).
Como abrir el monitor serie

ms

ms2

Hay que ajustarlo con la medida que aparece en el código

vms
Una vez abierto el monitor serie y cambiada la velocidad -en la parte inferior del Monitor Serie tiene que aparecer la misma cantidad que tenemos en el codigo en la linea "Serial.begin", en nuestro caso 115.200- hay que  clicar sobre el botón reset de la placa ( de los dos botones pequeños que hay junto a la conexión de entrada, el de la derecha) para que volveremos a ver como se reinicia y se ve como funciona desde el principio.
reset
No asustarse si aparecen simbolos extraños al principio.

En ell monitor serie aparecerán una serie de signos y dos importantes informaciones:

ip
En que red wifi estamos conectados y, lo más importante, la IP para conectarse, un numero que hay que apuntar.

Abrir App Inventor WEB

3. Este numero de nuestra IP lo vamos a necesitar para poner en el código que aparecerá
    en la web AI2.appinventor.com donde deberemos estar registrados. 
entrada mit
Abriremos el archivo con extensión AIA. Si habéis seguido las indicaciones lo habréis
bajado al empezar este ejercicio.
mit 2
Hemos abierto el archivo ejercicio_0 en app inventor web.
4. Vamos a modificar el IP. Para ello iremos a la esquina superior derecha, en nuestras pantallas
    y clicaremos sobre Bloques.

bloque

Nos aparecerá un código en bloques que noserá desconocido para los usuarios de Scratch.

bloque 2
En todos los sitios donde aparece "http://...." , en la imagen unas XXXXX, debemos de poner el IP que nos 
ha aparecido en el monitor serie del IDE de Arduino.
5. Vamos a generar un código QR  un código a base de letras para poderlo capturar desde un movil.
bloques 3
Elegiremos conectar AI Companion y nos generará el código que necesitaremos.
codigo
6. En nuestro movil abriremos la app MIT AI2 Companion
ai2 companion

Y desde aqui escanearemos el código o entraremos las letras correspondientes.
Cuando se haya escaneado el código, en nuestro ordenador se llevará a cabo el proceso de construir la APK
y nos parecerá una barra de creación.

barra
Una vez que haya acabado, en nuestro móvil aparecerá la misma pantalla que teniamos en el ordenador
y desde nuestro móvil  podremos, clicando los botones, poner en marcha nuestra aplicación.
Esta manera tiene el inconveniente que una vez que desconectemos, en nuestro movil no quedará nada.
Es por ello que es conveniente generar esta aplicación en nuestro dispositivo para poder ponerla en marcha
sin necesidad de volver al principio y tener que repetir todos los pasos.
En el siguiente apartado teneis la posibilidad de crear la Aplicación en vuestro movil.

Como tener la APK de este ejercicio en nuestro movil

Como bajar la apk
Hay que construir un código QR tal y como vereis en las imágenes.

crear qr1

crear qr 2

Una vez construido nos parecerá el código en pantalla y con nuestro movil lo escanearemos.
Tal y como lo habíamos hecho antes pero con la diferencia que antes estableciamos una conexión
pero ahora conseguimos bajar la APK.

crear qr 3

Escaneando el código QR

Cada telefono funciona de una manera diferente pero los pasos suelen ser los mismos:
Puede darnos alguna dificultad, basada en criterios de seguridad, en el momento de 
querer instalar la aplicación.
sc01sc02

Hay que permitir a nuestro dispositivo que deje instalarla.

sc03sc04

Una vez instalada la podremos abrir y a partir de este momento la vamos a tener en 
la pantalla de nuestro dispositivo.

sc05sc06