На главную

  Датчики
  Разное

GygroSensor Ver. 3.2 (ч.1)

Версия датчика 3.2 работает по протоколу ModBus на шине RS-485.

Датчик влажности  версии 3.2 конденсаторного типа основан на принципе изменения емкости измерительного конденсатора в зависимости от диэлекрической проницаемости почвы.  В датчике предусмотрен сенсор LM35 для измерения температуры окружающего воздуха. Он подпаивается к плате датчика на проводках и выносится за габариты корпуса (на картинке сверху и справа).
Выносить этот датчик пришлось из за того что в конструкции присутствуют линейные стабилизаторы напряжения один для питания электронники датчика и отдельный стабилизатор для запитки предусмотренного в схеме сервопривода, выделяющие тепло.
Если разместить LM35 в корпусе то температура по этой причине будет на несколько градусов выше.



Обратная сторона платы с расположенными там деталями. На проводках подпаян стабилизатор для питания сервопривода.


Конструктивно сенсор представляет собой несимметричный конденсатор выполненый на пластине фольгированного стеклотекстолита толщиной 1,5мм. Конец датчика заострен для лучшего проникания в почву. 
Обкладки конденсатора вытравлены с одной стороны платы в виде двух паралельных пластин шириной 6мм и длинной 100мм с зазором между пластинами 0,5-1мм.


С другой стороны платы сенсора примерно посередине в выфрезерованном углублении располагается датчик температуры почвы LM35.
Для использовании в сенсоре берется LM35 в корпусе TO-92 и паралельно выводам стачивается на точильном бруске с двух сторон до толщины 1 - 1,5мм.


После припаивания подготовленной LM35 но до припаивания разъема, рабочая часть сенсора ламинируется. Со стороны обкладок накладывается пленка 75мкм а с обратной 175-200мкм.
 Если закатать весь сенсор пленкой 75 мкм то кромка получится очень тонкой и гибкой, что при втыкании сенсора в землю не очень хорошо. С другой стороны тонкая пленка увеличивает чувствительность сенсора.
Поэтому идем на компромис с рабочей стороны где обкладки кладем тонкую, а со стороны текстолита толщина пленки не играет особой роли и можно поставить потолще.
Еще не помешает усилить саму кромку дополнительными полосками пленки - ну это уже по желанию.

Управляюшие выходы.

Кроме сенсоров на датчике присутствуют два управляющих выхода.
Первый выход токовый 12в 0,2а для управления реле.
Второй выход предназначен для управления стандартным сервоприводом.
Причем сервоприводом можно управлять как независимо подавая команды поворота на определенный угол при условии что выход на реле не включен, и как повторитель команд на выход реле.
То есть при подаче команды на включение реле сервопривод повернется на заданный угол "включено", а при подаче команды на отключение реле повернется на угол "выключено".

ModBus

Для общения с управляющим контроллером или управляющей программой на компьютере датчик использует открытый протокол Modbus RTU.
Адреса
В нем он является подчиненным устройством с адресом в системе от 1 до 247. Адреса с 248 по 255 по описанию протокола зарезервированы.
Адрес 0 используется протоколом для широковещательной передачи и в данном датчике тоже не используется.
Модель данных
Данные по протоколу ModBus хранятся в дискретных (1 бит) и аналоговых (16 бит) регистрах, имеющих 16 битный адрес.
Причем для разных типов данных отведены определенные диапазоны адресов.
Регистры флагов (Coils)                  дискретный тип  (чтение и запись)  адреса 1- 9999
Дискретные входы (Discrete Inputs)      дискретный тип (только чтение)      адреса 10001- 19999
Регистры ввода (Input Registers)    аналоговый тип (только чтение)      адреса 30001- 39999
Регистры хранения (Holding Registers) аналоговый тип (чтение и запись)   адреса 40001- 49999

В данном датчике используется следующее адресное пространство ModBus

Регистры флагов
  1     -  флаг готовности датчика              ( 1 - готов, 0 - не готов)    - информативный для управляющей программы - писать туда не надо
  2     -  регистр управления силовым ключом    ( 1 - включен, 0 - отключен)  - при управлении силовым ключем команда дублируется на управление сервоприводом
  3     -  регистр сохранения настроек в EEPROM ( 1 - сохранить настройки, 0 - сохранять не надо)

Регистры ввода
  30001 -  регистр влажности почвы              ( в еденицах АЦП от 0 до 1024)
  30002 -  регистр температуры почвы            ( в 0.1 цельсиях)
  30003 -  регистр температуры воздуха          ( в 0.1 цельсиях)

Регистры хранения
  40001 -  регистр ID Modbus устройства         ( от 1 до 247, по умолчанию 247)
  40002 -  угол поворота сервопривода           (от 0 до 180 град, по умолчанию 0)        - при записи в этот регистр серва поворачивается на нужный угол ( работает при выключенном реле 2 регистр в нуле)
  40003 -  угол открытого сервокрана            ( по умолчанию 180 град)
  40004 -  угол закрытого сервокрана            ( по умолчанию 0 град)
  40005 -  смещение датчика температуры почвы   ( в 0.1 цельсиях по умолчанию 0)    
  40006 -  смещение датчика температуры воздуха ( в 0.1 цельсиях по умолчанию 0)
  40007 -  количество пришедших пакетов с неверной контрольной суммой

 Поддерживаемые датчиком функции протокола Modbus
Для каждого типа данных в протоколе используются определенные функции.

3.3.1 Чтение данных
1 (0x01) — чтение значений из нескольких регистров флагов (Read Coil Status).
2 (0x02) — чтение значений из нескольких дискретных входов (Read Discrete Inputs).  - данную функцию датчик поддерживает, но не имеет соответствующих регистров.
3 (0x03) — чтение значений из нескольких регистров хранения (Read Holding Registers).
4 (0x04) — чтение значений из нескольких регистров ввода (Read Input Registers).

3.3.2 Запись данных
5 (0x05) — запись значения одного флага (Force Single Coil).
6 (0x06) — запись значения в один регистр хранения (Preset Single Register).

Статью добавил Николай.