Halo Sahabat Indobot!
Sedang ada project apa hari ini?
Nah kali ini kita akan belajar untuk membuat pemantau suhu akuarium menggunakan sensor DS18B20. Pemantauan tidak hanya ditampilkan di LCD saja, namun pemantauan juga terkirim langsung ke telegram.
Sensor DS18B20 merupakan sensor yang dapat berfungsi untuk mengukur suhu dalam air. Dan Sensor ini memiliki bentuk seperti tabung besi yang tahan terhadap air dan memiliki kabel panjang yang dapat bermanfaat untuk penggunaan yang lebih aman, yaitu dengan memasukkan sensor ke dalam air, namun untuk mikrokontroler yang kita gunakan, dapat kita jauhkan untuk menghindari kerusakan karena terkena air. Kemudian Sensor ini membutuhkan tegangan sebesar 3 hingga 5,5 VDC dan dapat membaca suhu dari -55 derajat C hingga 125 derajat C.
Monitoring Suhu Akuarium Menggunakan Sensor DS18B20 dengan IoT Telegram
Dalam project kali ini, kita akan menggunakan NodeMCU ESP8266 sebagai mikrokontroler multifungsi yang sudah memiliki fasilitas wifi untuk mengirimkan informasi ke telegram nantinya.
Penasaran bagaimana cara membuatnya? Yuk kita simak.
Belajar Elektronika, Arduino, dan IoT step by step dengan bantuan tangga belajar? Daftar sekarang dan dapatkan PROMO
Alat dan Bahan
Alat dan bahan untuk project ini adalah sebagai berikut.
- Software Arduino IDE
- NodeMCU ESP8266 1
- LCD 16X2 1
- I2C LCD 1
- Buzzer 1
- Sensor DS18B20 1
- Projectboard 1
- Kabel jumper Secukupnya
Baca juga: Detektor Kebocoran Gas IoT Telegram
Rangkaian
Susun device di atas menjadi rangkaian seperti berikut. Pastikan semua terhubung dengan baik.
Program
Tahap selanjutnya adalah penulisan program pada Arduino IDE. Buatlah program seperti berikut. Perhatikan keterangan (comment) untuk memahami program dengan baik. Jangan lupa untuk memasukan library berikut ini pada Arduino IDE.
ArduinoJson (Download )
LiquidCrystal_I2C (Download )
CTBot (Download )
Dallas Temperature (Download )
One Wire (Download )
Berikut programnya.
#include OneWire. //Library OneWire #include DallasTemperature. // Library untuk Dallas temperature #includeLiquidCrystal_I2C. //Library I2C LCD #include "CTBot.h" //Library CTBot untuk Telegram LiquidCrystal_I2C lcd(0x27,16,2); //alamat I2C #define buzzer D3 //pin D3 untuk buzzer #define ONE_WIRE_BUS D4 // pin D4 digunakan untuk data hasil baca sensor OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(oneWire); CTBot myBot; String ssid = "**********"; //nama ssid wifi kalian String pass = "**********"; //password wifi kalian String token = "XXXXX"; //token bot baru kalian const int id = XXXXXX; //id telegram kalian void setup(void) { Serial.begin(9600); sensors.begin(); //memulai baca sensor lcd.init(); //memulai LCD lcd.backlight(); //menyalakan Lampu latar belakang LCD pinMode(buzzer, OUTPUT); //inisialisasi buzzer sebagai output myBot.wifiConnect(ssid, pass); //koneksi dengan hotspot myBot.setTelegramToken(token); //memastikan token //tes koneksi dengan hotspot if (myBot.testConnection()) { Serial.println("Koneksi Bagus"); } else { Serial.println("Koneksi Jelek"); } } void loop(void) { sensors.requestTemperatures(); //baca sensor int suhu = sensors.getTempCByIndex(0); //Penulisan suhu pada LCD dan serial monitor Serial.println(suhu); //Jika suhu lebih dari 30 if (suhu 30) { myBot.sendMessage(id, "Suhu Akuarium Terlalu Panas!"); //mengirimkan pesan ke telegram buzzerNyala(); //menyalakan buzzer lcd.setCursor(0,0); lcd.print("SUHU PANAS!"); //menampilkan SUHU PANAS di LCD } else if (suhu 25) { myBot.sendMessage(id, "Suhu Akuarium Terlalu Dingin!"); //mengirimkan pesan ke telegram buzzerNyala(); //menyalakan buzzer lcd.setCursor(0,0); lcd.print("SUHU DINGIN!"); //menampilkan SUHU DINGIN di LCD } else { digitalWrite(buzzer, LOW); lcd.setCursor(0,0); lcd.print("Suhu air : "); lcd.setCursor(0,1); lcd.print(suhu); } lcd.clear(); } void buzzerNyala(){ //Function untuk menyalakan buzzer digitalWrite(buzzer, HIGH); delay (500); digitalWrite(buzzer, LOW); delay (500); } |
baca juga : Alarm PIR IoT Telegram
Cara mendapatkan Token Bot dan ID 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 didapat
- Setelah itu diperlukan id telegram kita dengan cara : cari IDBot > klik Start > ketik /getid
- Maka token dan ID Telegram sudah kita dapatkan.
Kemudian masukkan nama hotspot, password hotspot, token, dan ID yang anda gunakan di
pertama String ssid = “**********”;
Kedua String pass = “**********”;
Ketiga String token = “XXXXX”;
const int id = XXXXXX;
Upload program di atas, kemudian kita dapat melakukan percobaan dengan menggunakan air panas dan air dingin.
baca juga: Dasar Program Membaca Data Suhu Dan Kelembaban Sensor DHT11
Hasil dari project ini adalah pembacaan suhu dari sensor DS18B20, akan ditampilkan di layar LCD. Namun jika suhu mulai memanas hingga 30 derajat C (dapat disesuaikan dengan kebutuhan), maka buzzer akan berbunyi dan akan muncul notifikasi di telegram kita, bahwa suhu terlalu panas untuk akuarium kita. Jika suhu terlalu dingin, mencapai kurang dari 25 derajat C, maka buzzer juga akan menyala dan akan muncul notifikasi di telegram bahwa suhu terlalu dingin untuk akuarium yang kita gunakan.
Bagaimana? Tertarik untuk membuatnya? Yuk bisa dicoba.
Semangat!
Mau belajar elektronika dasar? Arduino? atau Internet of Things? Segera Ikuti kursus online Indobot Academy!
Mas, izin bertanya
Waktu saya program dan done uploading lcd nya ga ada tulisan temperature, dan untuk memulai lcd jga harus di ganti dengan begin
kak mau tanya kenapa yah nodemcu saya suka ada eror leaving hard resetting via rts pin