Arduino UNO y ESP32 con Imagina TDR Steam y Arduinoblocks
Hardware y software empleado
Arduino UNO
Arduino es una tarjeta electrónica que integra básicamente a un microcontrolador y un conjunto de pines de conexión de entradas y salidas que permiten, mediante un determinado programa, interaccionar con el medio físico mediante sensores y actuadores electrónicos. De esta forma podrás crear tus propios proyectos tecnológicos, dotarlos de sensores que detecten magnitudes físicas como luz, calor, fuerza, etc… y en base a esa información, escribiendo un programa, activar otros dispositivos (actuadores) como pequeñas bombillas, ledes, servomotores, pequeños motores DC, relés, etc… Los sensores se conectan a los pines de entrada y los actuadores a los de salida.
ESP32
Es una placa sucesora del ESP8266 de bajo coste y consumo que tiene el microprocesador Tensilica 32bits (variante el Xtensa LX6) que tiene Wifi y Bluetooth integrados. Como dice Luis Llamas en https://www.luisllamas.es/esp32/ el ESP32 es el hermano mayor del ESP8266 con Wifi y Bluetooth.
Su principal característica es su potencial de uso en aplicaciones IoT
Imagina TDR Steam
Shield integrable en Arduino UNO y en placas compatibles, con multitud de sensores integrados y muchas posibilidades didácticas.
ArduinoBlocks
Arduinoblocks es un programa creado por el profesor Juanjo López. Gracias a su entorno gráfico facilita la programación de placas Arduino a todos los niveles. Esta herramienta permite programar a personas sin conocimientos previos de programación, pero su versatilidad y potencia es tan grande que expertos programadores también pueden utilizarlo. (José Andrés Echevarría @cantabRobots CC-BY-NC-SA)
No es software libre porque el programador no libera el código, si bien su uso es libre y gratuito.
Comienza con el aula virtual
Comienza conectando la placa al puerto USB del ordenador.
Después arranca el programa ArduinoBlocks Connector que encontrarás en el escritorio de tu equipo.
Por último accede a la página web de ArduinoBlocks e inicia sesión con las siguientes credenciales (como si fueras un alumno con credenciales creadas por el profesorado):
- Correo electrónico: alumnadoX.iesejemplo (con X el valor que os señalen según la tarjeta que te asignen)
- Contraseña: la facilitada por las personas responsables del taller
El orden en el que realizar estos pasos es importante para que el programa detecte la placa y se pueda comunicar con ella.
En ese momento accederás al panel donde ir a Mis proyectos, o Empezar un nuevo proyecto. En nuestro caso haz clic en Empezar un nuevo proyecto!
Una vez allí escoge la opción Alumno e introduce en el cuadro de texto el código del proyecto hw2U93eS
Esto te cargará un proyecto, que en este caso hemos creado desde el rol del profesorado
- Estación meteorológica básica_tempyhum: proyecto de placa UNO+TDR Steam. Arduinoblocks te hace elegir el tipo de placa y accesorio que vas a usar, puesto que tiene bloques personalizados para cada uno de ellas. En este caso estamos usando una placa Arduino UNO, muy común en los centros educativos, a la que le hemos acoplado una shield o escudo llamado IMAGINA TDR Steam, que incluye multitud de sensores y actuadores ya integrados, y que simplifican mucho la electrónica y la programación.
ESTACIÓN METEOROLÓGICA
Comenzamos abriendo el proyecto. Echale un vistazo al código y trata de adivinar cual es su comportamiento.
Este programa recopila datos del sensor de temperatura y humedad que está integrado la shield Imagina TDR y los muestra tanto de forma numérica como de forma gráfica en pantalla a través de la Consola y del Plotter Serie.
Para ver cómo funciona, subiremos el programa a nuestra placa. Para asegurarnos de que la placa ha sido reconocida por el equipo y por la web, hay que fijarse en la parte de arriba a la derecha y allí tendremos que comprobar que está activo el puerto donde lo hemos conectado. En los dispositivos windows comienza por COM y en los linux por /dev. Una vez comprobado que la conexión está establecida hacemos clic en Subir.
Una vez obtenido el mensaje de que el programa ha subido exitosamente a la placa, aparentemente no pasa nada. Si queremos ver el funcionamiento, tenemos que hacer clic sobre el botón Consola, al lado de Subir.
En ese momento se nos abrirá una ventana emergente con el título de Consola serie, que es donde se van a visualizar los datos que estamos recogiendo.
Al hacer clic en Conectar, veremos que en pantalla aparecen datos que se actualizan con una cierta periodicidad. Esa periodicidad viene dada por la espera que hemos introducido en el programa al final de Bucle.
Puedes probar a modificar esos valores de tiempo en el programa y ver cómo cambia el funcionamiento. No olvides volver a subir el programa a la placa después de cada cambio.
Aparte de los datos numéricos por pantalla, arduinoblocks nos permite mostrar esos mismos datos en forma de gráfica usando los bloques correspondientes al Serial Plotter. Para visualizarlo, hay que ir al desplegable del botón Consola y seleccionarlo.
Igualmente se abre una pantalla emergente, con aspecto de gráfico en la que habrá que hacer clic en Conectar (1) para comenzar la recepción de datos.
Al conectar se empezarán a pintar los valores de los datos mostrados. Podemos a su vez grabar esos datos durante un período de tiempo (2 en la figura), parar esa grabación de datos cuando lo deseemos (3) y exportar los datos grabados en ficheros csv (4). Se nos generarán tantos csv como variables hayamos mostrado en la gráfica, que se guardarán como una descarga más del navegador. Esto puede ser de gran utilidad para monitorizar condiciones de cultivo en sistemas automatizados, etc...
Experimenta con esta utilidad grabando y exportando los csv correspondientes.
Por último te invitamos a enriquecer el programa, usando el sensor de luz disponible también en la TDR. Se trata de una LDR. En nuestro caso tendremos que crear una nueva variable en la que almacenar los datos recogidos por el sensor de luz. Después enviaremos tanto por la consola Serie como por el Plotter esos valores junto a los de temperatura y humedad.
Los pasos a seguir en ese caso serían:
- Definir una nueva variable numérica desde el bloque Variables. Llámale luz
2. Desde ese mismo bloque Variables, añade el bloque Establecer luz = justo debajo del de la temperatura, antes de los bloques de puerto serie.
3. Busca en el menú TDR STEAM el bloque correspondiente al nivel de luz (LDR) y asígnalo a la variable Luz.
4. Utiliza la opción de duplicar bloques con el botón derecho para crear un nuevo bloque tanto de Enviar como de Plotter al Bucle.
5. Modifica los valores de texto y la variable correspondiente en los nuevos bloques. La luminosidad detectada por el sensor se mide en %
6. Por último sube el proyecto a la placa y comprueba el funcionamiento. Puedes tapar la LDR con el dedo, o aspirar en el sensor DHT-11 para ver cómo se modifican los valores obtenidos.
CONTROL POR BLUETOOTH
Para realizar este proyecto lo primero que vamos a hacer es cerrar sesión, cerrar el programa ArduinoBlocks Conector y desconectar la placa, puesto que vamos a realizar un cambio de placa.
Separaremos la shield Imagina TDR de la placa Arduino UNO y sustituiremos esta última por la placa ESP32 que te facilitarán en el taller. Verás que son muy similares en disposición y puertos, si bien la ESP32 integra módulos para comunicaciones (bluetooth y wifi) lo que nos permite controlar y visualizar los datos de la placa desde otros dispositivos externos (móvil, ordenador) o enviarlos a internet (IoT)
Una vez acopladas volveremos a seguir los pasos descritos anteriormente
- Conectar la placa mediante USB al ordenador
- Abrir el programa Arduinoblocks Conector
- Refrescar la página www.arduinoblocks.com en nuestro navegador y volver a iniciar sesión con las credenciales de antes.
En este caso, para unirnos a este proyecto como Alumnado, tendremos que ir a Empezar nuevo proyecto y allí introducir el nuevo código, en este caso LcN_Uboq
Se nos abre el proyecto Control por Bluetooth_taller
Una vez abierto el proyecto, lo primero que vamos a hacer es cambiar el Nombre del Bluetooth de nuestra placa, de forma que quede unívocamente reconocible. Eso lo hacemos en el primer bloque dentro de Inicializar.
Échale un vistazo al código y reconoce lo que hace el programa
- Bloque inicializar: arranca el módulo Bluetooth de la placa, le da un nombre y fija su timeout.
- Bloque Bucle: almacena los datos de temperatura y humedad detectados por el sensor DHT-11. Luego, si recibe datos por Bluetooth, almacena ese valor en la variable lectura. Según los valores que reciba, programa unas acciones u otras en diferentes actuadores (encender, apagar leds, sonido) En el caso de recibir un 6 o un 7, a su vez envía por Bluetooth los valores proporcionados por el sensor.
Todos los bloques relacionados con el Bluetooth se encuentran en el Bloque Comunicaciones, en el submenú Bluetooth.
Sube el programa a la placa y activa el bluetooth de tu móvil para ver si la detectas y puedes vincularte con ella.
Ahora nos falta un dispositivo también con Bluetooth desde el que enviar esos datos a la placa y también recibir y mostrar los que ella le envía. Para ello utilizaremos nuestro móvil en el que le vas a cargar una sencilla aplicación realizada con AppInventor (que por supuesto también se puede elaborar con el alumnado)
Para ello escanea con tu móvil el siguiente código QR (SUSTITUIR ESTO POR OTRO ESE DÍA PORQUE SOLO DURA DOS HORAS)
Esto te descargará en el móvil un fichero .apk que deberás instalar y abrir. Para ello quizás tengas que habilitar temporalmente el permiso de aplicaciones desde terceros. En este caso puedes confiar en la fuente.
Al abrir la aplicación verás en tu móvil algo similar a esto.
En primer lugar, deberás conectarte por bluetooth a la placa. Para ello haz clic en el móvil en el botón Conexión y selecciona la placa. Una vez conectada, cambiará el color de las letras y se verá en azul.
Una vez conectada, experimenta con los diferentes botones y verás como reaccionan los distintos actuadores. Si quieres, modifica la melodía en el programa y repite el proceso con el nuevo tono.
Por último cierra todo y desconecta la placa.
Para saber más
Arduino UNO
https://programarfacil.com/blog/arduino-blog/arduino-uno-r3/
ESp32
https://www.circuitos-electricos.com/esp32-especificaciones-y-disenos/
https://programarfacil.com/esp8266/esp32/
Imagina TDR Steam
Arduinoblocks
Retos con Arduino UNO+TDR steam + Arduinoblocks:
https://www.robolot.online/course/view.php?id=11
Usuarios gestionados y aula virtual con ArduinoBlocks
1 Comment
Ordenadores con arduinoblocks connector instalado: hp19, 20 y 24