Airmon: Sistema IoT para Monitorização e Classificação da Ocupação de Salas de Aula

Projeto ativo · 2019–presente

Introdução

Atualmente, em Portugal, a maioria das escolas carece de componentes sensoriais para a recolha de informação ambiental no interior das salas de aula. Vários estudos realizados ao longo dos anos indicam que uma má qualidade do ar interior (QAI) em espaços fechados pode ter um impacto direto no bem-estar, provocando dificuldades de concentração, fadiga, dores de cabeça e, em casos extremos, perda de consciência.

Neste contexto, e dada a relevância do tema, este estudo propôs-se desenvolver um sistema de monitorização modular, facilmente replicável, escalável e de baixo custo, que permitisse recolher com precisão dados ambientais de várias salas de aula localizadas em diferentes estabelecimentos de ensino. Para atingir este objetivo, foram equipadas caixas de monitorização com uma vasta gama de sensores energeticamente eficientes. Além disso, este sistema inclui a recolha de dados relativos à ocupação de cada espaço monitorizado, graças à colaboração dos professores de cada escola. Desta forma, é possível mapear a ocupação dos espaços sem recorrer a câmaras ou a outros métodos intrusivos que possam comprometer a privacidade dos envolvidos.

Desenho de Alto Nível

A arquitetura do Sistema Airmon foi concebida tendo em conta preocupações de escalabilidade, tolerância a falhas e segurança, de modo a poder suportar de forma eficiente a monitorização, à escala nacional, dos dados ambientais do ar interior das escolas, utilizando um desenho comum para sistemas IoT de grande escala .

A arquitetura, apresentada na Figura 1, está estruturada em três camadas: i) instância Cloud central (Cloud-Node), que agrega centralmente todos os dados recolhidos e disponibiliza funcionalidades de dashboard; ii) instâncias Fog-Node locais, nas instalações de cada escola, responsáveis por agregar localmente os dados recolhidos pelos Edge-Nodes das várias salas de aula, disponibilizando também os meios para representar e analisar os conjuntos de dados locais; iii) Edge-Nodes/Motes locais de monitorização, de baixo custo e do tipo DIY, instalados em cada sala de aula, responsáveis pela recolha de dados ambientais das salas de aula; os Edge-Nodes agregam vários sensores ambientais e são alimentados a partir das tomadas das salas de aula. Os dados recolhidos por estes Motes de monitorização são enviados por WiFi para uma instância FOG-Node local da escola. Cada instância FOG-Node armazena localmente os dados de cada Edge-Node e representa-os no dashboard local da escola. Os Fog-Nodes são também responsáveis por enviar os dados recolhidos para a instância central Cloud-Node, que agrega os conjuntos de dados de todas as escolas monitorizadas, proporcionando assim uma visão global, em tempo real, da totalidade dos dados recolhidos no sistema.

Figura 1: desenho de hardware do Airmon

Figura 1

Desenho de hardware

Edge node:

A Figura 2 mostra uma instalação realizada na Universidade Fernando Pessoa e mostra que a caixa de monitorização tem entradas laterais; estas entradas foram concebidas para evitar a formação de microclimas no interior das caixas, evitando assim possíveis erros nas leituras.

Cada caixa de monitorização é constituída por 4 componentes:

• um sensor DHT22, responsável pela recolha da humidade e da temperatura

• um sensor MHZ19, responsável pela recolha do CO2

• um sensor PMS5003, responsável pela recolha de partículas

• um ESP32, responsável por comunicar todos os dados recolhidos ao servidor local da escola.

Figura 2: desenho de software do Airmon

Figura 2

Desenho de Software

FOG-Node:

O sistema HomeAssistant e algumas das integrações nele disponíveis foram utilizados como base de cada servidor.

Para configurar as caixas de monitorização, utilizámos a integração EspHome, que nos permite configurar as caixas através de ficheiros YAML, definindo parâmetros como o nome, o intervalo de medição ou os pinos da placa a utilizar.

O InfluxDB foi escolhido para armazenar toda a informação recolhida, devido à sua eficiência no tratamento de grandes volumes de dados.

O Grafana foi utilizado como ferramenta de visualização da informação recolhida. Esta integração oferece a possibilidade de visualizar os dados ao longo do tempo, permitindo também exportar a informação em formato CSV.

O Google Drive Backup foi utilizado para fazer cópias de segurança de todos os servidores para uma drive remota.

Figura 3: Home Assistant com ESPHome, InfluxDB, Grafana e cópia de segurança no Google Drive

Figura 3

CLOUD-NODE:

O nó cloud é também uma instância HomeAssistant, mas apresenta duas grandes diferenças: o volume de dados nele presente, já que é aí que converge toda a informação recolhida pelos restantes nós, e ainda o facto de ser o único exposto na Internet, através da utilização da integração NGINX. A Figura 4 mostra um exemplo do seu dashboard.

Figura 4: dashboard dos dados ambientais recolhidos pelo nó

Figura 4

Com base nos dados ambientais recolhidos através do nó presente na Universidade Fernando Pessoa, em conjunto com a informação de ocupação das salas recolhida através do preenchimento de formulários com a colaboração dos professores, e com o objetivo de classificar a ocupação das salas através de aprendizagem automática, foram criados conjuntos de dados (datasets), sobre os quais foi realizada uma série de operações:

  • Remoção dos primeiros 15 min e dos últimos 15 min de aula
  • Remoção das colunas que não iriam ser utilizadas para o problema, como os emails dos professores
  • Criação de derivadas do CO2
  • Eliminação do ruído dos sensores através da técnica dos Mínimos Quadrados Ordinários (Ordinary Least Squares)
  • Conversão dos valores Sim/Não e Aberto/Fechado para formato numérico (1 e 0)
  • Agregação da Ocupação em Classes com Intervalos de 3 e 5 Pessoas
  • Criação de períodos de aula nos datasets

Resultados


O dataset global reuniu 52 164 linhas de informação sobre as três salas monitorizadas (Sala 106, Sala 204 e Sala 210) e o período de recolha de dados decorreu entre 23/03/23 e 18/06/23, tendo sido registadas 65 aulas na Sala 106, 70 aulas na Sala 204 e 82 aulas na Sala 210. A Figura 5 mostra um histograma das ocupações registadas nas várias salas.

Figura 5: histograma do número de ocupantes das salas de aula

Figura 5

Aprendizagem Automática:


Recorrendo a técnicas de aprendizagem automática, o objetivo foi fornecer uma leitura de cada uma das componentes ambientais para que os modelos pudessem classificar a ocupação em classes.
Para tal, os datasets foram divididos aleatoriamente em 80% para treino e 20% para teste.
As técnicas utilizadas foram CNN e MLP, por curiosidade quanto ao seu desempenho no contexto deste trabalho, e duas técnicas mais tradicionais, como RFClassifier e KNN.
Os resultados obtidos foram avaliados através da métrica de exatidão (accuracy).
O nosso fluxo de testes consistiu então em treinar um modelo específico para cada sala e um modelo geral, de forma a verificar a sua capacidade de generalização.
Todos os modelos foram primeiro treinados com todos os parâmetros e depois retreinados com alguns parâmetros removidos.
Em ambos os casos, foram treinados para cada uma das classes de ocupação definidas (3 e 5).
Exemplo de um caso de teste para o modelo Global:
Utilizando a técnica CNN para a classificação em classes de 5 com todos os parâmetros ambientais, o modelo obteve uma exatidão de 86%.

Figura 6: curva de perda de treino e matriz de confusão do modelo de classificação da ocupação

Figura 6

Exemplo de um caso de teste para o modelo da Sala 204:
Utilizando os mesmos parâmetros de teste, mas recorrendo a um modelo treinado especificamente para a sala 204, a exatidão aumentou para 93%.

Figura 7: curva de perda de treino e matriz de confusão do modelo de classificação da ocupação

Figura 7

Conclusão

Todos os objetivos propostos no trabalho foram concluídos com sucesso; o sistema foi implementado e testado em 2 escolas diferentes.
Conseguimos criar datasets representativos disponíveis publicamente (https://github.com/jotaSVV/AirmonSystem-Datasets)
E obtivemos resultados promissores na classificação da ocupação através de algoritmos de aprendizagem automática, conseguindo construir não só modelos específicos para cada sala de aula monitorizada, mas também, ao mesmo tempo, um modelo geral treinado com toda a informação recolhida.