Menampilkan Suhu, Kelembaban, Tekanan Udara,dan Gas dengan Menggunakan LCD dan Sensor BME680

Indobot Update

Kali ini kita akan membuat sebuah project suhu monitoring. Hasil pembacaan Sensor Lingkungan BME680 dengan menggunakan NodeMCU ESP8266. Bagaimana caranya? yuk kita simak.

Sudah pernah menggunakan sensor Enviromental?

BME680 Enviromental Sensor merupakan sensor yang dapat membaca 4 hal yaitu suhuu, kelembaban, tekanan udara, dan Gas Volatile Organic Compounds (VOC) (seperti Ethanol) dan karbon monoksida. Sensor sudah seperti 4 in 1, sangat multifungsi. Sensor ini sering digunakan untuk monitoring kualitas udara. Sensor ini menggunakan teknologi MEMS, berukuran kecil dan membutuhkan konsumsi daya yang rendah. Penggunaan sensor ini dapat dikembangkan menjadi pemantauan lingkungan, otomatisasi dan kontrol rumah, dan dapat juga dijadikan sebagai perangkat IoT.

Berikut ini spesifikasi dari BME680 Enviromental Sensor.

Tegangan Masukan: 3.3V – 5.5V

Arus Operasi: 5mA (25mA dalam Pengukuran VOC)

Communication IInterface: I2C (dapat digunakan di 3.3V/5V) atau SPI (port non-I2C lainnya hanya mendukung 3.3V)

Alamat I2C Default: 0x76

Rentang Pengukuran Suhu: -40 – + 85

Presisi Pengukuran Suhu: ± 1,0 (0 – 65 )

Rentang Pengukuran Kelembaban: 0 – 100%r.H.

Presisi Pengukuran Kelembaban: ±3%r.H. (20-80% r.H.,25℃)

Rentang Pengukuran Tekanan Atmosfer: 300 – 1100 hPa

Presisi Pengukuran Tekanan Atmosfer: ± 0.6 hPa (300-1100 hPa, 0 ~ 65 )

Kisaran IAQ (Kualitas Udara Dalam Ruangan): 0~500 (semakin besar, semakin buruk)

Dimensi: 18×15.6(mm) /0.71×0.61(inci)

Nah langsung saja nih kita mulai buat project untuk menampilkan Suhu, Kelembaban, Tekanan Udara,dan Gas dengan Menggunakan LCD dan Sensor BME680.

Alat dan Bahan

Alat dan bahan untuk project ini adalah sebagai berikut.

  1. Software Arduino IDE
  2. NodeMCU ESP8266 1
  3. BME680 Enviromental Sensor 1
  4. LCD 1
  5. I2C LCD 1
  6. Projectboard 1
  7. Kabel jumper Secukupnya

 

Belajar Elektronika, Arduino, dan IoT step by step dengan bantuan tangga belajar? Daftar sekarang dan dapatkan PROMO

 

Rangkaian

Susun device di atas menjadi rangkaian seperti berikut. Pastikan semua terhubung dengan baik.

Keterangan:

SCL BME680 dengan GPIO 14 (D5) NodeMCU ESP8266

SDA BME680 dengan GPIO 13 (D7) NodeMCU ESP8266

SDO BME680 dengan GPIO 12 (D6) NodeMCU ESP8266

CS BME680 dengan GPIO 15 (D8) NodeMCU ESP8266

SCL I2C dengan  GPIO 5 (D1) NodeMCU ESP8266

SDA I2C dengan  GPIO 4 (D2) NodeMCU ESP8266

baca juga: Mengakses 6 Sensor Warna TCS34725 dengan Multiplexer TCA9548A

 

Program

Tahap selanjutnya adalah penulisan program pada Arduino IDE. Buatlah program seperti berikut. Perhatikan keterangan (comment) untuk memahami program dengan baik.

Jangan lupa untuk memasukkan terlebih dahulu library Adafruit Sensor dan Adafruit BME680.

 

//Menampilkan hasil bacaan sensor BME680 di LCD#include
#include
#include
#include “Adafruit_BME680.h”
#includeLiquidCrystal_I2C lcd(0x27,16,2);
#define BME_SCK 13
#define BME_MISO 12
#define BME_MOSI 11
#define BME_CS 10#define SEALEVELPRESSURE_HPA (1013.25)Adafruit_BME680 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK);void setup() {
Serial.begin(9600);
lcd.init();
lcd.backlight();
while (!Serial);
Serial.println(F(“BME680 async test”));

if (!bme.begin()) {
Serial.println(F(“Could not find a valid BME680 sensor, check wiring!”));
while (1);
}

// Set up oversampling and filter initialization
bme.setTemperatureOversampling(BME680_OS_8X);
bme.setHumidityOversampling(BME680_OS_2X);
bme.setPressureOversampling(BME680_OS_4X);
bme.setIIRFilterSize(BME680_FILTER_SIZE_3);
bme.setGasHeater(320, 150); // 320*C for 150 ms
}

void loop() {
// melakukan pembacaan pada BME
unsigned long endTime = bme.beginReading();
if (endTime == 0) { //Memastikan pembacaan
Serial.println(F(“Pembacaan BME Gagal :(“));
return;
}
Serial.print(F(“Mulai pembacaan pada “));
Serial.print(millis());
Serial.print(F(” dan akan berakhir pada “));
Serial.println(endTime);

delay(50);
if (!bme.endReading()) {
Serial.println(F(“Pembacaan masih belum Berhasil :(“));
return;
}
Serial.print(F(“Pembacaan Selesai pada “));
Serial.println(millis());

Serial.print(F(“Temperatur = “));
Serial.print(bme.temperature);
Serial.println(F(” *C”));

Serial.print(F(“Tekanan = “));
Serial.print(bme.pressure / 100.0);
Serial.println(F(” hPa”));

Serial.print(F(“Kelembaban = “));
Serial.print(bme.humidity);
Serial.println(F(” %”));

Serial.print(F(“Gas = “));
Serial.print(bme.gas_resistance / 1000.0);
Serial.println(F(” KOhms”));

lcd.clear();
lcd.setCursor(0,0);
lcd.print(“Temperatur = “);
lcd.setCursor(0,1);
lcd.print(bme.temperature);
lcd.print(” *C”);
delay(1000);

lcd.clear();
lcd.setCursor(0,0);
lcd.print(“Tekanan = “);
lcd.setCursor(0,1);
lcd.print(bme.pressure / 100.0);
lcd.print(” hPa”);
delay(1000);

lcd.clear();
lcd.setCursor(0,0);
lcd.print(“Kelembaban = “);
lcd.setCursor(0,1);
lcd.print(bme.humidity);
lcd.print(” hPa”);
delay(1000);

lcd.clear();
lcd.setCursor(0,0);
lcd.print(“Gas = “);
lcd.setCursor(0,1);
lcd.print(bme.gas_resistance / 1000.0);
lcd.print(” KOhms”);
delay(1000);
}

[/code]

baca juga: Membuat Tampilan Temperatur dan Jam Analog dengan OLED 128×64

Upload program di atas. Jika Sudah, maka akan ditampilkan di LCD hasil bacaan dari sensor Enviromental. Selain itu, kita juga bisa melihat hasil bacaannya di serial monitor.

Nah teman-teman bisa coba ya.

Jika sudah bisa, kita bisa lanjutkan dengan mengirimkan data ini ke Blynk untuk IoT. Bagaimana? mau mencoba? Yuk dicoba, pasti bisa.


Mau belajar elektronika dasar? Arduino? atau Internet of Things? Ikuti kursus online Indobot Academy!

Ingin Tahu Program Kami Lebih Lanjut?

Silahkan isi Formulir Dibawah Ini untuk Diskusi dengan Tim Indobot Academy.

Baca Juga

Bagikan:

Tinggalkan komentar

whatsapp whatsapp