#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL6T7MDYgaA"
#define BLYNK_TEMPLATE_NAME "Hospital Patient Bath Temperature"
#define BLYNK_AUTH_TOKEN "jKvKcoitKyvvZpUL_eXaX7qywZJSo5LC"
#include <BlynkSimpleEsp32.h>
BlynkTimer timer;
#include <Wire.h>
#include <WiFi.h>
#include <WiFiClient.h>
#define WIFI_SSID "Hospital-WiFi"
#define WIFI_PASS "HospitalPass123" // Sesuaikan dengan kredensial WiFi rumah sakit
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd (0x27, 16, 2);
#include <OneWire.h>
const int sensorDSPin = 15; // Pin untuk sensor DS18B20
OneWire oneWire (sensorDSPin);
#include <DallasTemperature.h>
DallasTemperature sensorDS (&oneWire);
// Prototype fungsi untuk mengirim data ke Blynk
void sendData();
void setup() {
// Inisialisasi komunikasi serial
Serial.begin(115200);
// Inisialisasi I2C untuk LCD
Wire.begin(10, 11);
lcd.begin(16, 2);
lcd.backlight();
// Koneksi ke WiFi rumah sakit
Blynk.begin(BLYNK_AUTH_TOKEN, WIFI_SSID, WIFI_PASS);
// Inisialisasi sensor suhu DS18B20
sensorDS.begin();
// Set interval pengiriman data ke Blynk (misalnya setiap 5 detik)
timer.setInterval(5000L, sendData); // Ubah interval sesuai kebutuhan
}
void loop() {
// Menjalankan Blynk dan timer
Blynk.run();
timer.run();
// Meminta sensor suhu untuk pembacaan terbaru
sensorDS.requestTemperatures();
// Mendapatkan suhu dalam Celcius dan Fahrenheit
float tempInCelcius = sensorDS.getTempCByIndex(0);
float tempInFarenheit = sensorDS.getTempFByIndex(0);
// Menampilkan suhu di LCD
lcd.setCursor(0, 0);
lcd.print("Suhu di C: ");
lcd.print(tempInCelcius);
lcd.setCursor(0, 1);
lcd.print("Suhu di F: ");
lcd.print(tempInFarenheit);
}
// Fungsi untuk mengirim data suhu ke Blynk
void sendData() {
// Meminta sensor suhu untuk pembacaan terbaru
sensorDS.requestTemperatures();
// Mendapatkan suhu dalam Celcius dan Fahrenheit
float tempInCelcius = sensorDS.getTempCByIndex(0);
float tempInFarenheit = sensorDS.getTempFByIndex(0);
// Mengirim data suhu ke Blynk (virtual pin 0 untuk Celcius, virtual pin 1 untuk Fahrenheit)
Blynk.virtualWrite(0, tempInCelcius);
Blynk.virtualWrite(1, tempInFarenheit);
// Opsional: Menyimpan data suhu ke server atau melakukan tindakan lainnya sesuai kebutuhan medis
}