A postagem de hoje é sobre o sensor de temperatura e humidade Si7021 da Silicon labs, cujo datasheet pode ser encontrado aqui. É um pequeno componente integrado que se comunica com qualquer microcontrolador via barramento i2C; nesta postagem eu utilizo o Arduino UNO para ler os dados de temperatura e humidade do ambiente e mostra-los na interface Serial da IDE do Arduino.
   O diagrama esquemático e foto da montagem podem ser vistos abaixo, bem como o código utilizado (que é disponibilizado no site da ArteKit). Você também pode baixar o código + bibliotecas Aqui.
   A conexão de dados do sensor com o Arduino é feita assim:
– SDA do sensor = A4 do Arduino.
– SCL do sensor = A5 do Arduino.
– GND do sensor = GND do Arduino.
– VCC do sensor = 3.3V do Arduino.
 /*   
  * ==========================================================  
  * Artekit demo sketch for the AK-SI7021 Humidity/Temperature  
  * sensor breakout board.  
  *  
  * Copyright (c) 2014 Artekit Italy  
  * http://www.artekit.eu  
  *   
  * Product page:  
  * http://www.artekit.eu/products/sensors/ak-si7021/  
  *  
  * Connect the pins in the following way:  
  *  
  * Arduino UNO     AK-SI7021  
  * ==================================  
  *  AN5          SCL  
  *  AN4          SDA  
  *  3.3V         VCC  
  *  GND          GND  
  *  
  * You may need a level converter for the I2C lines, since  
  * the Arduino moves these lines from 0V to 5V, and the  
  * AK-SI7021 works only with 3.3V  
  *  
  * ==========================================================  
  */  
    
 #include <Wire.h>  
 #include <Artekit_SI7021.h>  
   
 Artekit_SI7021 si7021;  
   
 static void sensorRead()  
 {  
  float temperature;  
  float humidity;  
    
  /* Read relative humidity and temperature */  
  humidity = si7021.ReadHumidity();  
    
  /* By setting true in the next function, we read the  
   * temperature from the previous RH measurement.  
   * Otherwise it will perform a new temperature measurement.  
   */  
  temperature = si7021.ReadTemperature(true);  
    
  Serial.print("RH: ");  
  Serial.print(humidity);  
  Serial.print("%tTemperature: ");  
  Serial.println(temperature);  
 }  
   
 void setup()  
 {  
  /* Start I2C */  
  Wire.begin();  
  /* Start serial */  
  Serial.begin(9600);  
 }  
   
 void loop()  
 {  
  static int counter = 0;  
  static bool heater = false;  
    
  /* Read sensor data each second */  
  sensorRead();  
     
  /* Turn on and off the heater every 30 seconds,  
   * just to see the change in the temperature readings.  
   */  
  if (heater == false)  
  {  
   counter++;  
   if (counter == 30)  
   {  
    Serial.println("Heater ON");  
    si7021.EnableHeater();  
    heater = true;   
   }  
  } else {  
   counter--;  
   if (counter == 0)  
   {  
    Serial.println("Heater OFF");  
    si7021.DisableHeater();  
    heater = false;  
   }    
  }  
    
  delay(1000);  
 }  
   Após fazer o upload do código do sketch acima para o Arduino, você pode abrir o monitor Serial da IDE do Arduino, e deverá ver uma tela similar á abaixo. O termo ‘RH’ significa a humidade relativa do ambiente (em %), enquanto a temperatura está em graus Celsius.
   – Para comprar o sensor Si7021 em nosso Parceiro ICStation (da China), clique no texto: SMD MINI Si7021 Temp and Humidity Sensor I2C Interface for Arduino
– Para comprar o Arduino UNO em nosso Parceiro ICStation (da China), clique no texto: ICStation ATMEGA328 UNO V3.0 R3 Board Compatible Arduino UNO R3
– Para comprar os cabinhos coloridos (jumpers) em nosso Parceiro ICStation (da China), clique no texto: 1pcs Dupont Wire 10CM 2.54MM Female to Female 1P-1P Jumper Cable For Arduino
Sensor de Temperatura e humidade Si7021 (integrado)

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Solve : *
29 + 29 =