#include <SparkFunBME280.h> // более оптимизированная библиотека для bme280
#include <DHT.h> // библиотека dht ,модель выбиратется константой
#include <CD74HC4067.h> // библиотека мультиплексора, не нужно внутри кода перебирать каналы, выбирается нужный
#define DHT1PIN 8
#define DHT2PIN 9
#define DHTTYPE DHT22
DHT dht1(DHT1PIN, DHTTYPE);
DHT dht2(DHT2PIN, DHTTYPE);
CD74HC4067 Multiplexor_pin(4, 5, 6, 7); // подключенные пины мультиплексора
const int signal_input = A0; // входной сигнал с мультиплексора на 16 каналов
BME280 bme; // переменная для датчика давления bme280
void setup() {
bme.settings.commInterface = I2C_MODE;
bme.settings.I2CAddress = 0x76;
bme.settings.runMode = 3;
bme.settings.tStandby = 0;
bme.settings.filter = 0;
bme.settings.tempOverSample = 1;
bme.settings.pressOverSample = 1;
bme.settings.humidOverSample = 1;
}
void Scan_Multiplexor() {
float voltage_engine, voltage_logic, voltage_5v_line, voltage_backup_battery, voltage5;
float amper_engine, amper_logic, amper_manip, amper_pump;
float Temp_Engine, Temp_logic_battery, Temp_engine_battery, Temp_driver_engine, Temp_backup_battery, Temp_serv, Temp_Computer;
Multiplexor_pin.channel(0);
delay(1);
voltage_engine = analogRead(signal_input) / 40.92;
Multiplexor_pin.channel(1);
delay(1);
voltage_logic = analogRead(signal_input) / 40.92;
Multiplexor_pin.channel(2);
delay(1);
voltage_5v_line = analogRead(signal_input) / 40.92;
Multiplexor_pin.channel(3);
delay(1);
voltage_backup_battery = analogRead(signal_input) / 40.92;
Multiplexor_pin.channel(4);
delay(1);
voltage5 = analogRead(signal_input) / 40.92;
Multiplexor_pin.channel(5);
delay(1);
amper_engine = ((((analogRead(signal_input) / 1023) * 5000) - 2500) / 66);
Multiplexor_pin.channel(6);
delay(1);
amper_logic = ((((analogRead(signal_input) / 1023) * 5000) - 2500) / 66);
Multiplexor_pin.channel(7);
delay(1);
amper_manip = ((((analogRead(signal_input) / 1023) * 5000) - 2500) / 66);
Multiplexor_pin.channel(8);
delay(1);
amper_pump = ((((analogRead(signal_input) / 1023) * 5000) - 2500) / 66);
Multiplexor_pin.channel(9);
delay(1);
Temp_Engine = ((analogRead(signal_input) * 0.004888) - 0.5) * 100;
Multiplexor_pin.channel(10);
delay(1);
Temp_logic_battery = ((analogRead(signal_input) * 0.004888) - 0.5) * 100;
Multiplexor_pin.channel(11);
delay(1);
Temp_engine_battery = ((analogRead(signal_input) * 0.004888) - 0.5) * 100;
Multiplexor_pin.channel(12);
delay(1);
Temp_driver_engine = ((analogRead(signal_input) * 0.004888) - 0.5) * 100;
Multiplexor_pin.channel(13);
delay(1);
Temp_backup_battery = ((analogRead(signal_input) * 0.004888) - 0.5) * 100;
Multiplexor_pin.channel(14);
delay(1);
Temp_serv = ((analogRead(signal_input) * 0.004888) - 0.5) * 100;
Multiplexor_pin.channel(15);
delay(1);
Temp_Computer = ((analogRead(signal_input) * 0.004888) - 0.5) * 100;
}
void Scan_DHT22() {
float h1, h2, t1, t2;
h1 = dht1.readHumidity(); // влажность с датчика dht22
t1 = dht1.readTemperature(); // температура с датчика dht22
h2 = dht2.readHumidity();
t2 = dht2.readTemperature();
}
void scan_Bme() {
int Temp, Press, Humidity;
Temp = bme.readTempC(); // температура с датчика bme280
Press = bme.readFloatPressure() / 133.3; // давление с датчика bme280
Humidity = bme.readFloatHumidity(); // влажность с датчика bme280
}
void loop() {
}