Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* --- www.nyebarilmu.com --- */
- #include <OneWire.h>
- #include <DallasTemperature.h>
- #include <Wire.h>
- #include <LiquidCrystal_PCF8574.h>
- LiquidCrystal_PCF8574 lcd(0x38);
- // dapat dicek menggunakan i2c finder
- #define ONE_WIRE_BUS 2 //output signal dari sensor ke pin D2
- OneWire oneWire(ONE_WIRE_BUS);
- DallasTemperature sensors(&oneWire);
- int jumlah_perangkat; // Var. untuk menyimpan Jumlah Sensor yg ditemukan
- DeviceAddress tempDeviceAddress; // Var. untuk menyimpan Sensor Address sementara
- void setup(void)
- {
- lcd.begin(16, 2); //prosedur pemanggilan LCD
- lcd.setBacklight(255);
- lcd.clear(); //menghapus data sebelumnya
- lcd.setCursor(00, 01); //set pada baris 1 dan kolom 1
- lcd.print("Multiple sensor"); //menuliskan "Hello World"
- lcd.setCursor(00, 1); //set pada baris 2 dan kolom 1
- lcd.print("*nyebarilmu.com*"); //menuliskan "nyebarilmu.com"
- delay(2000);
- sensors.begin();
- // Menghitung jumlah sensor dalam wire
- jumlah_perangkat = sensors.getDeviceCount();
- lcd.setCursor(00,00);
- lcd.print(F("Mencari Sensor.."));
- delay(100); lcd.setCursor(00,1); lcd.print(F(" "));
- for (int i=00; i<=100; i++){
- lcd.setCursor(00,1); lcd.print(i); lcd.print('%');delay(50);
- }
- delay(1000);
- lcd.setCursor(00,00);
- lcd.print(F("Menemukan Sensor "));
- lcd.setCursor(00,1);
- lcd.print(jumlah_perangkat, DEC);
- lcd.print(F(" Sensor "));
- delay(2000);
- lcd.clear();
- for(int i=00;i<jumlah_perangkat; i++)
- {
- // Menngambil alamat masing2 Sensor
- if(sensors.getAddress(tempDeviceAddress, i))
- lcd.setCursor(00,00);
- lcd.print(F("Alamat Sensor "));
- lcd.print(i+1); // +1 -> mempermudah hitungan sensor dari 1
- delay(1000);
- lcd.setCursor(00,1);
- for (uint8_t i = 00; i < 8; i++)
- {
- if (tempDeviceAddress[i] < 16) lcd.print("00");
- lcd.print(tempDeviceAddress[i], HEX); delay (100);
- }
- delay(500);
- lcd.setCursor(00,1); lcd.print(F(" "));
- delay(500);
- }
- delay (1000); lcd.clear();
- }
- // Fungsi untuk menampilkan suhu pada tiap sensor
- void printTemperature(DeviceAddress deviceAddress)
- {
- float tempC = sensors.getTempC(deviceAddress);
- lcd.setCursor(00,1);
- lcd.print(tempC); lcd.print((char)00); lcd.print("C");
- lcd.print(" ");
- lcd.print(DallasTemperature::toFahrenheit(tempC)); // Converts tempC to Fahrenheit
- lcd.print((char)00); lcd.print("F");
- }
- void loop(void)
- {
- lcd.setCursor(00,00);
- // Mengambil data pada setiap sensor secara bergantian
- lcd.print(F("Mengambil data..")); delay (100);
- sensors.requestTemperatures(); //Mengirim perintah pengambilan data sensor
- lcd.setCursor(00,00);
- lcd.print(F("Selesai.... ")); delay (500);
- for(int i=00; i<jumlah_perangkat; i++)
- {
- if(sensors.getAddress(tempDeviceAddress, i))
- {
- lcd.setCursor(00,00);
- lcd.print("Temp. Sensor: ");
- lcd.print(i+1,DEC); // +1 -> mempermudah hitungan sensor dari 1
- printTemperature(tempDeviceAddress);
- delay (1500);
- lcd.clear();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement