Статический Ip адрес, режим работы датчика

master
SmartUaWIn 2021-03-27 00:17:24 +02:00
parent 46a1131229
commit 9ec7e03635
4 changed files with 58 additions and 72 deletions

BIN
34.bin Normal file

Binary file not shown.

View File

@ -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;

Binary file not shown.

View File

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