Статический Ip адрес, режим работы датчика
parent
46a1131229
commit
9ec7e03635
|
@ -55,7 +55,7 @@
|
||||||
#define CCS811_ADDR 0x5B //Default I2C Address
|
#define CCS811_ADDR 0x5B //Default I2C Address
|
||||||
//#define CCS811_ADDR 0x5A //Alternate I2C Address
|
//#define CCS811_ADDR 0x5A //Alternate I2C Address
|
||||||
|
|
||||||
unsigned int VersionSW = 35; //65536 Версия прошивки
|
unsigned int VersionSW = 36; //65536 Версия прошивки
|
||||||
|
|
||||||
//15 - добавлено то, се, забыл вообще дописать что добавленоSerial
|
//15 - добавлено то, се, забыл вообще дописать что добавленоSerial
|
||||||
//19 - вывод в консоль всех действий, ошибки с обновлнеием - починил, прияногое мигание светодиодом, тест для поиска metrics.
|
//19 - вывод в консоль всех действий, ошибки с обновлнеием - починил, прияногое мигание светодиодом, тест для поиска metrics.
|
||||||
|
@ -74,6 +74,7 @@ unsigned int VersionSW = 35; //65536 Версия прошивки
|
||||||
//33 - бейслайн и куча изменений по переподключению mqtt
|
//33 - бейслайн и куча изменений по переподключению mqtt
|
||||||
//34 - правка с опросом, бесконечный цикл
|
//34 - правка с опросом, бесконечный цикл
|
||||||
//35 - закоменчен вывод ошибок available
|
//35 - закоменчен вывод ошибок available
|
||||||
|
//36 - настройка mqtt по ip и режимы датчика
|
||||||
|
|
||||||
gpio_num_t pinWak = GPIO_NUM_23;
|
gpio_num_t pinWak = GPIO_NUM_23;
|
||||||
|
|
||||||
|
@ -88,7 +89,7 @@ StaticJsonDocument<200> doc, other;
|
||||||
WiFiClient espClient;
|
WiFiClient espClient;
|
||||||
PubSubClient MqttClient(espClient);
|
PubSubClient MqttClient(espClient);
|
||||||
|
|
||||||
IPAddress IpMqtt;
|
IPAddress IpMqtt(192,168,89,210);
|
||||||
|
|
||||||
WiFiUDP ntpUDP;
|
WiFiUDP ntpUDP;
|
||||||
NTPClient timeClient(ntpUDP, "pool.ntp.org", 0, 60000); //Собственно сервер времени смещение и частоат запроса, но он вручную
|
NTPClient timeClient(ntpUDP, "pool.ntp.org", 0, 60000); //Собственно сервер времени смещение и частоат запроса, но он вручную
|
||||||
|
@ -173,8 +174,9 @@ void setup()
|
||||||
ledset(1, true);
|
ledset(1, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ccs.setDriveMode(CCS811_DRIVE_MODE_10SEC);
|
||||||
//ccs.setTempOffset(8.6);
|
//ccs.setTempOffset(8.6);
|
||||||
ccs.setBaseline(25725);
|
//ccs.setBaseline(25725);
|
||||||
//Установка коеффициентов каллибровки по MAC адресу
|
//Установка коеффициентов каллибровки по MAC адресу
|
||||||
// SetCallibrationCoeff();
|
// SetCallibrationCoeff();
|
||||||
|
|
||||||
|
@ -213,47 +215,11 @@ void setup()
|
||||||
}
|
}
|
||||||
|
|
||||||
//Запрос IP сервера MQTT и установка сервера
|
//Запрос IP сервера MQTT и установка сервера
|
||||||
setMqttServer();
|
MqttClient.setServer(IpMqtt, mqttPort);
|
||||||
|
|
||||||
reqNtpTime();
|
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()
|
int reqNtpTime()
|
||||||
{
|
{
|
||||||
if (timeClient.update())
|
if (timeClient.update())
|
||||||
|
|
Binary file not shown.
74
README.md
74
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, которые при высокой концентрации ЛОВ оказываются сильно завышенными.
|
Если устройство находится в рекомендуемом рабочем диапазоне (относительная влажность от 10% до 70% и температура от -20 до 70 ° C), то не нужно часто калибровать (длительный дрейф составляет ± 0,25% относительной влажности / год). Датчик CCS811 не может измерять концентрацию СО2 непосредственно и выдает рассчитанные "эквивалентные" значения СО2, которые при высокой концентрации ЛОВ оказываются сильно завышенными.
|
||||||
Датчики настроены на точность 14 бит.
|
Датчики настроены на точность 14 бит.
|
||||||
<br/><br/>
|
<br/><br/>
|
||||||
Характеристики HDC1080:<br/>
|
|
||||||
• Робоча температура: -20 ° C ~ 70 ° C<br/>
|
TVOC
|
||||||
• Діапазон вимірювання датчика вологості: 0 ~ 100% RH<br/>
|
0ppb to 1187ppb
|
||||||
• Точність датчика вологості: похибка 14 біт ± 2% відносної вологості<br/>
|
|
||||||
• Точність повторюваності вологості: ± 0.1% RH<br/>
|
eCO2
|
||||||
• Час відгуку датчика вологості: 15с<br/>
|
400ppm to 8192ppm.
|
||||||
• Час вимірювання вологості: 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/>
|
|
||||||
|
|
||||||
<br/><br/>
|
<br/><br/>
|
||||||
|
|
||||||
|
@ -118,15 +106,6 @@ RST - это вывод сброса. Когда его тянут на земл
|
||||||
|
|
||||||
Сразу уточню, основное назначение датчика — контроль TVOC. Измерение эквивалентного значения СО2 — вспомогательный функционал. Как и у других недорогих датчиков с селективностью не все хорошо.
|
Сразу уточню, основное назначение датчика — контроль 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.
|
Что нужно знать перед использованием: Все пайки производим при закрытом изолентой датчиком. Не допускаем попадания паров флюса в датчик. При первом включении необходимо выдержать датчик под напряжением 24-48 часов для стабилизации характеристик сенсора. Настоятельно рекомендую проверить версию прошивку. С Китая приходят с версией 1.1.0. На сайте производителя уже давно лежит прошивка 2.0.1.
|
||||||
|
@ -173,3 +152,44 @@ RST - это вывод сброса. Когда его тянут на земл
|
||||||
|
|
||||||
ПОДКЛЮЧЕНИЕ ДЛЯ SSL
|
ПОДКЛЮЧЕНИЕ ДЛЯ 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.
|
Loading…
Reference in New Issue