Принцип вообще простой, на ардуино это можно реализовать самыми примитивными средствами (
https://hackaday.io/project....arduino). Но это только побаловаться, а чтобы сделать надежный датчик, придется постараться. В той же статье, по ссылкам выше, автор рассказывает сколько трудностей возникло, взять тот же электрод, который, по-хорошему, должен быть платиновый. Поэтому датчики для контроллеров зачастую стоят дорого, в отличие от этого китайского. Но даже с хорошими микросхемами есть множество нюансов, вот выдержка из статьи (
https://dzagi.info/article....icrysis):
- Датчики pH и EC – это зонды с крайне маленьким диапазоном измерений, требующие операционного усилителя, да еще и совершенно нетерпимые к наводкам, даже очень слабым. Чтобы сенсор выдал «правду», нужно, чтобы внутреннее опорное напряжение, подаваемое на датчик, было фиксированным и абсолютно стабильным, с точностью до сотых вольта. Как показала практика, «Ардуино» и «стабильный» - несовместимые в одном предложении слова. В процессе работы колебания «внутреннего» опорного напряжения от 4,1 до 4,9 происходят постоянно. Ошибка в пол-вольта приводит к разбросу pH от 5.1 до 6.8, что совершенно недопустимо, конечно. К счастью, конструкторы предусмотрели специальный вход для «эталонного» напряжения, к которому я присобачил стабилизированный источник в +4,996 вольта на стабилитроне. Естественно, нужно усреднять результат, считывая датчик не менее 20 раз подряд.
- Опять о датчиках pH/EC. Их нельзя включать одновременно, если они оба погружены в одно ведро. При измерении через сенсор течет небольшой ток, который сильно влияет на измерения второго сенсора. Пришлось модернизировать программу, теперь датчики включаются только в момент измерения и никогда не работают одновременно. Опять же есть небольшая хитрость: чтобы получить точные показания, нужно внести небольшую задержку после включения и перед измерением, чтобы сенсор «прогрелся» (в бОльшей степени это относится к сенсору pH).
- И снова о датчиках! Если в момент измерения работает аэратор, сенсор периодически «измеряет» пузырьки воздуха, поднимающиеся со дна, а совсем не раствор. Можно было применить очень большое усреднение (например, приемлемый результат я получил, выбрав среднее из 5000 значений, на чтение и анализ которых уходит 25 секунд), но я пошел другим путем. Я написал подпрограмму проверки раствора, которая запускается каждые 5 минут. Контроллер отключает аэратор, чтобы утихли пузырьки, и подает напряжение на сенсор pH, которому нужно не менее 30 секунд, чтобы «прогреться» и стабилизировать показания. Через 60 секунд снимаются показания с сенсоров. Потом отключается питание сенсоров и включается аэратор. Намылить, смыть, повторить.
Есть и оригинальные дешевые решения как это -
http://dankar.github.io/hydrowa....troller. Автор рассказывает как снимать показания с дешевого tds-метра.