Датчик качества воздуха CCS811
- Войдите на сайт для отправки комментариев
Чт, 05/07/2018 - 13:12
Добрый день!
Взял Arduino UNO и датчик CCS811.
Как написано в магазине, датчик работает на 3.3 вольта, по этому купил преобразователь уровней 5V-3V.
Подключил преобразователь к ардуино:
5V - HV
GND - GND
A4 - HV1
A5 - HV2
Подключил датчик к преобразователю
VCC - LV
GND - GND
SDA - LV1
SCL - LV2
Запустил стандартный скетч (внизу поста), но он всегда выдёт ошибку "Failed to start sensor! Please check your wiring."
Я купил неправильные штуки или соединил неправильно?
Как диагностировать проблему?
Спасибо!
#include "Adafruit_CCS811.h" Adafruit_CCS811 ccs; void setup() { Serial.begin(9600); Serial.println("CCS811 test"); if(!ccs.begin()){ Serial.println("Failed to start sensor! Please check your wiring."); while(1); } //calibrate temperature sensor while(!ccs.available()); float temp = ccs.calculateTemperature(); ccs.setTempOffset(temp - 25.0); } void loop() { if(ccs.available()){ float temp = ccs.calculateTemperature(); if(!ccs.readData()){ Serial.print("CO2: "); Serial.print(ccs.geteCO2()); Serial.print("ppm, TVOC: "); Serial.print(ccs.getTVOC()); Serial.print("ppb Temp:"); Serial.println(temp); } else{ Serial.println("ERROR!"); while(1); } } delay(500); }
смотрим спецификацию
Спецификация:
Померяйте напряжение на LV - есть ли там 3.3V
Ну и, само-собой, преобразователь может на скоростях I2C не тащить
Это значит, что мне нужно купить другой преоброзователь?
Будет ли работать через такой дилитель напряжения?
Это значит, что сначала нужно измерения на LV провести.
Я игрался с двумя такими датчиками, купленными у китайцев
Первый умер почти сразу с HEATER_FAULT, не успев дойти до завершения тестов. Второй жив, но выдает иногда не совсем то, что от него ждешь.
Но библиотеку использовал не ардуиновскую, а доработанную отсюда:
Оставшийся в живых датчик после включения работает вроде как нормально в течении нескольких часов и меняет показания в результате внешних воздействий (подышать на датчик, открыть/закрыть окна), а потом переводит в режим показаний "мы все уже должны умереть". После переподключения питания снова "ну, в целом, всё ОК". В причинах так и не разобрался, забросив тесты до лучших времен
Пример лога с передергиванием пиитания:
Посмотрите вышеприведенную ссылку на библиотеку
Инициализация устройства проста:
1. Включаем питание (устройство переходит в boot-mode)
2. Перевод датчика в APP-MODE
3. Проверка, что APP-MODE установился
4. Задание частоты сбора показаний (MEAS-MODE)
На всех этапах можно считывать статусный регистр. STATUS + ERROR_ID должны обо всём рассказать
Я игрался с двумя такими датчиками, купленными у китайцев
Первый умер почти сразу с HEATER_FAULT, не успев дойти до завершения тестов. Второй жив, но выдает иногда не совсем то, что от него ждешь.
Без Level shifter подключали?
В адафрутовской библиотеке адрес забит 0x5A но у css811 он может быть и 0x5B.
Вы бы сначала сканером поискали ваш I2C модуль, сканер лежит здесь https://playground.arduino.cc/Main/I2cScanner
А вот когда сканер найдет адрес 0x5A или 0x5B тогда и дальше эксперементируйте. У меня модуль подключен через PCA9515 описание тут https://www.nxp.com/docs/en/data-sheet/PCA9515.pdf
С адресами такое там:
А вот когда сканер найдет адрес 0x5A или 0x5B тогда и дальше эксперементируйте. У меня модуль подключен через PCA9515 описание тут https://www.nxp.com/docs/en/data-sheet/PCA9515.pdf
Как он в деле? С MH-Z19B сравнивали?
Я игрался с двумя такими датчиками, купленными у китайцев
Первый умер почти сразу с HEATER_FAULT, не успев дойти до завершения тестов. Второй жив, но выдает иногда не совсем то, что от него ждешь.
Оставшийся в живых датчик после включения работает вроде как нормально в течении нескольких часов и меняет показания в результате внешних воздействий (подышать на датчик, открыть/закрыть окна), а потом переводит в режим показаний "мы все уже должны умереть". После переподключения питания снова "ну, в целом, всё ОК". В причинах так и не разобрался, забросив тесты до лучших времен
У меня оба живы, но поведение такое же как ты и описал.
В даташите на 10 странице (https://cdn.sparkfun.com/assets/learn_tutorials/1/4/3/CCS811_Datasheet-D... ) сказано про Automatic Baseline Correction и Manual Baseline Correction, вобщем не все так просто с датчиком как бы хотелось, я усредняю показания за минуту, тогда результат нормальный. Но за время инкубации (21 день) стабильно 2 раза выдает тревогу на пустом месте :-(
Что-то не разобрался с ссылками на картинки :(
Здесь "схема". Как раз фиксировал перед разборкой
https://yadi.sk/i/fGrB7BX33YoQkn
https://yadi.sk/i/7snUo7Rf3YoRBL
Да, думал в сторону Baseline Correction, но руки так и не дошли
https://www.terraelectronica.ru/news/4996
На плате ENS-CCS811-SB кроме датчика CCS811 расположен датчик температуры и влажности ENS210. Эти сенсоры используют общую шину I2C для связи с мостовой микросхемой CP2112 (рис. 9). Используя данные от ENS210, пользователь всегда сможет компенсировать температурную погрешность CCS811.
Мож тут собака порылась?
А вот когда сканер найдет адрес 0x5A или 0x5B тогда и дальше эксперементируйте. У меня модуль подключен через PCA9515 описание тут https://www.nxp.com/docs/en/data-sheet/PCA9515.pdf
Как он в деле? С MH-Z19B сравнивали?
Смотря для каких целей, для инкубатора и подобных ему конструкций где надо автоматически измерять CO2 и в зависимости от показаний принмать решение, точно не рекомендую. Показывать качество воздуха и содежание CO2 в помещении может, сенcор в ccs811 такой же как и в датчиках серии MQ.
Показания MH-Z19B и ccs811 не сравнивал, MH-Z19B позже купил. Но может если прикручу к никубатору MH-Z19B то сравню.
Если как MQ, то вопросов нет. Я MH-Z19B пользуюсь (без курятника) - претензий нет. Правда, первый подозрительно быстро подох, но второй молотит второй год уже.
https://www.terraelectronica.ru/news/4996
На плате ENS-CCS811-SB кроме датчика CCS811 расположен датчик температуры и влажности ENS210. Эти сенсоры используют общую шину I2C для связи с мостовой микросхемой CP2112 (рис. 9). Используя данные от ENS210, пользователь всегда сможет компенсировать температурную погрешность CCS811.
Мож тут собака порылась?
На али есть такой вот совмещенный модуль, хотел его прикупить для второго инкубатора.
https://ru.aliexpress.com/item/CCS811-HDC1080-CO/32867324285.html
ccs811 может работать как с коррекцией используя температуру и влажность так и без нее. У меня сейчас работает связка ccs811 и si7021. Но после того как ccs811 показал себя не с лучшей стороны, решено было следующий инкубатор делать на SHT30 и MH-Z19B
Если как MQ, то вопросов нет. Я MH-Z19B пользуюсь (без курятника) - претензий нет. Правда, первый подозрительно быстро подох, но второй молотит второй год уже.
The CCS811 is an ultra-low power digital gas sensor solution which integrates a metal oxide (MOX) gas sensor