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.
- Software Arduino IDE
- NodeMCU ESP8266 1
- BME680 Enviromental Sensor 1
- Projectboard 1
- 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!