Primeiro envio de informações para este site

Ontem, pela primeira vez, conseguimos enviar informações de um sensor para o site automaticamente. Tentamos fazer isso alguns meses atrás mas Breno Queiroz tentou enviar dados 5V para o NodeMCU (que opera em 3.3V) e danificou a placa. Ontem a placa NodeMCU não foi queimada! Para fazer este envio de dados utilizamos: 1 sensor de temperatura DHT22, 1 módulo RTC (Real Time Clock), 1 Arduino UNO, um level shift bidirecional e um NodeMCU.

Primeiro, foi necessário fazer com que o Arduino UNO envie os dados para o NodeMCU, para isto utilizamos a comunicação UART (TX RX). Entretanto, o Arduino UNO opera em 5V e o NodeMCU opera em 3.3V - ou seja, se conectar diretamente o resultado não será agradável (NodeMCU queimado novamente...). Para evitar este problema utilizamos um level shift bidirectional. Este conversor transforma a escala de voltagem quando o Arduino UNO envia dados para o NodeMCU. Se o Arduino enviar 5V o Node recebe 3.3V, se o Arduino enviar 2.5V o Node recebe 1.65, e assim por diante...

Conexão no level shift (Arduino <-> Node)

Sempre antes do arduino enviar o byte contendo o número ele envia dois bytes de endereçamento. Dessa forma, quando novos sensores forem adicionados é necessário somente mudar os dois bytes de enredeçamento para o node ter certeza qual de qual sensor é a leitura. Após o NodeMCU receber os dados e detectar que são leituras do sensor de temperatura, ele atualiza o banco de dados no FireBase.

NodeMCU conectado pelo serial

Sensor DHT22 e Módulo RTC

Tempo de envio

O arduino também está conectado a um módulo RTC para saber a hora atual, o que permita que ele envie as informações para o node a cada 30 minutos. Ao invés de utilizar os dados "hora","minuto","segundo" separados - o que dificulta o cálculo para saber o momento de enviar - nós convertemos o tempo atual para segundos (hora*3600+minutos*60+segundos). Dessa forma, a cada 1800 segundos o Arduino UNO envia o dado da leitura para o NodeMCU.

Futuramente pretendemos expandir o número de sensores e realizar estas leituras dentro da própria estufa (os testes foram realizados em casa). Além disso, ao invés do Arduino enviar somente o dado atual a cada 30 minutos, o ideal será realizar uma média da temperatura neste intervalo de 30 minutos.