Страница 1 из 2

Получение данных с массива датчиков

Добавлено: Ср май 06, 2026 16:58:35
kelod
Есть в наличии несколько датчиков pt100, есть мультиплексор 74hc4051, есть max31865 и есть МК, который всем этим будет рулить
идея следующая: к контроллеру подключить max, к нему подключить мультиплексор, к которому в свою очередь подключить несколько датчиков температуры (подключение 3-х проводное), далее контроллер на мультиплексоре перещёлкивает каналы и через max меряет температуру на всех датчиках.
Если с подключением контроллера более менее понятно, то вопрос собственно как мультиплексор, датчики и max подружить друг с другом?

Re: Получение данных с массива датчиков

Добавлено: Ср май 06, 2026 17:14:53
Призрачный Суслик
Когда то использовал для этого массив реле, да не простых а с "содержанием жёлтого металла" в контактах. Подключение было 4х проводное для простоты (по 2 реле на канал) к промышленному термометру. Коммутация через компьютерную плату ввода-вывода и блок дешифраторов К155ИД3 + транзисторы. 1000 каналов. Работало до самого конца предприятия в 2000 году, когда платы с реле "испарились" внезапно из стоек без каких либо эффектов замеченных охраной. После переключения надо было запускать измерение температуры несколько раз, видимо из-за дребезга контактов термометр подглючивало. На третий и четвертый разы корректное измерение проходило.

А так 4х проводке не сильно важно переходное сопротивление контактов, главное что-бы было примерно одинаковым.

Re: Получение данных с массива датчиков

Добавлено: Ср май 06, 2026 17:23:48
linux_rulezz
У мультиплексора слишком сильно меняется сопротивление открытого канала, чтобы одним можно было измерять температуру.
Я для платиновых терморезисторов делал схему опроса на внешнем 24-битном АЦП с собственным источником тока, а коммутировал тремя мультиплексорами (по статье одного китайца, там еще и методика измерения с переключением опорных токов). Получалось достаточно точно: рассогласование между восемью измерениями не превышало 0.1℃ в диапазоне от азота до комнатной температуры.
Могу поискать эту статью, если интересно.

Кстати, если высокая точность не нужна, можно и одним мультиплексором: существуют с Ron в районе десятков-сотни миллиом.

Re: Получение данных с массива датчиков

Добавлено: Ср май 06, 2026 17:24:52
Goblinator
kelod писал(а): Ср май 06, 2026 16:58:35 Есть в наличии несколько датчиков pt100, есть мультиплексор 74hc4051, есть max31865 и есть МК, который всем этим будет рулить
идея следующая: к контроллеру подключить max, к нему подключить мультиплексор, к которому в свою очередь подключить несколько датчиков температуры (подключение 3-х проводное), далее контроллер на мультиплексоре перещёлкивает каналы и через max меряет температуру на всех датчиках.
Если с подключением контроллера более менее понятно, то вопрос собственно как мультиплексор, датчики и max подружить друг с другом?
ни как. Ибо PT100 это датчик сопротивления и попытка винсертить между ним и платой преобразователя мультиплексор приведет к хаосу при измерениях. Или ставить сигнальные реле (с неизвестным результатом) или для каждого датчика ставить свой max. Причем сигнальные реле в итоге окажутся дороже, чем готовые платы с max31865 по одной на датчик.

Re: Получение данных с массива датчиков

Добавлено: Ср май 06, 2026 17:29:10
kelod
linux_rulezz писал(а): Ср май 06, 2026 17:23:48 У мультиплексора слишком сильно меняется сопротивление открытого канала, чтобы одним можно было измерять температуру.
Я для платиновых терморезисторов делал схему опроса на внешнем 24-битном АЦП с собственным источником тока, а коммутировал тремя мультиплексорами (по статье одного китайца, там еще и методика измерения с переключением опорных токов). Получалось достаточно точно: рассогласование между восемью измерениями не превышало 0.1℃ в диапазоне от азота до комнатной температуры.
Могу поискать эту статью, если интересно.

Кстати, если высокая точность не нужна, можно и одним мультиплексором: существуют с Ron в районе десятков-сотни миллиом.
я строю инкубатор, точность нужна по идее 0.5С, но чем точнее тем конечно лучше.
покупать десяток максов как то накладно выходит, плюс их всё равно нужно к контроллеру подключать, а это ни каких ног не напасёшься

Re: Получение данных с массива датчиков

Добавлено: Ср май 06, 2026 17:39:40
Goblinator
kelod писал(а): Ср май 06, 2026 17:29:10 я строю инкубатор, точность нужна по идее 0.5С, но чем точнее тем конечно лучше.
Серьезно думаете, что наседки дают в природе такую точность поддержания температуры ииц?
kelod писал(а): Ср май 06, 2026 17:29:10 покупать десяток максов как то накладно выходит, плюс их всё равно нужно к контроллеру подключать, а это ни каких ног не напасёшься
гуглите DS18B20
цена вопроса семьдесят рублей за влагозащищенное исполнение с куском провода, последовательно цепляется почти неограниченное количество датчиков. И все на три ноги микроконтроллера.

Re: Получение данных с массива датчиков

Добавлено: Ср май 06, 2026 18:59:29
linux_rulezz
DS18 - редкостная гадость. Особенно с учетом того, что вероятность наткнуться на "паль", покупая на алике, примерно 100%.
Полным-полно датчиков на I2C или SPI. Скажем, AHT и т.п. Взять, скажем, AHT21B - "бонусом" будет измерение влажности. И точность будет куда выше, чем у отбраковки PT100, купленной на алике.

Re: Получение данных с массива датчиков

Добавлено: Ср май 06, 2026 23:42:38
Ser60
Вместо кучи проводов от датчиков к контроллеру используйте беспроводное соединение, например на основе Bluetooth. Датчик температуры вместе с передатчиком с автономным питанием будет работать несколько лет без смены источника.

Re: Получение данных с массива датчиков

Добавлено: Чт май 07, 2026 09:00:39
kelod
Goblinator писал(а): Ср май 06, 2026 17:39:40 Серьезно думаете, что наседки дают в природе такую точность поддержания температуры ииц?
наседки - это наседки, но они выводят по 10 яиц, а не сотнями. при больших размерах инкубатора и 1 датчике температуры практически не возможно обеспечить равномерную температуру по всех площади, это я ещё молчу о режимах проветривания, охлаждения и увлажнения. нужен контроль температуры именно по площади, следовательно нужна матрица датчиков
Goblinator писал(а): Ср май 06, 2026 17:39:40 гуглите DS18B20
цена вопроса семьдесят рублей за влагозащищенное исполнение с куском провода, последовательно цепляется почти неограниченное количество датчиков. И все на три ноги микроконтроллера.
возможно, вот только где взять оригинальный DS18B20? китайцы шлют транзисторы и прочую гадость вместо них
Ser60 писал(а): Ср май 06, 2026 23:42:38 Вместо кучи проводов от датчиков к контроллеру используйте беспроводное соединение, например на основе Bluetooth. Датчик температуры вместе с передатчиком с автономным питанием будет работать несколько лет без смены источника.
где же взять эти датчики? да ещё что бы были влагозащищённые и небольшого размера

Re: Получение данных с массива датчиков

Добавлено: Чт май 07, 2026 09:08:17
kelod
linux_rulezz писал(а): Ср май 06, 2026 18:59:29 Полным-полно датчиков на I2C или SPI. Скажем, AHT и т.п. Взять, скажем, AHT21B - "бонусом" будет измерение влажности. И точность будет куда выше, чем у отбраковки PT100, купленной на алике.
инкубатор нужно дизанфицировать, обычно для этого используются сильные окислители (перекись водорода, хлоргексидин, в крайнем случае марганцовка), уверены что эти датчики влажности перенесут подобные обработки? плюс повышенная влажность и температура, датчики должны быть влагозащищенными, маленькими в размерах. а проблему отбраковки можно решить большим количеством датчиков, плюс обучить контроллер распознавать неадекватные их показания

Re: Получение данных с массива датчиков

Добавлено: Чт май 07, 2026 10:20:58
kelod
я тут поразмыслил....
если мультиплексор нельзя, то может быть обычное реле можно? но реле наверное слишком не надёжное будет и громкое, ведь температуру нужно будет измерять постоянно.
а что если взять геркон, надеть на него катушку и уже эту катушку мультиплексировать? вопрос возникает сколько герконов брать на один датчик, при 3,4 проводном соединении? каких?

Re: Получение данных с массива датчиков

Добавлено: Чт май 07, 2026 11:12:32
linux_rulezz
kelod писал(а): Чт май 07, 2026 10:20:58 если мультиплексор нельзя
ОДИН мультиплексор нельзя. А три-четыре - очень даже можно.
Прикладываю статью Henry He "Minimizing Errors in Multiplexed 3-Wire RTD Data-Acquisition Systems", по которой я делал опрос восьми платиновых терморезисторов HEL-705 при помощи самых тупых мультиплексоров с сопротивлением открытого канала аж в несколько сот Ом!
Ну купите вы NX3L4051 - 0.5Ом сопротивление канала на 3.3В. Т.е. сопротивление канала значительно меньше, чем PTC. Особенно если взять терморезисторы на 1кОм при 25℃. 100 Ом - маловато, погрешность выше будет.
Хотя, для курей… Там и ±1℃ пойдет, так что, думаю, с вашим АЦП и тремя мультиплексорами вполне должно работать.

Re: Получение данных с массива датчиков

Добавлено: Чт май 07, 2026 11:54:53
kelod
linux_rulezz писал(а): Чт май 07, 2026 11:12:32 Хотя, для курей… Там и ±1℃ пойдет
не пойдёт, вот смотрите, температура инкубации 37.8, если погрешность делать в 1 градус, то получаем 36.8 - уже сильно холодно(большая вероятность что замрёт в развитии и погибнет), 38.8 - сильно жарко, зародыш такое выдержит разве что первые пару дней, дальше погибнет от перегрева. умные советские книжки пишут, что температура не должна выходить за пределы 37.3-38.3, т.е. +/-0.5 градуса получается.
но это что касается курей, мне же нужно инкубатор для индюков делать, а они ещё более не устойчивы к перегреву, как и к переохлаждению.
Вы же сами когда болеете, если температура на 1 градус поднимается (37,6) то чувствуете себя мягко сказать фигово, так же и птенцы, там должны быть достаточно стабильные условия, тем более для птенцов
хотите сказать, что можно поставить 3 мультиплексора(каждый рвёт свой провод) для 3 проводной схемы и не заморачиваться? а сопротивление у разных мультиплексоров одинаковое?
или всё таки лучше городить огород с герконами или герконовыми реле?
измерять температуру мне нужно хотя бы раз в 5 секунд, лучше конечно чаще (датчиков у меня будет от 4 до 16 примерно), после всего этого мне ещё нужно будет пид регулирование организовать и чтобы температура устаканивалась как можно быстрее, без перегревов и недогревов

Re: Получение данных с массива датчиков

Добавлено: Чт май 07, 2026 12:13:53
linux_rulezz
kelod писал(а): Чт май 07, 2026 11:54:53 хотите сказать
Хочу сказать, что статью китайца я не зря приложил. Но в вашем случае погрешность этих 0.5Ом на открытом канале мультиплексоров никак не скажется на измерении, даже если и не следовать алгоритму китайца. Только датчики лучше взять на 1кОм. И можно тем же АЦП пользоваться, заточенным на PTC.
kelod писал(а): Чт май 07, 2026 11:54:53 мне же нужно инкубатор для индюков делать, а они ещё более не устойчивы к перегреву, как и к переохлаждению
Тогда нужно будет обязательно все датчики откалибровать и использовать калибровочные поправки (как минимум - нуль-пункты) при работе. Потому что дешевые PTC обычно дают достаточно плохую точность, там очень редко лучше 0.5% выйдет "из коробки" (а это, напомню, аж ±1.5℃). Поверенные содержат исправленные коэффициенты вычислений, но стоят порядка 2-5 тысяч рублей за штучку. Проще это самому сделать, тем более, в вашем случае нужна калибровка на достаточно узком диапазоне температур (возможно, действительно хватит всего лишь нуль-пунктов).
kelod писал(а): Чт май 07, 2026 11:54:53 или всё таки лучше городить огород с герконами или герконовыми реле?
У герконов очень высокое сопротивление контакта, еще и всякие проблемы возможны. Не годится. Реле тоже не пригодны. Чем вам не нравятся мультиплексоры, у которых всего-то 0.5 Ом сопротивление?
kelod писал(а): Чт май 07, 2026 11:54:53 измерять температуру мне нужно хотя бы раз в 5 секунд
Думаю, и 1Гц для сотни датчиков не будет проблемой даже с внешним SPI'ным АЦП.

Как пример, мой код (там вообще тупые NTC, но мне лучше 3℃ точность не нужна для вентиляторов-то): откалибровал по платиновому, построил несколько узлов, а между ними - тупая линейная интерполяция.
ЖЖ раз, ЖЖ два.

Re: Получение данных с массива датчиков

Добавлено: Чт май 07, 2026 12:17:03
linux_rulezz
А, вот еще - для МК с флоатами нарисовал вчера табличное вычисление температуры по сопротивлению, тоже с кусочно-линейной интерполяцией, но т.к. шаг в 1℃, то все гораздо проще. Сначала думал тупо логарифм использовать, но он аж 4+ кБ во флеш добавляет, да и наверняка куда дольше будет вычисляться.

Re: Получение данных с массива датчиков

Добавлено: Чт май 07, 2026 12:54:30
kelod
linux_rulezz писал(а): Чт май 07, 2026 12:13:53 Тогда нужно будет обязательно все датчики откалибровать и использовать калибровочные поправки (как минимум - нуль-пункты) при работе.
так естественно они все калиброваться будут и коэффициенты хранится в памяти контроллера
linux_rulezz писал(а): Чт май 07, 2026 12:13:53 У герконов очень высокое сопротивление контакта, еще и всякие проблемы возможны. Не годится. Реле тоже не пригодны. Чем вам не нравятся мультиплексоры, у которых всего-то 0.5 Ом сопротивление?
у герконов заявлено сопротивление контакта <0.1 Ом, какое оно высокое? пусть даже использовать их 3 или 4 штуки, будет 0.5 Ом в сумме, возможно есть варианты и с меньшими сопротивлениями, главное чтобы они были одинаковые, 3 или 4 проводная схема это компенсирует.
мультиплексоры мне перестали нравится, потому что у них какие-то не стабильные параметры, как оказалось, в даташите для 74HC4051 написано, что у него сопротивление очень зависит от температуры и спокойно может плавать от 70 до 200 Ом, и всё бы ничего, если бы оно было одинаковое на всех каналах и у разных экземпляров, но как я понимаю гарантий нет.
linux_rulezz писал(а): Чт май 07, 2026 12:13:53 Думаю, и 1Гц для сотни датчиков не будет проблемой
мне очень лениво всю эту математику самому считать, по мне так проще взять какой нибудь max31865 и получать с него данные о температуре, но он её меряет не мгновенно, плюс нужно учесть время на устакаивание параметров при переключении, а так как датчики я буду опрашивать последовательно, то и времени будет требоваться тем больше, чем больше датчиков

Re: Получение данных с массива датчиков

Добавлено: Чт май 07, 2026 13:39:35
linux_rulezz
kelod писал(а): Чт май 07, 2026 12:54:30 у герконов заявлено сопротивление контакта <0.1 Ом, какое оно высокое?
Это - советские, качественные. У них и вакуум "настоящий" внутри, так что контакты не мрут из-за низкого тока, да и не "залипают" от длительного пребывания в одном состоянии. А вот китайские подделки с алиэкспресса - это нечто! Использовал пару раз. Оба раза буквально через месяц-два геркон "залипал". Я его благополучно выбрасывал и заменял на датчик Холла.
kelod писал(а): Чт май 07, 2026 12:54:30 мультиплексоры мне перестали нравится, потому что у них какие-то не стабильные параметры
Ну так если он при комнатной температуре, то вообще наплевать. И да, расхождение между сопротивлением не так уж и высоко, а общее сопротивление в четырехпроводной схеме компенсируется.
kelod писал(а): Чт май 07, 2026 12:54:3074HC4051
Я же выше написал, какой надо брать!

Re: Получение данных с массива датчиков

Добавлено: Чт май 07, 2026 14:09:09
kelod
linux_rulezz писал(а): Чт май 07, 2026 13:39:35 Это - советские, качественные. У них и вакуум "настоящий" внутри
сомневаюсь что у них внутри был вакуум, скорее всего всё тот же аргон, в вакууме они быстрее залипнут, чем в инертном газе
вот Вам не советские https://www.chipdip.ru/product/mka-1410 ... 9000325339
такие же и у китайцев продаются, с той лишь разницей, что они у них 7 р штука стоят, а у дипа 42 р
хотя про качество я сказать ничего не могу
linux_rulezz писал(а): Чт май 07, 2026 13:39:35 у так если он при комнатной температуре, то вообще наплевать. И да, расхождение между сопротивлением не так уж и высоко, а общее сопротивление в четырехпроводной схеме компенсируется.
комнатные температуры тоже бывают разные) от +10 осенью, когда нет отопления, до +30 летом, в жару
да все эти 4-х и 3-х проводные схемы работают адекватно, лишь при условии что сопротивление проводов одинаковое, а в данном случае какое же оно одинаковое?
где же мне взять NX3L4051? китайцы о таком даже не слышали. не поделитесь ссылкой?

Re: Получение данных с массива датчиков

Добавлено: Чт май 07, 2026 14:14:38
Goblinator
kelod писал(а): Чт май 07, 2026 09:00:39 возможно, вот только где взять оригинальный DS18B20? китайцы шлют транзисторы и прочую гадость вместо них
в Чип-И-Дипе?

Re: Получение данных с массива датчиков

Добавлено: Чт май 07, 2026 14:27:23
kelod
Goblinator писал(а): Чт май 07, 2026 14:14:38
kelod писал(а): Чт май 07, 2026 09:00:39 возможно, вот только где взять оригинальный DS18B20? китайцы шлют транзисторы и прочую гадость вместо них
в Чип-И-Дипе?
по 180 р штука, + пересылка? спасибо, но дешевле и надёжнее платиновые датчики выходят