• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Вопрос Как лучше подключать датчики?

Peter1001

New member
Собственно возник вопрос.
Есть esp8266-12f. И есть набор датчиков.
DHT22 (влажность+темпа), BMP180(давление+высота), MQ-XXX (качество воздуха), BH1750 (освещённость).
Но фишка в том. Что внезапно на ESP заканчиваются доступные пины :( (их всего 5??)
Или я что-то еще не понимаю?
Сей час DHT22 на GPIO4, но почитав форум нашёл что туда лучше повесить BMP180.
Собственно не понятно как это всё разрулить и какой датчик может на каком пине висеть... ?

В esp32 больше пинов? Или 8266 хватит без проблем.

PSPS: + планирую еще по мимо wi-fi отправлять команды и получать ответ от esp по GPIO :)
[off](то есть будет головной сервер, полноценный на нём опрос датчиков и разные правила, триггеры с предикатами в ДНФ)[/off]
 

=AK=

New member
Много пинов не нужно. Достаточно иметь 2 пина, чтобы организовать интерфейс I2C. А уж к I2C одни датчики привешиваются напрямую, а другие - через расширители I/O (типа PCA9534 и т.п.) и через АЦП (типа ADS1115 и т.п.). А впредь будете выбирать сенсоры - не хватайте первый попавшийся, а берите с I2C.
 

Peter1001

New member
На счёт I2C есть некоторые проблемы. Например MQ-4 (датчик пропана/итд) не видел в I2C исполнении.
То есть сей час мне придётся например BH1750 подрубить к 4 и 5 ноге (I2C) и туда же BMP180 (I2C)
А оставшиеся будут жить например DHT22 и MQ на 12 и 13 или 14 соответственно? всё верно?
 

=AK=

New member
Дался вам этот SHT22. У Sensirion полнО датчиков на I2C. Возьмите например SHT31.

А у ADS1115 встроенный программируемый усилитель, 4 входа, и разрядность АЦП 16 бит. Не хотите сами паять - купите готовый модуль на Али, он копейки стоит.
 

Peter1001

New member
Дался вам этот SHT22
Просто у меня он есть и не один :( . и причём давно. И не один. А SHT31 еще ждать надо будет.

Однако по существу.
Верхняя схема описанная в #3 будет работать?
Смогу ли я на первое время подключить именно так ка описано? а когда уже доедут ADS1115IDGSR переделаю в новых версиях буду делать с ними.

ADS1115 имеет 1 вход/выход I2C и 4 аналоговых выхода/входа верно я понял?

[off]PS: у меня просто с микриками всё плохо, по образованию чисто математик-программист, так что в своё время это было только в теории. Вот решил немного попрактиковаться[/off]
 
Последнее редактирование:

AndrF

Active member
Собственно возник вопрос.
В esp32 больше пинов?
Больше, но и греется/жрет он больше. Для вашей задачи явно избыточен.

Или 8266 хватит без проблем.
Все зависит от того как вы их будете использовать, согласитесь. На мой взгляд, даже для ваших датчиков - вполне хватит и даже несколько штук лишних останется. Доступных пинов, кстати, не 5 штук, а больше.

P.S
DHT22 и BMP180 вполне можно заменить одним модулем BME280.
 

rst

Member
DHT22 и BMP180 вполне можно заменить одним модулем BME280.
А также можно BME280 заменить одним дешёвым МК с нужным кол-вом ног и больше не париться о них :cool:
Тем более, что DHT22 + BMP180 насколько я видел - в сумме стоят дешевле чем один BME280. И на эту разницу в цене можно купить пару плат хоть с тем же STM8 - для опроса этих датчиков его хватит за глаза.
 

AndrF

Active member
А также можно BME280 заменить одним дешёвым МК с нужным кол-вом ног и больше не париться о них :cool:
Датчик температуры/давления/владности - заменить одним контроллером? Это что-то оригинальное.

Дался вам этот I2C. Можно взять дешёвую платку STM8 и не ограничивать себя в выборе интерфейсов и их количества.
А здесь разве ограничено? Для описываемых датчиков их вполне хватает. С запасом. К STM-ке же еще нужно городить WiFi интерфейс, в то время когда у ESP-шки все в наличии на борту. Ну и зачем огород?

Ну и говорить о цене ~200 руб (а столько стоит модуль с BME280 в сборе) как о чем-то дорогом...
 
Последнее редактирование:

rst

Member
Датчик температуры/давления/владности - заменить одним контроллером? Это что-то оригинальное.
Читать нужно не только первую строку: цена DHT22 + BMP180 + STM8 примерно равна цене BME280

К STM-ке же еще нужно городить WiFi интерфейс, в то время когда у ESP-шки все в наличии на борту. Ну и зачем огород?
Ну и говорить о цене ~200 руб (а столько стоит модуль с BME280 в сборе) как о чем-то дорогом...
Зачем что-то городить? ESP - UART - STM - датчики.
И у BME280 точность хуже чем у DHT22.
Да и ещё пины про запас останутся. А у ESP - и так всё впритык.
 

AndrF

Active member
Зачем что-то городить? ESP - UART - STM - датчики.
Что-то тут явно лишнее ;) При этом я не говорю что STM-ки плохи - просто она тут на фиг не упала.

Да и ещё пины про запас останутся. А у ESP - и так всё впритык.
Впритык - это сколько? На мой взгляд пинов так 5 свободных останется ;)
 

rst

Member
Впритык - это сколько? На мой взгляд пинов так 5 свободных останется ;)
Там их всего вроде 5. А у автора ещё несколько датчиков. И не факт что ещё не захочется :)
И + он ещё хочет какие-то команды по GPIO отправлять. Ваших 5-и на это всё хватит?
 

AndrF

Active member
Там их всего вроде 5. А у автора ещё несколько датчиков. И не факт что ещё не захочется :)
И + он ещё хочет какие-то команды по GPIO отправлять. Ваших 5-и на это всё хватит?
Начнем с того что доступных пинов там явно не 5, а раза в два больше.
 

rst

Member
Начнем с того что доступных пинов там явно не 5, а раза в два больше.
Начните с того, что написал автор в первом посте:
на его модуле ESP только 5 ног и он уже имеет все купленные датчики в наличии.
Покупка дополнительной STM8 обойдётся всего в 40р и решит все проблемы (да ещё с запасом).
Вы же предлагаете выкинуть имеющиеся датчики, купить BME280 за 200р + купить другой ESP (с бОльшим кол-вом ног) + возможно заменить ещё какие-то датчики.
Как бы разницы не ощущаете?
Да - и в результате ещё и немного потерять в точности. Но это уже мелочи - где-то по пути потерялось :D
 

AndrF

Active member
Начните с того, что написал автор в первом посте:
на его модуле ESP только 5 ног и он уже имеет все купленные датчики в наличии.
На его модуле ESP-12F явно не 5 ног - можете поискать даташит в интернете. Думаю надо начать все же с этого.

Покупка дополнительной STM8 обойдётся всего в 40р и решит все проблемы (да ещё с запасом).
Для решения проблемы, которой нет в принципе, вы предлагаете городить огород?

Вы же предлагаете выкинуть имеющиеся датчики, купить BME280 за 200р + купить другой ESP (с бОльшим кол-вом ног) + возможно заменить ещё какие-то датчики.
Как бы разницы не ощущаете?
Вы явно не внимательны - я не предлагал выкидывать датчики, а писал что пинов хватит для имеющихся с запасом. И просто добавил что BME280 с успехом заменил бы два, но не указывал что это так уж необходимо делать. Ведь так?

Ну и еще - автору вопроса я бы посоветовал посмотреть данную тему - в ней тоже было обсуждение доступных пинов и все успешно решилось. Небольшая цитата оттуда:

4,5,12,13,14 - пины без всяких условностей.
0 и 2 - в момент старта должны быть подтянуты к единичке. Это ничуть не мешает использовать их, к примеру, для той же I2C шины, где заодно нужна подтяжка.
15 - в момент старта должен быть подтянут к нулю. Это более сложная ситуация. Чтобы не заморачиваться - можно использовать его в качестве выхода.
16 - выход с открытым коллектором. Лучше не использовать, резервируя до времен когда он понадобится для выхода из спящего режима.
1,3 - UART - лучше не трогать. Используется для программирования и общения с компом или другими устройствами. В Nodemcu он уже подключен к микросхеме интерфейса. лучше и оставить для этих целей, IMHO.
10 - мне удавалось использовать данный пин как выход без каких либо проблем.
9 - тут, как пишут уже нужно поизвращаться. Потому ну его на фиг.
 

Peter1001

New member

rst

Member
Для решения проблемы, которой нет в принципе, вы предлагаете городить огород?
Тут уже насоветовали огородов: и дополнительный I2C-расширитель и даже АЦП. Если уж городить такой огород, то лучше его весь заменить на простой МК, в котором это всё есть в комплексе. Ну и к тому-же - это всё имхо, только советы. Как удобнее автору - ему самому виднее.
 

=AK=

New member
Дался вам этот I2C. Можно взять дешёвую платку STM8 и не ограничивать себя в выборе интерфейсов и их количества.
Час моего времени стоит больше, чем сотня дешевых чипов. Поэтому получается гораздо дешевле добавить несколько простых железок через I2C, чем городить огород с дополнительным микроконтроллером. Затраты времени на удешевление железа оправданы только в (крупно)серийном производстве.
 

=AK=

New member
У автора проект - хоббийный. Так что все соображения насчёт "цены часа" - мимо кассы.
Уточняю: час моего "хоббийного" времени стоит больше, чем сотня дешевых чипов. Жизнь коротка, а время - деньги. Надо быть рациональным не только на работе.
 
Сверху Снизу