• 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.

viernes, 19 de enero de 2018

Nodemcu + Facebook


Que tal queridos lectores. Después de un buen rato de ausencia hemos regresado con los tutoriales!!!

En esta ocasión voy a explicar como lograr la practica que hicimos hace algunos días en Facebook, en la cual hicimos un vídeo en vivo desde nuestra pagina da ARDUINO CENTER, cuando los usuarios comentaban dentro del directo en un display LCD conectado al Nodemcu se mostraba su nombre. Aquí les dejo el link de esa transmisión.

Listo, explicado lo anterior vamos al lío!!

Para realizar esta practica necesitamos lo siguiente:

1 NodeMCU.
1 Diplay LCD 16x2.
1 Modulo I2C.
Editor de texto para HTML. (yo uso Sublime Text).
Cuenta de desarrollador de Facebook.
Arduino IDE para programar el NodeMCU.
Cuenta de Google para utilizar Firebase.
Pagina de Facebook para transmitir en vivo.

Primero vamos a configurar la cuenta de Facebook de desarrollador, para esto vamos a este link:

En la ventana principal vamos a crear una nueva aplicacion dando clic en "Mis aplicaciones" y "Agregar una aplicacion".

Le damos un nombre a la aplicación, escribimos un correo de contacto y damos en "Crear identificador de la aplicación":.

Estando en el dashboard damos clic en Documentos que se encuentra en la esquina superior derecha.

En la ventana siguiente damos clic en el menú "Herramientas y ayuda".

Después en "Explorador de la API Graph":


Clic en "Graph API Explore" y elegimos el nombre de la aplicación que acabamos de crear:

Ahora damos clic en "Obtener token" y en la lista desplegable elegimos la pagina de Facebook desde la que trasmitiremos el vidéo.


Listo ya hemos creado el Token de acceso a la aplicación, solo copiamos y guardamos para usarlo después.

Ahora vamos con Firebase.

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".

 Estando en el dashboard damos clic en "Agregar Firebase a u app web".

En la siguiente ventana nos aparece un script de JavaScript que debemos copiar y después pegar en nuestro HTML que les dejare posteriormente.

Ahora tenemos que cambiar las "reglas" de la Base de Datos ya que por default están restringidas a solo usuarios autenticados, pero para efectos de esta practica no es necesario que sea así. Para esto entramos a la BD (Base de Datos) oprimiendo el botón correspondiente luego en el boton "COMENZAR".

 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 botón "Publicar" para que los cambios surtan efecto. En caso de que nos aparezca una leyenda advirtiendo que cualquiera podrá leer y escribir en la BD solo damos clic al botón "Dismiss" y listo.

Hecho esto ya podemos leer y escribir en nuestra BD.

Por ultimo tenemos que copiar la URL de la BD para después usarla en el script  y en el código de el Nodemcu, para esto regresamos a la pestaña "Datos" y damos clic a la URL, copiamos con CTRL+C y pegamos en algún Archivo de texto para utilizarla posteriormente.

Listo, ya terminamos con la parte de Firebase, ahora continuemos con el script.

Aquí esta el código HTML que yo utilice, también se los dejare al final para que puedan descargarlo.



En el código anterior debemos de poner el ID de la transmisión en vivo de Facebook,explicare a continuación como obtenerlo:


1.- Creamos una transmisión en vivo.
2.- Cuando comience la transmisión damos clic donde dice cuanto tiempo tienes transmitiendo.

3.- Al dar clic nos va a mandar a una pagina nueva de donde extraeremos el ID de la barra de dirección(es el segundo numero):

Ya con esto tenemos el id de la transmisión, el cual debemos pegar en el código Html que puse arriba.

Ahora vamos con la parte del NodeMCU.

La conexión es muy sencilla, de todos modos les dejo el esquema:

El código para el NodeMCU:

El código es sencillo y esta explicado en las partes mas relevantes.

Hasta aquí llega esta entrada, espero les funcione y de no ser así no duden en comentar su dudas, problemas o sugerencias en este mismo post!


Video Tutorial y prueba de funcionamiento:



Aquí el enlace a la carpeta que contiene los archivos utilizados en la practica:
https://drive.google.com/open?id=123sQZz1BmjX9hsxKAjZFMk25wFF9vnzF

Facebook API Graph documentación:
https://developers.facebook.com/docs/graph-api

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.

viernes, 14 de julio de 2017

Nodemcu + BOT Telegram

Que tal queridos lectores, antes de empezar esta entrada me quiero disculpar por haberme ausentado tanto tiempo, pero ya regrese y con mas ganas que nunca!!!
Bueno basta de bla, bla, bla y vamos con la practica.

Si bien ya habia hecho un post en donde desarrollabamos un BOT de Telegram para Arduino, aqui traigo una actualizacion. Si recuerdan en el post que les comento usamos Python para crear un script que se encargaba de enviar comandos a el BOT, en esta ocasion vamos a hacerlo todo desde el mismo IDE de Arduino peeeeeeero ahora usando la placa NODEMCU que tiene integrado el chip ESP8266, les dejo informacion de esta aplaca en este enlace, (http://nodemcu.com/index_en.html).

Para esta practica usaremos los siguientes materiales:

1 NODEMCU (yo en concreto uso la version 1.0).
1 LED cualquier color.
1 Sensor magnetico. (como este!)
Conexion WIFI.

Manos a la obra...

Lo primero que tenemos que hacer es descargar Telegram. En este link están todas las versiones, para móviles y Desktop.
Descarga Telegram.
En mi caso usare la aplicación para Windows.

Una vez instalada y que ya se registraron tienen que iniciar una conversación con @BotFather(es como el jefe de todos los Bots) para hacerlo solo tienen que seguir este link BotFather o bien buscarlo dentro de sus contactos en Telegram.
Cuando se abra la ventana de conversación tienen que escribir el comando /start y así iniciara la conversación con @BotFather. Enseguida les mostrara una lista de comandos.

Ahora enviaremos el comando /newbot para empezar a crear el Bot. Después de introducir este comando nos preguntara el nombre y el nickname que aparecerá en los chats, en caso de que ya exista un Bot llamado igual lo dirá y tendremos que elegir otro.

Si todo ha ido bien ya hemos creado nuestro Bot satisfactoriamente.

En el mensaje de respuesta nos dara el "TOKEN" para accesar a nuestro Bot desde la API, hay que guardarlo para su posterior uso.

Bien, dejemos a un lado Telegram para ir a programar Arduino.
El código es muy sencillo, de todas formas se los dejo explicado linea por linea.

Antes tendremos que instalar 3 librerias externas a el IDE de Arduino en caso de no tenerlas, estas son:

ESP8266WiFi.h
WiFiClientSecure.h
UniversalTelegramBot.h

Para hacerlo ve a ESTE LINK donde explico en unos cuantos pasos como lograrlo.

Diagrama de conexion:


Despues de tener las librerias instaladas vamos a cargar el siguiente sketch a nuestra placa.


Hay que asegurarnos de poner las credenciales de tu conexion WIFI asi como el Token de el BOT que se genero al momento de crearlo.

Si todo ha salido bien ya podemos empezar a interactuar con nuestro BOT.
Para empezar a hacerlo primero tenemos que escribir /start en telegram y veremos la respuesta de el BOT.
Seguido de esto escribimos /opciones para que el BOT nos muestre las opciones disponibles. El BOT nos desplegara unos botones con las opciones disponibles como se muestra en la siguiente imagen.

Otra caracteristica es que en el momento en el que el sensor magnetico se despegue, el BOT nos mandara un mensaje de advertencia.

Pueden modificar los textos que el BOT nos envia e incluso agregar mas opciones modificando el codigo.
No duden en compartir su experiencia con esta practica.

Hasta aqui este aporte, espero haberme explicado bien y recuerden que si les surge alguna duda escribanla en los comentarios para resolverla juntos.

PD: Les debo el video de demostracion!!! XD

lunes, 29 de mayo de 2017

ESP8266 [Flashear el Firmware]


Que tal gente!!!

En este pequeño aporte les voy a mostrar como flashear nuestro ESP8266-01 con algún firmware, en este caso el "0.92", para configurarlo por medio de comandos AT.

Para esta practica utilizaremos los siguientes materiales:

1 Arduino UNO
1 Modulo Wi.Fi ESP8266-01
Protoboard
Cables para conexion

Nuevamente vamos a utilizar el Arduino como un convertidor USB a Serial, para esto haremos las conexiones que les muestro a continuación en la siguiente imagen:

También les dejo una tabla de las conexiones:

ESP8266Arduino
VCC
3.3V
GND
GND
TX
TX
RX
RX
CH-PD
3.3V
GPIO0
GND

Si se pudieron dar cuenta el pin Reset de Arduino lo conectaremos a tierra para "des-habilitar" el microcontrolador y así trabajar solo con la comunicación serial.

Al conectar el pin GPIO0 de el ESP a tierra tendremos que desconectar y volver a conectarlo de la corriente así entrara en modo de programación y le podremos cargar el firmware de nuestra elección.

Después de tener las conexiones hechas vamos a abrir el programa "ESP8266 Flash Downloader"(les dejare los links de descarga al final del post), y nos aparecerá esta ventana.
Aquí solo tendremos que configurar los siguientes parámetros:


1.- Damos clic al botón Bin para elegir el archivo de firmware deseado, en este caso el BIN 0.92(también dejare el link de descarga al final).

2.- Escribimos el puerto COM donde tenemos conectado Arduino, en mi caso es el 10.

3.- Cambiamos el texto que aparece por este 0x40000080 (no pregunten por que XD).
Ya solo damos clic al botón "Download" y si todo va bien empezara a flasher el ESP.

Al llegar a 99% nos mostrara un error como se ve en la siguiente imagen.

No hay que tomarle importancia por que ya tendremos el ESP con el firmware cargado!!!

Para hacer la prueba abrimos el IDE de Arduino y vamos directamente al monitor Serial, teniendo en cuenta de configurarlo como se muestra en la siguiente imagen.

Si todo va bien al escribir AT y dar un enter nos debe regresara un "OK".


Descargas:

Firmware.
https://drive.google.com/file/d/0B6h_FnRyM8s5enAtbjNXZ0ZOVUE/view

ESP Flash Downloader.
https://drive.google.com/open?id=0B6h_FnRyM8s5RVQ2OEZlNDNjRlU

Hasta aquí este aporte. Espero les sea útil y comenten cualquier duda que tengan!!!

Hasta la próxima colegas!!!