0

O IoT feito simples: Monitorizando a temperatura a partir de qualquer lugar

É incrível como hoje em dia podemos montar rapidamente um projeto de IoT utilizando-se apenas de um “chip” de uns poucos euros e um aplicativo carregado em seu smartphone.

Neste tutorial também aprenderemos sobre um sensor digital de temperatura confiável e muito fácil de usar, o DS18B20.

Como mostrado no diagrama de bloco acima, os dados recolhidos pelo sensor serão enviados à Internet com a ajuda de um NodeMCU ESP8266-E e monitorizados num telemóvel ou tablet utilizando-se o aplicativo Blynk.

1: Lista de Material

  • NodeMCU ESP 12-E
  • DS18B20 Temperature Sensor
  • Resistor 4.7K Ohms

2: DS18B20 Sensor Digital de Temperatura

Usaremos neste tutorial, uma versão à prova de agua do sensor DS18B20. Esta configuração é  muito útil para se medir temperaturas de maneira remota em condições de humidade, por exemplo em recolha de dados de solo. O sensor é isolado e pode ser usado em até 125oC (Adafrut não recomenda usá-lo acima dos 100oC devido a a capa de PVC  utilizada em seu cabo).

O DS18B20 é um sensor do tipo digital, o que o torna util para uso mesmo em longas distâncias! Estes sensores digitais de temperatura  “1-Wire” são bastante precisos (± 0,5 ° C em grande parte da faixa) e podem fornecer até 12 bits de precisão a partir do conversor digital-analógico integrado. Eles funcionam muito bem com micro-controladores como o NodeMCU ou Arduino, utilizando-se de apenas um único pino digital. Você poderá até mesmo conectar-lo a vários outros sensores no mesmo pino, pois cada um dos sensores possui um único ID de 64 bits gravado de fábrica para diferenciá-los.

O sensor funciona de 3.0 a 5.0V, o que significa que ele pode ser alimentado diretamente a partir de um dos pinos de 3.3V do NodeMCU.

O Sensor possui 3 fios:

  • Preto: GND
  • Vermelho: VCC
  • Amarelo: 1-Wire Data

No link ao lado, voce encontrará a especificação completa: DS18B20 Datasheet

3: Conectando o sensor ao NodeMCU

Conecte os 3 fios do sensor NodeMCU como mostrado no diagrama abaixo:

  • Vermelho ==> 3.3V
  • Preto ==> GND
  • Amarelo ==> D4

Insira o NodeMCU, de forma que seus pinos correspondam ao diagrama elétrico acima. Observe que o chip pressionará o cabo do sensor, ajudando a manter os contatos do sensor no lugar.

introduza uma resistência de 4.7K ohms entre VCC (3.3V) e Data (D4)

4: Instalando as bibliotecas apropriadas

Para o uso apropriado e de maneira simplificada do DS18B20, será necessária a instalação de 2 novas bibliotecas:

Instale ambas bibliotecas em seu diretório de Libraries do IDE

Observe que a biblioteca OneWire DEVE ser a versão modificada para ser usada com o ESP8266, caso contrário receberá um erro durante a compilação. Você encontrará a última versão no link acima ou fazendo o download do arquivo zip abaixo:

5: Testando o sensor

 
/**************************************************************
 * IoT Temperature Monitor with Blynk
 * Blynk library is licensed under MIT license
 * This example code is in public domain.
 * 
 * Developed by Marcelo Rovai - 05 January 2017
 **************************************************************/

/* ESP & Blynk */
#include 
#include 
#define BLYNK_PRINT Serial // Comment this out to disable prints and save space
char auth[] = "YOUR AUTH CODE HERE";

/* WiFi credentials */
char ssid[] = "YOUR SSID";
char pass[] = "YOUR PASSWORD";

/* TIMER */
#include 
SimpleTimer timer;

/* DS18B20 Temperature Sensor */
#include 
#include 
#define ONE_WIRE_BUS 2 // DS18B20 on arduino pin2 corresponds to D4 on physical board
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature DS18B20(&oneWire);
float temp;

void setup() 
{
 Serial.begin(115200);
 Blynk.begin(auth, ssid, pass);
 DS18B20.begin();
 timer.setInterval(1000L, getSendData);
}

void loop() 
{
 timer.run(); // Initiates SimpleTimer
 Blynk.run();
}

/***************************************************
 * Send Sensor data to Blynk
 **************************************************/
void getSendData()
{
 DS18B20.requestTemperatures(); 
 temp = DS18B20.getTempCByIndex(0);
 Serial.println(temp);
 Blynk.virtualWrite(10, temp); //virtual pin V10
}

 

Assim que o código for carregado e estiver em execução, verifique a aplicação BLYNK. Esta deverá também estar em execução.

Abaixo do código completo do Arduino para o seu projeto:

F05G780IXKPYLO4.ino

 

Artigo disponibilizado por MJRobot.org

Todos os produtos utilizados neste artigo podem ser encontrados na Loja de Eletrónica e Robótica – ElectroFun.

Gostaram deste artigo? Deixem o vosso comentário no formulário a baixo e partilhem com os vossos amigos.

Não se esqueçam de fazer like na nossa Página no Facebook.

Podem ainda colocar as vossas dúvidas no nosso Forum da Comunidade Arduino em Portugal ou no nosso Grupo no Facebook Arduino Portugal – Qual o teu projeto?

Fun.

Comments

Comentários

Jaime Mota

Deixar uma resposta