#include <Arduino.h>
#include "DHTSensor.h"
#include "MPU6050Sensor.h"
#include "MAX30102Sensor.h"
#include "GPSSensor.h"
#include "MLX90614Sensor.h"
#include "DisplayManager.h"
// TFT pins
#define TFT_CS 5
#define TFT_DC 2
#define TFT_RST 25
DisplayManager display(TFT_CS, TFT_DC, TFT_RST);
// DHT22
#define DHTPIN 38
#define DHTTYPE DHT22
DHTSensor dht22(DHTPIN, DHTTYPE);
// Sensors
MPU6050Sensor mpuSensor;
MAX30102Sensor maxSensor;
GPSSensor gpsSensor(18, 17);
MLX90614Sensor mlxSensor;
void setup() {
Serial.begin(115200);
dht22.begin();
mpuSensor.begin(21, 20);
maxSensor.begin(21, 20, 0x57);
gpsSensor.begin();
mlxSensor.begin(20, 21);
display.begin();
Serial.println("All sensors initialized...");
}
void loop() {
delay(2000);
dht22.readAndPrint();
mpuSensor.readAndPrint();
maxSensor.readAndPrint();
gpsSensor.readAndPrint();
mlxSensor.readAndPrint();
double ambient = mlxSensor.getAmbient();
double object = mlxSensor.getObject();
GPSValues gps = gpsSensor.getValues();
display.clearScreen();
DHTValues dhtValues = dht22.getValues();
display.printDHT(dhtValues.humidity, dhtValues.tempC, dhtValues.tempF);
display.printMLX(ambient, object);
display.printMAX30102(maxSensor.getRedValue(), maxSensor.getIRValue());
MPUValues mv = mpuSensor.getValues();
display.printMPU(mv.ax, mv.ay, mv.az, mv.gx, mv.gy, mv.gz, mv.temperatureC);
display.printGPS(gps.lat, gps.lng, gps.speed);
delay(5000);
}