-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathproceso.html
319 lines (278 loc) · 30.3 KB
/
proceso.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
<!DOCTYPE HTML>
<!--
Solid State by HTML5 UP
html5up.net | @ajlkn
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
-->
<html>
<head>
<title>Proceso - BondIoT</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
<link rel="stylesheet" href="assets/css/main.css" />
<noscript>
<link rel="stylesheet" href="assets/css/noscript.css" />
</noscript>
<link rel="shortcut icon" href="images/logo-green-bus.png" type="image/vnd.microsoft.icon"> <!-- majo: agrega icono a la pestaña -->
</head>
<body class="is-preload">
<!-- Page Wrapper -->
<div id="page-wrapper">
<!-- Header -->
<div id="page-wrapper">
<!-- Header -->
<header id="header">
<h1><a href="proceso.html">Proceso</a></h1>
<nav>
<a href="#menu">Menu</a>
</nav>
</header>
<!-- Menu -->
<nav id="menu">
<div class="inner">
<h2>Menu</h2>
<ul class="links">
<li><a href="index.html">Home</a></li>
<li><a href="idea.html">Idea</a></li>
<li><a href="proceso.html">Proceso</a></li>
<li><a href="thingsboard-doc.html">Documentación de ThingsBoard</a></li>
<li><a href="resultado.html">Resultado</a></li>
</ul>
<a href="#" class="close">Close</a>
</div>
</nav>
<!-- Banner -->
<section id="banner">
<div class="inner">
<h2 class="title">Proceso</h2>
<p>En esta sección les contamos como se construyó el sistema paso a paso.</p>
</div>
<div class="inner"> <button type="button"><a href="#bottom">Ir a última entrada</a></button></div>
</section>
<!-- Wrapper -->
<section id="wrapper">
<section id="contenido" class="wrapper spotlight style3">
<div class="inner">
<div class="content">
<!-- <h3 class="major">Primeras semanas</h3>-->
<h3 class="major">16 de agosto al 9 de setiembre, 2021</h3>
<p>Se definió el alcance del proyecto, eligiendo el hardware a utilizar teniendo en cuenta el presupuesto disponible de UYU$4000. Se reflejan los tiempos y fechas estimados en un diagrama de Gantt, que toma en consideración los recesos académicos y tiempos laborales de los miembros del equipo.</p> <p> <a href="files/Anteproyecto_Proyecto_Integrador_2.pdf" style="color: rgb(11, 12, 14)">Aquí</a> se puede leer el informe del Anteproyecto, que resume la motivación, idea y compromiso del proyecto. </p>
<!-- <h3 class="major">Investigación de software</h3>-->
<h3 class="major">10 de setiembre al 23 de setiembre, 2021</h3>
<p>Durante estas semanas nos familiarizamos con las librerías y entornos a utilizar para el desarrollo del software del proyecto. En particular, investigamos sobre la integración entre Thingsboard y el ESP8266, la toma de datos de los distintos sensores a bordo del ómnibus, el conteo de las direcciones MAC y el armado del JSON para el envío de los datos obtenidos.</p>
<p>El sniffer para la detección de direcciones MAC funciona colocando el ESP8266, primero en modo ESTACION y luego en modo PROMISCUO para que pueda escuchar el trafico WiFi a su alrededor. Esto se hace en el Setup del codigo, donde tambien se asigna una funcion de CallBack la cual recibira y procesara los paquetes interceptados por el ESP.
<p>En el Loop del programa, lo que hacemos es simplemente cambiar cada cierto tiempo el canal de WiFi en el que estamos escuchando y esperar un momento para que se puedan captar paquetes antes de volver a cambiar.</p>
<p>Cada vez que se intercepta un paquete, se llama a la funcion "promisc_cb" la cual parsea la informacion recibida y dependiendo del tipo de paquete (si es proveniente de un BEACON o de un CLIENT) guarda la estructura correspondiente en un array.</p>
<p>Estos elementos contienen, entre otros datos, la direccion MAC del dispocitvo que generó el paquete, que es lo que nos interesa en este caso para poder identificar la cantidad de dispositivos que se encuentran en un area contando la cantidad de direciones MAC distintas encontradas.</p>
<p>También se verifica regularmente la antigüedad de los elementos guardados y si alguno excede un tiempo máximo desde la última detección, este elemento se considera fuera de rango y se elimina.</p>
<!-- <h3 class="major">Primera versión de código</h3>-->
<h3 class="major">20 de setiembre, 2021</h3>
<p>Comenzamos la programación sobre el ESP8266 para la lectura de sensores y direcciones MAC. Además probamos la comunicación con Thingsboard usando la libreria de PubSubClient.</p>
<p>Se probó la celda de carga junto con el módulo HX711 y el sensor MQ2 utilizando la primera versión de código obteniendo buenos resultados.</p>
<figure>
<center><img src="./files/investigacion/cableado-celda-carga.png" width="80%"/></center>
<center><figcaption>Imagen tomada de <a href="https://www.instructables.com/Arduino-Scale-With-5kg-Load-Cell-and-HX711-Amplifi/" style="color: rgb(11, 12, 14)"> este tutorial</a>.</figcaption></center>
</figure>
<div>
<p></p>
</div>
<p>En los siguientes videos se muestran los prototipos de prueba para los sensores de distancia utilizados en las puertas de subida y bajada del ómnibus. Para probar el funcionamiento de los sensores alcanza con conectarlos a 5V y verificar la detección de objetos.</p>
<p> En el primer video se muestra la prueba con el sensor de proximidad IR como viene de fábrica. De esta manera el sensor mide el reflejo de la señal y cuando detecta un objeto envía una señal en HIGH.</p>
<center><iframe src="./files/proceso/proto-puertas-1.mp4" controls></iframe></center>
<p> En el segundo video se hace la prueba con el sensor desarmado ubicando un LED frente a otro, de manera de que actúe como un sensor de barrera, enviando una señal en LOW cuando detecta un objeto. </p>
<center><iframe src="./files/proceso/proto-puertas-2.mp4" controls></iframe></center>
<p> Ambos son distintos métodos de detección y habiendo hecho estas pruebas decidimos utilizar el sensor original, dado que los dos funcionan correctamente y no hay diferencias notorias importantes. </p>
<h3 class="major">30 de setiembre, 2021</h3>
<p>Nos reunimos a sacar medidas y planear el armado de la maqueta y los prototipos de prueba.</p>
<p>Para darle un agregado al Dashboard de Thingsboard, se encontraron widgets que permiten generar gráficas a partir de un histórico de datos, que si bien no recolecta en su totalidad los datos medidos, puede llegar a mostrar información relevante en función de datos pasados.</p>
<p>En el video se puede ver la prueba del sensor de CO2, mostrando la lectura en el monitor serial de Arduino y en el dashboard de Thingsboard. </p>
<h3 class="major">04 de octubre, 2021</h3>
<p>Durante esta semana avanzamos en la construcción de la maqueta haciendo la base y parte del cableado de componentes.</p><p> Previamente habian sido probados los componentes por separado, usando un código individual para cada uno. Esta semana comenzamos las pruebas utilizando el mismo código para todos, habiendo podido verificar el envío de medidas del sensor de CO2 via el ESP8266 hacia Thingsboard, comparando desde el Monitor Serial del IDE de Arduino la medida enviada con la mostrada en el Dashboard de Thingsboard.</p><p>Para poder programar el ESP8266 utilizando el IDE de Arduino seguimos las instrucciones mostradas en este tutorial: <a href="https://create.arduino.cc/projecthub/electropeak/getting-started-w-nodemcu-esp8266-on-arduino-ide-28184f" style="color: rgb(11, 12, 14)">Getting Started w/ NodeMCU ESP8266 on Arduino IDE.</a></p><p>Las librerías que se instalaron desde el IDE de Arduino son: PubSubClient de Nick O'Leary, para la comuniación con ThingsBoard y ArduinoJson. Para utilizar la libreria String se la puede importar directamente con la linea: <code>#include <string.h></code> (notar que es "s" minúscula.</p>
<center>
<video id="video4" width=40%>
<source src="./files/proceso/prueba-co2-10-07.mp4" type="video/mp4">
</video>
</center>
<p></p>
<h3 class="major">06 de octubre, 2021</h3>
<p><span class="image left"><a href="./files/proceso/balanza.png"><img src="./files/proceso/balanza.png" alt="" /></a></span><br> Se continúa con el proceso de construcción de la maqueta.<br>En las imágenes se puede ver lo que sería la base del ómnibus, a la que va conectada la celda de carga, y el ómnibus en sí mismo donde estarán el sensor de CO2, los sensores IR para las puertas y el display para la pantalla exterior del ómnibus. <br><br></p>
<p>Se prueba y corrige el código para tomar datos de la celda de carga en conjunto con la toma de datos del sensor de co2 y el resto del código de las MACs. <br><br> Se agrega un LED conectado al pin DT del HX711 para visualizar cuando toma medidas (LED prendido completamente) y cuando no está midiendo (LED parpadeando).</p>
<div class="box alt">
<div class="row gtr-uniform">
<div class="col-5"><span class="image fit"><a href="files/proceso/tupper-10.13.jpeg"><img src="./files/proceso/tupper-10.13.jpeg" alt="" /></a></span></div>
<div class="col-5"><span class="image fit"><a href="./files/proceso/proto-prueba-celda-10.14.jpg"><img src="./files/proceso/proto-prueba-celda-10.14.jpg" alt="" /></a></span></div>
</div>
</div>
<h3 class="major">10 de octubre, 2021</h3>
<p>Se automatiza el código de calibración de la celda de carga según un parámetro que será seteado desde ThingsBoard. La idea es desde ThingsBoard activar un modo "Debug" que corre la función de calibración de la celda de carga. Tenemos definida una variable que dice que el peso de calibración es, por ejemplo, 500g.
Al entrar en modo calibración ponemos sobre la celda de carga un objeto que pesa 500g, el sensor lo lee y guarda el valor para tener de referencia para todas las demás medidas.</p>
<p>Se considera la posibilidad de usar un regulador de 3.3V y se investiga sobre el consumo de los sensores.</p>
<p>Se agrega al código del main un modo de WIFI_DEBUG de WiFi que permite ingresar la SSID y la PASSWORD de la red a través del monitor serial. Para esto es necesario poner el monitor serial en un baud-rate de 11500 y la terminación de linea como “No line ending”.</p>
<p>Implementamos una rule chain propia en ThingsBoard, ésta consiste en recibir y filtrar un mensaje recibido por telemetría de un device, y en caso de ser este el sensor de CO2, consultar por su valor. Si éste superior al parámetro máximo de este device, prende una alarma, en caso contrario guarda la telemetría.</p>
<h3 class="major">12 de octubre, 2021</h3>
<p>Se corta el "techo" de la maqueta del ómnibus para facilitar el acceso al interior a la hora de hacer movimiento de pasajeros. La parte cortada se utilizará como tapa para cubrir el ómnibus cuando se hagan pruebas con el sensor de CO2. Se cortó también la caja que contiene al Servo que servirá de escotilla.</p>
<p>Probamos el código de calibración de la celda de carga junto con la celda ya en la confirguación que será usada en la versión final de la maqueta. Para eso utilizamos un objeto de peso conocido y comparamos la medida de nuestro programa con la de una balanza de cocina, como se muestra en el siguiente video.</p>
<center>
<video id="video3">
<source src="./files/proceso/calibracion-celda.mp4" type="video/mp4">
</video>
</center>
<p> </p>
<h3 class="major">18 de octubre, 2021</h3>
<p>Se comienza el diseño de un nuevo dashboard para set up, con la intención de hacer las configuraciones aparte y dejar el dasboard principal para la visualización de los datos en tiempo real y algún otro control esencial.</p>
<p>Seguimos implementando las rule chains para comenzar a probar el procesamiento de los datos del nivel de CO2 y el peso del ómnibus.</p>
<p>Para agregar más facilmente al IDE de Arduino las librerías usadas en la implementación del código en el ESP8266 agregamos dentro del repositorio del proyecto un .zip con las carpetas de las librerías externas que estamos usando (PubSubClient, ArduinoJson, etc). Cuando se inicia un IDE que no tenga instaladas las librerías, en lugar de usar el Libraries Manager, se descomprime el .zip y se copia su contenido en la carpeta "Documents/Arduino/Libraries" en Windows, o "Home/Arduino/Libraries" en Linux.</p>
<h3 class="major">20 de octubre, 2021</h3>
<p>Se investiga sobre APIs para verificar las direcciones MAC y distinguir entre las que corresponden a dispositivos conectados a la red y las que se mandan aleatoriamente cuando se está desconectado.</p>
<p>Se hacen pruebas con el display que mostrará mensajes hacia afuera del ómnibus. Decidimos utilizar la librería LiquidCrystal_I2C, que se puede encontrar en el siguiente repositorio: <a href="https://github.com/johnrickman/LiquidCrystal_I2C" style="color: rgb(11, 12, 14)">johnrickman/LiquidCrystal_I2C</a>.</p>
<p>Se decide crear una nueva sección en la página web para documentar lo hecho en ThingsBoard, de manera de facilitar la reproducción del proceso. La sección puede accederse desde aquí: <a href="thingsboard-doc.html" style="color: rgb(11, 12, 14)">Documentación de Thingsboard</a>.</p>
<h3 class="major">27 de octubre, 2021</h3>
<p>Se programa y testea la función que permite recibir comandos desde ThingsBoard en el ESP8266. En principio la prueba se hizo prendiendo y apagando desde el dashboard el LED de la placa.</p>
<p>Se prueba el código de las interrupciones utilizado para detectar subida y bajada de pasajeros con los sensores IR en las puertas del ómnibus. <br>Para que las interrupciones funcionen correctamente en el ESP8266, es necesario poner la función de interrupción en la memoria RAM, por lo que en la declaración de la función hay que poner “ICACHE_RAM_ATTR”. Ejemplo: ICACHE_RAM_ATTR void miFuncionDeInterrupcion(). <br>Esto es necesario porque de lo contrario se produce un error en tiempo de ejecución que resetea el ESP.</p>
<p>Los pines usados para las interrupciones son declarados como INPUT_PULLUP para que siempre se encuentren en estado HIGH. Sin embargo, los pines usados parecen no tener estas resistencias de pull-up internas ya que se observaron inconsistencias a la hora de activar las interrupciones usando un botón. Esto de todas formas no es un problema en nuestro caso ya que los sensores usados tienen niveles bien definidos para sus dos estados posibles (salida HIGH o LOW pero nunca flotando) pero es un dato importante a tener en cuenta por si estos pines se dejan sin conectar por algun motivo.</p>
<h3 class="major">28 de octubre, 2021</h3>
<p>Trabajamos en ThingsBoard utilizando el modo debug de los nodos en las Rule Chain para lograr armar una regla que prenda y apague un widget (que simula un LED) en el dashboard, según los niveles de CO2 recibidos.</p>
<p>En la siguiente imagen podemos ver una captura del monitor serial de Arduino mostrando las direcciones MAC capturadas por el Sniffer:</p>
<center>
<a href="./files/proceso/macs-consola.png"><img src="./files/proceso/macs-consola.png" width="75%"></a>
<a href="./files/proceso/macs-consola2.png"><img src="./files/proceso/macs-consola2.png" width="75%"></a>
</center>
<p><br></p>
<p>Para utilizar el código del Sniffer el ESP debe pasar de modo estación a modo promiscuo y para esto necesita apagar el WiFi. Esto quiere decir que mientras leemos las direcciones MAC no es posible mantener la comunicación con ThingsBoard. Por esta razón decidimos agregar al sistema un ESP8266-01, que será el encargado de manejar el Sniffer y el resto del código (lectura de sensores, actuadores, comunicación con Thingsboard) se mantendrá en el ESP8266. </p>
<h3 class="major">31 de octubre, 2021</h3>
<p>Se escribe el código encargado de recibir la orden de abrir y cerrar la escotilla del ómnibus según el estado de un switch en el dashboard de Thingsboard. Se prueba con éxito el mover el servo, que abrirá la escotilla, mediante el uso del widget en el dashboard.</p>
<p>También se escribió el código que maneja la actualización de atributos desde Thingsboard para utilizar en el ESP para acciones como ser entrar en modo calibración para la celda de carga o el peso del objeto que se utilizará para dicha calibración. </p>
<p>Se hicieron los agujeros para las puertas del ómnibus y se trabaja en el cableado de los sensores.</p>
<center><a href="./files/proceso/tupper-11.15.jpeg"><img src="./files/proceso/tupper-11.15.jpeg" style="width:50%;height:40%"></a></center>
<p> </p>
<h3 class="major">02 de noviembre, 2021</h3>
<p>Se programa una función para encender los LEDs del cartel que indica la apertura de ventanas abordo del ómnibus. <br> El atributo que recibe el ESP maneja el encendido y apagado de los LEDs, y ese atributo es generado en Thingsboard mediante una Rule Chain. Esta Rule Chain compara el nivel de CO2 actual con el máximo nivel previamente definido y en caso de estar sobrepasado pone aviso mediante un atributo de alarma. <br> A su vez este atributo es también visualizado en el dashboard en forma de LED, tornándose de color rojo cuando se excede el máximo nivel de CO2.</p>
<p>En los siguientes videos se puede ver la prueba de la alarma de CO2, el movimiento del servo para la escotilla y el prendido y apagado del built-in LED y otro LED.</p>
<center>
<video id="video1" width="40%">
<source src="./files/proceso/pruebas-11.18-1.mp4" type="video/mp4">
</video>
<video id="video2" width="40%">
<source src="./files/proceso/pruebas-11.18-2.mp4" type="video/mp4">
</video>
</center>
<p> </p>
<h3 class="major">06 de noviembre, 2021</h3>
<p>Se prueba la comunicación serial entre el NodeMCU y el ESP8266-01.</p>
<p>Se comienzan pruebas de envío y recepción de direcciones MAC a ThingsBoard. En principio se crea una rule chain que consume la API <a href="https://macvendors.co/api/" style="color: rgb(11, 12, 14)">Mac Vendors</a> para decidir si las direcciones MAC recibidas corresponden a un dispositivo real o si son direcciones MAC aleatorias de las que envían los dispositivos cuando no están conectados.</p>
<h3 class="major">09 de noviembre, 2021</h3>
<p>Se implementa el ESP8266-01 como un dispositivo separado en ThingsBoard luego de experimentar problemas con la conexión fisica entre ESPs. Actualmente cada ESP actúa por separado, uno manejando las funciones de sensores y actuadores y el otro cumpliendo las funciones de sniffer de red, reportando por separado a ThingsBoard los primeros 6 dígitos de todas las direciones MAC encontradas.</p>
<p>Se hicieron algunas pruebas para poder observar el comportamiento del sensor de CO2 ante cambios en la calidad del aire. Se probó una reacción con bicarbonato de sodio que, como puede verse en el video, no genera muchos cambios por lo que determinamos que no es util a la hora de hacer pruebas. Luego intentamos con el gas del encendedor y esto tuvo un mejor resultado. De todas maneras, a los efectos de hacer pruebas rapidas, encontramos que lo mejor era soplar dentro del tupper, pero no muy cerca del sensor, porque si éste se enfría disminuye las medidas</p>
<center>
<iframe src="./files/proceso/co2_gas.mp4" height="200px" width="300px" controls></iframe>
<iframe src="./files/proceso/co2_bicarb.mp4" height="200px" width="300px" controls></iframe>
</center>
<p></p>
<h3 class="major">13 de noviembre, 2021</h3>
<p>Se sigue avanzando en la construcción de la maqueta.</p>
<p>Se crea una rule chain en ThingsBoard para interpretar los datos de la celda de carga que devuelve el peso actual del ómnibus y convertir esta información en cantidad de pasajeros.</p>
<p>En la librería PubSubClient se hace una modificación en PubSubClient.h agrandando la cantidad de bytes a enviar por MQTT, ya que teniendo en funcionamiento el sistema durante muchas horas enviando datos se alcanzaba el máximo permitido obteniéndose el siguiente error: "Not published. Please add #define MQTT_MAX_PACKET_SIZE 2048 at the beginning of PubSubClient.h file"</p>
<h3 class="major">14 de noviembre, 2021</h3>
<p>Se crea una rule chain que recibe los datos de los sensores en las puertas de subida y bajada del ómnibus y guarda la cantidad de pasajeros en un atributo en ThingsBoard. En el siguiente video se puede ver como va variando la telemetría en Thingsboard al pasar la mano por las puertas del ómnibus.</p>
<center>
<iframe src="./files/proceso/prueba-puertas.mp4" height="200px" width="300px" controls></iframe>
</center>
<h3 class="major">17 de noviembre, 2021</h3>
<p>Se soldaron todos los sensores y se ajustan agarres del techo del ómnibus y la escotilla. En el siguiente video podemos ver el prototipo de la escotilla y el estado actual de la maqueta.</p>
<center>
<video id = "video6" width = "40%">
<source src="./files/proceso/escotilla-sola.mp4" type="video/mp4">
</video>
</center>
<center>
<a href="./files/proceso/tupper-11.30.jpeg"><img src="./files/proceso/tupper-11.30.jpeg" style="width:25%;height:15%"></a>
</center>
<h3 class="major">18 de noviembre, 2021</h3>
<p>Nueva rule chain para conteo de macs que hay que probar. Esta rulechain recibe una señal de inicio de envio de macs, recibe las macs de a una, cada una en un mensaje mqtt distinto, y llama a otra rulechain que consulta la API de fabricantes de MAcs. Cuando recibe luego una señal de fin, toma la cantidad de macs verificadas hasta el momento como el numero de macs reales y lo guarda. Con esto se obtiene el numero de pasajeros segun la cantidad de MACs.</p>
<p>Se modifica el codigo del sniffer para que envie las MACs en el formato que espera la rulechain mencionada.</p>
<p>Avances en la maqueta: Se fija la escotilla al techo de la maqueta, se hace un agujero para el pasaje de el cable de alimentacion hacia el interior de la maqueta. Además se oloca termocontraible en los sensores de distancia y una superficie oscura del otro lado de la puerta para minimizar la interferencia causada por luces del ambiente.</p>
<h3 class="major">21 de noviembre, 2021</h3>
<p>Se cambia el modo de las interrupciones de las puertas de RISING a FALLING porque el sensor de la puerta trasera produce una señal HIGH con mucho ruido, lo que causaba que se dispararan muchas interrupciones juntas. Cambiando el modo a FALLING, las interrupciones se disparan cuando la señal pasa a ser LOW, la cual el sensor produce de manera mas limpia.</p>
<p>Se descubre que para el correcto reseteo de la placa NodeMCU, es necesario que el pin asignado al sensor de la puerta trasera este en LOW. Debido a que el estado por defecto del sensor es HIGH, es necesario mantener el sensor activo mientras se ejecuta un reseteo de la placa para que este sea exitoso.</p>
<h3 class="major">22 de noviembre, 2021</h3>
<p>Se agregan atributos al Dashboard para manejar lo que mostrará el display del ómnibus: número de línea y destino, y un mensaje para indicar si el ómnibus va lleno. También se implementa el código en el ESP para recibir estos cambios y reflejarlos en el display.</p>
<p>Se agrega un atributo, que se setea también desde el Dashboard, que indica cuál tiene que ser la mínima variación de peso para que se envíe telemetría de la celda de carga hacia Thingsboard, para evitar enviar actualizaciones permanentemente por variaciones insignificantes de peso.</p>
<p>La escotilla ya podía abrirse manualmente desde el Dashboard pero ahora se agrega la función de que cuando el nivel de CO2 alcanza el máximo, la escotilla se abre automáticamente. Una vez abierta de esta manera, la escotilla permanecerá abierta por más que el nivel de CO2 baje, para prevenir que vuelva a subir. Puede igual ser cerrada manualmente desde el Dashboard o desde el mismo ómnibus.</p>
<p>Nueva rule chain para prender el LED que avisa al chofer si se alcanzó el máximo de pasajeros a bordo.</p>
<h3 class="major">27 de noviembre, 2021</h3>
<p> Se crea un dashboard de debug para ver los valores de la telemetría y los atributos todos en el mismo lugar.</p>
<p> Se modificó la base del ómnibus para que la celda de carga estuviera mejor ajustada, como puede verse en las imágenes de abajo. </p>
<center><a href="./files/proceso/celda_carga_nueva.jpeg"><img src="./files/proceso/celda_carga_nueva.jpeg" style="width:50%;height:40%"></a></center>
<h3 class="major">02 de diciembre, 2021</h3>
<p>Pruebas con las rule chain que se encargan de las direcciones MAC y del total de pasajeros. El envío de MACs desde el ESP tuvo que enlentecerse porque la velocidad a la que enviaba las lecturas no le daba tiempo a la rule chain a procesar los llamados a la API.</p>
<p>Se diseñó el poster para promoción del proyecto. Se decidió hacer un poster informativo que resuma las funcionalidades del proyecto.</p>
<p> Para el video promocional se utilizaron materiales Royalty Free. A continuación citamos las fuentes:</p>
<p><a href="https://www.youtube.com/watch?v=abeZIBWSdUo&ab_channel=BestFreeFootage">Binary code.<a></p>
<p><a href="https://www.youtube.com/watch?v=EVMpLVuZKJc&ab_channel=NoCopyrightVideoHD">Bus stop.<a></p>
<p>Canción: Markvard - Feel my love</p>
<h3 class="major">05 y 06 de diciembre, 2021</h3>
<center>
<a href="./files/proceso/busfinal01.jpeg"><img src="./files/proceso/busfinal01.jpeg" style="width:30%;height:40%"></a>
<a href="./files/proceso/busfinal0.jpeg"><img src="./files/proceso/busfinal0.jpeg" style="width:30%;height:40%"></a>
<a href="./files/proceso/busfinal0.jpeg"><img src="./files/proceso/busfinal1.jpeg" style="width:30%;height:40%"></a>
</center>
<p>Trabajamos en la decoración de la maqueta, pintando el exterior y haciendo las formas de las ventanas, como se ve en las imágenes.</p>
<p>Se ajustaron los últimos detalles de las rule chain que manejan las direcciones MAC y la que junta los datos de todos los sensores para dar como resultado final la cantidad de pasajeros que hay en el ómnibus. Se crea además una nueva rule chain que se encarga de juntar en un mismo mensaje información proveniente de distintos devices. </p>
<h3 class="major">07 al 12 de diciembre, 2021</h3>
<p>Se utilizó esta última semana para hacer ajustes estéticos en la maqueta y los dashboards, así como para hacer nuevas pruebas.</p>
<p> En la sección <a href="resultado/resultado.html" style="color: rgb(11, 12, 14)">Resultado</a> se pueden ver imágenes y videos del sistema funcionando. Muchos de los videos son parte del registro del testing final para poder mostrar un panorama completo del proyecto.</p>
<h4> Testeo del producto final:</h4>
<p> Una vez terminado el sistema se comprobó que todos los componentes funcionaran correctamente siguiendo con estas pruebas:
<ul>
<li>Incremento de la cantidad de pasajeros según flujo en las puertas de subida y bajada: la puerta de adelante incrementa la cantidad de pasajeros, la de atrás la disminuye y nunca se alcanza un número de pasajeros menor a 0.</li>
<li>Incremento de la cantidad de pasajeros según lectura de direcciones MAC</li>
<li>Incremento de la cantidad de pasajeros según peso del ómnibus</li>
<li>Cálculo de la cantidad total de pasajeros mediante la promediación de los tres datos anteriores.</li>
<li>Modo calibración de la celda de carga. Se comprueba el correcto funcionamiento, la lectura del peso de calibración y cómo la tarjeta de thingsboard vuelve a ponerse en OFF automáticamente apenas termina el modo calibración.</li>
<li>Comportamiento del display: mostrar en todo momento número y destino del ómnibus. Cuando éste se llena, además de esta información debe agregar debajo un mensaje que indique que está lleno. Se verifica que este mensaje se puede modificar en todo momento desde el dashboard de Setup.</li>
<li>Superación del nivel permitido de CO2: se comprueba la activación de la alarma en el dashboard y el encendido de las luces del cartel abordo que indican que se debe abrir las ventanas, así como la apertura automática de la escotilla.</li>
<li>"Tablero" del conductor. Cuando se alcanza la máxima capacidad de pasajeros, se enciende un LED en un cartel que indica que el ómnibus está lleno</li>
</ul>
</p>
<div id="bottom"></div> <!--jump to bottom majo-->
</div>
</div>
</section>
</section>
<!-- Footer -->
<section id="footer">
<div class="inner">
<p>© All rights reserved. Designed using <a href="http://html5up.net" >HTML5 UP templates. </a> Página web y contenido administrado por María José. <a href="autoria.html" style="font-weight:bold">Ver declaración de autoría.</a></p>
</div>
</section>
<!-- Scripts -->
<script src="assets/js/jquery.min.js"></script>
<script src="assets/js/jquery.scrollex.min.js"></script>
<script src="assets/js/browser.min.js"></script>
<script src="assets/js/breakpoints.min.js"></script>
<script src="assets/js/util.js"></script>
<script src="assets/js/main.js"></script>
<script>
var x = document.getElementById("video1");
x.muted = true;
x.controls = true;
x.load();
var x = document.getElementById("video2");
x.muted = true;
x.controls = true;
x.load();
var x = document.getElementById("video3");
x.muted = true;
x.controls = true;
x.load();
var x = document.getElementById("video4");
x.muted = true;
x.controls = true;
x.load();
var x = document.getElementById("video6");
x.muted = true;
x.controls = true;
x.load();
</script>
</body>
</html>