diff --git a/include/YourSensor.h b/include/YourSensor.h index 9c3b72c8..fdef14b9 100644 --- a/include/YourSensor.h +++ b/include/YourSensor.h @@ -1,9 +1,13 @@ #pragma once #include -float yourSensorReading(String type, String addr); +extern float yourSensorReading(String type, String addr); -void HDC1080_init(String addr); -void AHTX0_init(); -void LCD_init(); -void BH1750_init(); +extern void HDC1080_init(String addr); +extern void AHTX0_init(); +extern void LCD_init(); +extern void BH1750_init(); + +//extern SoftwareSerial K_30_Serial; +extern unsigned long getValue(byte packet[]); +extern void sendRequest(byte packet[]); \ No newline at end of file diff --git a/src/YourSensor.cpp b/src/YourSensor.cpp index 04b3cca1..3e6e9ff5 100644 --- a/src/YourSensor.cpp +++ b/src/YourSensor.cpp @@ -28,6 +28,23 @@ BH1750 lightMeter; //создаем объект ADS1015 // Adafruit_ADS1015 ads; +// co2 sensor +SoftwareSerial K_30_Serial(13, 15); //Программный порт +byte readCO2[] = {0xFE, 0X44, 0X00, 0X08, 0X02, 0X9F, 0X25}; //Команды для запроса показаний с датчика +byte response[] = {0, 0, 0, 0, 0, 0, 0}; //массив для ответа от датчика +unsigned long getValue(byte packet[]) { + int high = packet[3]; //верхний байт показания СО2 + int low = packet[4]; //нижний байт показания СО2 + unsigned long val_1 = high * 256 + low; //соединяем байты + return val_1; +} +void sendRequest(byte packet[]) { + while (!K_30_Serial.available()) { + K_30_Serial.write(readCO2, 7); + delay(50); + } +} + float yourSensorReading(String type, String paramsAny) { float value; //========================================================HDC1080================================================================ @@ -62,6 +79,14 @@ float yourSensorReading(String type, String paramsAny) { BH1750_init(); value = lightMeter.readLightLevel(); } + //==========================================================BH1750================================================================= + if (type == "valCO2") { + K_30_Serial.begin(9600); + sendRequest(readCO2); + int valCO2 = getValue(response); + value = valCO2; + // Serial.println(valCO2); + } return value; }