Memantau Suhu dengan Menggunakan Sensor BME680

Indobot Update

Memantau suhu Telegram
Memantau suhu Telegram

Halo Sahabat Indobot! Kali ini kita akan mencoba belajar untuk memauntau suhu , kelembaban, tekanan udara, dan gas dengan menggunakan Sensor Lingkungan BME680. Hasil dari pembacaan ini, dapat kita pantau melalui pesan di telegram.Bagaimana caranya? 

Baca Juga : Salut Kebun Hidroponik Berbasis IoT Pengembangan Unpad

 

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. 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)

Berbagai hal yang dapat dibaca oleh Sensor ini, akan kita baca melalui pesan di telegram. Sensor ini, akan kita hubungkan ke NodeMCU sebagai mikrokontroler penerima data sekaligus untuk melakukan pengiriman data hasil baca sensor ke telegram. yuk kita simak cara membuatnya.

 

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. Projectboard 1
  5. Kabel jumper Secukupnya

 

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

 

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

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 CTBot, Arduino Json, Adafruit Sensor, dan Adafruit BME680.

 

 
//Pembacaan sensor Enviromental BME680

#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include "Adafruit_BME680.h" //library BME680
#include "CTBot.h" //Library CTBot untuk Telegram

#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);

CTBot myBot;

String ssid = "*************";    //nama ssid wifi kalian
String pass = "*************";  //password wifi kalian
String token = "*************";    //token bot baru kalian
const int id = xxxxxxxx;      //id telegram kalian

void setup() {
  Serial.begin(9600);
  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);
  }
 //pembacaan sensor
  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
  
  myBot.wifiConnect(ssid, pass); //menyambungkan koneksi hotspot
  myBot.setTelegramToken(token); //menyambuungkan token
  if (myBot.testConnection()) {
    Serial.println("Koneksi Bagus");
  } else {
    Serial.println("Koneksi Jelek");
  }
  myBot.sendMessage(msg.sender.id, "Informasi Sensor Lingkungan, Kirim pesan" +
        "\nInfo Suhu ketik >>> ceksuhu" + 
        "\nInfo Tekanan ketik >>> cektekanan" + 
        "\nInfo Kelembaban ketik >>> ceklembab" + 
        "\nInfo Gas ketik >>> cekgas"+
        );
}

void loop() {
  // melakukan pembacaan pada BME
  unsigned long endTime = bme.beginReading();
  if (endTime == 0) { //Memastikan pembacaan
    Serial.println(F("Pembacaan BME Gagal :("));
    return;
  }
TBMessage msg;
  if (myBot.getNewMessage(msg)) {
    if (msg.text.equalsIgnoreCase("ceksuhu")) {                   //Perintah dari telegram ke perangkat
      myBot.sendMessage(msg.sender.id, "Suhu Saat ini: " + bme.temperature + " *C"); //Balasan dari perangkat ke Bot Telegram
    }
    else if (msg.text.equalsIgnoreCase("cektekanan")) {              //Perintah dari telegram ke perangkat    
      myBot.sendMessage(msg.sender.id, "Tekanan Saat ini: " + (bme.pressure / 100.0) + " hPa"); //Balasan dari perangkat ke Bot Telegram
    }
    else if (msg.text.equalsIgnoreCase("ceklembab")) {              //Perintah dari telegram ke perangkat    
      myBot.sendMessage(msg.sender.id, "Kelembaban Saat ini: " + bme.humidity + " %"); //Balasan dari perangkat ke Bot Telegram
    }
    else if (msg.text.equalsIgnoreCase("cekgas")) {              //Perintah dari telegram ke perangkat    
      myBot.sendMessage(msg.sender.id, "Kondisi Gas Saat ini: " + (bme.gas_resistance / 1000.0) + " hPa"); //Balasan dari perangkat ke Bot Telegram
    }
    else {                                         
        myBot.sendMessage(msg.sender.id, "Informasi Sensor Lingkungan, Kirim pesan" +
        "\nInfo Suhu ketik >>> ceksuhu" + 
        "\nInfo Tekanan ketik >>> cektekanan" + 
        "\nInfo Kelembaban ketik >>> ceklembab" + 
        "\nInfo Gas ketik >>> cekgas"+
        );
    }
   
  }

  delay(500);
}

baca juga: Mengendalikan Nyala Lampu Halaman dengan Telegram

Untuk mendapatkan Token Bot dan ID telegram, kita dapat melakukan cara berikut.

  • cari BotFather

  • Buka BotFather > klik Start > ketik /newbot > beri nama bot > beri username bot > Simpan token yang diberikan untuk dimasukkan program nanti. Untuk masuk ke bot yang baru dibuat, bisa klik link yang diberikan pada bagian setelah “You will find it at …”, dan jika sudah masuk bisa ketik /start

Gambar pembuatan bot baru

Gambar token yang di dapat

  • Setelah itu di perlukan id telegram kita dengan cara : cari IDBot > klik Start > ketik /getid

  • Maka token dan ID Telegram sudah kita dapatkan.

Masukkan nama hotspot, password hotspot, token, dan ID yang anda gunakan di

  • String ssid = “**********”;
  • String pass = “**********”; 
  • String token = “XXXXX”;
  • const int id = XXXXXX;
    Upload program di atas, kemudian kita dapat mulai mencobanya dengan di awali ke telegram bot milik kita dan klik start.

baca juga: Mengakses BME680 Environmental Sensor dengan menggunakan NodeMCU ESP8266

Hasil dari project ini adalah ketika kita ingin mengetahui suhu, tekanan, kelembaban, dan kondisi gas saat ini, kita dapat mengunakan kode-kode yang sudah di sebutkan sebelumnya (setelah klik start). Kita hanya perlu mengetikkan kode tersebut, kemudian kirim langsung di telegram bot milik kita. Maka akan di munculkan hasil baca sensor lingkungan yang kita gunakan.

Bagaimana? Tertarik untuk membuatnya? Yuk bisa di coba.

Semangat!


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