🛠️ Perangkat Keras IoT dengan ESP32 dan Sensor BME280

Tujuan Praktikum

  • Memahami fungsi dan peran perangkat keras dalam sistem IoT.
  • Mengidentifikasi dan menghubungkan komponen dasar seperti sensor BME280, aktuator, dan mikrokontroler ESP32.
  • Membuat sistem IoT sederhana menggunakan ESP32 yang mengukur suhu, kelembapan, dan tekanan udara.

Alat dan Bahan

    • ESP32 DevKit (misalnya ESP32 DevKitC atau NodeMCU ESP32)
    • Breadboard
    • Kabel jumper
    • Sensor:
      • BME280 (sensor suhu, kelembapan, dan tekanan udara)
    • Aktuator:
      • LED
      • Buzzer
      • Relay
    • Resistor:
      • 220Ω (untuk LED)
      • 10kΩ (untuk BME280)
    • Power supply:
      • Kabel USB atau adaptor 5V

Langkah-langkah Praktikum

1. Persiapan Lingkungan Pengembangan

  • Instalasi Arduino IDE:
    • Unduh dan instal Arduino IDE.
    • Tambahkan board ESP32 ke Arduino IDE:
      • Buka File → Preferences.
      • Pada Additional Boards Manager URLs, tambahkan: https://dl.espressif.com/dl/package_esp32_index.json.
      • Buka Tools → Board → Boards Manager, cari “esp32” dan klik Install.
  • Pilih Board dan Port:
    • Pilih board yang sesuai (misalnya ESP32 Dev Module) di Tools → Board.
    • Pilih port yang sesuai di Tools → Port.

2. Mengenal Komponen Perangkat Keras

  • ESP32: Mikrokontroler dengan Wi-Fi dan Bluetooth terintegrasi, cocok untuk aplikasi IoT.
  • Sensor BME280: Mengukur suhu, kelembapan, dan tekanan udara. Sensor ini menggunakan antarmuka I2C atau SPI untuk komunikasi.
  • Aktuator:
    • LED: Menyala/mati sebagai indikator.
    • Buzzer: Mengeluarkan suara sebagai alarm.
    • Relay: Mengontrol perangkat listrik eksternal.

3. Membuat Rangkaian Sederhana

  • LED Berkedip:
    • Hubungkan LED dengan resistor 220Ω ke salah satu pin GPIO ESP32.
    • Program ESP32 untuk menyalakan dan mematikan LED secara berkala.
  • Membaca Sensor BME280:
    • Hubungkan sensor BME280 ke pin I2C ESP32 (SDA ke GPIO21 dan SCL ke GPIO22).
    • Gunakan pustaka Adafruit BME280 untuk membaca data suhu, kelembapan, dan tekanan udara.

4. Menghubungkan ke Cloud

  • Platform ThingSpeak:
    • Daftar di ThingSpeak dan buat channel baru.
    • Catat Channel ID dan Write API Key.
    • Program ESP32 untuk mengirimkan data suhu, kelembapan, dan tekanan udara ke ThingSpeak menggunakan koneksi Wi-Fi.

5. Kode Contoh untuk Membaca Data dari BME280 dan Mengirimkan ke ThingSpeak

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#include <WiFi.h>
#include <ThingSpeak.h>

const char* ssid = "your-SSID";
const char* password = "your-PASSWORD";
unsigned long channelID = yourChannelID; // Ganti dengan Channel ID ThingSpeak
const char* writeAPIKey = "your-API-KEY"; // Ganti dengan Write API Key ThingSpeak

WiFiClient client;
Adafruit_BME280 bme;

void setup() {
  Serial.begin(115200);
  Wire.begin();

  if (!bme.begin()) {
    Serial.println("Sensor BME280 tidak ditemukan!");
    while (1);
  }

  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Menghubungkan ke WiFi...");
  }
  Serial.println("Tersambung ke WiFi!");
  
  ThingSpeak.begin(client);
}

void loop() {
  float suhu = bme.readTemperature();
  float kelembapan = bme.readHumidity();
  float tekanan = bme.readPressure() / 100.0F;

  // Tampilkan data sensor di Serial Monitor
  Serial.print("Suhu: ");
  Serial.print(suhu);
  Serial.print(" °C  Kelembapan: ");
  Serial.print(kelembapan);
  Serial.print(" %  Tekanan: ");
  Serial.print(tekanan);
  Serial.println(" hPa");

  // Kirim data ke ThingSpeak
  ThingSpeak.setField(1, suhu);
  ThingSpeak.setField(2, kelembapan);
  ThingSpeak.setField(3, tekanan);
  ThingSpeak.writeFields(channelID, writeAPIKey);

  delay(20000); // Kirim data setiap 20 detik
}

6. Analisis dan Diskusi

  • Analisis:
    • Amati bagaimana data dari sensor BME280 dikirimkan ke platform ThingSpeak.
    • Perhatikan bagaimana nilai suhu, kelembapan, dan tekanan udara berubah berdasarkan kondisi lingkungan.
  • Diskusi:
    • Apa tantangan yang dihadapi selama praktikum dengan menggunakan sensor BME280?
    • Bagaimana cara meningkatkan sistem IoT yang telah dibuat, seperti menambah fitur notifikasi atau membuat tampilan antarmuka pengguna yang lebih baik?

Tanya Jawab

  1. Apa kelebihan sensor BME280 dibandingkan sensor DHT11?
    • BME280 lebih akurat dalam mengukur suhu, kelembapan, dan tekanan udara dibandingkan DHT11. Selain itu, BME280 dapat mengukur tekanan udara, yang tidak dimiliki oleh DHT11.
  2. Bagaimana cara membaca data dari sensor BME280 menggunakan ESP32?
    • Sensor BME280 menggunakan protokol I2C atau SPI. Untuk membaca data, kita dapat menggunakan pustaka Adafruit BME280 yang menyediakan fungsi untuk mengakses suhu, kelembapan, dan tekanan udara dengan mudah.
  3. Apa itu ThingSpeak dan bagaimana cara menggunakannya untuk visualisasi data?
    • ThingSpeak adalah platform berbasis cloud untuk mengumpulkan, menganalisis, dan memvisualisasikan data sensor. Data dikirimkan ke ThingSpeak melalui API dan kemudian dapat divisualisasikan dalam bentuk grafik atau chart di dashboard.

Kesimpulan

Praktikum ini memberikan pemahaman dasar tentang penggunaan sensor BME280 untuk mengukur suhu, kelembapan, dan tekanan udara dalam sistem IoT. Dengan menggunakan ESP32, peserta dapat menghubungkan sensor ke platform cloud seperti ThingSpeak untuk memantau data secara real-time.


 

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *