Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
у вас, при розничной закупке, себестоимость 44$. У массового продукта с оптовыми закупочными ценами цена реализации — over 100$
условий с более 100ppm на старте не было
Кстати, сколько у вас времени ушло с STM32 до почти готового решения?
Датчик температуры и влажности иногда возвращает левые огромные значения. Их я просто отсекаю, но вообще неприятно. Возможно, сказывается общая запитка или некачественное соединение.
float getCorrectionFactor(float t, float h) {
return CORA * t * t - CORB * t + CORC - (h-33.)*CORD;
}
char packet[9];
char j;
char checksum;
void setup() {
Serial.begin(9600);
Serial1.begin(9600);
}
void loop() {
Serial1.write(readCommand, 9);
Serial1.readBytes(packet, 9);
int high = (int) packet[2];
int low = (int) packet[3];
int ppm = 256 * high + low;
for( j = 1; j < 8; j++)
{
checksum += packet[j];
}
checksum = 0xff - checksum;
checksum += 1;
if(checksum == packet[8]){
Serial.println("OK");
}
Serial.println(ppm);
delay(5000);
}if (response[0] != 0xFF)
{
Serial.println("Wrong starting byte from co2 sensor!");
return -1;
}
if (response[1] != 0x86)
{
Serial.println("Wrong command from co2 sensor!");
return -1;
}
Ещё один способ определения качества воздуха на Arduino — с передачей данных в сеть