diff --git a/34.bin b/34.bin new file mode 100644 index 0000000..2afd0f2 Binary files /dev/null and b/34.bin differ diff --git a/M5Atom_airqa.ino b/M5Atom_airqa.ino index 8d8e8a9..6b87a2d 100644 --- a/M5Atom_airqa.ino +++ b/M5Atom_airqa.ino @@ -55,7 +55,7 @@ #define CCS811_ADDR 0x5B //Default I2C Address //#define CCS811_ADDR 0x5A //Alternate I2C Address -unsigned int VersionSW = 35; //65536 Версия прошивки +unsigned int VersionSW = 36; //65536 Версия прошивки //15 - добавлено то, се, забыл вообще дописать что добавленоSerial //19 - вывод в консоль всех действий, ошибки с обновлнеием - починил, прияногое мигание светодиодом, тест для поиска metrics. @@ -73,7 +73,8 @@ unsigned int VersionSW = 35; //65536 Версия прошивки //32 - рестарт без wifi //33 - бейслайн и куча изменений по переподключению mqtt //34 - правка с опросом, бесконечный цикл -//35 - закоменчен вывод ошибок available +//35 - закоменчен вывод ошибок available +//36 - настройка mqtt по ip и режимы датчика gpio_num_t pinWak = GPIO_NUM_23; @@ -88,7 +89,7 @@ StaticJsonDocument<200> doc, other; WiFiClient espClient; PubSubClient MqttClient(espClient); -IPAddress IpMqtt; +IPAddress IpMqtt(192,168,89,210); WiFiUDP ntpUDP; NTPClient timeClient(ntpUDP, "pool.ntp.org", 0, 60000); //Собственно сервер времени смещение и частоат запроса, но он вручную @@ -173,8 +174,9 @@ void setup() ledset(1, true); } - //ccs.setTempOffset(8.6); - ccs.setBaseline(25725); + ccs.setDriveMode(CCS811_DRIVE_MODE_10SEC); + //ccs.setTempOffset(8.6); + //ccs.setBaseline(25725); //Установка коеффициентов каллибровки по MAC адресу // SetCallibrationCoeff(); @@ -213,47 +215,11 @@ void setup() } //Запрос IP сервера MQTT и установка сервера - setMqttServer(); + MqttClient.setServer(IpMqtt, mqttPort); + reqNtpTime(); } -//Установка сервера и порта -void setMqttServer() -{ - mdns_init(); - - IPAddress IpMqtt, ipaddr; - ipaddr = MDNS.queryHost(mqttHostName); - if (ipaddr.toString() == "0.0.0.0") - { - Serial.println("MDNS.queryHost==0.0.0.0"); - int err = WiFi.hostByName(mqttHostName, IpMqtt); - if (err == 1) - { - setServCall(IpMqtt); - } - else - { - Serial.print("Error code hostByName(): "); - Serial.println(err); - } - } - else - { - setServCall(ipaddr); - } -} - -int setServCall(IPAddress SetIpaddr) -{ - //////Serial.println("setServCall"); - //////Serial.println(SetIpaddr); - MqttClient.setServer(SetIpaddr, mqttPort); - // MqttClient.setCallback(callback); - ////////Serial.println("Set MQTT Server - OK") ; - return 0; -} - int reqNtpTime() { if (timeClient.update()) @@ -418,7 +384,7 @@ int SetCallibrationCoeff(String MacThat) TempAv += -6.91; HumAv += 7.95; } - + if (MacThat == "5002918A38CC") { TempAv += -5.72; diff --git a/M5Atom_airqa.ino.m5stick_c.bin b/M5Atom_airqa.ino.m5stick_c.bin index 2afd0f2..2024637 100644 Binary files a/M5Atom_airqa.ino.m5stick_c.bin and b/M5Atom_airqa.ino.m5stick_c.bin differ diff --git a/README.md b/README.md index b2aacda..30caa0b 100644 --- a/README.md +++ b/README.md @@ -37,24 +37,12 @@ https://savjee.be/2019/12/esp32-tips-to-increase-battery-life/ Если устройство находится в рекомендуемом рабочем диапазоне (относительная влажность от 10% до 70% и температура от -20 до 70 ° C), то не нужно часто калибровать (длительный дрейф составляет ± 0,25% относительной влажности / год). Датчик CCS811 не может измерять концентрацию СО2 непосредственно и выдает рассчитанные "эквивалентные" значения СО2, которые при высокой концентрации ЛОВ оказываются сильно завышенными. Датчики настроены на точность 14 бит.

-Характеристики HDC1080:
-• Робоча температура: -20 ° C ~ 70 ° C
-• Діапазон вимірювання датчика вологості: 0 ~ 100% RH
-• Точність датчика вологості: похибка 14 біт ± 2% відносної вологості
-• Точність повторюваності вологості: ± 0.1% RH
-• Час відгуку датчика вологості: 15с
-• Час вимірювання вологості: 8 біт 2,5 мс, 11 біт 3,85 мс, 14 біт 6,5 ms
-• Точність датчика температури: ± 0,4 ° C (температура навколишнього середовища Температура 5 ° C ~ 60 ° C)
-• Повторюваність вимірювання температури: ± 0,1 ° C
-• Час вимірювання температури: 11 біт 3,85 мс, 14 біт 6,5 мс
-• Напруга живлення: рекомендується 3,3 В
-Характеристики CCS811:
-• Напруга живлення: рекомендується 3,3 V
-• Робоча частота інтерфейсу I2C: 400 кГц
-• Діапазон виявлення eTVOC: 0 ~ 32768ppb
-• Діапазон виявлення eCO2: 400 ~ 32768ppm
-• Автоматичний час корекції вихідних умов для чутливого шару оксиду металу: 24 години
-• Можливість налаштування і зчитування часу датчика після включення: не менше 20 хвилин
+ +TVOC +0ppb to 1187ppb + +eCO2 +400ppm to 8192ppm.

@@ -118,15 +106,6 @@ RST - это вывод сброса. Когда его тянут на земл Сразу уточню, основное назначение датчика — контроль TVOC. Измерение эквивалентного значения СО2 — вспомогательный функционал. Как и у других недорогих датчиков с селективностью не все хорошо. -Характеристики: -1) eCO2 maximum output value to 64000 ppm -2) TVOC maximum output value to 64000 ppm -3) напряжение питания: 1,8…3,3 В; -4) период опроса: 0,25/ 1/10/ 60 с -5) коммуникационный интерфейс: 400 кГц I2C; -6) корпус: 10-выводной LGA 2.7 × 4.0 × 1.1 мм. -7) диапазон рабочих температур: -40…+85 °C; - А теперь то, о чем вы должны знать перед использованием: Что нужно знать перед использованием: Все пайки производим при закрытом изолентой датчиком. Не допускаем попадания паров флюса в датчик. При первом включении необходимо выдержать датчик под напряжением 24-48 часов для стабилизации характеристик сенсора. Настоятельно рекомендую проверить версию прошивку. С Китая приходят с версией 1.1.0. На сайте производителя уже давно лежит прошивка 2.0.1. @@ -172,4 +151,45 @@ RST - это вывод сброса. Когда его тянут на земл ПОДКЛЮЧЕНИЕ ДЛЯ SSL -http://www.iotsharing.com/2017/08/how-to-use-esp32-mqtts-with-mqtts-mosquitto-broker-tls-ssl.html \ No newline at end of file +http://www.iotsharing.com/2017/08/how-to-use-esp32-mqtts-with-mqtts-mosquitto-broker-tls-ssl.html + + + + +САМАЯ ПРАВИЛЬНАЯ НАСТРОЙКА + + +Manual Baseline Correction +There is a mechanism within CCS811 to manually save and +restore a previously saved baseline value using the BASELINE +register. +The correct time to save the baseline will depend on the +customer use-case and application. +• For devices which are powered for >24 hours at a time: +• During the first 500 hours – save the baseline every +24-48 hours. +• After the first 500 hours – save the baseline every 5-7 +days. +• For devices which are powered <24 hours at a time: +• If the device is run in, save the baseline before power +down +• If multiple operating modes are used, a separate +baseline should be stored for each +• The baseline should only be restored when the +resistance is stable (typically 20-30 minutes) +• If changing from a low to high power mode (without +spending at least 10 minutes in idle), the sensor +resistance should be allowed to settle again before +restoring the baseline +ams Datasheet Page 11 +[v1-00] 2016-Dec-23 Document Feedback +CCS811 − Detailed Description +Note(s): +1. If a value is written to the BASELINE register while the +sensor is stabilising, the output of the TVOC and eCO2 +calculations may be higher than expected. +2. The baseline must be written after the conditioning +period +For additional information on using the CCS811 please refer to +application note ams AN000369: CCS811 Programming and +Interfacing Guide. \ No newline at end of file