Очередной вопрос про термодатчики

Laserson
Offline
Зарегистрирован: 20.04.2016

День добрый, товарищи. Проблема казалось бы с самой избитой темой - датчиками температуры и влажности. В общем приобрел комплект датчиков с AliExpress (тыц), которые никак не читаются. Для начала ессесно погуглил что это за датчики такие, везде написано что это просто DHT21 в корпусе. Ну лан, примеров много, думал что заведется...а нифига, данные вообще никакие не приходят. Пробовал и в ардуино (нано, уно) и в NodeMcu - все одно и то же. Закрались у меня после этого какие-то сомнения и я раскурочил один из датчиков, а там значит AM2320, который якобы через I2C работает. Нашел спеку к датчику и подрубился к ардуине (все как надо, SCL/SDA, в оригинале датчики шли с тремя распаянными проводами, пришлось припаять еще один), но как оказалось и так ничего не рабит. Нашел вот тако пример на основе библиотеки Wire:

/без этого не работает
//нужно разбудить девайс
Wire.beginTransmission(AM2320_i2C_ADDRESS>>1);
Wire.endTransmission();

//запрос температуры и влажности
Wire.beginTransmission(AM2320_i2C_ADDRESS>>1);
Wire.write(0x03);
Wire.write(0x00);
Wire.write(0x04);
Wire.endTransmission(1);

//время подумать для девайса
delayMicroseconds(1600);

//запрос на чтение
Wire.requestFrom(AM2320_i2C_ADDRESS>>1, 8, 1);

//читаем в буфер
am2320buff[0] = Wire.read();
am2320buff[1] = Wire.read();
am2320buff[2] = Wire.read();
am2320buff[3] = Wire.read();
am2320buff[4] = Wire.read();
am2320buff[5] = Wire.read();
am2320buff[6] = Wire.read();
am2320buff[7] = Wire.read();

но все виснет на моменте вызова функции Wire.endTransmission(). Я пробовал несколько датчиков из комплекта, но ничего не работает. Я почему-то не верю что весь комплект бракованный, скорее всего где-то тупая ошибка, которая все портит. Может есть какой-то другой корпусный аналог таких датчиков? желательно конечно это заставить работать, но...

ВН
Offline
Зарегистрирован: 25.02.2016

Недавно такой тестил, все штатно, по 1 проводу с примером из библиотеки. Все сразу заработало, вот только температура уж больно большое отклонение имеет по сравнению с другими моими термометрами, около 4-5 градусов в +. То ли он греется в этом корпусе, то ли таки так врет.

Прямую ссылку на библу щас влет не нашел, закинул, что скачал, на свой диск

https://yadi.sk/d/4G-LadDDrACNH

 

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

 

bwn
Offline
Зарегистрирован: 25.08.2014

Такой же на обычной библиотеке DHT, завелся сразу. Влажность надо поправочные коэффициенты делать и сквозняков не допускать.
Уже года 2 в консервохранилище работает.

Laserson
Offline
Зарегистрирован: 20.04.2016

Пробовал уже такой либой - эффект нулевой, все пять датчиков работают одинаково, т.е. никак. Меня сильно смущает что по даташиту указано что датчик работает через I2C, но распаяно всего три провода. Нашел еще пару примеров кода по работе с АМ2320, но все также виснет...Заговор какой-то...

dhog1
Offline
Зарегистрирован: 01.03.2016

У меня два таких датчика, один в один как на вашем фото с Ali, от разных продавцов. Разбирать их мне жаба не позволит, но таки-да, оба работают по китайскому однопроводному протоколу, подробно описанному в документации на разные DHT (DHT11 или DHT21). На оборотной стороне ваших датчиков напиано же ... DIGITAL (1 WIRE) - это предпоследняя строка.

Этот 1 WIRE никакого отношения к One Wire не имеет, но вполне обслуживается многочисленными ардуино библиотеками для DHT11 и/или DHT21 (разница только в длительности импульса инициализации датчика).

Как вы обнаружили внутри AM2301 целый AM2320 для меня загадка.

Два человека вам написали, что у них нормально работают такие датчики, "штатно". Этот комментарий от третьего такого человека, который не использует библиотеки ардуино, но делает все по документации на прибор. В данном случае на DHT21 (для DHT11 с т.з. передачи информации все одно и то же).

Последнее. Линия данных _должна_ быть подтянута к питанию резистором 2 - 10 кОм. В некоторых изделиях в корпусе скрывается подтягивающий резистор, в некоторых - нет. Измерьте сопротивление между линиями данных и питания.

Laserson
Offline
Зарегистрирован: 20.04.2016

Понимаете, я в полном замешательстве - вся та инормация, которую я нахожу в интренете по поводу этих датчиков противоречит сама себе (да и мне тоже). Вот смотрю я вот этот мануал - http://bit.ly/26maJH3 - и там написано, что датчики работают через I2C. Гуглю по поводу АМ2301, везде говорят что читается обычной либой DHT, но на практике не работает. Может китайцы перепутали датчики?

Вот фотография внутренностей датчика - http://imgur.com/yRT1g0D - ну я же ясно вижу, что там АМ2320. Пуллап резисторов там тоже нет, к сожалению.

bwn
Offline
Зарегистрирован: 25.08.2014

Раскрутил свой 2301, различаются кардинально. У меня с одной стороны термистор, гигристор, 4МГц кварц, с другой преобразователь на noname 10 ногом чипе с обвязкой.

Laserson
Offline
Зарегистрирован: 20.04.2016

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

bwn
Offline
Зарегистрирован: 25.08.2014

Если он I2C, то посмотрите сканером, считает адрес или нет? Резисторы не забудьте к +5В.

dhog1
Offline
Зарегистрирован: 01.03.2016

Приведенная вами фотография противоречит моим представлениям, но убеждает. Уже продолжительное время хочу для своего "зверинца" именно AM2320.

Документация по AM2320 (именно китайская, с дерьмовым переводом на английский, от которого голова раскалывается) доступна по запросу в поисковиках. Читал ее неоднократно. AM2320 запускается либо как I2C прибор с адресом 0xB8 (вам порекомендовали проверить сканером, что IMHO очень правильно). Либо в своем "китайском 1 wire" варианте (в этом случае мы говорим о совместимости с библиотеками для DHT11/21). Для второго варианта китайцы приводят схему подключения (именно AM2320). Ножка SCL должна заводится на GND, в этом случае, как понимаю, прибор "должен" работать как 1 wire (китайский протокол DHT) устройство.

Смотрел тайминги 1 wire для AM2320, они укладываются в тайминги DHT, поэтому существующий софт для DHT11/21 работать должен. Скорее софт для DHT11, поскольку инициализация AM2320 заявлена в 1 мс (это несколько спекулятивно, от 0,8 мс до 20 мс, что годится для любого DHT). Если бы использовал библиотеки, попробовал бы от Adafruit, по моим представлениям там толковые парни делом занимаются и код у них красивый.

Увы, больше ничем помочь не могу. За темой буду следить, надеюсь что вы отпишетесь о результатах.

Laserson
Offline
Зарегистрирован: 20.04.2016

В общем судя по разводке на плате, пин SCL уже подрублен к GND, т.е. со штатной распайкой использовать его как I2C не получится. Пробовал использовать различные рецепты для подключения AM2320, но все равно никакого результата, библиотеки DHT тоже не работают. Отсюда делаю вывод что это какой-то порожняк, а не сенсоры. Тратить больше время на них (вдобавок к потраченным деньгам) нет желания. Скажите кто уже прибретал такие корпусные датчики - где можно купить чтобы гарантированно работали и уже внутренняя обвязка была?

Laserson
Offline
Зарегистрирован: 20.04.2016

Вот нашел еще такой вариант датчика, правда цена у него какая-то неадекватная...

bwn
Offline
Зарегистрирован: 25.08.2014

Laserson пишет:

Вот нашел еще такой вариант датчика, правда цена у него какая-то неадекватная...

SHT10 будет подешевле и поточнее.

P@vel
Offline
Зарегистрирован: 27.04.2016

День добрый!

Подскажите пожалуйста где можно срисовать скетч для отображения показний датчика на 4 значном дисплее?

http://ru.aliexpress.com/item/4-Digit-LED-Display-Tube-7-segments/32591091564.html?spm=2114.10010208.1000022.1.nyPaav#extend

Laserson
Offline
Зарегистрирован: 20.04.2016

В общем, проблема в резисторе, для уверенности захотел проверить его номинал, а он зараза даже не прозванивается...Причем ранее я им нормально пользовался. Заменил на нормальный и все завелось со стандартной библотекой DHT...Всем спасибо за советы!

dsk08
Offline
Зарегистрирован: 30.04.2016

Доброго времени суток всем! Увидел в обсуждении свою проблему. Заказал AM2301, а он не хочет работать с библиотеками DHT. Расскажите подробнее пути решения проблемы...

 

dsk08
Offline
Зарегистрирован: 30.04.2016

Laserson пишет:

В общем, проблема в резисторе, для уверенности захотел проверить его номинал, а он зараза даже не прозванивается...Причем ранее я им нормально пользовался. Заменил на нормальный и все завелось со стандартной библотекой DHT...Всем спасибо за советы!

Доброго времени суток всем! Увидел в обсуждении свою проблему. Заказал AM2301, а он не хочет работать с библиотеками DHT. Расскажите подробнее пути решения проблемы...

Laserson
Offline
Зарегистрирован: 20.04.2016

Ну у меня проблема была в резисторе - между ножками питания и сигнала нужно обязательно подключить сопротивление номиналом 4,7 КОм, по другому работать не будет.

dsk08
Offline
Зарегистрирован: 30.04.2016

Laserson пишет:

Ну у меня проблема была в резисторе - между ножками питания и сигнала нужно обязательно подключить сопротивление номиналом 4,7 КОм, по другому работать не будет.

ща фото пришлю

 

dsk08
Offline
Зарегистрирован: 30.04.2016

что-то фото не могу прислать. А как определить какой датчик у меня?

Laserson
Offline
Зарегистрирован: 20.04.2016
Мне пришлось разобрать свой чтобы понять что у него за потроха. Но особо пользы это не принесло, так просто для информации.
dsk08
Offline
Зарегистрирован: 30.04.2016

Помог резистор!!! Спасибо!

Laserson
Offline
Зарегистрирован: 20.04.2016

Отлично! мне эта маленькая гадость тоже прилично крови попила :)

level5
Offline
Зарегистрирован: 06.12.2016

подключаю AM2320 к шине I2C, нашел распиновку, подключил - вроде работает, но потом увидел что нужны сопротивления на 4,7

в наличии есть на 5.1, сорри за нубский вопрос можно ли вместо сопротивления на 4.7 поставить на 5.1 ? 

bwn
Offline
Зарегистрирован: 25.08.2014

Можно

Только по быстрому, пока Клапауций не запретил.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

level5, по дэйташиту от 1.8 до 47 кОм.

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

level5
Offline
Зарегистрирован: 06.12.2016

я смотрю этот даташит https://akizukidenshi.com/download/ds/aosong/AM2320.pdf

P.S. поставил на 5.1  кОм, все работает, спасибо! )

датчик у меня вот такой, голый без модуля

naz
Offline
Зарегистрирован: 15.11.2016

Приветствую всех. Прошу пояснить, на какие пины Меги подключается датчик AM2320 в трёхпроводном варианте.

Как я понимаю, шина SPI не используется?

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

Питание и любой цифровой. SPI не используется.

naz
Offline
Зарегистрирован: 15.11.2016

ВН пишет:

...Прямую ссылку на библу щас влет не нашел, закинул, что скачал, на свой диск

https://yadi.sk/d/4G-LadDDrACNH

Попробовал с этой библиотекой- пишет влажность 1%

 

naz
Offline
Зарегистрирован: 15.11.2016

Нормально показывает влажность с другим датчиком. Во время экспериментов первый сдох. Не покупаю китайские комплектующие в одном экземпляре.

 

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

Спасибо, попробую.

achuser
Offline
Зарегистрирован: 02.03.2013

Привет. 

По I2C шине am2320 не хочет работать с TFT дисплеем. Показания не получает, отключаешь дисплей - выводит. В чем проблема может быть? 

Несколько am2320 на шину кто-нибудь пробовал садить, как по адресам их распихать на стандартной библиотеке? Или только читать ID датчиков и править библиотеку либо без оной обходиться?