#include <Wire.h>
#include <LiquidCrystal_I2C.h>
const int sensorPin = A0; // etalon sensor
const int tempSensor2Pin = A1; //o'lchovchi sensor
const int ledPin = 2; // LED chiroqning pinningizni 2 ga o'rnatamiz
const int buzzerPin = 3; // Buzzerning pinningizni 13 ga o'rnatamiz
int val, val2;
float R1 = 10000; // Termistorning R1 qiymatini beramiz
float logR2, R2, temp, temp2;
float c1 = 0.001129148; // Steinhart-Hart koeffitsientlari
float c2 = 0.000234125;
float c3 = 0.0000000876741;
// LCDni sozlash
LiquidCrystal_I2C lcd(0x27, 16, 2); // LCD I2C manzilini va o'lchamini aniqlaymiz
void setup() {
pinMode(ledPin, OUTPUT); // LED chiroqni chiqaruvchi soddalashtirish
pinMode(buzzerPin, OUTPUT); // Buzzer soddalashtirish
lcd.init(); // LCDni boshlaymiz
lcd.backlight(); // Fonni yoqamiz
Serial.begin(9600);
}
void loop() {
// etalon harorat sensori
val = analogRead(sensorPin); // Sensordan qiymat olish
R2 = R1 * (1023.0 / (float)val - 1.0); // Termistorning rezistansini hisoblaymiz
logR2 = log(R2);
temp = (1.0 / (c1 + c2 * logR2 + c3 * logR2 * logR2 * logR2)); // Haroratni K ga o'tkazamiz
temp = temp - 273.15; // Haroratni °C ga o'tkazamiz
// o'lchovchi harorat sensori
val2 = analogRead(tempSensor2Pin); // Qo'shimcha sensordan qiymat olish
R2 = R1 * (1023.0 / (float)val2 - 1.0);
logR2 = log(R2);
temp2 = (1.0 / (c1 + c2 * logR2 + c3 * logR2 * logR2 * logR2));
temp2 = temp2 - 273.15;
// LCD ekranida ma'lumotlarni ko'rsatish
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Harorat:");
lcd.print(temp2);
lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("Etanol:");
lcd.print(temp);
lcd.print("C");
// Serial monitor uchun
Serial.print("Harorat1: ");
Serial.print(temp);
Serial.println(" C");
Serial.print("Harorat2: ");
Serial.print(temp2);
Serial.println(" C");
int qiymat=temp2-temp;
// Etanol kritik qiymatidan ogohlantirish
if (qiymat>2 && temp2>temp) { // Agar konsentratsiya 50% dan oshsa
for (int i = 0; i <= 3; i++) {
digitalWrite(ledPin, HIGH); // LEDni yoqamiz
tone(buzzerPin, 720, 500); // Buzzer orqali ovoz chiqaramiz
delay(500);
}
} else {
digitalWrite(ledPin, LOW); // LEDni o'chiramiz
noTone(buzzerPin); // Buzzerni o'chiramiz
}
delay(1000); // 1 soniya kutish
}