Primeros pasos con ESP8266


Node MCU es una plataforma para el desarrollo de proyectos IoT que integra el famoso chip ESP8266, el cual se ha extendido enormemente debido a su facilidad para desarrollar proyectos open source  que pueden ademas  pueden   involucrar el IoT  .

Esta placa  destaca  porque integra capacidades de comunicación via WiFi , conteniendo en su interior  un microprocesador que puede ser programado fácilmente usando el  conocido lenguaje de programación Lua o bien vía Arduino IDE.

Obviamente ante todo no podemos perder de vista su bajisimo precio ( menos de 10€  ) comparados con otras opciones , pues no debemos olvidar  que incluye  el modulo wifi integrado  y un bus GPIO para conectar dispositivos de E/S.
Node MCU es una plataforma de desarrollo permite un prototipado rápido, para una vez satisfechos con el resultado, portar el desarrollo a un sistema final con un chip ESP8266 como pieza central.

A la hora de programar nuevas funciones, si optamos por utilizar Lua, dispondremos de un sistema simple con buena comunidad de usuarios. En cambio programar con el sistema Arduino nos aporta un fantástico IDE y un sinfin de manuales y ejemplos de desarrollo.

Este modulo es Ideal como una solución independiente en lugar de Arduino además de Wi-Fi  integrado siendo fácil de programar a través del IDE de Arduino (como vamos a ver ) , al igual que un Arduino.
Todos los periféricos con bus I2C puede unirse,por ejemplo Pantallas OLED, pantallas LCD, temperatura, presión, sensores de humedad pueden ser conectados en paralelo. También se puede conectar múltiples DS18B20

Sin embargo, sólo hay una entrada analógica y salida y las pantallas táctiles no se pueden conectar con ella.

 

¿Se pregunta cómo empezar a  desarrollar código  con  su económico ESP8266 ?

Los pasos  a seguir   para conectar un ESP8266     son los siguientes:

  •  Instalación del IDE de Arduino .Si aun no lo tiene instalado ,se puede hacer  desde aqui
  • Instalación  del paquete de la placa ESP8266 en Arduino IDE  siguiendo las instrucciones del sitio : https://github.com/esp8266/Arduino

esp

  • Instalación de los controladores USB

Es necesario instalar el controlador USB requerido en su ordenador  para que pueda programar el ESP8266.  Independientemente de la opción de firmware que elijamos, primero necesitamos comunicarnos con la placa de desarrollo ESP-12E utilizando la interfaz USB de la computadora.

El módulo USB a Serial UART incluido en la placa es Silicon Labs ‘CP2012, para lo cual generalmente necesitamos instalar los controladores de puerto COM virtual (VCP) fácilmente disponibles para su sistema operativo específico.Una vez instalado, debemos verificar que el CP2102 sea reconocido por su ordenador

Una vez que el controlador está instalado, podemos conectar el cable USB al puerto USB de la computadora y la placa. Después de hacerlo, deberíamos ver el mensaje: software del controlador del dispositivo instalado correctamente.

Además, podemos verificar manualmente que todo funcione correctamente siguiendo estos pasos:

Abra el Administrador de dispositivos (disponible a través del Panel de control → Sistema y seguridad → Administrador de dispositivos en la sección Sistema)
Debajo de la entrada Puertos (COM & LPT), debe haber un puerto abierto llamado USB-SERIAL CP2102 (COM) donde hay un número típicamente mayor o igual a 3.

Ahora que estamos listos para comunicarnos con nuestro ESP8266 a través del CP2102, podemos explorar algunas de las diferentes opciones de firmware disponibles.

node.png

  • En el IDE de Arduino, vaya al menú de herramientas, seleccionada su placa y elija el  puerto al que está conectado su ESP8266.En el ejemplo  es el COM11

 

puerto.png

  • Ahora  copie el siguiente código  para probar que puede subir y ejecutar código código  en la placa :

 

/*
ESP8266 Led Parapadeante
*/

void setup(){

pinMode(LED_BUILTIN, OUTPUT);// Initializa el  pin de  LED_BUILTIN como salida

}

void loop() {       // la función de bucle se repite una y otra vez para siempre

digitalWrite(LED_BUILTIN, LOW);// encienda el LED 

delay(1000); //Espera de 1 segundo

digitalWrite(LED_BUILTIN, HIGH);//  Apague el LED haciendo que el voltaje sea ALTO

delay(2000); // Espere dos segundos  para dejar apagado  LED 

}

 

El LED azul en el módulo ESP – 01 está conectado a GPIO 1, (que también es el pin TXD, por lo que no podemos usar Serial.print () al mismo tiempo)

Tenga en cuenta que el nivel de voltaje es BAJO  pero en realidad el LED está encendido, porque es bajo en el ESP – 01

En este código se usa  LED_BUILTIN para encontrar el pin con el LED interno  de modo

Como puede apreciar , el código ejecuta un bucle infinito en el que pone el estado bajo  un segundo (encendiendo el led)    para posteriormente forzar a nivel alto  dos segundos(apagando el led  )  y así   indefinidamente gracias al bucle  que se repite indefinidamente

 

Envio de datos a la nube de Cayenne

  • Agregue la biblioteca de Cayenne MQTT a Arduino IDE  desde aqui como un fuchero zip
  • Instale la biblioteca zip descargada en el paso anterior desde Programa -> Incluir biblioteca -> Añadir libreria ZIP. y seleccionar ahora el fichero descargado con anterioridad  Cayenne-MQTT-ESP-master.zip
  • Ya puede crear una cuenta Starter en cayenne ( si aun no la tiene  ya creada)
  • Una vez ya validado vaya a la esquina  superior  izquierda  y pulse sobre el botón verde  add new
addnew.png
  • Ahora seleccione Generic ESP8266  como la placa y  tome nota  ahora  de los siguintes paraetros ofrecidos por la  pagina:
    •  MQTT USERNAME:
    • MQTT PASSWORD:
    • CLIENT ID:
    • MQTT SERVER:
    • MQTT PORT:
    • NAME YOUR DEVICE (optional):
  • Abra el boceto de ejemplo incluido desde Archivo -> Ejemplos -> Cayenne-MQTT-ESP. Modifique el boceto incluido con su información de red y la información de autenticación de Cayenne que recibió al agregar su dispositivo.
Anuncios

Cómo puede mejorar la impresión 3D la vida de muchas personas


La impresión en 3d promete cambiar en un futuro los métodos clásicos de fabricación tal y como lo conocemos actualmente hasta tal punto que ya hay personas que piensan que muchas artículos que usamos a diario se podrán imprimir de forma personalizada  y mas económica incluso en nuestro hogar usando esta tecnología .

Hay  pues una revolución silenciosa   que esta ocurriendo básicamente por tres motivos:

  • Permite dar  rienda suelta a  la innovación como nunca hasta ahora se podía  hacer con ninguna otra tecnología   pues  permite crear  y auto-constuir  productos únicos  in-situ,  con un coste ridículo  que van desde juguetes para niños hasta joyas, aviones no tripulados e incluso  tejidos,  que estiran la imaginación del diseñador.
  • Se  puede llegar ha crear artículos  y objetos  verdaderamente personalizados, como pueden ser desde objetos  de uso común como carcasas para dispositivos electrónicos ,camisetas , pequeños  prototipos ,etc  hasta   dispositivos relacionados con la salud como por ejemplo prótesis , coronas dentales y aparatos ortopédicos . Lo singular  es que la producción incluye no solo artículos únicos y personalización masiva, sino también tiradas cortas de productos idénticos.
  •  En definitiva ,   gracias  a la  democratización de  esta  tecnologia   se está cuestionando los modelos comerciales tradicionales que implican que solo las empresas pueden innovar y traer nuevos productos al mercado pues  ahora  cualquier persona o grupo de personas , incluso  geográficamente dispersos  pueden  colaborar utilizando herramientas colaborativas e impresoras 3D  para crear  nuevos productos.

 

Algunos  ejemplos de objetos destacables  impresos en 3d  actualmente son los  implantes dentales, prototipos, modelos arquitectónicos, plantillas de montaje,tazones de diseño, zapatos deportivos hechos a medida,joyería, instrumentos musicales diseñados por estudiantes y un largo etcétera.

Para todos los que nos entusiasma  explorar la tecnologia, todavía las impresoras 3d no son dispositivos económicos y tampoco definitivos , así que quizás auto-construirse una sea una buena opción pues el coste un kit de impresora 3d  suele ser una fracción de lo que cuesta una impresora 3d ya montada ,aunque  esto requiere una cierta cantidad de destreza física, sentido común y una comprensión profunda de lo que está haciendo , pero con paciencia se consigue.

Una vez la impresora 3d en nuestro poder  (auto construida o comprada ) puede que  surjan problemas  debidos a las altas temperaturas involucradas con la impresión 3D, ya que la boquilla de extrusión del extremo caliente puede funcionar alrededor de 230 ° C, la cama calentada corre a 110 ° C y el material ( que puede ser de diferentes tipos ) saldrá inicialmente alrededor de 200 ° C, por lo que debe prestarse especial cuidado y atención cuando se manejan estas partes de la impresora durante el funcionamiento.

Después de imprimir utensilios  para el hogar  casa, regalos para amigos o proyectos académicos , ¿qué puede ser más satisfactorio que imprimir algo para alguien que lo necesita? . Pues en efecto, como ya hemos mencionado ,esta tecnología permite aplicarse o a la fabricación de prótesis haciendo accesible estos dispositivos a toda la población y con ello cambiando la vida de muchas personas

Veamos algunos ejemplos muy hermosos , hoy que en  día de Navidad, de como  un objeto impreso en 3D puede realmente cambiar la vida  de muchas personas.

 

Hailey Dawson

Personalmente   pienso  que uno de los dispositivos  más emocionantes que se pueden construir mediante  impresión 3D son los dispositivos médicos como pueden ser  prótesis e implantes pues estos realmente pueden cambiar literalmente  la vida de las personas.

Precisamente lo singular  de esta tecnología es que actualmente  una mano mecánica como la prótesis de Hailey de 7 años puede costar unos  25€ en materiales,  en gran contraste  con las prótesis tradicionales para jóvenes que, ademas de ser  demasiado costosas ,  sobre todo  no permiten ademas evolucionar a la medida  que el niño va creciendo. En contraste a esto  , una prótesis impresa en 3d  puede ayudar a una persona joven a desarrollarse a un ritmo cercano al desarrollo de sus compañeros y ademas por un coste ínfimo.

Hailey nació con el Síndrome de Polonia, lo que le dejó sin tres dedos  en su mano derecha,  pero gracias  a equipo de la Universidad de Nevada en Las Vegas, fue posible   crear  una  prótesis impresa en 3D  para e Hailey .

Tal  fue su éxito de su funcionalidad  que Young Hailey lanzó el primer lanzamiento ceremonial del Juego 4 entre los Astros de Houston y los Dodgers de Los Ángeles con su mano mecánica, pero  no termina el caso allí pues ella ha hecho  una gira por  30 estadios, realizando el primer lanzamiento para cada equipo de Grandes Ligas.

niña.PNG

Nick

Podemos encontrar numerosas e impresionantes historias de personas jóvenes que imprimen en 3D un brazo ,o una mano protésica, para un compañero de clase, pero  lo singular  de esta  historia es que en este caso es el  un joven quien  imprimió en 3D una mano mecánica para un adulto ( un maestro) .

Alramon siempre había estado interesado en la impresión 3D, interés que le despertó al ver la película de Disney “Big Hero 6”. Cuando conoció a Nick en una biblioteca, decidió aceptar el desafío y, ayudado por su padre y su hermano, desarrollaron una mano protésica para el hombre, impresa en su propia impresora 3D.

Un grupo de amigos de Nick había estado buscando una manera de ayudarlo desarrollando una prótesis impresa en 3D para él y de hecho  habían comenzado a trabajar en la plataforma “Enabling the Future“,  que permite a los usuarios utilizar su propia impresora 3D casera con  planos de código abierto para imprimir toda serie de protesis, asi que precisamente  Calramon  imprimió la prótesis con la impresora 3D de metal con la impresora  Makerbot de su familia en su casa.

La prótesis consiste en un guante para sostener las cuerdas que se enroscan a través de las partes de los dedos cuya creación costó solo 160€ asi que  Nick esta extremadamente agradecido e impresionado por las habilidades de los chicos.

 

hermanos.png

Calramon y su hermano también tienen un sitio web propio, que tiene como objetivo distribuir partes para un quadcopter y tienen un canal de YouTube.

 Not Impossible Labs

Existe una brecha profunda en la atención médica en   todo  el  mundo, un vacío que se está cerrando a través del uso de impresoras 3D.

En otoño, Mick Ebeling, el fundador de Not Impossible Labs, fue a África, a las montañas Nuba de Sudán. El objetivo de Mick era devolver esperanza e independencia a un niño, Daniel Omar pues dos años antes, Daniel perdió un brazo en el hombro y el otro en el antebrazo durante la guerra civil sudanesa mientras estaba cuidando la manada de vacas de su familia . Él se escondió detrás de un árbol abrazando este( que le salvó  salvó la vida),  pero desgraciadamente,  la bomba le arrancó las extremidades. Daniel pasó de ser un joven de 14 años que apoyaba a su familia, a llevar una total dependencia de los demás.

Mick llevó una impresora 3D de  2.100€  a la aldea de Daniel, donde, con un valor de 42€, imprimió los componentes de plástico del brazo y la mano protésicos de Daniel. Mick también formó  al personal medico local sobre cómo usar la impresora y el software 3D de modo que después de irse, los lugareños ya usaban esa impresora 3D para fabricar una prótesis por semana.

El milagro  pues es  el coste ( unas 1000 veces menor , ya que una prótesis tradicional de valor de  42100€  se puede hacer por  un coste de 42€!) ,  pero  hay otras ventajas : ,versatilidad , personalización , peso, etc   !   Realmente es sorprendente  poder crear una extremidad impresa en 3D  muy por debajo de lo que costaría una convencional de bajo costo que funcionará aun cuando la tradicional cara ya no esté disponible. !

Vemos pues como la impresión 3D tiene un increíble potencial para alterar la vida.

Enabling the Future y el “3D Mechanical Hand-Maker Movement

El ultimo ejemplo del que vamos  a hablar ,surge de la union  Enabling the Future y l “3D Mechanical Hand-Maker Movement” que se inspiraron en dos extraños, un fabricante de utilería de los EE. UU y un carpintero de Sudáfrica que estaban separados por mas  16.000 km. Se reunieron en línea para crear un dispositivo de mano protésico para un niño pequeño en Sudáfrica, y luego regalaron los planos de forma gratuita, para que las personas que necesitasen la prótesis puedan hacerlo por sí mismos

Lo que originalmente comenzó como un par de tipos que crearon algo para ayudar a un niño necesitado se ha convertido en un movimiento mundial de fabricantes de herramientas, ingenieros y terapeutas ocupacionales, artistas, diseñadores, estudiantes y profesores, entusiastas de la impresión en 3D: de padres, familias y personas como usted y yo, que solo queremos hacer una diferencia.

 

 

El poder de autoconstruir lo tenemos todos

Hemos visto con estos ejemplos   que la capacidad de imprimir en 3D una mano protésica u otro dispositivo adaptativo en casa -o tiendas especializadas – puede ser la aplicación clave que impulse el uso de impresoras 3D por parte de los consumidores.

Si conoce a una persona joven, o un adulto, que podría beneficiarse de una prótesis impresa en 3D económica y funcional, he  aquí  algunos recursos gratuitos:

Atomic Lab
e-Nable
Limbitless Solutions
NIH 3D Print Exchange (curated by e-Nable)
Open Bionics
Thingiverse
yeggi (search engine devoted to 3D print models)

 

Como transcribir voz a texto


Express Scribe es un software profesional de reproductor de audio para PC o Mac diseñado para ayudar a transcribir grabaciones de audio.

Un mecanógrafo puede instalarlo en su ordenador y controlar la reproducción de audio usando un pedal  usb especial  de transcripción o un teclado (con teclas “calientes”). Este software de transcripción también ofrece funciones valiosas para los mecanógrafos, que incluyen reproducción de velocidad variable, control multicanal, reproducción de video, administración de archivos y más.

La versión gratuita es compatible con formatos de audio comunes, incluidos wav, mp3, wma y dct (  aunque siempre puede actualizar a la versión profesional para soporte de formato propietario).

Algunas características del software de transcripción:

  • Reproducción de velocidad variable (no constante)
  • Admite reproducción de audio y video
  • Reproduce la mayoría de los formatos, incluidos los archivos de dictado encriptados. Ver formatos de archivo admitidos
  • Admite pedales USB profesionales para controlar la reproducción. Ver controladores de pedal de pie profesionales compatibles
  • Utiliza ‘teclas rápidas‘ para controlar la reproducción cuando se transcribe a otro software (por ejemplo, Word)
  • Acople grabadores de voz portátiles analógicos y digitales para cargar grabaciones
    Funciona con Microsoft Word y todos los principales procesadores de texto
  • Recibe y carga automáticamente archivos por Internet (FTP), correo electrónico o en una red informática local
  • Automáticamente envía tipeo a quienes dictaron el trabajo
  • Funciona con software de reconocimiento de voz como Dragon Naturally Speaking para convertir automáticamente la voz en texto
  • Permite cargar audio de CD directamente y comenzar a trabajar a medida que se carga el audio
  • Funciona con el expansor de texto FastFox para ingresar frases médicas y legales y frases comunes con atajos de teclado

 

Pasos a seguir  para   probar este software

instalador.PNG

  • Express Scribe puede usar cualquier procesador para el reconocimiento de voz compatible con SAPI (4,0 o 5,0) para ayudarle en la transcripción de grabaciones. Por ejemplo: Dragon Systems NaturallySpeaking, Microsoft Voice o IBM Via Voice (y muchos más)

 

 

.enter image description here

 

  • En caso  de no poder seleccionar el perfil de audio , existe un paquete de audio en español  que puede descargar e  instalar siguiendo el link a continuación RealSpeak TTS engine Spanish (21.7 MB) . Despues de inslarlo  tenemos que configurar el  perfil de audio

reconocimiento de voz.PNG

 

 

  • Una vez se haya configurado Express Scribe para la conversión de voz a texto y cuando cargue un archivo éste será procesado en segundo plano y luego incluirá el texto completo en el cuadro de notas. Aunque el equipo sea rápido, esto proceso puede tomar algún tiempo (incluso más tiempo que la propia grabación), por lo que esta función es ideal cuando tiene una lista de trabajos de transcripción pendientes. Sin embargo, debido a que el reconocimiento de voz se ejecuta en segundo plano, puede empezar la transcripción de inmediato.

 

 

No debe entusiasmarse demasiado con la conversión de voz a texto. Probablemente  pasarán a  tiempos antes que las máquinas sean capaces de transcribir con precisión. Por el momento, un procesador muy bien entrenado le ofrecerá alrededor de un 90% de precisión. Creemos que utilizará esta función como una herramienta que le proporcionará un borrador del texto que puede utilizar a una velocidad más rápida y corregir o volver a formatearlo.

El entrenamiento es esencial para obtener una conversión de voz a texto razonable. Debe “entrenar” el procesador para reconocer las voces que van a ser usadas. La función de entrenamiento es administrada por el software para el reconocimiento de voz y no por Express Scribe. Consulte el manual del reconocedor de voz para más información.

Express Scribe coincide automáticamente cada archivo del dictado con un reconocedor de voz entrenado que usa el ID del remitente en Express Dictate (o DialDictate). Este ID se obtiene cuando se registra el software (todos los usuarios no registrados, archivos WAV y grabaciones acopladas se consideran un ID 0). Después que el reconocedor de voz está entrenado para reconocer la voz del usuario, Express Scribe puede configurar que éste se ejecute cada vez que este usuario envíe un archivo. Hágalo desde el menú Opciones -> pestaña ‘conversión de voz’ a texto, en la sección “perfiles específicos de usuario”.

Configuración para conversión de voz en texto

  • Abra el cuadro de diálogo de las Opciones y seleccione la pestaña ‘convertir voz en texto’.
  • Oprimir “habilitar reconocimiento de voz”.
  • .Seleccione el procesador para el reconocimiento de voz desde la lista desplegable. Si no ve ningún procesador en la lista desplegable, entonces no ha instalado el software para el reconocimiento de voz o no es compatible con SAPI.
  • Seleccione un perfil de voz desde la lista desplegable de perfiles predeterminados. Este es el perfil que será usado para cualquier dictado que se reciba de usuarios que no están en la lista de “perfiles específicos de usuario”.
  • Haga que cada usuario entrene el procesador para que puedan ser reconocidos. Lo pueden hacer usando el software para el reconocimiento de voz. Consulte el manual proporcionado con el software de reconocimiento de voz. Con la mayoría de procesadores, los usuarios pueden entrenar el reconocimiento de voz usando otra PC y luego exportar el archivo de entrenamiento al sistema.
  • Por cada usuario que haya completado el entrenamiento, añada el ID de usuario y el perfil de voz a la lista de “perfiles específicos de usuario”. Si son usuarios registrados con Express Dictate o DialDictate, entonces use el ID que obtuvieron al registrar el software. ID 0 de usuario para todos aquellos usuarios no registrados, archivos WAV y grabaciones acopladas.

Nota: Al abrir la pestaña ‘convertir voz en texto’ en las Opciones, o al cambiar el procesador seleccionado, el cuadro de diálogo “recuperando perfiles” puede ser visualizado por algún tiempo.

Cuando se cargue el próximo dictado, Express Scribe ejecutará el procesador de voz en segundo plano. Al finalizar, “pegará” el texto en el cuadro de notas.

Tenga paciencia. El proceso puede tardar algún tiempo (aun más que la propia grabación). Por lo tanto, la función es ideal cuando se tiene una lista de trabajos pendientes. Pero recuerde que puede empezar a transcribir inmediatamente.

Tenga en cuenta que el proceso de conversión de voz a texto sólo se produce cuando se carga primero un dictado. Si ejecuta Express Scribe con un dictado ya cargado el proceso de reconocimiento no se ejecutará.

Primeros pasos con ESP8266 y Cayenne


Node MCU es una plataforma para el desarrollo de proyectos IoT que integra el famoso chip ESP8266, el cual se ha extendido enormemente debido a su facilidad para desarrollar proyectos open source  a los que indudablemente se une su bajisimo precio comparado con otras opciones.
De este componente destaca  integra capacidades de comunicación via WiFi , conteniendo en su interior  microprocesador que puede ser programado fácilmente usando en conocido lenguaje de programación Lua o vía Arduino IDE.

¿Se pregunta cómo controlar  su económico ESP8266 de forma remota desde cualquier lugar del mundo?

En este post repasaremos precisamente el proceso, paso a paso, de cómo escribir código en el IDE de Arduino y programar su ESP8266 permitiendo  que el código  escrito para  el ESP8266 se comunique con la plataforma myDevices Cayenne (https://cayenne.mydevices.com) la cual nos va  permitir monitorear y controlar el ESP8266 a través de un tablero muy intuitivo.

 

De  Cayenne hemos hablado  en este humilde blog, en muchisimas  ocasiones pero resumidamente es una solución innovadora   para la construcción de aplicaciones IoT  basada en la mayoría de las  plataformas conocidas como son ArduinoRaspberry piESP8266 y dispositivos  SerialesWifi y dispositivos Lora

Ademas   también  incluye una API Mqtt para conectar cualquier cliente MQTT la cual utilizaremos en este caso

Después de configurar una cuenta en Cayenne, utilizamos el Tablero para configurar un cualquier puerto del GPIO al que conectemos una entrada o una salida  . La comunicación entre el ESP8266 y Cayenne se realiza utilizando un protocolo muy ligero llamado MQTT (http://mqtt.org/).

Una vez que todo esté hecho, podemos monitorear y controlar el ESP8266 desde cualquier parte del mundo simplemente accediendo a Cayenne.

Los pasos  a seguir   para conectar un ESP8266   a  la nube de Cayenne  son los siguientes:

  •  Instalación del IDE de Arduino .Si aun no lo tiene instalado ,se puede hacer  desde aqui
  • Instalación  del paquete de la placa ESP8266 en Arduino IDE  siguiendo las instrucciones del sitio : https://github.com/esp8266/Arduino

esp

  • Instalación de los controladores USB

Es necesario instalar el controlador USB requerido en su ordenador  para que pueda programar el ESP8266.  Independientemente de la opción de firmware que elijamos, primero necesitamos comunicarnos con la placa de desarrollo ESP-12E utilizando la interfaz USB de la computadora.

El módulo USB a Serial UART incluido en la placa es Silicon Labs ‘CP2012, para lo cual generalmente necesitamos instalar los controladores de puerto COM virtual (VCP) fácilmente disponibles para su sistema operativo específico.Una vez instalado, debemos verificar que el CP2102 sea reconocido por su ordenador

Una vez que el controlador está instalado, podemos conectar el cable USB al puerto USB de la computadora y la placa. Después de hacerlo, deberíamos ver el mensaje: software del controlador del dispositivo instalado correctamente.

Además, podemos verificar manualmente que todo funcione correctamente siguiendo estos pasos:

Abra el Administrador de dispositivos (disponible a través del Panel de control → Sistema y seguridad → Administrador de dispositivos en la sección Sistema)
Debajo de la entrada Puertos (COM & LPT), debe haber un puerto abierto llamado USB-SERIAL CP2102 (COM) donde hay un número típicamente mayor o igual a 3.

Ahora que estamos listos para comunicarnos con nuestro ESP8266 a través del CP2102, podemos explorar algunas de las diferentes opciones de firmware disponibles.

  • Agregue la biblioteca de Cayenne MQTT a Arduino IDE  desde aqui como un fuchero zip
  • Instale la biblioteca zip descargada en el paso anterior desde Programa -> Incluir biblioteca -> Añadi libreria ZIP. y selecionar ahorael fichero descargado con anterioridad  Cayenne-MQTT-ESP-master.zip
  • Conecte el ESP8266 a su PC / Mac a través de un cable USB con capacidad de datos.
  • En el IDE de Arduino, vaya al menú de herramientas, seleccione su placa y el puerto al que está conectado su ESP8266.
  • Ya puede crear una cuenta Starter en cayenne ( si aun no la tiene  ya creada)
  • Una vez ya validado vaya a la esquina  superior  izquierda  y pulse sobre el botón verde  add new
addnew.png
  • Ahora seleccione Generic ESP8266  como la placa y  tome nota  ahora  de los siguintes paraetros ofrecidos por la  pagina:
    •  MQTT USERNAME:
    • MQTT PASSWORD:
    • CLIENT ID:
    • MQTT SERVER:
    • MQTT PORT:
    • NAME YOUR DEVICE (optional):
  • Abra el boceto de ejemplo incluido desde Archivo -> Ejemplos -> Cayenne-MQTT-ESP. Modifique el boceto incluido con su información de red y la información de autenticación de Cayenne que recibió al agregar su dispositivo.
.// This example shows how to connect to Cayenne using an ESP8266 and send/receive sample data
.// Make sure you install the ESP8266 Board Package via the Arduino IDE Board Manager and select the correct ESP8266 board before compiling.
//#define CAYENNE_DEBUG
#define CAYENNE_PRINT Serial
#include <CayenneMQTTESP8266.h>
// WiFi network info.
char ssid[] = “ssid”;
char wifiPassword[] = “wifiPassword”;
// Cayenne authentication info. This should be obtained from the Cayenne Dashboard
char username[] = “MQTT_USERNAME”;
char password[] = “MQTT_PASSWORD”;
char clientID[] = “CLIENT_ID”;
unsigned long lastMillis = 0;
void setup()
{ serial.begin(9600);
Cayenne.begin(username, password, clientID, ssid, wifiPassword);
}
void loop()
{
Cayenne.loop();
//Publish data every 10 seconds (10000 milliseconds). Change this value to publish at a different interval.
if (millis() – lastMillis > 10000)
{ lastMillis = millis();
//Write data to Cayenne here. This example just sends the current uptime in milliseconds.
Cayenne.virtualWrite(0, lastMillis);
//Some examples of other functions you can use to send data.
//Cayenne.celsiusWrite(1, 22.0);
//Cayenne.luxWrite(2, 700);
//Cayenne.virtualWrite(3, 50, TYPE_PROXIMITY, UNIT_CENTIMETER);
}
}
//Default function for processing actuator commands from the Cayenne Dashboard.
//You can also use functions for specific channels, e.g CAYENNE_IN(1) for channel 1 commands.
CAYENNE_IN_DEFAULT()
{ CAYENNE_LOG(“CAYENNE_IN_DEFAULT(%u) – %s, %s”, request.channel, getValue.getId(), getValue.asString());
//Process message here. If there is an error set an error message using getValue.setError(), e.g getValue.setError(“Error message”);
}
  • Compile y sube el programa  a su dispositivo. La carga puede requerir configurar el dispositivo en modo de carga de arranque. Para el módulo Adafruit HUZZAH ESP8266, esto se hace siguiendo los siguientes pasos:
    • Mantenga presionado el botón GPIO0.
    • Haga clic en el botón Restablecer.
    • Suelta el botón GPIO0.
    • El LED rojo debería encenderse, lo que indica que el dispositivo está listo para cargar.
    • Cargue su boceto.
    • Compruebe el tablero de Cayenne para asegurarse de que está recibiendo datos de muestra de su dispositivo.

 

Hay mas ejemplos desde el  interfaz de Arduino   en  File → Examples → Cayenne-MQTT-ESP8266 → ESP8266

 

Automatización con Alexa y Raspberry Pi


Usando una  Raspberry Pi   y un placa de relés  se puede realizar  un dispositivo de automatización del hogar  gracias a Alexa , !eso si  , si domina el ingles!.
En este breve post   vamos a ver  cómo poder controlar múltiples dispositivos conectados a la Raspberry Pi vía comandos de voz  en ingles, de tal modo que como veremos, podamos ontrolar todos  los pines GPIO para controlar los dispositivos conectados al GPIO  mediante relés u otros circuitos de control  y con ello encender o apagar cualquier dispositivo eléctrico conectado a estos,  simplemente dando las ordenes vocales  a Alexa.

Como vemos, pues  solo se necesita una Raspberry Pi 3 con una SD, una placa de Reles y  por  supuesto un altavoz inteligente  con Alexa para  automatizar cualquier función que deseemos gracias al reconocimiento automático de voz  de Alexa.

En el esquema   siguiente podemos ver como solo se usa  un solo pin de e/s  digital :  el GPIO 4   para controlar un   relé , pero este esquema ,si se requiere,  se puede ampliar hasta el máximo de los 24  terminales de e/s de los que dispone  una Raspberry Pi.

Es de destacar  que ademas el cable de datos,  incluso la alimentación del relé se obtiene de los 5V DC de la propia Raspbery Pi, por lo que para la  conexión de un circuito de un rele  sólo se necesitan 3 cables para  comandar la placa (un  cable para el control y los dos de la alimentación DC 5v).

 

esquema.PNG

Los pasos para instalar el  software  que permitirá  interactuar con  Alexa  en la Raspberry Pi 3 son los siguientes :

  1. Descargue “RASPBIAN STRETCH WITH DESKTOP” y descomprima  el fichero “2017-04-10-raspbian-jessie.zip” https://www.raspberrypi.org/downloads/raspbian/
  2. Descargue el programa “win32diskimager-1.0.0-install.exe” de la siguiente URL https://sourceforge.net/projects/win32diskimager/files/latest/download
  3. Instalar “win32diskimager-1.0.0-install.exe”
  4. Conecte la tarjeta mini-sd a su ordenador. Desde el explorador de windows, haga clic derecho en la letra de su unidad de tarjeta SD y haga clic en el menú de formato. En la ventana de formato, seleccione “FAT” en la lista “Sistema de archivos” y haga clic en iniciar. Espere a que la tarea se complete.                                                             texto alternativo
  5. Inicie el programa “win32diskimager”. Seleccione el archivo de imagen “2017-04-10-raspbian-jessie.img” y la letra de su unidad de tarjeta SD y haga clic en “Escribir” (Espere a que el programa termine de escribir la imagen RASPBIAN en la tarjeta SD)                                                                                                texto alternativo
  6. Una vez que se completa la escritura de la imagen, copie “ssh” (el archivo ssh está vacío) y “wpa_supplicant.conf” a la raíz de la tarjeta sd. Abra “wpa_supplicant.conf” en el editor de texto y actualice ssid (wi-fi name) y contraseña a los valores de su red Wifi.
  7. Inserte la tarjeta SD en Raspberry Pi 3 ,conecte la alimentación  y espere  a que arranque   durante unos 10 segundos
  8. En Windows vaya a ejecutar y escriba “cmd” y escriba arp -a en el símbolo del sistema. Busque la “Dirección física” que comienza con b8-27 * y tome nota de la dirección de Internet. Esta es su dirección IP Raspberry Pi3 Wi-Fi en su red. Este resultado también se puede obtener con otras herramientas como  WireShark (pc)  o Fing (android), siempre que ambos equipos este  conectados a la misma red. La dirección MAC generalmente comienza desde b- así que una vez que encuentre la dirección MAC, puede buscar la dirección IP en la columna  Internet Address y esta es su dirección IP. Tenga en cuenta esta dirección IP porque necesitará esto para conectar su sesión  SSH y  también para conectarse por el VNC                   texto alternativo
  9. Descargue “Putty.exe” de la siguiente URL https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
  10. Ejecute “Putty.exe” y escriba la dirección IP en el campo de nombre de host y haga clic en el botón de inicio y haga clic en Sí para abrir una ventana emergente. En la línea de comando del putty, escriba como Login “pi”  y para la contraseña ingrese “raspberry” y presione enter. Debería ver el  prompt  “pi @ raspberrypi: ~ $”.                             texto alternativo
  11. Escriba “sudo raspi-config” y vaya a “Opciones de interfaz” y habilite VNC. Reinicie pi3 escribiendo este comando “sudo reboot“. Perderá la conexión ssh.
  12. (Opcional) Puede descargar e instalar el cliente de VNC en su pc https://www.realvnc.com/download/vnc/windows/ . Conecte VNC a Respberry Pi3 usando la dirección IP. Inicie sesión con el nombre de usuario “pi” y la contraseña “raspberry“.Debería ver el escritorio de la Raspberry Pi 3.           texto alternativo
  13. Inicie la sesión de Pi ssh con putty a o localmente a través de VNC y escriba los dos comandos a continuación desde  el  símbolo del sistema de Pi para actualizarlo: sudo apt-get update” y “sudo apt-get upgrade” (Esto llevará un tiempo)
  14. Descargue este proyecto github como archivo zip con el siguiente comando “wget https://github.com/nassiramalik/IOT-Pi3-Alexa-Automation/archive/master.zip “
  15. Descomprima el archivo zip descargado con el comando “unzip master.zip” y escriba el comando “cd IOT-Pi3-Alexa-Automation-master” una vez que haya terminado de descomprimir
  16. (Opcional) Ejecute el comando  “sudo pip install virtualenv”  para instalar virtualenv en Pi
  17. (Opcional) Ejecute  el comando “virtualenv ipaa-env” para crear un entorno virtual para su proyecto
  18. (Opcional) Ejecute  el comando “. Ipaa-env / bin / activate” para activar el entorno virtual de su proyecto
  19. Ahora ejecute el comando “sudo python3 RPi_name_port_gpio.py” para ejecutar el programa Pi IOT  que controla un relé asociado al GPIO4 .   También puede usar el comando  ” “sudo  python 3RPi_name_port_gpio_8_Relays.py” para controlar hasta 8 dispositivos o invertir la polaridad  en caso de que necesite algunas de esas   funcionalidades. Como puede adivinar  este es el archivo que ejecutará para iniciar el programa en su Raspberry Pi  iniciando un servidor  así que presiona enter  el programa se inicia en  Raspberry Pi y se  quedara esperando a Alexa para darle comandos al código Python.
  20. En el código se ha escrito el nombre del dispositivo como “office” (oficina)  , pero puede cambiarlo por  lo que quiera, simplemente puede entrar  y cambiar este texto de la oficina al  nombre que desea dar a este dispositivo y Alexa
  21. Ya  puede empezar  a probar  ALexa  de  modo  que puede darle  un comando de voz a Alexa para descubrir dispositivos “Alexa discover devices” (Alexa descubre dispositivos), por lo que buscará en su red y descubrirá su Raspberry Pi 3 como un dispositivo IOT.
  22. Dele un comando de voz a Alexa “Turn on the office” (Enciende la oficina), deberá escuchar un sonido de clic de rele y encenderá cualquier carga que tenga coenctada a este
  23. Dele un comando de voz a Alexa “Turn on the office”  (Apagar la oficina), debería escuchar un sonido de clic de relevo y la carga conectada al rele dejara de estar alimentada

Alexa  siempre necesitara   descubrir los  nuevos dispositivos de  la red , por lo que para que empiece  el  descubrimiento  de dispositivos IOT que  hay en su red interna   para ello debe  presionar el botón para  su descubrimiento  en la botonera del altavoz o  también dele un comando de voz a Alexa para descubrir dispositivos “Alexa discover devices” (Alexa descubre dispositivos) lo cual enviara una difusión para descubrir dispositivos en nuestra red y en la Raspberry pi debería estar respondiendo.

Es obvio que  cualquier entrada analógica ( como por ejemplo temperatura ,detección de humedad,luminosidad, ect) también seria interesante poder ser soportada    pero eso  lo dejaremos  para  futuras actualizaciones   de este interesante proyecto

En el vídeo siguiente nos explican nuevamente los pasos ya comentados:

 

GitHub Project: https://github.com/nassir-malik/IOT-P…

 

Monitorizacion de liquidos via wifi desde su smartphone


Utilizando la placa WiFi NodeMCU-12E v3 ESP8266  y 2 sondas ultrasónicas de tipo HC-SR04 a prueba de agua , se  puede  medir el volumen de agua en 2 tanques de agua y ofrecer esa información  de un modo gráfico  y en tiempo real.

El  sonar suena por la parte superior del agua, obteniendo la distancia en cm,calculando la profundidad del agua en cm y luego extrapolando  el volumen de agua a litros.   Toda la información se pasa por WiFi en la WLAN al servidor local (RPi3) que ejecuta el servidor local Blynk. Finalmente la información está disponible en un teléfono usando la aplicación Blynk registrada en el servidor local.

Es importante destacar que el el mapeo de los pines es diferente en estas placa frente a lo s pines de un Arduino ( los números de pin son generalmente números de GPIO)

Es  este proyecto se usaran los típicos sensores ultrasónicos HC-SR04 estándar  sensores que transmiten   y reciben  señales  ultrasónicas ,  que en este caso deberán o bien  impermeabilizarse para ser resistentes al agua e impermeables ( el aspecto es muy similar a las mismas unidades que se usan en los vehículos para detectar colisiones al aparcar ) o bien comprarlos  ya  estancos espaciales  para ambientes húmedos, ( como en la foto).

sesnor

Concretamente este sensor se alimenta de  DC 5 V( consumo  30mA) usando  e emisión de frecuencia: 40 khz  con  una detección  máxima distancia de 4.5 m y resolución  cerca de 0.5 cm

Sus conexiones son 4:

  • VCC+ 5 V (fuente de alimentación positiva)
  • Trig (lado de control) RX
  • eco (lado receptor) TX
  • GND (negativo)

El uso de la ubicación disparador del IO TRIG puerto, pone el alto nivel de la señal de al menos 10us; el módulo automáticamente envía 8 trens de  40 KHz  con detección automática si  hay vuelta de señal.Una señal de vuelta se marca como  un alto nivel de salida a través del puerto IO de ECO. El tiempo de duración de alto nivel   ultrasónica es el del lanzamiento de volver.

La formula  para calcular la  distancia es la siguiente:

D(m) = tiempo de alto nivel * velocidad del sonido (los 340 M/S)) /2 

Como vemos este módulo utiliza el método sencillo, un puerto de control con un 10US por encima de alto nivel,  esperando un alto nivel de salida en el puerto de recepción. Una salida puede conducir el temporizador, de modo que cuando este puerto se pone la señal  bajo puede leer el valor del temporizador, y  esta vez para la ubicación del tiempo, se puede calcular la distancia de modo que así  constantemente hay un ciclo de  medicino

Estos sensores HCSR04 los conectamos  a una placa WiFi ESP8266 NodeMCU y yna pequeña placa para la alimenticio  de 3.3v  del ESP8200

El esquema es bastante sencillo como podemos ver en  la siguiente imagen:

Imagen de Primeros pasos con el banco para las pruebas iniciales

El  total de compontes    en resumen son los siguintes :

Para fines de prueba se puede  usar  un  PC para alimentar el circuito ,pero con la idea de que cuando este ya programado  funcione independiente , lo mejor es   utilizar un pequeño conversor  DC-DC de 3 v3  y asi usar cualquier fuente de alimentación de  220v/ 12v para alimentar el circuito (usando el coneversor como adptador de tension) 

 Tenga en cuenta que estas placas ESP12E funcionan con 3,3 voltios pero tienen un pin de suministro de entrada de 5v (VIN) y también funcionan con el suministro de USB cuando están conectados a su PC. No suministre más de 5 voltios al pin VIN si lo usa.

La conexiones  a usar son las siguientes :

  • Sensoring a Arduino GPIO5 (D1)
  • Sensor1 echo a Arduino GPIO4 (D2)
  • Sensor2 ping a Arduino GPIO14 (D5)
  • Sensor2 echo a Arduino GPIO12 (D6)

Estos sensores funcionan también a 3.3 voltios   y dan un  buen nivel de salida asi que no es necesario  convertidores de salida .Conecte ambos VCC a los sensores Arduino 3v3 y conecte ambos sensores GND a Arduino GND.

Puede usar un  LED  pero como se encenderá   solo de 50mS cada 2 segundos,  no merece la pena conectar una resistencia limitadora de corriente, (pero se puede agregar una resistencia 1 / 4W 470R si lo desea.). ElÁnodo del led  (pata larga) ira al Arduino GPIO13 (D7) y el Cátodo a Arduino GND

Tenga en cuenta   que los cables de los sensores  tienen cables coaxiales de 2 m de longitud., si necesita extender estoso pues usar un viejo cable coaxial que tenga , asegúrandose  de cubrir todas las uniones soldadas con termofluente.

 

 Instalando el Software

Este monitor de nivel de agua usa su tarjeta ESP8266 en su teléfono a través de sus servidores.

El servidor de Blynk en la nube sirve su aplicación con la información en los widgets en el teléfono. Al registrarte con Blynk, recibe 2000 puntos de energía de modo que con estos puntos se usan para ‘comprar’ widgets para su programa ( 2000 puntos son suficientes para construir esta aplicación de monitor de agua).

Otra opción es usar un servidor local ejecutándose en una Raspberry Pi, lo cual  permite puntos ilimitados y una mejor seguridad y no usando el servidor Blynk en absoluto,(es completamente independiente). La instalación y configuración de un servidor local está más allá del alcance de este post  sobre todo porque hay muchas instrucciones y tutoriales en la red para hacer esto comenzando con el sitio web de Blynk.

La versión final  utiliza  OTA para recibir actualizacion en el aire desde el wifi sin necesidad de  sacar todo para actualizar el software ( veremos  los cambios y métodos del software OTA más adelante).

 

Lo primero que necesitará es el Arduino IDE si aún no lo tiene.

Descargue la biblioteca Blynk aquí Biblioteca Blynk , la descarga se encuentra en la parte inferior de la página. Siga las instrucciones en esa página para instalar la biblioteca.Obtenga  tambien  la aplicación del teléfono aquí Blynk App .Se puede crear una cuenta para Blynk si desea usar la aplicación. Recuerde la dirección de correo electrónico de inicio de sesión que utiliza, la necesitará más adelante. Probablemente sea mejor usar su cuenta de correo electrónico todos los días.

También necesitará esta biblioteca:NewPing Esta es una excelente biblioteca para usar sus dispositivos. No hay necesidad de perder el tiempo con milisegundos, etc.

Estas instrucciones son para el software ESP8266:

  • Comenzando con 1.6.4, Arduino permite la instalación de paquetes de plataforma de terceros usando Boards Manager. Tenemos paquetes disponibles para Windows, Mac OS y Linux (32 y 64 bits).
  • Inicie Arduino y abra la ventana Archivo> Preferencias.
  • Ingrese “ `http: // arduino.esp8266.com / stable / package_esp8266com_index.json“` en el campo * Additional Board Manager URLs *. Puede agregar varias URL, separándolas con comas.
  • Abra el Administrador de tableros desde Herramientas> Menú de la placa e instale la plataforma * esp8266 * (y no olvide seleccionar su placa ‘NodeMCU 1.0 (Módulo ESP-12E)’ desde Herramientas> Menú de la placa después de la instalación).
  • En el menú, seleccione Boceto> Incluir biblioteca> Administrar bibliotecas.Permitir que termine la descarga. Debería ver las bibliotecas de Blynk instaladas.
  • Para que su PC se comunique con el software USB to Serial de las placas Arduino debe instalar el controlador USB-UART CH341SER_win. Esto es necesario para todas las comunicaciones Arduino a través de USB. Obtengalo aqui

 

 Código de prueba para la placa ESP8266

Comenzaremos con dos sensores que informan la información al monitor serie integrado en el IDE de Arduino. Aún no se informa al servidor Blynk, OTA o WiFi.

Haga doble clic en el archivo ‘water_code_1.in’ a continuación, después de que Arduino IDE comience vaya a Archivo> ‘guardar como’ y guárdelo en su carpeta de bocetos.Se creará una carpeta con el archivo dentro.Confirme que tiene la placa correcta seleccionada, haga clic en el botón ‘verificar’ (botón muy a la izquierda en el IDE). Debe compilar sin error. Conecte su placa al cable USB, desde el menú IDE Herramientas> Puerto> COM n.

El puerto de comunicación correcto se puede encontrar simplemente desenchufando la placa y viendo qué puerto desaparece.Haga clic en el botón ‘Subir’ en IDE Arduino y permita que termine de compilar y cargar.En el IDE seleccione Herramientas> Monitor en serie

El LED debe parpadear cada 2 segundos y el monitor debe informar la distancia, la profundidad y los litros de agua de cada tanque durante 2 segundos, de forma similar a la imagen mostrada.

Imagen del código de prueba para el tablero ESP8266e Estos sensores tienen un rango d aproximadamente 3 mtrs. de modo que están configurados a 3 mtrs en el software de todos modos.

Pruebe cada sensor moviéndolo dentro y fuera de un objeto sólido como la pared, debería ver las figuras cambiar en la ventana del monitor. A medida que la distancia aumenta, simula un nivel de agua más bajo.

Este es  el codigo  final :

#include
#include

#define SONAR_NUM 2 // Number of sensors. Change to suit your requirements.
#define PI 3.1415926535897932384626433832795

//** CHANGE TO SUIT TANK DIMENSIONS
const int MAX_DISTANCE = 300; //max distance to measure
const int Diameter1 = 276; //internal Diameter of tank 1 cm
const int Diameter2 = 276; //internal Diameter of tank 2 cm
const int Depth1 = 265; //total depth of tank 1 cm , from sensor to base inside
const int Depth2 = 265; //total depth of tank 2 cm, from sensor to base inside

const unsigned int Period = 2000; //period between pings, in milliseconds. i.e 1 munute = 60,000. max 65535. Want longer? use unsigned long

//** SENSOR PINS

const int PingPin1 = 5; // GPIO5, D1
const int EchoPin1 = 4; // GPIO4, D2
const int PingPin2 = 14; // GPIO14, D5
const int EchoPin2 = 12; // GPIO12, D6

const int Area1 = PI * ((Diameter1 / 2) * (Diameter1 / 2)); //area of base of tank 1
const int Area2 = PI * ((Diameter2 / 2) * (Diameter2 / 2)); //area of base of tank 2

// Global variables
int Litres1, Litres2, Distance1, Distance2, WaterDepth1, WaterDepth2;

BlynkTimer timer; //config timer

NewPing sonar[SONAR_NUM] = { // Sensor object array.
NewPing(PingPin1, EchoPin1, MAX_DISTANCE), // Each sensor’s trigger pin, echo pin, and max distance to ping.
NewPing(PingPin2, EchoPin2, MAX_DISTANCE)
};

void sendSensorReadings()
{
//***********Readings Tank 1
Distance1 = sonar[0].ping_cm(); //get distance to the top of the water tank 1
if (Distance1 >= Depth1 || Distance1 == 0 ) Distance1 = Depth1; //check it does not go negative
WaterDepth1 = Depth1 – Distance1; //calculate the depth of the water
Litres1 = (Area1 * WaterDepth1) / 1000; //calculate the volume of the water as litres
delay(50);

//************Readings Tank 2
Distance2 = sonar[1].ping_cm(); //get distance to the top of the water tank 2
if (Distance2 >= Depth2 || Distance2 == 0) Distance2 = Depth2; //check it does not go negative
WaterDepth2 = Depth2 – Distance2; //calculate the depth of the water
Litres2 = (Area2 * WaterDepth2) / 1000; //calculate the volume of the water as liters

digitalWrite(13, HIGH); //flash the LED on D7, just to let us know it’s running
delay(50);
digitalWrite(13, LOW);

//************************* can be commented out, test use only
Serial.println();
Serial.println();
Serial.println(“Tank 1 water distance: ” + String(Distance1)); //print depth
Serial.println(“Tank 1 water depth: ” + String(WaterDepth1)); //print depth
Serial.println(“Tank 1 Litres: ” + String(Litres1)); //print litres

Serial.println();
Serial.println(“Tank 2 water distance: ” + String(Distance2)); //print depth
Serial.println(“Tank 2 water depth: ” + String(WaterDepth2)); //print depth
Serial.println(“Tank 2 Litres: ” + String(Litres2)); //print litres
//***********************************************

}

void setup() {

pinMode(13, OUTPUT); //LED GPIO13 D7

timer.setInterval(Period, sendSensorReadings); // Setup a function to be called every ‘n’ seconds
delay(10);

//** can be commented out, test only
Serial.begin(115200); // Open serial console.
Serial.println();
//*******************************

delay(20);
}

void loop() {

Blynk.run();
timer.run();

}

 

Código  Final con WiFi y Blynk

Ahora vamos a conectarnos al servidor de Blynk. Descargue y abre el water_code_2.ino

En el IDE de Arduino, seleccione Archivo> “guardar como” en su carpeta de bocetos.

Abra la aplicación Blynk, inicie sesión. Cree un nuevo proyecto,  dispositivo = ESP8266, tipo de conexión = WiFi, configure el tema que prefiera.presione el botón Crear.Se enviará un token de autoridad a su cuenta de correo electrónico designada.Presione OK  y vaya a su correo electrónico , copie el token de autoridad, péguelo en su programa arduino donde dice ‘char auth [] = “YourAuthToken

También ingrese su SSID y su contraseña.Ahora cárgalo en su ESP.

Ahora  terminaremos el proyecto Blynk viendo como configurar la aplicación.

Configuración del programa de aplicación Blynk

Imagen de la configuración del programa de la aplicación Blynk

 

Entre en su app movil  Blync e introduzca sus credenciales de acceso. Siga los siguientes pasos para configurar la aplicación para la medición de los niveles de dos tanques

  • Presione + en la parte superior de la pantalla en la aplicación, desplázese hacia abajo y presiona Value Display. Haga esto 4 veces
  • Presione + en la parte superior de la pantalla en la aplicación, desplázese hacia abajo y presiona NivelV. Haga esto dos veces
  • Presione + en la parte superior de la pantalla en la aplicación, desplázesee hacia abajo y presiona SuperChart.
  • Diseñe los widgets como en la imagen. Una pulsación larga en el widget le da identificadores para redimensionarlos.
  • Colócalos como mejor le parezca.
  • Presione la primera Pantalla de valor (arriba a la izquierda), asígnele el nombre Profundidad 1, seleccione V1, 0 a 300 y PULSE
  • Presione la segunda pantalla de valores, nombre Profundidad 2, seleccione V4, 0 a 300 y PUSH
  • Presione la tercera pantalla de valores (2 abajo a la izquierda), nombre Liters 1, seleccione V2, 0 a 9999 y PUSH
  • Presione la cuarta pantalla de valores, nombre Liters 2, seleccione V5, 0 a 9999 y PUSH
  • Presione el nivel vertical izquierdo, nómbrelo Nivel 1, seleccione V3, 0 a 1600, APAGADO y EMPUJE
  • Presione el nivel Vertical derecho, nómbrelo Nivel 2, seleccione V6, 0 a 1600, APAGADO y PULSE
  • Presione SuperChart, Litros 1 y Litros 2.
  • Presione el ícono (flujo de datos) al lado de Nombre, PIN = V3, interruptor deslizante = VALORES, minn = 0, máximo = 1600
  • Presione el ícono (secuencia de datos) al lado del segundo nombre, PIN = V6, interruptor deslizante = VALORES, min = 0, máximo = 1600

Puede jugar con las otras configuraciones para adaptarlas a sus preferencias. Para eliminar un widget, arrástrelo a la derecha de la pantalla.

Si todo se ve bien, presione la esquina superior derecha de la pantalla. Si su Arduino se está ejecutando, debería ver los mismos números (excepto la distancia) que en el monitor de serie.

Como se puede ver en la imagen anterior de la app movil  de Blync   debe tener en cuenta que debe ajustar el valor real de  Profundidad1 y Profundidad2  en la app  , pero también deberá reflejar los  valores correspondientes en el codigo de Arduino  para calcular el volumen par lo cual es importante  no olvidar este detalle.

En el ejemplo los depósitos son circulares de modo que hay especificar tanto el diámetro como la profundidad:

 

Imagen de Mount the Sensors en los tanques

También  debe señalar que estos sensores tienen un rango mínimo de 20 cm, lo cual se debe a que el transmisor y el receptor comparten la misma distancia.

 

Configurar la  actualización por  OTA

Imagen de la configuración de la actualización de OTA

OTA o ‘Over The Air‘ es una característica realmente útil, especialmente en este caso donde ESP está dentro de una caja y afuera.

Este es un proceso bastante simple:

  1.  El cargador de arranque OTA se carga primero en la placa.
  2.  La placa se reinicia presionando el botón de reinicio en la placa.
  3.  Su nuevo código para el proyecto de tanque de agua que contiene las adiciones de OTA a su placa por USB.

Las cargas futuras se logran seleccionando el puerto WiFi en Herramientas> Puerto.

Vaya a Archivo> Ejemplos> ArduinoOTA> BasicOTA

El programa se cargará, ingrese su nombre de red y contraseña en el código.Suba esto a su placa. Ahora presione el botón de reinicio en el tablero.

Regrese a su programa de tanque de agua y vea los 3 lugares que se muestran en las imágenes, estos son necesarios para la carga de OTA.

Suba esto a su placa , usando  USB serial.

Si mira en Herramientas> Puerto en IDE Arduino, verá un nuevo puerto.Tendrá ‘esp8266’, la ID de la placa y la dirección IP de la placa.

Para una carga futura, use este puerto, sin necesidad de una conexión serial USB.

La placa ahora puede ser cargada por otros medios , es decir por wifi  sin tener que llevar el pc  y conectarlo por USB.

Montaje  final

Imagen de Monte las tablas en la caja

Puede montar  el ESP8266, tanto las placas ultrasónicas como el convertidor DC-DC en la caja con clasificación IP66, ya que estará   expuesto a los elementos. Si usa conectores de cable hembra-hembra, mucho mejor. Es interesante montar el convertidor CC-CC en una posición donde el conector de alimentación pueda enchufarse desde el exterior. 

También se deben tome todas las conexiones de alimentación y tierra a esta placa para evitar los bucles de tierra usando se 3.3 voltios para todo.

Es interesante hacer un agujero para el LED, e intentar ajustarlo para que no se necesite adhesivo.

Conecte todo y asegúrese de que todo sea resistente a la intemperie

Verifique todo, especialmente el cableado de alimentación.Enchufe la alimentación y conéctelo a la caja, conecte los sensores y enciéndalo.No verá nada en el monitor de serie, pero consulte la aplicación de su teléfono mediante la aplicación Blynk 

Mueva los sensores alrededor, las figuras deberían cambiar en la aplicación. Recuerde que una transmisión de ping e información solo se realiza cada 2 segundos.

Si sus tanques están a una distancia mayor, deberá  usar un extensor WiFi.

.

 

Fuente  Instructables.com

 

Concurso Casa inteligente con Arduino y Alexa


Alexa es el servicio de voz de Amazon y el “cerebro” que hay detrás de millones de dispositivos como el Amazon Echo. La gente usa Alexa para controlar dispositivos domésticos inteligentes millones de veces al día.

De Arduino , hemos hablado muchas veces  es este blog , es una plataforma de electrónica de código abierto basada en hardware y software fácil de usar destinada a cualquier persona que realice proyectos interactivos.

La comunidad de fabricantes de Arduino (estudiantes, aficionados, artistas, programadores y profesionales) se ha reunido en torno a esta plataforma de código abierto, sus contribuciones se han añadido a una cantidad increíble de conocimiento accesible que puede ser de gran ayuda para principiantes y expertos por igual.

En este concurso  invitan a cualquier aficionado o profesional  a trabajar  con estos líderes de la industria para visualizar y construir el futuro de los hogares inteligentes.

 

En el vídeo nos explican en que consiste el reto

En este concurso, Hackster ha reunido a Alexa y Arduino, un líder en hardware de código abierto.

Invitan  a crear un proyecto que visualice el futuro de los hogares inteligentes. Aquí hay algunas ideas potenciales para comenzar:

  • Automatización de la temperatura ambiente
  • Control de iluminación personalizado
  • Sistemas de seguridad y timbre
  • Entretenimiento y comida para mascotas
  • Control y gestión de jardines
  • Transmisión multimedia en dispositivos
  • Monitoreando casi todo

Si no tiene un dispositivo Amazon Alexa, puede usar Echosim.io para probar virtualmente sus habilidades de Alexa. Use la API Alexa Smart Home para crear fácilmente capacidades, toque las API de autoservicio, la documentación, las plantillas y las muestras de códigos que lo guiarán rápidamente hacia la publicación de Habilidades. Use el Servicio de voz de Alexa para integrar Alexa en su producto usando el SDK y las API.

Aquí tiene los premios que puede ganar:

  • Mejor ganador general de habilidades de Smart Home en Alexa: $ 14,000 en efectivo, paquete de Kickstarter: Fondo promocional de videos y marketing, certificación Dragon Innovation, una sesión de entrenamiento en Kickstarter de 60 minutos (lleve su proyecto al producto)
  • La mejor habilidad y artefacto para interiores Smart Home de Alexa: $ 8,000 en efectivo + 60 minutos de entrenamiento en Kickstarter
  • Mejor habilidad al aire libre de Alexa Smart Home Skad & Gadget: $ 8,000 en efectivo + 60 minutos de entrenamiento en Kickstarter
  • Comodines y aditamentos caseros de Smartcard de Alexa: $ 6,000 en efectivo + 60 minutos de entrenamiento en Kickstarter
  • Mejor integración y gadget de servicio de voz de Alexa: $ 8,000 + 60 minutos de entrenamiento de Kickstarter
  • NOTA: Hackster solo realiza premios en efectivo a través de PayPal.

Calendario del concurso :

  • La presentación del proyecto se abrió  el 21 de noviembre de 2017 a las 8:01 a.m. PT
  • Fecha límite para envío de proyectos 24 de febrero de 2018 a las 11:59 p.m. PT
  • Los ganadores se anunciaran el 12 de marzo de 2018 a las 11:59 p.m. PT

 

Incripcion en  el concurso 

  1.  Registro para el concurso en https://www.hackster.io/contests/alexasmarthome 
  2. Comience por crear una cuenta gratuita en Hackster.io (o inicie sesión si ya es miembro)
  3. Regístrese para el concurso haciendo clic en “Registrarse como participante”
  4. Ingrese para ganar los premios mayores al crear y enviar su proyecto
  5. Cree su proyecto usando la API de Amazon Smart Home, y / o Amazon Voice Service y cualquier producto Arduino
  6. Envíe su proyecto antes del 24 de febrero de 2018 a las 11:59 p.m. PT

 

 

Algunos recursos:

 

 

 

 

 

 

Los ganadores serán anunciados en esta página antes del 12 de marzo de 2018 a las 11:59 p.m. PT. ¡Buena suerte!