Sensor Suhu DS18B20
DS18B20
Sensor Suhu DS18B20 adalah sensor Suhu yang menggunakan interface one wire, sehingga hanya menggunakan kabel yang sedikit dalam instalasi nya. Unik nya sensor ini bisa di jadikan paralel dengan satu input. Arti nya kita bisa menggunakan sensor DS18B20 lebih dari satu namun output sensor nya hanya di hubungkan ke satu PIN Arduino. Alasan ini membuat sensor ini banyak di gunakan, apalagi sensor ini memiliki tipe waterprof, sehingga sensor ini bisa kita buat sebagai alat ukur dan kontrol pemanas air.
Sensor ini memiliki spesifikasi Sebagai berikut:
- Unique 1 wire interface dengan output satu pin
- Rangke Suhu yang di ukur dari -55C – 125C (-67F – 257F)
- Resolusi sensor 12bit
- Voltage 3v – 5.5V
- Pull up voltage 3v – 5.5v
Untuk lebih jelas nya bisa langsung dilihat di datasheet nya.
Rangkaian DS18b20 Arduino
Agar sensor suhu ini bisa di baca datanya oleh arduino maka sensor ini harus di hubungkan dengan cara yang benar. Beberapa kali saya coba hubungkan sensor ini secara langsung ke Arduino, data nya tetap error, tidak terbaca, hal ini karena ouput sensor di hubungkan langsung ke Arduino tanpa menggunakan resistor Pull up, nah ketika di pull up dengan resistor 4k7 atau resistor 10k, maka data out sensor terbaca, Untuk lebih jelas nya bisa di lihat pada rangkaian di bawah ini.
Pada rangkaian di atas, kita buat 4 socket white untuk sensor ds18b20, jadi akan ada 4 pembacaan sensor suhu pada rangkaian di atas yang di hubungkan ke Arduino Nano. Perhatikan pada resistor R31, ada resistor sebagai pull up di sana. nilai nya 4k7. Saya pribadi coba pada nilai resistor 10k, tetap work, sensor nya tetap terbaca.
Program Membaca Sensor DS18b20
Sensor ini sebenarnya sudah memiliki library Arduino nya. Bisa teman-teman download pada link di bawah. Jadi pastikan library in sudah ter instal agar nanti nya ketika program di compile, program tidak error. Cukup klik Tombol Merah di bawah, akan di bawa ke link download library nya.
Pastikan pada rangkaian menggunakan resistor pull up dan add library DS18b20 nya pada Arduino
Setelah di add library nya, copy paste kan program di bawah ini, kemudia upload ke Arduino anda, yuk kita lihat program nya di bawah.
#include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(16, 2); // Include the libraries we need #include <OneWire.h> #include <DallasTemperature.h> // Data wire is plugged into port 2 on the Arduino #define ONE_WIRE_BUS 2 // Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs) OneWire oneWire(ONE_WIRE_BUS); // Pass our oneWire reference to Dallas Temperature. DallasTemperature sensors(&oneWire); float suhu; unsigned char line1[16]; /* * The setup function. We only start the sensors here */void setup(void) { lcd.autoAddress(); lcd.begin(); // start serial port Serial.begin(9600); Serial.println("Dallas Temperature IC Control Library Demo"); // Start up the library sensors.begin(); } /* * Main function, get and show the temperature */void loop(void) { tampil_lcd(); delay(250); } void baca_suhu(){ sensors.requestTemperatures(); // Send the command to get temperatures suhu = sensors.getTempCByIndex(0); dtostrf(suhu,4, 2, line1); strcat(line1," C"); } void tampil_lcd(){ baca_suhu(); lcd.setCursor(0,0); lcd.printstr(line1); }
Program di atas akan menampilkan suhu pada LCD 16×2, nah ada perhatian khusus di atas, agar tidak error ketika di compile. Kita menggunakan Auto scan addres LCD i2c, link tutorial nya bisa di lihat pada link berikut ini,
Configurasi pin nya ada pada line program ini
#define ONE_WIRE_BUS 2 // to pin D2 Arduino
Jika teman-teman ingin menghubungkan sensor ke pin lain, misal nya ke pin D2 maka silahkan ganti 13 menjadi 2,
Catatan khusus, jika ingin menampilkan data sensor pada serial monitor Arduino IDE. Jangan hubungkan sensor ke pin serial TX nya Arduino, PIN TX nya ada pada pin D1.
Silahkan kembangkan program di atas menjadi aplikasi di bawah ini,
- Data logger suhu ke sd card
- kirim suhu ke SMS dengan modul sim800
- Data logger suhu ke server dan mysql
- control lain lain dengan sensor ds18b20
Eh jika teman teman ingin dapat pcb board atau modul PLC shield Arduino bisa klik link whatsapp di bawah ini,
Untuk photo nya bisa di lihat pada gambar di bawah,
Feature plc shield
- Input optocoupler 10pcs 24volt/48volt
- output relay optocoupler 5pcs
- Sensor DS18B20 4pcs
- interface LCD 16×2
- Port Out TXD RXD dan Control
Semoga bermanfaat,
Thanks