<
*

Ivanov

  • Allahu Akbar
  • *****
  • 72
  • 2
  • Zhokhov
    • Ver perfil
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