Skip to content

NAC4

NAC4 - Projeto de Internet das Coisas

  • O objetivo do checkpoint é avaliar sua compreensão acerca do conteúdo ministrado pela disciplina.

Ideia geral

Construção de uma solução de IoT que abrange todas as pontas da comunicação entre usuário e dispositivos

A NAC consiste no desenvolvimento de uma solução simples mas completa que ilustra as partes mais importantes de uma arquitetura de IoT: os dispositivos e os usuários. A solução também não contempla as ferramentas de segurança que seriam necessárias ao implantar um sistema real.

Entrega e Apresentação do projeto:

  • Individual ou em Grupo (até 5 alunos)
  • Entrega da documentação via github, apresentar o repositório ORGANIZADO do projeto com toda a doumento e instruções de como replicar o projeto. (em breve o formulario para preenchechimento)
  • A apresentação da NAC será presencial, e ocupará as aulas do dia 24/10/2022(4SIS) 26/10/2022(4SIA)

Haverá tempo durante as aulas para tirar dúvidas quanto ao desenvolvimento do trabalho.

Rubrica

(R1 - NOTA até 2 pontos) Programa em linguagem do Arduino que realize pelo menos:

  • A leitura de pelo menos dois sensores a cada 200ms, disponibilizando as leituras na porta serial, no formato JSON {"":, "":}, onde e são os nomes dos sensores, e e são os valores lidos, respectivamente

  • a execução de comandos em pelo menos dois atuadores, lendo esses comandos pela porta serial. Os comandos devem ser na forma {“”:}, onde CMD é o nome do comando e VALOR é o parâmetro enviado. Por exemplo, se for led, então pode ser “On” ou 255, por exemplo.

  • para mais sensores e atuadores siga as instruções acima.

(R2 - NOTA até 2 pontos) Comunicação com o broker MQTT de sua escolha: de ser desenvolvido um programa Node-RED ou Arduino que conecte o dispositivo de IoT à central de mensagens (MQTT Broker) através dos seguintes tópicos:

  • Realize PUB sempre que for realizada a leitura dos sensores, convertendo e enviando a informação de cada sensor no formato JSON {"value": } ao tópico:

fiap/iot/turma//grupo//devtype//devid//sensor/

onde:

* <TT> corresponde à turma (4sia, 4sir ou 4sis)
* <NNN> corresponde ao nome do grupo
* <TYPE> corresponde ao tipo de dispositivo (arduino ou esp8266)
* <ID> corresponde à identificação do dispositivo (pode ser o MAC Address do ESP8266, ou o número de série do Arduino, ou qualquer identificação que quiser)
* <SENS> corresponde ao nome do sensor
  • Para cada sensor, faça a subscrição (SUB) ao seguinte tópico, que irá receber um JSON da forma {"value": } :

fiap/iot/turma//grupo//devtype//devid//cmd/

onde corresponde ao nome do comando a ser executado. Ao receber o comando, ele deve ser convertido e enviado à placa para ser executado.

Este item pode ser realizado de duas formas:

- No caso da placa de IoT ser um Arduino, o item 2 deve ser executado na forma de um Gateway programado em Node-RED, que se conecta ao Arduino através da porta serial.

- No caso da placa de IoT ser um ESP8266 Node-MCU, este item deve constar da programação da placa (em linguagem Arduino), e não é necessário um gateway adicional.

(R3 - NOTA até 2 pontos) Aplicação Web desenvolvida em Node-RED que se conecte ao Broker MQTT e contenha uma API ReSTful com os seguintes endpoints

  • Recupera uma lista de IDs de dispositivos do tipo especificado, no formato JSON [GET]http://://fiap/iot/turma//grupo/ /devtype//devid/all

  • Recupera a lista dos sensores disponíveis para o dispositivo, no formato JSON [GET]http://://fiap/iot/turma//grupo//devtype//devid//sensor/all

  • Recupera o último valor lido no sensor, no formato JSON {"value": } [GET]http://://fiap/iot/turma//grupo//devtype//devid//sensor/

  • Recupera a lista dos comandos disponíveis para o dispositivo, no formato JSON [GET]http://://fiap/iot/turma//grupo/<NNN/devtype//devid//cmd/all

  • Executa um comando, passando um argumento da forma {"value": } [POST]http://://fiap/iot/turma//grupo//devtype//devid//cmd/

(R4 - NOTA até 2 pontos) Dashboard no Node-RED cuja interface gráfica demonstre o funcionamento de todas os endpoints do exercício anterior, ou seja:

  • Apresente controles que permitam enviar comandos para o Arduino ou ESP8266 Node-MCU
  • Apresente indicadores que permitam saber o valor dos sensores do Arduino ou ESP8266 Node-MCU

(R4 - NOTA até 2 pontos) Desenvolvimento de alguma feature especial de pesquisa extra para o projeto, podendo ser:

  • Uso de comunicação Bluetooth entre o Arduino e o Gateway Node-RED
  • Uso do ESP8266 Node-MCU
  • Uso da Raspberry como Gateway Node-RED
  • Uso de um dos sensores especiais: validar com o professor.
  • Protótipo funcional com parte mecânica usando a infraestrutra do laboratório MakerLab (corte a laser, impressora 3D entre outros...)

Last update: September 17, 2022