Arduino tds meter
Устройство подключалось пользователем и не тестировалось компанией Wiren Board. Используя инструкции, приведенные ниже, вы действуете на свой страх и риск.
Описание устройства
DIY прибор для контроля остаточного ресурса питьевых фильтров. Состоит из двух TDS измерителей, которые предполагается подключать до и после фильтра, счетчика воды и датчика температуры, для более точного измерения параметров воды.
Комплектация
- Датчик температуры ds18b20 - 1шт
- Датчик расхода жидкости yf s402b - 1 шт
- TDS Meter V1.0 - 2шт
- Конвертор HW-519 для UART-TTL-RS485 - 1шт
- DC-DC преобразователь HW-613 - 1 шт
- резистор 4,7 кОм - 1 шт
Комментарии к комплектации: Arduino Nano можно запитывать в диапазоне 7-12v, но плата будет работать в диапазоне 5-20v, однако без гарантий надежной работы, поэтому для работы при напряжении питания 24v нужен понижающий преобразователь, с учетом потребления предлагается компактный вариант. Конвертор на основе MAX485 не обеспечивает достаточной помехозащищенности.
Коммутация
| Компонент | Пин Arduino | Тип пина | Примечание |
|---|---|---|---|
| RS-485 (RX) | D0 (RX) | Цифровой вход | Приём данных |
| RS-485 (TX) | D1 (TX) | Цифровой выход | Передача данных |
| Импульсный счётчик | D5 | Цифровой вход | Вход с подтяжкой к VCC |
| DS18B20 | D7 | Цифровой (1-Wire) | Требует подтяжки 4.7 кОм |
| TDS датчик 1 | A2 | Аналоговый вход | - |
| TDS датчик 2 | A4 | Аналоговый вход | - |
| Встроенный LED | D13 | Цифровой выход | Индикация ошибок |
| DC-DC HW-613 (питание) | VIN | Питание | Вход 5-12В, далее проходит через встроенный стабилизатор Arduino Nano; остальные модули запитаны от стабилизированного вывода 5V платы |
Подсчёт импульсов расходомера реализован через аппаратный таймер: программа периодически опрашивает количество накопленных тиков, поэтому ограничение Arduino Nano на использование attachInterrupt() только на пинах D2/D3 здесь не актуально.
Важный нюанс заключается в том, что поскольку rs485 конвертер является повторителем, то подключать надо RX-RX и TX-TX соответствующие пины на arduino nano и конверторе HW-519, а не перекрестно как обычно рекомендуется в интернете.
После сборки устройства необходимо скомпилировать код с github (ссылка на него в разделе полезных ссылок), после чего произвести подключение к rs485 шине. Поскольку используется аппаратный uart0 (serial в коде arduino), который так же используется для заливки прошивки то желательно вытаскивать модуль arduino или отключать его от modbus шины.
Данное устройство собрано и проверено на шине 9600 бод 8N2 с 8 устройствами - все работает без зависаний, не шумит на шину и позволяет заливать прошивки в wirenboard модули, поэтому его можно использовать так же как заготовку под ваше DIY modbus устройство.