Arduino nano + dht11 + MH-z19B+lcd i2c+крона (сбои)

Levch
Offline
Зарегистрирован: 03.04.2018

Привет, знатокам!!

Пожалуйста, помогите разобраться.

Делаю датчик качества воздуха (СО2, влажность, температура) на AN.

 

Скетч такой:

#include <Wire.h> 
#include <SoftwareSerial.h>;
#include <LiquidCrystal_I2C.h>
#include <iarduino_DHT.h> // Подключаем библиотеку для работы с датчиком DHT
iarduino_DHT sensor(8);
LiquidCrystal_I2C lcd(0x27,16,2);  // Устанавливаем дисплей

//#define pwmPin 5

//#define LedPin 13

//int prevVal = LOW;
//long th, tl, h, l, ppm;
int t2;
int h2;
SoftwareSerial mySerial(A0, A1); // A0 - к TX сенсора, A1 - к RX

byte cmd[9] = {0xFF,0x01,0x86,0x00,0x00,0x00,0x00,0x00,0x79}; 
//unsigned 
char response[9];



void setup()
{
  lcd.init();                     
  lcd.backlight();// Включаем подсветку дисплея
  lcd.print("CO2=");
  Serial.begin(9600);
  mySerial.begin(9600);

}
void loop()
{
mySerial.write(cmd,9);//запрос PPM CO2
mySerial.readBytes(response, 9);
int responseHigh = (int) response[2];
int responseLow = (int) response[3];
int ppm = (256*responseHigh)+responseLow;
// ну и по мануалу из ответа считаем PPM

// Serial.println(ppm);  
      lcd.setCursor(4, 0);
      lcd.print(ppm);
    
  switch(sensor.read()){ 
        delay(1000);// Читаем показания датчика
    case DHT_OK:            // Serial.println((String) sensor.hum + "% - " + sensor.tem + "*C"); 
    t2 = sensor.tem;
    h2 = sensor.hum;


  }
    lcd.setCursor(0, 1); 
    lcd.print(t2);
    lcd.setCursor(2, 1); lcd.print("*C "); lcd.setCursor(5, 1); lcd.print(h2); lcd.setCursor(7, 1); lcd.print("%"); 
 delay(10000);
  
  }

Взят из разных мест интернета.

Крону (9,8В) припаял к Vin ардуинки.

По результату прибор какое-то время показывает все данные, но меньше чем через минуту начинает моргать, потом пересстают отображаться данные и на экране светится только "CO2=". 

Подскажите, пожалуйста, где собака зарыта.

andriano
andriano аватар
Онлайн
Зарегистрирован: 20.06.2015

1. Приведите полностью схему (включая разводку питания).

2. Посмотрите, как изменяется напряжение на Кроне со временем.

sadman41
Offline
Зарегистрирован: 19.10.2016

Припаяй нормальный источник питания, а не крону.

Levch
Offline
Зарегистрирован: 03.04.2018

Схема такая:

Действительно, на кроне упало напряжение до 5 вольт О_о

Это откуда такой жор может быть? Или в самой батарейке дело? 

Levch
Offline
Зарегистрирован: 03.04.2018

Какой, например? 3 пальчиковых аккумулятора? Наверное, но они места много занимают.

А что с кроной не так? Это норм что она нагрузку вообще не держит? (пока писал напряжение упало до 4,6в)

SLKH
Offline
Зарегистрирован: 17.08.2015

Levch пишет:

Какой, например? 3 пальчиковых аккумулятора? Наверное, но они места много занимают.

1. считаешь или измеряешь потребляемый ток, 2. определяешь (для автономного источника) требуемое время работы, 3. выбираешь источник питания.

3 пальчиковых или 1 6СТ190 - мы не знаем.

 

Цитата:
А что с кроной не так? Это норм что она нагрузку вообще не держит? (пока писал напряжение упало до 4,6в)

нормально - она на такие нагрузки не рассчитана. хотя они очень разные бывают в одном форм-факторе.

bortnik27
Offline
Зарегистрирован: 23.06.2019

Питать дисплей от батареи это утопия, тяните блок питания.

А с учетом цены кроны это вообще бред, у вас ее (кроны) будет хватать на пару дней, максимум неделя.

Я тоже все хотел портативные показометры делать, но там нужен монохромный ЖК дисплей как в калькуляторах, но таких особо не находил, чтобы например 128*64

andriano
andriano аватар
Онлайн
Зарегистрирован: 20.06.2015

Levch, если так уж совсем необходимо питать дисплей именно от Кроны, то существует единственный выход: должна быть кнопка, которая зажигает дисплей на несколько секунд. И, соответственно, смотреть показания можно только по нажатии на кнопку.

Если планируется именно автономное питание, то а любом случае следует взять что-нибудь помощнее, например, 18650 и, соответственно, как Ардуина, так и дисплей на 3.3 В. Разумеется, режим "включать на несколько секунд" остается в силе. Но кроме того лучше либо вообще отключить подсветку дисплея, либо, по крайней мере, сделать ее менее яркой.

Ну - либо питание от сети. Собственно, это практически единственный вариант, если требуется постоянная индикация.

sadman41
Offline
Зарегистрирован: 19.10.2016

bortnik27 пишет:

Я тоже все хотел портативные показометры делать, но там нужен монохромный ЖК дисплей как в калькуляторах, но таких особо не находил, чтобы например 128*64


Типа такого не подойдёт?

Графический ЖК-модуль 54X50MM 12864 128X64 COG, ЖК-дисплей, экран lсм ST7565P/R, поддержка параллельных/серийный SPI
https://a.aliexpress.ru/_eNALXh

В том магазе ещё покопаться можно.

SLKH
Offline
Зарегистрирован: 17.08.2015

Дисплей-дисплеем, а MH-z19B игнорируем? А его греть надо, включать на пару - тройку секунд не получится.

 

sadman41
Offline
Зарегистрирован: 19.10.2016

MHZ греть не надо, он оптический ) это китайцы с дури в даташите preheat time пишут.

А так производитель обещает 60mA среднего и 150mA пикового потребления.

bortnik27
Offline
Зарегистрирован: 23.06.2019

sadman41 пишет:
@SLKH правильно говорит, есть еще датчик который должен работать на постоянке, дисплей возможно будет есть не так много без подсветки и скажем пара банок 18650 продлят жизнь до месяца может двух, но это тоже надо просчитывать, что будет в жизни. Лучше кинуть обычную зарядку, да и провод можно взять длинный, потери не будут страшны

У кроны около 400мА, т.е. те же 60мА разрядят ее за сутки. Вот вам и прехеат в  150 мА, они же вам не полы в ванной греют, а маленький датчик

P.S. Что со шрифтом не знаю

Genri5
Offline
Зарегистрирован: 31.05.2016

В таком варианте, можно поставить кнопку включения питания без фиксации. Нажал, просмотрел информацию и выключил. Но все равно я бы с кроной не связывался. Лучше аккумулятор какой нибудь подобрать.

SLKH
Offline
Зарегистрирован: 17.08.2015

sadman41 пишет:
MHZ греть не надо, он оптический ) это китайцы с дури в даташите preheat time пишут. А так производитель обещает 60mA среднего и 150mA пикового потребления.
не надо, так не надо.

Всё равно токи не кроновские.

bortnik27
Offline
Зарегистрирован: 23.06.2019

sadman41 пишет:
MHZ греть не надо, он оптический ) это китайцы с дури в даташите preheat time пишут. А так производитель обещает 60mA среднего и 150mA пикового потребления.

Вот для общего развития

5В, 100 мА.

5В, 50мА.

Так, что необходимые 60-80° он нагреет легко.

Кстати на первом фото 0,5 Вт на китайских резисторах из набора в 300 штук, после пары минут сопротивление в пределах погрешности.

sadman41
Offline
Зарегистрирован: 19.10.2016

Мне эти картинки должны показать, что MHZ до 100C греется или что?

SLKH
Offline
Зарегистрирован: 17.08.2015

sadman41 пишет:

Мне эти картинки должны показать, что MHZ до 100C греется или что?

и при чем тут северная атлантика?

bortnik27
Offline
Зарегистрирован: 23.06.2019

sadman41 пишет:

Мне эти картинки должны показать, что MHZ до 100C греется или что?

То что 150 mA это вполне реальный показатель того, что датчик имеет прогрев, и к тому что китайцы поумнее нас будут и никакой дури у них нет.

Для каких же целей есть этот 3х минутный прехит я не могу сказать точно, думаю для испарения влаги, которая может вносить погрешность.

SLKH пишет:
и при чем тут северная атлантика?

Если это мне, то не понимаю вопроса.

nik182
Онлайн
Зарегистрирован: 04.05.2015

Ребята! Вы чё? Кого греть? MH-z19B? Там лазер стоит на волну поглощения СО2. Честно кушает 120мА в момент измерения - светит одну секунду раз в 8 секунд. Три минуты ему нужно после загрузки что бы процессор определился с режимами работы. Реально он быстрее правильные данные отдавать начинает. А вот при 120 мА напряжении кроны просаживается так, что начинает глючить окружение. Можно конденсатор на 100000 мкФ поставить и всё будет нормально. Вот только емкость кроны 0.5 А*час. Датчик с ардуиной кушают примерно 0.04 А*час. Т.е. от кроны проработает около 12 часов.    

sadman41
Offline
Зарегистрирован: 19.10.2016

bortnik27 пишет:

Для каких же целей есть этот 3х минутный прехит я не могу сказать точно, думаю для испарения влаги, которая может вносить погрешность.

Зачем так сильно фантазировать? Есть описание принципа работы NDIR-сенсора. Кратко картинкой:

bortnik27
Offline
Зарегистрирован: 23.06.2019

По мне так фантазии это комментарий выше. 3 минуты на то чтобы процессор определил режим работы, это в 21 то веке? Вроде не intel 4004. Опять же, возьмем вашу картинку, и что тут процессор должен решать? Сколько проецируется столько и отображай, другой вопрос, что датчик, какой? Оптический, а влага со светом что делает? Правильно, преломляет. Молекула воды примерно того же размера, что и молекула углекислого газа, не думаю, что это никак не должно влиять на результаты. Я все еще могу нести чушь, но ни вы, ни  @nik182 , не дали конкретной причины почему датчик не может иметь реальный прогрев. Например датчики влажности Sensirion имеют такой же (на мой взгляд как и здесь) прогрев, да, там все таки измеряется влажность, но тем не менее. Heater описан непосредственно в даташите так, что можете убедиться сами. 

sadman41
Offline
Зарегистрирован: 19.10.2016

Вы со мной спорите или с принципом работы NDIR-сенсоров?

Не сравнивайте MOX/MEMS с NDIR.

Вот внутренности этого MHZ. Единственный нагреватель там - это LDO. 

SLKH
Offline
Зарегистрирован: 17.08.2015

bortnik27 пишет:

SLKH пишет:
и при чем тут северная атлантика?

Если это мне, то не понимаю вопроса.

Координаты в верхнем правом углу картинок.

b707
Онлайн
Зарегистрирован: 26.05.2017

SLKH пишет:

Координаты в верхнем правом углу картинок.

Москвовская область, просто страны света перепутаны :)

Levch
Offline
Зарегистрирован: 03.04.2018

Спасибо, подключил питание (тот  же Vin) и стабилизировалась работа. НО!

Теперь датчик СО2 показывает фигню. Т.е. при питании через USB (при прошивке) все норм - показывает 567+-, а при питании через Vin показывает 1554...

Блок питания с пременным выходом - ставил и 4,5в и 7 и 9 все одинаково - не правильно показывает... Что за мистика?

sadman41
Offline
Зарегистрирован: 19.10.2016

А по PWM ежели читать?

bortnik27
Offline
Зарегистрирован: 23.06.2019

sadman41 пишет:

Вы со мной спорите или с принципом работы NDIR-сенсоров?

Не сравнивайте MOX/MEMS с NDIR.

Что такое MOX мне не известно, да и особо информации нет, а мэмс это электромеханические датчики, при чем здесь они не понятно.

О принципе работы обсуждаемого датчика судя по картинке вы знаете ровно столько же, как и я.. не много.

Вы выражаете свои мысли, другие однофорумчане и я - свои, это интересная беседа. Меня смутил ваш тезис о том, что китайцы по глупости пишут preheat в даташите, и что тот факт, что датчик оптический почему то противоречит возможному прогреву. 

Вы по прежнему можете считать, что это мои бредни, но почему микропроцессор который кушает 20мА в ждущем режиме кушает 60 и почему во всех нормальных измерительных приборах пишут погрешность при определенной температуре и влажности, а тут этот фактор мы не должны учитывать мне не понятно. 

  

sadman41
Offline
Зарегистрирован: 19.10.2016

Учитывать температуру - это одно, а использовать нагреватель - это другое.

Покажите на фото осушитель и покончим с этим спором.

MOX - это технология, которая как раз и использует нагрев некоего сплава для определения концентрации газа в среде. Ваш Sensirion имеет такой датчик: https://www.sensirion.com/en/environmental-sensors/gas-sensors/multi-pix...

NDIR же ничего не греет, а только измеряет коэффициент поглощения инфракрасного излучения в измеряемой газовой смеси.

b707
Онлайн
Зарегистрирован: 26.05.2017

bortnik27 пишет:

почему микропроцессор который кушает 20мА в ждущем режиме кушает 60

это что за микропроцессор такой?

bortnik27
Offline
Зарегистрирован: 23.06.2019

sadman41 пишет:
Учитывать температуру - это одно, а использовать нагреватель - это другое. Покажите на фото осушитель и покончим с этим спором. MOX - это технология, которая как раз и использует нагрев некоего сплава для определения концентрации газа в среде. Ваш Sensirion имеет такой датчик: https://www.sensirion.com/en/environmental-sensors/gas-sensors/multi-pixel-gas-sensors/ NDIR же ничего не греет, а только измеряет коэффициент поглощения инфракрасного излучения в измеряемой газовой смеси.

Покажите мне на том же MOXSens размером 2.45 × 2.45 × 0.9 mm осушитель.

b707 спорить я с вами не буду, но любой микропроцессор используемый в различных датчика может потреблять микроамперы в режиме энергосбережения

sadman41
Offline
Зарегистрирован: 19.10.2016

Извольте. Ваша очередь указать на heater в NDIR сенсоре.

 

sadman41
Offline
Зарегистрирован: 19.10.2016

b707 пишет:

bortnik27 пишет:

почему микропроцессор который кушает 20мА в ждущем режиме кушает 60

это что за микропроцессор такой?

Товарищ считает, что в датчике потребителя два - стмка и загадочный осушитель.

И СТМ-ка непременно должна находиться в спящем режиме, а я - отвечать головой за данные из китайского даташита.

bortnik27
Offline
Зарегистрирован: 23.06.2019

 50 мкм, серьезно? а у вас на схеме датчика MH-z19 лампочка ильича, не уверен в достоверности такой схемы.

я думал у нас серьезный разговор, а оказалось типичная диванная мерилка писюнами, i'm out

bortnik27
Offline
Зарегистрирован: 23.06.2019

sadman41 пишет:

 а я - отвечать головой за данные из китайского даташита.

Так если вы за них не отвечаете, зачем ж китайцев дураками называть?

sadman41
Offline
Зарегистрирован: 19.10.2016

Слив защитан.

sadman41
Offline
Зарегистрирован: 19.10.2016

Интересный факт.

На английской странице продукта (https://www.winsen-sensor.com/sensors/co2-sensor/mh-z19b.html) указано, что

Average current < 60mA(@5V)

А вот на китайской (https://www.winsensor.com/hongwai/MH_Z19B_eyhtcgq_747.html)

平均电流

<20mA(@5V供电)

 

 

В мануале от 21.01.2016 (https://www.winsen-sensor.com/d/files/infrared-gas-sensor/mh-z19b-co2-ver1_0.pdf) - 60mA, а вот от 25.04.2019  (https://www.winsen-sensor.com/d/files/MH-Z19B.pdf) - уже 20mA

Такой вот веселый квест.

nik182
Онлайн
Зарегистрирован: 04.05.2015

Измерял я ток модуля вместе с еср8266. В покое вся связка ела 20 мА. В момент когда внутри модуля включается что то, что светит красным одну секунду, ток возрастает до 130 мА.

SLKH
Offline
Зарегистрирован: 17.08.2015

b707 пишет:

SLKH пишет:

Координаты в верхнем правом углу картинок.

Москвовская область, просто страны света перепутаны :)

тут у нас не стратегическая авиация, тщательнЕе надо...