Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 3

/* --- 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(0,0);
lcd.print(F("Mencari Sensor.."));
delay(100); lcd.setCursor(0,1); lcd.print(F(" "));
for (int i=0; i<=100; i++){
lcd.setCursor(0,1); lcd.print(i); lcd.print('%');delay(50);
}
delay(1000);
lcd.setCursor(0,0);
lcd.print(F("Menemukan Sensor "));
lcd.setCursor(0,1);
lcd.print(jumlah_perangkat, DEC);
lcd.print(F(" Sensor "));
delay(2000);
lcd.clear();
for(int i=0;i<jumlah_perangkat; i++)
{
// Menngambil alamat masing2 Sensor
if(sensors.getAddress(tempDeviceAddress, i))
<div style="clear:both; margin-top:0em; margin-bottom:1em;"><a
href="https://www.nyebarilmu.com/mengenal-apa-itu-arduino-uno/" target="_blank"
class="ue260ffae5a4a4ff56057900279d38a99"><!-- INLINE RELATED POSTS 1/1
//--><style> .ue260ffae5a4a4ff56057900279d38a99 { padding:0px; margin: 0; padding-
top:1em!important; padding-bottom:1em!important; width:100%; display: block; font-
weight:bold; background-color:#ECF0F1; border:0!important; border-left:4px solid
#16A085!important; text-decoration:none; }
.ue260ffae5a4a4ff56057900279d38a99:active, .ue260ffae5a4a4ff56057900279d38a99:hover
{ opacity: 1; transition: opacity 250ms; webkit-transition: opacity 250ms; text-
decoration:none; } .ue260ffae5a4a4ff56057900279d38a99 { transition: background-
color 250ms; webkit-transition: background-color 250ms; opacity: 1; transition:
opacity 250ms; webkit-transition: opacity 250ms; }
.ue260ffae5a4a4ff56057900279d38a99 .ctaText { font-weight:bold; color:#3498DB;
text-decoration:none; font-size: 16px; } .ue260ffae5a4a4ff56057900279d38a99
.postTitle { color:#141414; text-decoration: underline!important; font-size:
16px; } .ue260ffae5a4a4ff56057900279d38a99:hover .postTitle { text-decoration:
underline!important; } </style><div style="padding-left:1em; padding-
right:1em;"><span class="ctaText">Baca juga :</span>� <span
class="postTitle">Mengenal, Apa itu Arduino Uno?</span></div></a></div>
lcd.setCursor(0,0);
lcd.print(F("Alamat Sensor "));
lcd.print(i+1); // +1 -> mempermudah hitungan sensor dari 1
delay(1000);
lcd.setCursor(0,1);
for (uint8_t i = 0; i < 8; i++)
{
if (tempDeviceAddress[i] < 16) lcd.print("0");
lcd.print(tempDeviceAddress[i], HEX); delay (100);

}
delay(500);
lcd.setCursor(0,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(0,1);
lcd.print(tempC); lcd.print((char)0); lcd.print("C");
lcd.print(" ");
lcd.print(DallasTemperature::toFahrenheit(tempC)); // Converts tempC to
Fahrenheit
lcd.print((char)0); lcd.print("F");
}

void loop(void)
{
lcd.setCursor(0,0);
// Mengambil data pada setiap sensor secara bergantian
lcd.print(F("Mengambil data..")); delay (100);
sensors.requestTemperatures(); //Mengirim perintah pengambilan data sensor
lcd.setCursor(0,0);
lcd.print(F("Selesai.... ")); delay (500);
for(int i=0; i<jumlah_perangkat; i++)
{
if(sensors.getAddress(tempDeviceAddress, i))
{
lcd.setCursor(0,0);
lcd.print("Temp. Sensor: ");
lcd.print(i+1,DEC); // +1 -> mempermudah hitungan sensor dari 1
printTemperature(tempDeviceAddress);
delay (1500);
lcd.clear();
}
}
}

You might also like