Skip to main content

Practice 26 : Over-The-Air programming (OTA)

✅ Práctica 26

En el siguiente blog se presenta la vigésima sexta práctica del laboratorio de control de temperatura y velocidad de un motor.

Objetivo general:

  • Actualizar el código del TSC-Lab utilizando OTA.

Materiales:

  • IOTAppStory
  • TSC-Lab

Introducción:

A lo largo de todas las prácticas previamente realizadas, cada código se ha cargado al TSC-Lab con ayuda del cable USB por comunicación serial. Sin embargo, esta no es la única forma de hacerlo. Al igual que muchos otros dispositivos como celulares, carros inteligentes, decodificadores, entres otros se le pueden realizar ajustes y configuraciones de manera inalámbrica por una programación por aire llamada OTA (over the air) y los ESP-32 que tienen los TSC-Lab no son la excepción.

Para esta práctica de laboratorio se utilizará IOTAppStory, una plataforma IoT que permite alojar firmware y cargas estas aplicaciones por aire (OTA). La idea principal de IOTAppStory es tener proyectos que contengan uno o más dispositivos que se deseen actualizar por OTA. 

Procedimiento:

Nota: Se asume que se tiene instaladas las librerías de las prácticas anteriores y adicional se debe instalar la librería ESP de IOTAppStory, disponible aquí; también la librería AsyncTCP, aquí y ESPAsyncWebServer, aquí.
  1. Copiar el siguiente código al IDE de Arduino, pero no se lo debe cargar al TSC-Lab.  
  2.     
  3. Se debe generar un archivo .bin, para ello se debe seguir el procededimiento que se ve en la imagen para compilar el código.

  4. Ahora hay que dirigirse a IOTAppStory.com y en la parte superior derecha seleccionar Register para crearse una cuenta o a menos de ya tener una cuente se debe iniciar sesión. 


  5. Una vez con la cuenta creada o luego de haber iniciado sesión, se debe dar clic en Control Panel

  6. Dar clic en My Apps y luego en New App.

  7. Colocar un nombre a la App, de manera adicional se puede colocar un comentario o agregar una imagen y luego se debe dar clic en Next.


  8. Seleccionar la versión con la que desea iniciar la App y dar clic en Next.

  9. Seleccionar la tarjeta a compilar que se muestra en la imagen.

  10. Dar clic en Click here para subir el archivo binario compilado.


  11. Buscar el directorio donde se generó el archivo .bin, el cual es el mismo donde se guardó el archivo .ino.

  12. Clic en Save.

  13. Dar clic en Projects y New Project.


  14. Colocar un nombre al proyecto, de manera adicional se puede colocar un comentario o agregar una imagen y luego se debe dar clic en "X", cerrar.


  15. Clic en View project.


  16. Dar clic en Add app.



  17. Seleccionar la App que se creó.


  18. Por ahora no hay ningún dispositivo y se lo creará con ayuda de un ejemplo, para ello se debe abrir un nuevo proyecto de Arduino.
  19. Abrir el ejemplo de la librería IOTAppStory llamado IASLoader y subirlo al TSC-Lab. Esto se hará una sola vez con el fin de conectar el dispositivo con una red WiFi y cargar el código que se cargó en el paso 16 de manera inalámbrica.

  20. Cargar dicho código al TSC-Lab, abrir el monitor serial.

  21. Con ayuda del celular buscar y conectarse a la red WiFi que se imprimió en el monitor serial y en un navegador colocar la IP que también se muestra.





  22. Seleccionar la red WiFi y colocar la respectiva contraseña para luego avanzar presionando Save.
  23. Se realizará la conexión y para ello se puede esperar o presionar la dirección IP que muestra.
  24. Iniciar sesión.

  25. Colocar el nombre del dispositivo que se desea crear y seleccionar la misma tarjeta que se escogió en el paso 8. Luego dar clic en Next.

  26. Agregar el proyecto que se creó y clic en Save.
     
  27. Dirigirse al símbolo de WiFi y nuevamente colocar la contraseña de la red que se realizó la conexión previamente. Seleccionar Save.
  28. Seleccionar el último símbolo que sale a la derecha y luego presionar Yes para salir.
  29. Si vuelve a pedir que se realice la conexión con la red que se creó, hay que aplastar el botón reset del ESP-32. Si luego de esto pide realizar nuevamente la configuración, se debe nuevamente a la dirección IP que se muestra en el monitor serial y repetir los pasos 26 y 27.
  30. Ver el monitor serial y apreciar como se carga el dato por aire (OTA).


                  

Comments

Popular posts from this blog

Práctica 2: Ambient temperature reading using sensor 1 and 2

✅ Práctica 2 Github Repositories ▷  #TSCLab #TCLab #ESP32 #Arduino #Control #MACI En el siguiente blog se presenta la segunda práctica del laboratorio de control de temperatura. Objetivo general: Guardar las mediciones obtenidas con ayuda de Cool Term y exportarlas en un archivo comma-separtaed-values (csv). Objetivos específicos: Guardar los datos de las lecturas realizadas a temperatura ambiente. Materiales: Programa Cool Term PCB de Temperature Control Lab (TSC-Lab) Introducción: Para esta práctica, el sistema sigue sin tener retroalimentación, es decir, es en lazo abierto ya que simplemente se está midiendo el cambio de temperatura conforme los heaters estén activados o desactivados y en esta práctica se tiene un único caso: Caso 1: ningun heater está activado Procedimiento: Se asume que las librerías del sensor de temperatura y ESP están instaldas en el IDE de Arduino. Copiar el código en el IDE de Arduino:           Repositories:  https://github.com/vasanza/TSC-Lab/tre

Practica 3: Activation of Transistor 1 and Reading of temperature sensor 1 and 2

✅ Práctica 3 Github Repositories ▷  #TSCLab #TCLab #ESP32 #Arduino #Control #MACI En el siguiente blog se presenta la tercera práctica del laboratorio de control de temperatura. Objetivo general: Guardar las mediciones obtenidas con ayuda de Cool Term y exportarlas en un archivo comma-separtaed-values (csv). Objetivos específicos: Guardar los datos de las lecturas realizadas con el heater 2 activado. Materiales: Programa Cool Term PCB de Temperature Control Lab (TSC-Lab) Introducción: Para esta práctica, el sistema sigue sin tener retroalimentación, es decir, es en lazo abierto ya que simplemente se está midiendo el cambio de temperatura conforme los heaters estén activados o desactivados y esto dependerá con cual de los casos el estudiante desea trabajar. Caso 1: ningun heater está activado Caso 2: únicamente el heater 1 se activa y desactiva. Para esta práctica se trabajará con el caso 2 . Los mediciones son almacenadas en el ordenador gracias a Cool Term.  Procedimiento: Se asu

Practice 10: Data acquisition with square velocity input

✅ Práctica 10a Github Repositories ▷  #TSCLab #TCLab #ESP32 #Arduino #Control #MACI En el siguiente blog se presenta la décima práctica y corresponde a la quinta del laboratorio de control de velocidad. Github repository: https://github.com/vasanza/TSC-Lab Objetivo general: Recopilar y guardar las RPM para crear un dataset. Objetivos específicos: Comparar los resultados de movimiento con diferentes parámetros. Materiales: Aplicación de escritorio CoolTerm PCB de Temperature Control Lab (TSC-Lab) Introducción: Una vez entendido todo el funcionamiento y control de velocidad del motor, se pretende crear un dataset para mejorar el mismo, lo que se hará es tomar 10 muestras tanto en un PWM de 255 y 0 durante un periodo de 13 segundos, dichos datos pueden ser modificados en la parte inicial del código de arduino.  Procedimiento: Nota: revisar la práctica 1 donde se le recuerda a como utilizar la apliación CoolTerm. Se asume que la placa del ESP-32 ha sido previamente instalada en el IDE

Práctica 1: Initial setups and tests

✅ Práctica 1 Github Repositories ▷  #TSCLab #TCLab #ESP32 #Arduino #Control #MACI En el siguiente blog se presenta la primera práctica del laboratorio de control de temperatura. Objetivo general: Entender el funcionamiento básico de TSC-Lab para la realización de futuras prácticas. Objetivos específicos: Analizar el comportamiento de la curva cuando los heaters están activados y desactivados. Guardar las mediciones obtenidas con ayuda de Cool Term y exportarlas en un archivo  comma-separtaed-values  (csv). Materiales: Programa Cool Term PCB de Temperature Control Lab (TSC-Lab) Introducción: El laboratorio de control de temperatura es un sistema en lazo cerrado. Sin embargo, en esta y futuras prácticas a realizar se comportará como un sistema de control en lazo abierto ya que no existe retroalimentación, únicamente los heaters se activan y los sensores empiezan a medir el incremento de temperatura y al desactivarlos los sensores miden como la temperatura baja hasta llegar a la t

Practice 9: Encoder Implementation (RPM)

✅ Práctica 9 Github Repositories ▷  #TSCLab #TCLab #ESP32 #Arduino #Control #MACI En el siguiente blog se presenta la novena práctica y corresponde a la cuarta del laboratorio de control de velocidad. Objetivo general: Visualizar las RPM del motor en base a la PWM asignada. Objetivos específicos: Comparar los resultados de movimiento con diferentes parámetros. Materiales: PCB de Temperature Control Lab (TSC-Lab) Introducción: En la práctica anterior se puso en marcha en motor asignándole un valor PWM, además brindaba la opción de escoger el sentido de gira. Ahora, en el presente laboartorio se implementa un encoder óptico, que mediante el código de programación en el IDE de Arduino, permite saber a cuantas revoluciones por minuto gira el motor. Es importante mencionar que en esta ocasión se hará uso de interrupciones, cualquier pin GPIO del ESP-32 puede ser utilizado con interrupción, en este caso se ha escogido el 27, pin en el cual está conectado el encoder óptico. Procedimiento: S

Practice 21: SISO using DC Motor

▷  #TSCLab #TCLab #ESP32 #Arduino #Control #MACI Repositories En el siguiente blog se presenta la vigésima segunda práctica del laboratorio de control de temperatura y velocidad de un motor. Objetivo general: Realizar la adquisición de datos en Matlab emplenado comunicación serial Materiales: Matlab TSC-Lab TSC-Lab 3D view Simulink: https://drive.google.com/drive/folders/16W5_6BPTgedT5vyFnJCiYwqh7fQjR9Po?usp=sharing Se recomienda comparar el lazo cerrado con el modelo identificado: Código para el TSC-LAB:

Practice 12: Speed Control Lab

✅ Práctica 12 ▷  #TSCLab #TCLab #ESP32 #Arduino #Control #MACI When using this resource, please cite the original publication: Víctor Asanza, Kevin Chica-Orellana, Jonathan Cagua, Douglas Plaza, César Martín, Diego Hernan Peluffo-Ordóñez. (2021). Temperature and Speed Control Lab (TSC-Lab). IEEE Dataport. https://dx.doi.org/10.21227/8cty-6069 En el siguiente blog se presenta la vigésima segunda práctica del laboratorio de control de temperatura y velocidad de un motor. Github repository: https://github.com/vasanza/TSC-Lab Objetivo general: Realizar la adquisición de datos en Matlab emplenado comunicación serial. Materiales: Matlab TSC-Lab Registro de datos en formato Byte: Esta versión se recomienda si se utiliza Matlab de versiones anteriores a las 2017. Repository: https://github.com/vasanza/TSC-Lab/tree/main/Practice12/Practice12_Byte Registro de datos en formato String: Esta versión se recomienda si se utiliza Matlab de versiones actuales. Repository:  https://github.com/vasanz

Práctica 7: Speed control using PWM

✅ Práctica 7 Github Repositories ▷  #TSCLab #TCLab #ESP32 #Arduino #Control #MACI En el siguiente blog se presenta la septima práctica y corresponde a la segunda del laboratorio de control de velocidad. Objetivo general: Entender el funcionamiento del motor DC con PWM para aumentar o bajar la velocidad usando código de programación en el IDE de Arduino. Objetivos específicos: Comparar los resultados de movimiento cambiando los parámetros. Materiales: PCB de Temperature Control Lab (TSC-Lab) Introducción: En la práctica anterior, al motor se le enviaba señales de High y Low para ponerlo en marcha. Sin embargo, dentro de la realidad a un motor no se lo controla así, en algunas ocasiones se lo requiere hacer girar con cierta velocidad y durante esta práctica para tener control sobre la misma se lo hace con señales PWM. Procedimiento: Se asume que la placa del ESP-32 ha sido previamente instalada en el IDE de Arduino. Copiar el código en el IDE de Arduino:           Repositories:  http

Practice 8: Motor direction control and Speed control

✅ Práctica 8 Github Repositories ▷  #TSCLab #TCLab #ESP32 #Arduino #Control #MACI En el siguiente blog se presenta la octava práctica y corresponde a la tercera del laboratorio de control de velocidad. Objetivo general: Controlar el funcionamiento del motor DC con PWM para aumentar o bajar la velocidad y su giro usando comandos. Objetivos específicos: Comparar los resultados de movimiento con diferentes parámetros. Materiales: PCB de Temperature Control Lab (TSC-Lab) Introducción: Una vez entendido que enviar señales de High y Low al motor lo puede poner en marcha y que PWM es posible ver el aumento y disminución del mismo. Ahora, en esta práctica con los conocimientos adquiridos de las prácticas anteriores, mediante comandos ingresados al monitor serie se controlará la velocidad y sentido de giro del motor. Procedimiento: Se asume que la placa del ESP-32 ha sido previamente instalada en el IDE de Arduino. Además en esta práctica se utiliza la librería separador, la cual se puede des

Practice 15: System 3, using Motor

▷   #TSCLab #TCLab #ESP32 #Arduino #Control #MACI By: Ulbio Alejandro Repositories En el siguiente blog se presenta la vigésima sextapráctica del laboratorio de control de temperatura y velocidad de un motor. Objetivo general: Realizar la identificacion de sistemas, empleando datos anteriormente adquiridos de un Motor DC. Materiales: Matlab TSC-Lab TSC-Lab 3D view Código de Matlab: Introducción: Es importante realizar una prueba en lazo abierto sobre la dinámica del sistema, el mismo que por medio de un Tren de pulsos podemos obtener los datos de la salida, los cuales resultaron la velocidad del motor DC en RPM. Para este ejercicio, se utiliza un archivo denominado OpenLoopMotorDC.csv el cual contiene tanto la entrada como la salida de la planta, cabe destacar que la entrada es un pulso unitario para experimentar la dinámica del sistema. Ilustración 1 Variables de proceso del archivo tipo .csv Mediante código de MATLAB, procedemos abrir el archivo para extraer los datos tanto la entrad