# [Programa] SHT40

#### Objetivo:

Utilizar o *ESP32-WROOM-32E DevKitC v4* \[2\] para ler valores de temperatura de um sensor SHT40.

#### Lista de material:

- *ESP32-WROOM-32E DevKitC v4*
- Breadboards
- Sensor SHT40
- Fios de ligação
- Cabo micro USB

[![8_material_list.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/8-material-list.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/8-material-list.png)

#### Contextualização:

##### Grove - Temperature &amp; Humidity Sensor (SHT40)

O sensor de temperatura e humidade da Seeed SHT40 é um sensor digital com interface I2C padrão \[4\].

##### *Inter-Integrated Circuit* (I2C)

O *Inter-Integrated Circuit* \[5\] é um barramento série que permite a co-existência de múltiplos controladores e periféricos e considera essencialmente duas ligações:

<table border="1" id="bkmrk-sda-serial-data-line" style="border-collapse: collapse; width: 100%;"><tbody><tr><td class="align-right" style="width: 49.9506%;">SDA</td><td style="width: 49.9506%;">Serial Data Line</td></tr><tr><td class="align-right" style="width: 49.9506%;">SDL</td><td style="width: 49.9506%;">Serial Clock Line</td></tr></tbody></table>

<table border="1" id="bkmrk--0" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 49.9506%;">[![8_i2c_a.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/8-i2c-a.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/8-i2c-a.png)</td><td style="width: 49.9506%;">[![8_i2c_b.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/8-i2c-b.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/8-i2c-b.png)</td></tr></tbody></table>

#### Procedimento:

Atentando nos terminais 21, 22, GND e 3.3V do ESP32 como referência deve considerar-se o seguinte ilustração de montagem:

[![8_i2c_setup.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/8-i2c-setup.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/8-i2c-setup.png)

##### Instruções:

(para uma primeira utilização do ESP32, sugere-se o tutorial *Primeiro Programa* \[3\])

- Montar o circuito esquematizado anteriormente (ver Secção **Montagem exemplificativa**, para mais detalhe)
- Ligar a placa ESP32 ao computador por via de cabo USB micro
- Abrir o IDE Arduino
- Usando a ferramenta de gestão de bibliotecas do IDE Arduino procurar e instalar a biblioteca **Adafruit SHT4X** (\[1\])

[![8_arduino_setup.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/8-arduino-setup.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/8-arduino-setup.png)

- Selecionar o dispositivo ESP32 adequado
- Copiar o seguinte


```C
/*
* sensor sht40
*/

#include "Adafruit_SHT4x.h" // Biblioteca relacionada com sensor SHT40

// inicialização de classe relacionada com SHT40
Adafruit_SHT4x sht4 = Adafruit_SHT4x();


// a função setup é executada pontualmente quando o botão reset é premido ou 
// a placa é alimentada:
void setup() {
	// inicializa a comunicação série a 115200 bits por segundo:
	Serial.begin(115200); 
	
	sht4.begin(); 
	
	// definição de precisão e outras opções do sensor
	sht4.setPrecision(SHT4X_HIGH_PRECISION);
	sht4.setHeater(SHT4X_NO_HEATER);  
}

// a função loop é executada sucessivamente, uma e outra vez, 
// e por aí em diante
void loop() {
	sensors_event_t humidade, temperatura;
	
	// atualiza os objetos com dados novos
	sht4.getEvent(&humidade, &temperatura); 
	
	Serial.print("Temperatura: "); 
	Serial.print(temperatura.temperature); 
	Serial.println(" ºC");
	Serial.print("Humidade: "); 
	Serial.print(humidade.relative_humidity); 
	Serial.println("% rH"); 
	delay(1000);
}
```

- Compilar e carregar o código para a placa ESP32

[![8_arduino.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/8-arduino.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/8-arduino.png)

- Verificar o resultado

<table border="1" id="bkmrk--4" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 49.9506%;">[![8_img_out_a.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/8-img-out-a.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/8-img-out-a.png)</td><td style="width: 49.9506%;">[![8_img_out_b.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/8-img-out-b.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/8-img-out-b.png)</td></tr></tbody></table>

#### Montagem exemplificativa:

<table border="1" id="bkmrk--6" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 49.9506%;">[![8_out_a.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/8-out-a.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/8-out-a.png)</td><td style="width: 49.9506%;">[![8_out_b.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/8-out-b.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/8-out-b.png)</td></tr><tr><td style="width: 49.9506%;">[![8_out_c.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/8-out-c.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/8-out-c.png)</td><td style="width: 49.9506%;">[![8_out_d.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/8-out-d.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/8-out-d.png)</td></tr></tbody></table>

#### Referências:

\[1\] Adafruit. Adafruit Sensirion SHT40, SHT41 &amp; SHT45 Temperature &amp; Humidity Sensors. url: [https://learn.adafruit.com/adafruit-sht40-temperature-humidity-sensor](https://learn.adafruit.com/adafruit-sht40-temperature-humidity-sensor) (acedido em 29/08/2023).  
\[2\] Ltd. Espressif Systems Co. ESP32-DevKitC V4 Getting Started Guide. url: [https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-devkitc.html](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-devkitc.html) (acedido em 18/08/2023).  
\[3\] Paulo Menezes. Artigos de Suporte - DEEC - Kit Eletrónica - Primeiro Programa. url: [https://kb.deec.uc.pt/books/deec/page/primeiro-programa](https://kb.deec.uc.pt/books/deec/page/primeiro-programa) (acedido em 17/08/2023).  
\[4\] Seeed Studio. Grove - Temperature &amp; Humidity Sensor. url: [https://wiki.seeedstudio.com/Grove-SHT4x/](https://wiki.seeedstudio.com/Grove-SHT4x/) (acedido em 29/08/2023).  
\[5\] Wikipedia. I2C. url: [https://en.wikipedia.org/wiki/I%C2%B2C](https://en.wikipedia.org/wiki/I%C2%B2C) (acedido em 29/08/2023).