• Arduino

    Arduino (Genuino a nivel internacional hasta octubre 2016), es una compañía de hardware libre y una comunidad tecnológica que diseña y manufactura placas computadora de desarrollo de hardware y software, compuesta respectivamente por circuitos impresos que integran un microcontrolador y un entorno de desarrollo (IDE), en donde se programa cada placa.
  • Internet de las cosas (en inglés, Internet of things, abreviado IoT) es un concepto que se refiere a la interconexión digital de objetos cotidianos con internet. Alternativamente, Internet de las cosas es la conexión de Internet con más “cosas u objetos” que personas.
  • Envia alertas por E-mail usando Arduino, Python y un sensor PIR.
  • Crea un BOT de Telegram que interactua con Arduino.
  • Blynk es una plataforma compatible con iOS y Android para controlar Arduino y Raspberry Pi. Es un panel digital donde puedes crear una interfaz gráfica para tu proyecto simplemente arrastrando y soltando widgets.

lunes, 14 de agosto de 2017

[ACTUALIZADO] Nodemcu + App Inventor + Firebase



Que tal queridos Arduineros, seguimos haciendo practicas con el maravilloso NODEMCU!!!

En esta ocasion haremos un pequeño sistema para monitorear 2 sensores conectados a la placa por medio de una aplicacion echa en APP INVENTOR y utilizaremos un servicio de Google de Base de Datos en tiempo real llamado FIREBASE, conforme pasa el post les dejare los enlaces necesarios para seguirla.

Cabe señalar que en este post no detallare la forma de usar el App Inventor solo comentare algunas cosas importantes. La verdad no soy ningun experto en el uso de esta plataforma, los conocimientos que tengo de ella son gracias a videotutoriales que sigo en el canal de un amigo MIRXTREM APPS en el cual habla detalladamente de el uso de App Inventor de una forma muy bien explicada, al final tambien dejare el enlace a su canal.

Bien vamos de lleno con la practica.

Materiales necesarios:
1 NODEMCU (yo en concreto uso la version 1.0).
1 LDR (fotoresistencia).
1 Resistencia de 220 ohms.
1 Sensor magnetico. (como este!)
Conexion WIFI.

Primero tenemos que ir a FIREBASE y loguearnos con una cuenta de gmail, en caso de no tenerla hay que crearla. Oprimimos el boton "Ira a la Consola".

Seguido de esto vamos a crear un proyecto nuevo oprimiendo "Add project"

En el cuadro que se despliega debemos elegir un nombre para nuestro proyecto y seleccionar la region en la que nos encontramos y oprimir el boton "Create Project".

 Ahora tenemos que cambiar las "reglas" de la Base de Datos ya que por default estan restringidas a solo usuarios autenticados, pero para efectos de esta practica no es necesario que sea asi. Para esto entramos a la BD (Base de Datos) oprimiendo el boton correspondiente.

 En la pestaña de reglas (rules) debemos cambiar lo que esta dentro de el recuadro negro por lo siguiente:
{
  "rules": {
    ".read": "true",
    ".write": "true"
  }
}
Al momento de cambiar las reglas tenemos que oprimir el boton "Publish" para que los cambios surtan efecto. En caso de que nos aparezca una leyenda advirtiendo que cualquiera podra leer y escribir en la BD solo damos clic al boton "Dismiss" y listo.

Hecho esto ya podemos leer y escribir en nuestra BD.
Por ultimo tenemos que copiar la URL de la BD para despues usarla en App Inventor y en el codigo de el Nodemcu, para esto regresamos a la pestaña "Data" y damos clic a la URL, copiamos con CTRL+C y pegamos en algun Archivo de texto para utilizarla posteriormente.

Listo, ya terminamos con la parte de Firebase, ahora continuemos con App Inventor.

Vamos a App Inventor siguiendo este ENLACE, igual que en Firebase tenemos que loguearnos con una cuenta de Google. Al momento de entrar nos mostrara la pantalla principal que es la de nuestros proyecto, damos clic a "Start new project"...
  Y escribimos el nombre de nuestro proyecto, tener en cuenta que no acepta espacios ni simbolos especiales.

A continuacion dejare una tabla con los objetos que agregaremos y las propiedades que hay que modificar(las propiedades que no se mencionen se quedan tal como estan).

Objeto Propiedades a modificar Valor
Screen1 AlignHorizontal Center:3
AlignVertical Center:2
BackgroundColor Black
Label1 FontSize 36
Text Luminosidad
TextColor White
Label2 FontSize 32
Text %
TextColor Cyan
Label3 FontSize 36
Text Estado del Sensor
TextColor White
Label4 FontSize 24
Text Desactivado
TextColor Orange
FirebaseDB1 FirebaseToken Se deja vacio
FirebaseURL Pegamos la URL de nuestra BD
ProjectBucket Se deja vacio
Button1 FontSize 46
Height y Width 100 pixeles
Shape oval
Text Se deja vacio

Este sera el aspecto final de la App antes de ejecutarla en el dispositivo movil.

Y estos son los bloques que utilizaremos. Son muy pocos ya que esta es una practica muy sencilla.
Hasta aqui terminamos con App Inventor, ahora seguiremos con el Nodemcu.

Diagrama de conexion.


Primero tenemos que descargarnos la libreria de Firebase, para eso pulsa sobre este ENLACE, una vez descargada la guardaremos en cualquier carpeta para despues ir al IDE de Arduino.

Abrimos el menu Programa - Incluir Libreria - Añadir librerias .ZIP...
Hecho esto nos abrira una ventana en donde tenemos que buscar el archivo .ZIP que descargamos anteriormente, lo seleccionamos y listo, ya tenemos agregada la libreria Firebase.

Para agregar la otra libreria (ESP8266WiFi.h), basta con seguir este sencillo TUTORIAL .

Seguido de esto vamos a agregar la placa Nodemcu para que aparezca en la lista de tarjetas del IDE de Arduino.

Vamos a el menu Archivo->Preferencias y veremos esta ventana:
En el cuadro te texto de la opción "Gestor de URLs Adicionales de Tarjetas" pondremos esta URL
http://arduino.esp8266.com/stable/package_esp8266com_index.json

Damos clic en Ok, y vamos a el menu Herramientas->Placa->Gestor de Tarjetas.

Para llegar a la siguiente ventana en la cual vamos a escribir en el cuadro de búsqueda "ESP8266" e instalaremos la placa que nos aparezca(en mi caso ya la tengo instalada es por eso que el boton me sale des-habilitado).

Después de que termine de instalarse podemos cerrar la ventana e ir a el menú Herramientas->Placa y al desplazarnos hacia abajo veremos que ya tenemos disponibles las placas de la familia ESP.

Y LISTO!!!. Ahora solo resta cargar el codigo que dejo a continuacion explicado linea por linea, para que surja la "magia".
int LDR = A0;

#include 
#include 

#define FIREBASE_HOST "nodemcu-5e733.firebaseio.com" //definimos el HOST al que se conectara el Nodemcu
                                                     //debemos quitar el "https://" y el ultimo "/" de la URL
#define WIFI_SSID "TU_WIFI" //Cambiar por el nombre de tu WIFI
#define WIFI_PASSWORD "TU_PASSWORD" //Cambiar por el Password de tu WIFI

void setup() {
  Serial.begin(9600);
  // conectamos el wifi.
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi Conectado!");
  Firebase.begin(FIREBASE_HOST); //inicializamos la comunicacion con firebase

  pinMode(4, INPUT_PULLUP); //declaramos el pin de el Sensor como una entrada
}

void loop() {
  int luz = analogRead(A0); //Guardamos el valor de la LDR en la variable luz
  Firebase.setInt("luz", luz); //Mandamos el valor de la variable Luz a firebase como un entero.

  //Con este if decimos que si el sensor se activa nos mande un "1" a Firebase y si no nos mande un "0"
  if (digitalRead(4) == 0) {
    Firebase.setInt("Sensor", 0);
  } else {
    Firebase.setInt("Sensor", 1);
  }
  delay(500);
}

Abrimos el monitor serial y si todo ha salido bien veremos algo como esto:

Cuando se nos muestre "WiFi Conectado!" iremos a la consola de Firebase en la pestaña de Database y veremos algunos cambios.

Esto nos indica que ya hay comunicacion entre el Nodemcu y Firebase, ahora vamos a la aplicacion que emularemos en nuestro dispositivo por medio del "Companion" de App Inventor y veremos tambien los cambios.

Hasta aqui llega este post. Espero sea de su agrado y si tienen alguna duda comentenla para poder resolverla juntos.

Les dejo tambien el Videotutorial!!!


Descargas...
Proyecto App Inventor
Codigo Nodemcu
Companion APK 
Libreria Firebase ACTUALIZADA.