Muito tem se debatido a respeito do real significado do termo IoT (Internet das coisas) e o consenso é de que, para um sistema ser plenamente IoT, ele requer, pelo menos, as seguintes características:

  • presença de sensor e atuador;
  • automatização de tarefas;
  • conectividade com a Internet.

Nesta demonstração, os requisitos são atendidos, portanto se trata de um sistema IoT (mesmo que ainda não otimizado).
Foram utilizados:

  • Arduino uno;
  • sistema operacional baseado em Debian;
  • módulo sensor de temperatura NTC (termistor);
  • Raspberry pi.

topologia arduino sensor temperatura

O Arduino recebe o termistor como entrada analógica e, a cada 3 segundos, envia a leitura da temperatura, via comunicação serial, ao Node-RED. Isto é feito por funções nativas e biblioteca Thermistor. O node-RED é uma ferramenta visual para IoT, executada através do Node.js, neste caso, hospedada em um Linux baseado em Debian.

Quando inicializado, o Node-RED recebe a leitura inicial do sensor via serial. Neste momento, por uma GUI, a temperatura é exibida em forma de um marcador de ponteiro e um gráfico. Em paralelo, essa leitura é passada a um node comparador (detecta +2ºC) que bloqueia o envio de temperaturas menores que 2ºC em comparação à leitura anterior. Ele considera que a leitura anterior à inicial é indefinida e, assim, é “maior que 2ºC” em comparação à inicial. Então a leitua inicial não é bloqueada. Daí em diante, futuras medições devem ser maiores que a leitura anterior em pelo menos 2 graus para serem passadas ao node seguinte. Dessa forma, tudo que for enviado para frente pelo comparador alimentará um banco MySQL (em Raspberry pi) e um aplicativo chamado Notify My Android, NMA.
Para termos uma temperatura crescente lida pelo sensor, o mesmo foi posto em contato com um copo com água aquecida.
Quando a temperatura aumenta mais de 2 graus, o sistema alimenta o NMA e o MySQL, conforme video abaixo.

 

obs. O NMA, no plano gratuito, aceita apenas 5 notificações diárias, motivo pelo qual as leituras acima de 27ºC não foram enviadas ao aplicativo (neste dia eu já havia recebidos outras 3 notificações antes dessa demo). De qualquer forma, o banco registrou todas as medições liberadas pelo node de função.

tela nma

Foi possível o envio de informações ao NMA, pois o Arduino estava ligado ao Linux (Node-RED) via usb/serial e este último tinha conectividade à Internet, porém à medida em que o microcontrolador requeira mobilidade, essa configuração fica inviável. Para tal, uma alternativa seria dotar a placa de uma conexão wi-fi e usar protocolo de transporte MQTT, por exemplo.
À propósito, o NMA não é voltada para aplicações de missão-crítica e até o momento (11/2017) o mesmo não suportava IOS.