Arduino nano + dht11 + MH-z19B+lcd i2c+крона (сбои)
- Войдите на сайт для отправки комментариев
Ср, 08/04/2020 - 18:21
Привет, знатокам!!
Пожалуйста, помогите разобраться.
Делаю датчик качества воздуха (СО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=".
Подскажите, пожалуйста, где собака зарыта.
1. Приведите полностью схему (включая разводку питания).
2. Посмотрите, как изменяется напряжение на Кроне со временем.
Припаяй нормальный источник питания, а не крону.
Схема такая:
Действительно, на кроне упало напряжение до 5 вольт О_о
Это откуда такой жор может быть? Или в самой батарейке дело?
Какой, например? 3 пальчиковых аккумулятора? Наверное, но они места много занимают.
А что с кроной не так? Это норм что она нагрузку вообще не держит? (пока писал напряжение упало до 4,6в)
Какой, например? 3 пальчиковых аккумулятора? Наверное, но они места много занимают.
3 пальчиковых или 1 6СТ190 - мы не знаем.
Питать дисплей от батареи это утопия, тяните блок питания.
А с учетом цены кроны это вообще бред, у вас ее (кроны) будет хватать на пару дней, максимум неделя.
Я тоже все хотел портативные показометры делать, но там нужен монохромный ЖК дисплей как в калькуляторах, но таких особо не находил, чтобы например 128*64
Levch, если так уж совсем необходимо питать дисплей именно от Кроны, то существует единственный выход: должна быть кнопка, которая зажигает дисплей на несколько секунд. И, соответственно, смотреть показания можно только по нажатии на кнопку.
Если планируется именно автономное питание, то а любом случае следует взять что-нибудь помощнее, например, 18650 и, соответственно, как Ардуина, так и дисплей на 3.3 В. Разумеется, режим "включать на несколько секунд" остается в силе. Но кроме того лучше либо вообще отключить подсветку дисплея, либо, по крайней мере, сделать ее менее яркой.
Ну - либо питание от сети. Собственно, это практически единственный вариант, если требуется постоянная индикация.
Я тоже все хотел портативные показометры делать, но там нужен монохромный ЖК дисплей как в калькуляторах, но таких особо не находил, чтобы например 128*64
Типа такого не подойдёт?
Графический ЖК-модуль 54X50MM 12864 128X64 COG, ЖК-дисплей, экран lсм ST7565P/R, поддержка параллельных/серийный SPI
https://a.aliexpress.ru/_eNALXh
В том магазе ещё покопаться можно.
Дисплей-дисплеем, а MH-z19B игнорируем? А его греть надо, включать на пару - тройку секунд не получится.
MHZ греть не надо, он оптический ) это китайцы с дури в даташите preheat time пишут.
А так производитель обещает 60mA среднего и 150mA пикового потребления.
У кроны около 400мА, т.е. те же 60мА разрядят ее за сутки. Вот вам и прехеат в 150 мА, они же вам не полы в ванной греют, а маленький датчик
P.S. Что со шрифтом не знаю
В таком варианте, можно поставить кнопку включения питания без фиксации. Нажал, просмотрел информацию и выключил. Но все равно я бы с кроной не связывался. Лучше аккумулятор какой нибудь подобрать.
Всё равно токи не кроновские.
Вот для общего развития
5В, 100 мА.
5В, 50мА.
Так, что необходимые 60-80° он нагреет легко.
Кстати на первом фото 0,5 Вт на китайских резисторах из набора в 300 штук, после пары минут сопротивление в пределах погрешности.
Мне эти картинки должны показать, что MHZ до 100C греется или что?
Мне эти картинки должны показать, что MHZ до 100C греется или что?
Мне эти картинки должны показать, что MHZ до 100C греется или что?
То что 150 mA это вполне реальный показатель того, что датчик имеет прогрев, и к тому что китайцы поумнее нас будут и никакой дури у них нет.
Для каких же целей есть этот 3х минутный прехит я не могу сказать точно, думаю для испарения влаги, которая может вносить погрешность.
Если это мне, то не понимаю вопроса.
Ребята! Вы чё? Кого греть? MH-z19B? Там лазер стоит на волну поглощения СО2. Честно кушает 120мА в момент измерения - светит одну секунду раз в 8 секунд. Три минуты ему нужно после загрузки что бы процессор определился с режимами работы. Реально он быстрее правильные данные отдавать начинает. А вот при 120 мА напряжении кроны просаживается так, что начинает глючить окружение. Можно конденсатор на 100000 мкФ поставить и всё будет нормально. Вот только емкость кроны 0.5 А*час. Датчик с ардуиной кушают примерно 0.04 А*час. Т.е. от кроны проработает около 12 часов.
Для каких же целей есть этот 3х минутный прехит я не могу сказать точно, думаю для испарения влаги, которая может вносить погрешность.
Зачем так сильно фантазировать? Есть описание принципа работы NDIR-сенсора. Кратко картинкой:
По мне так фантазии это комментарий выше. 3 минуты на то чтобы процессор определил режим работы, это в 21 то веке? Вроде не intel 4004. Опять же, возьмем вашу картинку, и что тут процессор должен решать? Сколько проецируется столько и отображай, другой вопрос, что датчик, какой? Оптический, а влага со светом что делает? Правильно, преломляет. Молекула воды примерно того же размера, что и молекула углекислого газа, не думаю, что это никак не должно влиять на результаты. Я все еще могу нести чушь, но ни вы, ни @nik182 , не дали конкретной причины почему датчик не может иметь реальный прогрев. Например датчики влажности Sensirion имеют такой же (на мой взгляд как и здесь) прогрев, да, там все таки измеряется влажность, но тем не менее. Heater описан непосредственно в даташите так, что можете убедиться сами.
Вы со мной спорите или с принципом работы NDIR-сенсоров?
Не сравнивайте MOX/MEMS с NDIR.
Вот внутренности этого MHZ. Единственный нагреватель там - это LDO.
Если это мне, то не понимаю вопроса.
Координаты в верхнем правом углу картинок.
Москвовская область, просто страны света перепутаны :)
Спасибо, подключил питание (тот же Vin) и стабилизировалась работа. НО!
Теперь датчик СО2 показывает фигню. Т.е. при питании через USB (при прошивке) все норм - показывает 567+-, а при питании через Vin показывает 1554...
Блок питания с пременным выходом - ставил и 4,5в и 7 и 9 все одинаково - не правильно показывает... Что за мистика?
А по PWM ежели читать?
Вы со мной спорите или с принципом работы NDIR-сенсоров?
Не сравнивайте MOX/MEMS с NDIR.
Что такое MOX мне не известно, да и особо информации нет, а мэмс это электромеханические датчики, при чем здесь они не понятно.
О принципе работы обсуждаемого датчика судя по картинке вы знаете ровно столько же, как и я.. не много.
Вы выражаете свои мысли, другие однофорумчане и я - свои, это интересная беседа. Меня смутил ваш тезис о том, что китайцы по глупости пишут preheat в даташите, и что тот факт, что датчик оптический почему то противоречит возможному прогреву.
Вы по прежнему можете считать, что это мои бредни, но почему микропроцессор который кушает 20мА в ждущем режиме кушает 60 и почему во всех нормальных измерительных приборах пишут погрешность при определенной температуре и влажности, а тут этот фактор мы не должны учитывать мне не понятно.
Учитывать температуру - это одно, а использовать нагреватель - это другое.
Покажите на фото осушитель и покончим с этим спором.
MOX - это технология, которая как раз и использует нагрев некоего сплава для определения концентрации газа в среде. Ваш Sensirion имеет такой датчик: https://www.sensirion.com/en/environmental-sensors/gas-sensors/multi-pix...
NDIR же ничего не греет, а только измеряет коэффициент поглощения инфракрасного излучения в измеряемой газовой смеси.
почему микропроцессор который кушает 20мА в ждущем режиме кушает 60
это что за микропроцессор такой?
Покажите мне на том же MOXSens размером 2.45 × 2.45 × 0.9 mm осушитель.
b707 спорить я с вами не буду, но любой микропроцессор используемый в различных датчика может потреблять микроамперы в режиме энергосбережения
Извольте. Ваша очередь указать на heater в NDIR сенсоре.
почему микропроцессор который кушает 20мА в ждущем режиме кушает 60
это что за микропроцессор такой?
Товарищ считает, что в датчике потребителя два - стмка и загадочный осушитель.
И СТМ-ка непременно должна находиться в спящем режиме, а я - отвечать головой за данные из китайского даташита.
50 мкм, серьезно? а у вас на схеме датчика MH-z19 лампочка ильича, не уверен в достоверности такой схемы.
я думал у нас серьезный разговор, а оказалось типичная диванная мерилка писюнами, i'm out
а я - отвечать головой за данные из китайского даташита.
Так если вы за них не отвечаете, зачем ж китайцев дураками называть?
Слив защитан.
Интересный факт.
На английской странице продукта (https://www.winsen-sensor.com/sensors/co2-sensor/mh-z19b.html) указано, что
А вот на китайской (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
Такой вот веселый квест.
Измерял я ток модуля вместе с еср8266. В покое вся связка ела 20 мА. В момент когда внутри модуля включается что то, что светит красным одну секунду, ток возрастает до 130 мА.
Координаты в верхнем правом углу картинок.
Москвовская область, просто страны света перепутаны :)