Menambahkan Sensor Kelembapan SHT31 pada Mikrokontroler STM32

3 min read 22-08-2024
Menambahkan Sensor Kelembapan SHT31 pada Mikrokontroler STM32

Sensor kelembapan merupakan komponen penting dalam berbagai aplikasi, seperti sistem otomatisasi pertanian, pengendalian iklim, dan berbagai proyek berbasis IoT. Salah satu sensor yang banyak digunakan adalah SHT31 yang mampu mengukur suhu dan kelembapan secara akurat. Artikel ini akan membahas cara menambahkan sensor SHT31 pada mikrokontroler STM32.

Pengenalan SHT31

Apa itu SHT31?

SHT31 adalah sensor kelembapan dan suhu digital yang diproduksi oleh Sensirion. Sensor ini memiliki spesifikasi yang sangat baik dan dapat memberikan pembacaan kelembapan dalam rentang 0% hingga 100% RH dengan akurasi ±2% RH, serta pembacaan suhu dalam rentang -40°C hingga 125°C dengan akurasi ±0.3°C.

Mengapa Menggunakan STM32?

STM32 merupakan keluarga mikrokontroler berbasis ARM Cortex-M yang menawarkan kinerja tinggi dengan efisiensi rendah. Mikrokontroler ini cocok untuk berbagai aplikasi, mulai dari pengendalian sederhana hingga aplikasi yang kompleks seperti sistem kendali berbasis IoT. Dengan berbagai pilihan pin dan komunikasi yang didukung seperti I2C, STM32 adalah pilihan yang ideal untuk proyek ini.

Memulai dengan Perangkat Keras

Alat dan Bahan

Sebelum kita mulai, berikut adalah daftar alat dan bahan yang dibutuhkan:

  • Mikrokontroler STM32 (misalnya STM32F103C8T6)
  • Sensor SHT31
  • Kabel Jumper
  • Breadboard
  • Software STM32CubeIDE
  • Library SHT31 untuk STM32

Menghubungkan SHT31 dengan STM32

Berikut adalah langkah-langkah untuk menghubungkan SHT31 ke STM32:

  1. Sambungkan VCC pada SHT31 ke 3.3V pada STM32.
  2. Sambungkan GND pada SHT31 ke GND pada STM32.
  3. Sambungkan SDA pada SHT31 ke SDA (misalnya pin PB7) pada STM32.
  4. Sambungkan SCL pada SHT31 ke SCL (misalnya pin PB6) pada STM32.

Berikut adalah skema koneksi sederhana:

STM32         SHT31
--------      --------
3.3V  ------  VCC
GND   ------  GND
PB7   ------  SDA
PB6   ------  SCL

Menginstal Library

Sebelum menulis kode, kita perlu menginstal library yang diperlukan. Anda dapat menggunakan library dari Sensirion yang sudah ada di GitHub atau library yang sudah dikembangkan oleh komunitas. Pastikan untuk menyertakan file header dan implementasi library tersebut dalam proyek Anda di STM32CubeIDE.

Kode Contoh

Berikut ini adalah contoh kode untuk membaca kelembapan dan suhu dari sensor SHT31 menggunakan STM32:

#include "stm32f1xx_hal.h"
#include "sht31.h"

I2C_HandleTypeDef hi2c1;

void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_I2C1_Init(void);

int main(void)
{
    HAL_Init();
    SystemClock_Config();
    MX_GPIO_Init();
    MX_I2C1_Init();

    SHT31_Init(&hi2c1);
    float temperature, humidity;

    while (1)
    {
        SHT31_Read(&temperature, &humidity);
        HAL_Delay(1000); // delay 1 detik
    }
}

Penjelasan Kode

  1. Pengaturan HAL:

    • HAL_Init() berfungsi untuk menginisialisasi Hardware Abstraction Layer.
    • SystemClock_Config() untuk mengatur konfigurasi clock sistem.
  2. Inisialisasi I2C:

    • MX_I2C1_Init() berfungsi untuk menginisialisasi antarmuka I2C, yang diperlukan untuk berkomunikasi dengan sensor SHT31.
  3. Inisialisasi Sensor:

    • SHT31_Init(&hi2c1) berfungsi untuk menginisiasi sensor SHT31 via I2C.
  4. Pembacaan Data:

    • SHT31_Read(&temperature, &humidity) digunakan untuk membaca suhu dan kelembapan dari sensor.

Fungsi Tambahan

Anda juga dapat menambahkan fungsi untuk menampilkan data ini di serial monitor, misalnya menggunakan komunikasi USART. Berikut adalah contoh penambahan fungsi untuk mengirim data ke UART:

void sendData(float temp, float hum) {
    char buffer[50];
    sprintf(buffer, "Temperature: %.2f C, Humidity: %.2f %%\n", temp, hum);
    HAL_UART_Transmit(&huart1, (uint8_t*)buffer, strlen(buffer), HAL_MAX_DELAY);
}

Kemudian panggil fungsi ini di dalam loop utama untuk mengirim data yang telah dibaca.

Pengujian

Setelah semua komponen terhubung dan kode di-upload ke mikrokontroler, anda dapat melakukan pengujian. Pastikan untuk memeriksa koneksi dan kode secara menyeluruh saat melakukan pengujian. Gunakan terminal serial untuk melihat data suhu dan kelembapan yang dikirimkan dari mikrokontroler.

Kesimpulan

Menambahkan sensor kelembapan SHT31 ke mikrokontroler STM32 cukup mudah. Dengan mengikuti langkah-langkah di atas, Anda dapat mengukur suhu dan kelembapan secara real-time. Sensor SHT31 memberikan pembacaan yang akurat dan dapat diandalkan untuk berbagai aplikasi. Dengan kemampuan STM32 yang tinggi, Anda dapat mengembangkan berbagai aplikasi yang lebih kompleks dengan menggunakan sensor ini.

Dengan pemahaman yang lebih baik tentang cara menghubungkan dan menggunakan sensor SHT31, Anda kini dapat memulai proyek Anda sendiri dengan lebih percaya diri. Selamat mencoba!