#include "CQRobotTDS.h"
#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
CQRobotTDS tds(35);
Adafruit_MPU6050 mpu;
LiquidCrystal_I2C lcd(0x27, 20, 4);
unsigned long timeout = 0;
float BETA = 3950;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
lcd.init();
lcd.backlight();
Serial.println("Hello, ESP32!");
while (!mpu.begin()) {
Serial.println("MPU6050 not connected!");
delay(1000);
}
Serial.println("MPU6050 ready!");
}
sensors_event_t event;
void loop() {
// put your main code here, to run repeatedly:
int analogValue = analogRead(27);
float celsius = 1 / (log(1 / (1023. / analogValue - 1)) / BETA + 1.0 / 298.15) - 273.15;
float tdsValue = tds.update(celsius);
mpu.getAccelerometerSensor()->getEvent(&event);
mpu.getGyroSensor()->getEvent(&event);
if (timeout<millis())
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(celsius);
lcd.print(" C");
lcd.setCursor(0, 1);
lcd.print("TDS: ");
lcd.print(tdsValue, 0);
lcd.print(" ppm");
Serial.print("Temperature: ");
Serial.print(celsius);
Serial.println(" C");
Serial.print("TDS value: ");
Serial.print(tdsValue, 0);
Serial.println(" ppm");
Serial.print("Accelerometer x: ");
Serial.print(event.acceleration.x * 57.944954128);
Serial.print(" y: ");
Serial.print(event.acceleration.y * 57.33944954128);
Serial.print(" z: ");
Serial.println(event.acceleration.z * 57.33944954128);
Serial.println("");
timeout=millis() + 1000;
}
}