Датчик концентрации солей (TDS-метр): инструкция, схемы и примеры использования
Сенсор уровня солей используется для контроля питательных веществ раствора в системах гидропоники и аквакультуре. Датчик также пригодится для проверки эффективности очистки воды фильтрами и системами обратного осмоса.
Датчик измеряет минерализаци воды, а точнее концентрацию солей, методом измерения электропроводности. Существует прямая зависимость электропроводности от количества растворенных в воде соединений солей, на этом основан принцип действия TDS метра. Сенсор определяет концентрацию (сумму) любых растворенных в воде ионов: катионов (+) и анионов (−), минералов, солей и металлов.
Принцип работы
TDS-датчик методом кондуктометра (EC-метра) измеряет удельную электрическую проводимость жидкости, которая пропорциональна суммарному количеству растворенных в воде примесей TDS (Total Dissolved Solids) на один миллион частиц воды (parts per million). Один ppm примерно соответствует одному мг/литр.
В состав TDS-датчика входит измерительный щуп и плата управления. Щуп сенсора выполнен в пластиковом герметичном цилиндре с двумя электродами на конце. При погружении в измеряемый раствор или воду между электродами возникает сопротивление, которое фиксирует и обрабатывает плата управления. А теперь немного подробнее.
Плата управления генерирует с помощью микросхемы LMC555 переменное напряжение, которое поступает на один из электродов щупа. При погружении в жидкость, между электродами возникает сопротивления, которое пропорционально электропроводности раствора. Далее сигнал усиливается и выпрямляется с помощью операционных усилителей на чипе TSX564. На выходе сигнал проходит фильтрацию и поступает на выходной сигнал платы.
TDS-метр измеряет минирелизацию воды, но не определяет её чистоту и безопасность, так как:
- не все вещества-электролиты опасны;
- не все опасные вещества являются электролитами, а значит остаются невидимыми для TDS-метра.
Пример работы для Arduino и XOD
В качестве мозга для считывания показаний с датчика рассмотрим платформу из серии Arduino, например, Uno.
Схема устройства
- Подключите измерительный щуп к датчику солей.
- Скоммуницируйте датчик солей с подключённым щупом к аналоговому пину
A0
платформы Arduino. Для коммуникации понадобятся соединительные провода «мама-папа».Для быстрой сборки и отладки устройства возьмите плату расширения Troyka Shield, которая одевается сверху на Arduino Uno методом бутерброда. Для коммуникации используйте трёхпроводной шлейф «мама-мама», который идёт в комплекте с датчиком.С Troyka Slot Shield провода не понадобятся вовсе. - Опустите измерительный щуп в воду.
Код для Arduino IDE
Прошейте платформу Arduino скетчем, приведённым ниже.
- troyka-tds-sensor-example-arduino-read-data.ino
// любой GPIO пин с поддержкой АЦП constexpr auto pinSensor = A0; void setup() { // открываем Serial-порт Serial.begin(9600); } void loop() { // считываем данные с датчика влажности почвы int valueSensor = analogRead(pinSensor); // переводим данные с датчика в напряжение float voltageSensor = valueSensor * 5 / 1024.0; // конвертируем напряжение в концентрацию float tdsSensor = (133.42 * pow(voltageSensor, 3) - 255.86 * pow(voltageSensor, 2) + 857.39 * voltageSensor) * 0.5; // выводим данные в Serial-порт Serial.print("TDS Value = "); Serial.print(tdsSensor); Serial.println(" ppm"); // ждём 100 мс delay(1000); }
После загрузки скетча, в Serial-порт будут выводиться текущие показания примиссей воды в ppm
.
Патч для XOD
- Создайте новый патч
- Добавьте в патч ноду
analog-sensor
и установите ей в инспекторе PORT значениеA0
. - Добавьте ноду
watch
и подключите её к нодеanalog-sensor
к пинуVAL
. - Прошейте платформу Arduino с режимом отладки.
После загрузки прошивки, в отладочной ноде watch
будут выводиться текущие показания примесей воды в ppm
.
Пример для Espruino
В качестве мозга для считывания показаний с датчика рассмотрим платформы из серии Espruino, например, Iskra JS.
Схема устройства
- Подключите измерительный щуп к датчику солей.
- Соедините датчик солей с подключённым щупом к аналоговому пину
A0
платформы Iskra JS. Для коммуникации понадобятся соединительные провода «мама-папа».Для быстрой сборки и отладки устройства возьмите плату расширения Troyka Shield, которая одевается сверху на Iskra JS методом бутерброда. Для коммуникации используйте трёхпроводной шлейф «мама-мама», который идёт в комплекте с датчиком.С Troyka Slot Shield провода не понадобятся вовсе. - Опустите измерительный щуп в воду.
Исходный код
Прошейте платформу Iskra JS скриптом приведённым ниже.
- troyka-tds-sensor-example-espruino-read-data.js
// выводим показания датчика на пине A0 каждые 100 мс setInterval(function() { var valueSensor = analogRead(A0) * 100; print('Value sensor: ', Math.round(valueSensor), '%'); }, 100);
После загрузки скрипта, в консоль будут выводиться текущие показания примиссей воды в ppm
.
Пример для Raspberry Pi
В качестве мозга для считывания показаний с датчика рассмотрим одноплатные компьютеры Raspberry Pi, например, Raspberry Pi 4.
Схема устройства
К сожалению в компьютере Raspberry Pi нет встроеенного аналого-цифрового преобразователя. Используйте плату расширение Troyka Cap, которое добавит малине аналоговые пины.
- Подключите измерительный щуп к датчику солей.
- Подключите TDS-датчик к Raspberry Pi через плату расширения Troyka Cap к пину
3
. Для коммуникации используйте трёхпроводной шлейф «мама-мама», который идёт в комплекте с датчиком. - Опустите измерительный щуп в воду.
Программная настройка
Исходный код
Запустите на малине скрипт, приведённый ниже.
- troyka-tds-sensor-example-raspberry-pi-read-data.py
# библиотека для работы со временем и задержками import time # библиотека для работы с расширителем портов GPIO Expander на плате Troyka Cap import gpioexp # создаём объект для работы с расширителем портов exp = gpioexp.gpioexp() # пин к которому подключен TDS-датчик # любой GPIO пин платы расширения Troyka Cap pinSensor = 3 while True: # считываем состояние датчика влажности почвы valueSensor = exp.analogRead(pinSensor) # переводим данные с датчика в напряжение voltageSensor = valueSensor * 3.3 # конвертируем напряжение в концентрацию tdsSensor = (133.42 * pow(voltageSensor, 3) - 255.86 * pow(voltageSensor, 2) + 857.39 * voltageSensor) * 0.5; # выводим показания датчика print('Value sensor: ', round(tdsSensor), ' ppm') # ждём 100 мс time.sleep(0.1)
После загрузки скрипта, в консоль малины будут выводиться текущие показания примиссей воды в ppm
.
Элементы платы
Датчик концентрации солей состоит из измерительного TDS-щупа и платы управления.
Измерительные электроды
Для контакта с жидкостью на щупе сенсора расположены два электрода, которые необходимо опустить в измеряемую жидкость для считывания концентрации солей.
На электроды поступает переменное напряжение, что значительно увеличивает срок службы щупа.
Разъём подключения TDS-щупа
Измерительный щуп подключается к плате управления через разъём JST XH-3 Female и Male соответственно.
Генератор импульсов LCM555
Микросхема LCM555 используется для генерации импульсов высокой частоты для работы измерительной схемы сенсора.
Операционный усилитель TSX564
Микросхема TSX564 состоит из четырёх операционный усилителей: два используются для усиления переменного сигнала на электродах щупа, а другие два выпрямляют полученные данные.
Регуляторы напряжения
В схеме используется двухполярное питание:
- положительное плечо
+3V
с выхода понижающего регулятора TPS73030. Диапазон входного напряжения от 3,3 до 5 вольт. Выходное напряжение 3 В с максимальным выходным током 200 мА. - отрицательное плечо
−3V
с выхода инвертирующего регулятора TPS60400. Входное напряжение поступает с положительного плеча+3V
и инвертируется в−3V
с максимальным выходным током 60 мА.
Двухполярная схема используется для генерации переменного напряжения на электроды измерительного TDS-щупа.
Troyka-контакты
Датчик подключается к управляющей электронике через три провода.
- Сигнальный (S) — выходной сигнал сенсора. Напряжение на выходе датчика прямо пропорционально уровню измеренной электропроводности: чем выше электропроводность, тем выше уровень сигнала на выходе датчика и соответственно наоборот. Максимальное выходное значения 2,3 вольта. Подключите к аналоговому пину микроконтроллера.
- Питание (V) — соедините с рабочим напряжением микроконтроллера.
- Земля (G) — соедините с землёй микроконтроллера.
Принципиальная и монтажная схемы
Габаритный чертёж
Характеристики
- Напряжение питания: 3,3–5 В
- Потребляемый ток: до 6 мА
- Интерфейс: аналоговый сигнал
- Диапазон выходного сигнала: 0–2,5 В / 0–1250 ppm
- Длина выходного кабеля: 0,6 м
- Габариты модуля: 25×25×17 мм
- Габариты щупа: 63×13 мм