#include <WiFi.h>
#include <WebServer.h>
#include <Wire.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include "DHT.h"
#include <LiquidCrystal_I2C.h>
#define REPORTING_PERIOD_MS 1000
// set the LCD number of columns and rows
int lcdColumns = 20;
int lcdRows = 4;
// set LCD address, number of columns and rows
// if you don't know your display address, run an I2C scanner sketch
LiquidCrystal_I2C lcd(0x27, lcdColumns, lcdRows);
#define DHTTYPE DHT22
#define DHTPIN 18
#define DS18B20 5
float temperature, humidity, BPM, SpO2, bodytemperature;
DHT dht(DHTPIN, DHTTYPE);
uint32_t tsLastReport = 0;
OneWire oneWire(DS18B20);
DallasTemperature sensors(&oneWire);
void setup() {
// initialize LCD
lcd.init();
// turn on LCD backlight
lcd.backlight();
Serial.begin(115200);
pinMode(19, OUTPUT);
delay(100);
// Initialize DHT sensor
Serial.println(F("DHTxx test!"));
dht.begin();
}
void loop() {
// Request temperature readings from sensors
sensors.requestTemperatures();
// Read temperature and humidity from DHT sensor
float t = dht.readTemperature();
String Temperature_Value = String(t);
float h = dht.readHumidity();
String Humidity_Value = String(h);
// Store sensor readings
temperature = t;
humidity = h;
BPM = 86.5;
SpO2 = 99.4;
bodytemperature = sensors.getTempCByIndex(0);
// Send sensor data at a fixed reporting period
if (millis() - tsLastReport > REPORTING_PERIOD_MS) {
Serial.print("Room Temperature: ");
Serial.print(t);
Serial.println("°C");
lcd.setCursor(0, 0);
// print message
lcd.print("R Temp: ");
lcd.print(t);
lcd.print("°C"); // corrected here
Serial.print("Room Humidity: ");
Serial.print(h);
Serial.println("%");
lcd.setCursor(0, 1);
// print message
lcd.print("R Hum: ");
lcd.print(h);
lcd.print("%"); // corrected here
Serial.print("BPM: ");
Serial.println(BPM);
lcd.setCursor(0, 2);
// print message
lcd.print("BPM: ");
lcd.print(BPM);
lcd.print("%");
lcd.print(" ");
Serial.print("SpO2: ");
Serial.print(SpO2);
Serial.println("%");
lcd.print("SpO2: ");
lcd.print(SpO2);
lcd.print("%"); // corrected here
Serial.print("Body Temperature: ");
Serial.print(bodytemperature);
Serial.println("°C");
Serial.println("*********************************");
Serial.println();
lcd.setCursor(0, 3);
lcd.print("b Temp: ");
lcd.print(bodytemperature);
lcd.print("°C"); // corrected here
tsLastReport = millis();
}
}