Перейти к содержимому

Датчик температуры и влажности RS-WS-N01-2D-LCD

Добрый день, уважаемые читатели! Нет, это не секретный шифр и не случайный набор символов. Это всего-лишь обозначение влагозащищенного датчика температуры и влажности для шины RS485 Modbus RTU, о котором и пойдет речь в данной статье.

RS-WS-N01-2D-LCD

Основная электроника датчика надежно упакована во влагозащищенный корпус ( IP65 ) с уплотнителями для кабелей. Это позволяет использовать его в запыленных и (или) влажных помещениях – например в цеху, складе, подвале и т.д. Лично у меня он будет работать в теплице.

 

Чувствительным элементом в данном датчике является SHT30 производства Sensirion. Сенсор в данном экземпляре прибора вынесен на некоторое расстояние от корпуса, однако можно приобрести модификацию, в которой сенсор будет смонтирован непосредственно на корпусе.

В моем экземпляре имеется встроенный LCD-дисплей, на котором отображаются измеренные значения, что позволяет оперативно контролировать их без необходимости обращения к микроконтроллеру. Дисплей достаточно крупный и четкий, я не выявил недостатков или мерцания. Подсветки нет, но и без неё данные считываются без проблем. Кроме собственно температуры и влажности, на дисплее отображается адрес прибора на шине.

Мой экземпляр

Мой экземпляр

Монтаж прибора осуществляется на стандартную DIN-рейку, причем в комплекте имеется своя собственная DIN-рейка, полностью адаптированная под размеры и цвет корпуса.

RS-WS-N01-2D-LCD

Но можно использовать и стандартную.


Почему именно RS485?

SHT30 гораздо чаще встречаются в виде модулей для подключения к Arduino, ESP и другим микроконтроллерам по шине IIC ( I2C ). Здесь же используется промежуточный контроллер, который реализует аппаратную шину I2C внутри прибора, в для подключения к основному микроконтроллеру используется уже другая шина – RS485 Modbus. Для чего такие сложности?

  • Во первых, и это самое важное, шина RS485 позволяет не заботиться о длине проводов и напряжении питания – она будет работать на расстояниях до 1км и в широком диапазоне питающих напряжений. И не удивительно – ведь это промышленная шина, предназначенная для больших помещений и цехов.
  • Во вторых, шина RS485 позволяет программно изменять адреса устройств на шине, что дает возможность одновременного подключения множества однотипных устройств.
  • Ну а в третьих – это уже готовое промышленное устройство в защищенном корпусе, да еще и со своим собственным дисплеем для оперативного визуального снятия показаний.

Но за все нужно платить…

  • Во первых такой прибор стоит существенно дороже аналогичного сенсора в виде микромодуля для Arduino. Ну разумеется – за корпус, дисплей и дополнительные электронные компоненты придется заплатить.
  • Во вторых – мы имеем меньший шаг измерения (SHT30 имеет шаг измерения 0.01℃) и теряем доступ ко встроенному нагревателю, который можно было бы использовать для “просушки” сенсора во влажной среде.

 

Характеристики

  • Напряжение питания: заявлено 10~30 В, однако датчик прекрасно работает от 5 В
Нижний предел напряжения питания. Ниже - гаснет дисплей, но данные по шине идут до ~3В

Нижний предел напряжения питания. Ниже – гаснет дисплей, но данные по шине идут до ~3В

  • Диапазон измерения температуры: -40℃ ~ +80℃
  • Диапазон измерения влажности: 0%RH ~ 100%RH
  • Шаг измерения: 0.1℃, 0.1%RH
  • Точность: ±0.4℃ (25℃), ± 2% RH (при 25℃ и 60%RH)
  • Размеры:

RS-WS-N01-2D-LCD

 


Внутренний мир

Внутри коробочки расположена небольшая плата, на котором расположен клеммник для подключения к шине RS485:

RS-WS-N01-2D-LCD

Шлейфом подключен дисплей, который расположен на лицевой стенке корпуса.

Клеммник удобный, с подпружиненными контактами, и поэтому нет необходимости использовать отвертку или другой инструмент для подключения. Я использовал самую обычную “витую пару”.

Ещё одним несомненным достоинством данного устройства является то, что он показывает данные температуры и влажности максимально точно (насколько позволяет разрешение), без склонности к саморазогреву и завышению температуры (увы, но многие китайские же аналоги сенсоров температуры и влажности для шины RS485 имеют склонность у “уплыванию” показаний со временем). 


 

Параметры шины

По умолчанию датчик настроен на скорость передачи данных 4800 бод, но поддерживается еще 2400 и 9600 бод.

RS-WS-N01-2D-LCD

Так как у меня в системе имеется датчик, который не может работать со скоростью ниже 9600, мне пришлось перенастроить данный приборчик на 9600 бод, благо это очень не сложно.


Регистры

Прибор имеет всего 4 регистра:

RS-WS-N01-2D-LCD

Первые два регистра отвечают за выдачу оперативных данных о текущих температуре и влажности. Другие два – отвечают за настройку адреса устройства и скорости передачи данных.

Как видите, отсутствуют регистры, отвечающих за корректировку измеренных значений температуры и влажности, но эти параметры в приборе есть. Что это? Ошибка документации или лень было регистры программировать и они реально отсутствуют?

 


Настройка прибора с помощью встроенной клавиатуры

Для данного сенсора совсем не обязательно настраивать адрес и скорость с помощью компьютера. Гораздо проще сделать это прямо на приборе. Для этого нажмите кнопку ОК, перед вами появятся три ноля – это приглашение для ввода пароля.

По умолчанию пароль – 888. Набираем пароль с помощью стрелок и кратковременного нажатия кнопки OK. По окончании ввода нажмите ОК но уже дольше 1 секунды.

На экране появится экран выбора адреса:

Можно поставить адрес от 1 до 125

Можно поставить адрес от 1 до 125

Принцип изменения тот же – стрелками изменяем адрес, длительное нажатие ОК – записывает его в память и осуществляет переход к следующему параметру. Я сразу же ставлю адрес отличный от 1 на случай, если в системе будет датчик или исполнительное устройство, у которого по каким-либо причинам не удастся изменить адрес

Следующий параметр – скорость шины:

Здесь доступны 2400 или 4800 или 9600 бод

Здесь доступны 2400 или 4800 или 9600 бод

Следующий параметр – корректировка температуры:

RS-WS-N01-2D-LCD

Как видите – такой параметр все-таки существует. А регистра для него якобы не предусмотрено. Я думаю, что это все-таки ошибка документации, китайцы часто относятся к ней очень небрежно.

Далее идет корректировка влажности:

RS-WS-N01-2D-LCD

Ну и последний параметр – пароль доступа к настройкам:

RS-WS-N01-2D-LCD

Пароль служит защитой от всяких чересчур любопытных и шаловливых ручек, которые так и норовят понажимать на интересные кнопочки.


Подключение к ESP32 или Arduino

Для подключения к микроконтроллеру потребуется недорогая платка преобразователя интерфейса, например такая:

RS-WS-N01-2D-LCD

К ESP32 я подключал её к 16 и 17 GPIO, но это не принципиально, можно выбрать и другие свободные выводы:

RS-WS-N01-2D-LCD


 

Чтение данных с использованием ESP-IDF

Поскольку многие TH-датчики для шины RS485 имеют одни и те же регистры для температуры и влажности, я написал очень простую универсальную библиотечку для снятия с них показаний:

reSensors/reTH485 at master · kotyara12/reSensorsgithub.com

Как с ней работать?

  • добавляем необходимые библиотеки в проект: #include “mbcontroller.h” и #include “reTH485.h”
  • инициализируем modbus и rs485
Моя процедура инициализации modbus

Моя процедура инициализации modbus

где

Настройки шины

Настройки шины

  • читаем нужные регистры и делим полученное значение на 10
Чтение данных с сенсора

Чтение данных с сенсора

То есть для получения данных достаточно всего одной команды: mbc_master_send_request(), а остальное лишь подготовка и анализ кода ответа

 


На этом пока всё, до следующих встреч на сайте и на dzen-канале!

? Архив статей, упорядоченный по категориям ?.


Пожалуйста, оцените статью:
[ 5 из 5, всего 1 оценок ]

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *