Введение
Предлагаемая система измерения разработана для конкретной сельскохозяйственной задачи – термометрии напольного хранения зерна, однако разработка может быть использована и в других отраслях. Конструкция измерителя реализована в виде термоштанги ручного контроля [2].
Центр измерения (ЦИ) состоит из модуля приёмо-передатчика HC11 [3] и модуля USB-UART, подключённого к компьютеру агронома через USB-разъём. Управление осуществляет программа компьютера через виртуальный СОМ-порт. Питание обеспечивает USB-порт компьютера.
Узел измерения (УИ) состоит из модуля HC11, который подключён к микроконтроллеру (МК) типа 12F675. Все операции выполняет программа МК: обрабатывает входной код, контролирует напряжение батарей, следит за кнопкой запуска теста, запрашивает и получает температурные данные по шине 1-Wire. Схема организации радиосвязи с использованием интерфейса 1-Wire представлена на рисунке 1.

Для УИ назначается индивидуальный 16-разрядный номер, что позволяет обращаться к 65 535 (0xFFFF) узлам. Все датчики DS1820 имеют индивидуальный номер, что также позволяет назначать и определять их конкретное место в измерении. Для системы связи выделяется частота работы. УИ и ЦИ работают на одной выбранной частоте в разрешённом нелицензируемом диапазоне частот 433–443 МГц. Канал может быть установлен со сдвигом 400 кГц в разрешённом диапазоне в случае загруженности или работы других систем беспроводной связи.
Принципиальная схема ЦИ
Принципиальная схема системы радиосвязи в ЦИ представлена на рисунке 2.

В связи с тем что производитель рекомендует для уменьшения потребляемого тока использовать диод в цепи питания, в переходной печатной плате установлен D1 1n5817. На рисунке 3 показана фотография исходных компонентов конструкции, выполненной на штыревых разъёмах и переходной печатной плате. Это позволяет в случае необходимости быстро проводить диагностику и ремонт системы радиосвязи.

В угловые штыревые разъёмы установлены модули USB-UART и HC11. В качестве антенны использован монтажный соединительный провод длиной 220 мм с разъёмами. Вся конструкция после пайки соединений устанавливается в кабель-канал размером 25´18´300 мм и закрепляется с помощью клеевого пистолета. На рисунке 4 показана фотография собранной схемы ЦИ в кабель-канале.

Слева расположен разъём micro-USB. Для схемы ЦИ обязательно требуется USB-UART c выводом DTR. Этот вывод используется для управления настройками модуля HC11, т.е. выбирается частотный канал и режим тестирования.
Принципиальная схема УИ
Принципиальная схема узла измерения представлена на рисунке 5.

Схема УИ состоит из стабилизатора Q1 (LP2950), который преобразует входное напряжение 6–8 В от батарей в напряжение питания 5 В. Подключение выполняется через диод D1, защищающий от подачи питания неправильной полярности.
Резисторы R1, R3 образуют делитель, напряжение с которого поступает на вход U1 (12F675) GP2 (вывод 5), при этом контролируемое напряжение составляет 3–4 В. Этот же вход замыкается через кнопку S1 и светодиод D3 на 0 В. При замыкании кнопки напряжение на входе GP2 (вывод 5) уменьшается до 1,9–2 В, что фиксируется программой и инициализирует тест передатчика. В этот момент светодиод D3 начинает светиться и сигнализировать о работе батареи. При выполнении теста передатчика второй сигнальный светодиод D4 начинает периодически мигать и тем самым сообщает об исправной работе программы микроконтроллера. Нажатие кнопки запуска теста посылает в радиоканал номер данного УИ, что позволяет проверить и работу модуля HC11, приняв сигнал с заданным номером на ЦИ.
Выводы TXD и RXD модуля HC11 соединены с выводами U1 GP3, GP4 непосредственно, так как имеют сопряжённые уровни ТТЛ. Вывод GP5 организует работу шины 1-Wire c внутренней подтяжкой от U1. Для предупреждения последствий быстрого разряда от возможного короткого замыкания по шине 5 В установлен резистор R2. Диод D2 ограничивает рабочий ток модуля HC11 согласно рекомендациям производителя модуля.
Вывод U1 GP0 (вывод 7) используется в двух режимах:
- если перемычка J2 замкнута, то выполняется управление АТ-командами модуля HC11. Это позволяет менять частоты радиоканала, переходить в режим сна и снижать энергопотребление. В этом случае управление внешней нагрузкой запрещено;
- если перемычка J2 разомкнута, то возможно управление внешними устройствами путём передачи команд на симисторный ключ V01 MOC3036-M. Ключ обеспечивает гальваническую развязку и управление нагрузкой переменного напряжения до 40 Вт при напряжении 220 В. В работе термоштанги управление не используется.
Модуль HC11 и микросхемы U1, VO1 установлены на переходных колодках, что позволяет быстро производить диагностику и ремонт системы измерения. Конструкция УИ выполнена на печатной плате с пазами и креплениями под монтажную коробку. На рисунке 6 представлены фотографии печатной платы и компонентов до (слева) и после (справа) монтажа в коробе.

Антенна модуля HC11 подключена к несущей конструкции штанги термодатчиков через болтовое соединение, что увеличивает дальность связи. Фотография термоштанги УИ в собранном виде показана на рисунке 7.

Четыре датчика DS1820 размещены равномерно внутри полой металлической штанги. К штанге приварены ручки установки, а длина измерительной части может наращиваться с помощью резьбового соединения.
Алгоритм обмена сигналами UART с 1-Wire
Модуль HC11 на скорости 1200 бод не только обеспечивает максимальную дальность, но и обладает особенностью в режиме передачи/приёма старт-стопных сигналов. Эта особенность заключается в том, что передача/приём осуществляется в режиме блока из 6 байт с тайм-аутом между передачей и приёмом до 200 мс. Соответственно, весь обмен данными системы с 1-Wire также должен быть привязан к передаче блоком в 6 байт. В связи с этим выбран следующий метод кодирования блока:
- первый байт блока – это код команды для режимов работы МК и типов сигналов для шины 1-Wire;
- со второго по шестой байт – данные, которые соответствуют передаваемой команде.
Программа на компьютере ЦИ является «мастером» и выдаёт через радиоканал запросы для УИ. Если в УИ принят соответствующий код именно для данного УИ и датчиков, то только в этом случае выполняется обратная передача и ЦИ получает требуемые данные. Таким образом, «слушают» все УИ, но отвечают только те, к которым обращается ЦИ. Перечислим некоторые команды обмена с указанием кода байта передачи:
- 0x0 – передача сигнала RST на шину 1-Wire, обратный ответ игнорируется;
- 0xFF – передача кода в байтах на шину 1-Wire, обратный ответ (по шине 1-Wire) анализируется;
- 0x02 – передача кода запроса на поиск устройств шины 1-Wire, обратный ответ – код бита ответа поиска;
- 0x08 – переход в режим управления АТ-командами, обратный ответ игнорируется.
Все другие используемые команды приведены в программе [4] и имеют подробные комментарии в тексте исходного кода. Правильность приёма проверяется по контрольным суммам шины 1-Wire и достоверности интервалов данных. На рисунке 8 приведена диаграмма обмена данными между ЦИ и УИ.

Скорость обмена по шине 1-Wire соответствует байтам передачи/приёма на скорости 115 000 бод. Сигнал RST на шине 1-Wire передаётся отдельной командой формирования длительности. Сигналы обмена с микроконтроллером 12F675 также укладываются в интервалы обмена для шины 1-Wire. Между окончанием передачи TXD и допустимым временем приёма RXD имеется тайм-аут до 200 мс, которого вполне хватает для обработки данных по шине 1-Wire и получения данных от АЦП микроконтроллера.
МК работает с внутренним тактовым генератором на частоте 4 МГц, что соответствует выполнению одной команды за 250 нс. Время обработки в интервале стопа такта передачи 1200 бод составляет 833 мкс. Следовательно, в этом интервале можно разместить 833000/250=3333 команды данного МК, что означает хорошую возможность использования данного типа МК на данной тактовой частоте.
Форт-ассемблер для МК 12F675
Программа для ЦИ [4] подготовлена на языке Форт [5], поэтому и для МК 12F675, используемого в УИ, подготовлена программа также на Форт-ассемблере. Программный код для МК формируется в режиме «восстановление всех файлов – компиляция нового кода». Для получения кода и дальнейшей прошивки его через программатор требуется выполнить следующую последовательность действий с программой [4]:
- скачать архив по адресу [4] и распаковать исполняемый файл uart_m433_v1.exe в отдельной папке;
- выполнить программу и в предлагаемом меню выбрать режим «восстановление всех исходных файлов»;
- программа выполнит восстановление всех исходных файлов и остановится;
- перейти в созданный каталог test_monsys_exe и выполнить командный файл start_new_versii.cmd;
- программа выполнит компиляцию нового кода и создаст каталог hex_12f675, в котором разместятся файлы для МК. Данные файлы имеют номера, которые привязаны к номерам УИ в кодах программы для МК. Например, файл uart_m433_pic12f675_sht_n040A.hex предназначен для УИ с номером 0x040A. Этот номер записывается в файле инициализации к соответствующим датчикам DS1820, чтобы обращаться именно к данному УИ c установленными там датчиками.
Полученные коды нужно записать в МК любым программатором для данного типа контроллера. Если не требуется модернизация программы, например изменение кодов для обращения к УИ, то сформированный каталог можно удалить. Если вы изменили коды обращения к УИ, то следует оставить сформированный файл uart_m433_v1.exe и удалить все предыдущие файлы. После компиляции сформированный файл uart_m433_v1.exe содержит все новые изменения для работы с новыми номерами УИ. В новом файле изменится контрольная сумма и дата создания, размер файла останется прежним.
Рассмотрим последовательность изменений номеров УИ и их количества для случая, когда номера начинаются с 0x0507, а количество номеров равно 16 (0x10):
- в файле программы uart_m433_v1.f находим строки, определяющие начальный номер:
CREATE ZAPROS_ACP_OUT_RGN1 0x4 C, \ мл.байт
CREATE ZAPROS_ACP_OUT_RGN2 0x4 C, \ ст.байт - соответственно, их меняем на свой номер для младшего байта 0x7 и старшего 0x5;
- в файле программы находим форт-слово HEX_FILES_N10 и изменяем значение цикла формирования файлов с 0xA на 0x10;
- выполняем компиляцию программы через командный файл start_new_versii.cmd и получаем файлы для программирования МК.
Необходимо отметить важность сохранения констант для внутреннего генератора МК. В процессе компиляции предусмотрена корректировка переменной в программе на тот случай, если данный экземпляр МК работает на частоте, отличной от исходной частоты 4 МГц.
Текст программы МК для обработки данных УИ и сам Форт-ассемблер содержат комментарии и подробные пояснения автора по назначению всех функций и т.д.
Программа системы сбора данных
Программа для работы от ЦИ с УИ представлена в одном исполняемом файле [4]. При первом запуске программы, когда отсутствует файл конфигурации, выдаётся меню выбора режимов:
- предлагается восстановить из тела программы файл конфигурации, который будет использоваться при повторном запуске;
- предлагается открыть файл помощи или выполнить демонстрационный режим без файла конфигурации;
- предлагается выполнить восстановление всех файлов программы.
Файл конфигурации настраивается пользователем: устанавливаются частоты для работы, номера датчиков и УИ, указываются условные наименования и температуры тревожной сигнализации. Этот файл содержит подробные комментарии по опциям конфигурации и примеры использования команд для настройки модуля HC11. Предусмотрены режимы поиска МАС-адресов датчиков DS1820, поиска номеров УИ, переход на другие частотные каналы удалённо по радиоканалу.
При нажатии тестовой кнопки в УИ выдаётся номер УИ, что позволяет определить работоспособность. При правильной настройке файла конфигурации окно программы имеет вид консоли, показанной на рисунке 9.

В окне выводятся данные о температурах и напряжениях питания батарей. При представленных размерах консоли всего отображается до 10 УИ. В случае необходимости размер окна консоли можно увеличить в файле инициализации и отображать большее количество УИ. Дополнительно программа записывает все данные в файловый суточный архив формата Excel. Это позволяет оперативно отслеживать в графическом виде изменения температур. При уменьшении напряжения батарей ниже 6 В срабатывает тревожная сигнализация по данному УИ.
Программа имеет статус «как есть», в ней реализованы следующие возможности:
- отображение температуры, получаемой УИ, большими и стандартными знаками в консоли окна;
- задание температуры тревоги, фиксация события превышения этой температуры, тревога при снижении напряжения питания батарей;
- отображение значений температуры в виде одного графика в отдельном окне;
- запись данных в файловый архив и программа анализа графиков в виде макроса Excel;
- средства контроля, анализа и визуализация исправности HC11, поиск номеров DS1820, цветовые настройки окна, схема и печатная плата УИ ЦИ в редакторе DipTrace;
- имитатор УИ с датчиком температуры;
- исходный текст программы, компилятор языка Форт [5], файл справки по командам языка Форт;
- файл справки по управляющим клавишам, файл настройки быстрого запуска и выбора режимов.
Программа не требует установки и подготовлена для работы на опера-ционных системах Windows XP/7/8/10.
Заключение
PIC-микроконтроллер 12F675 содержит аналого-цифровой преобразователь, что даёт возможность следить за разрядом батарей и проводить их своевременную замену. Применение батарей Li-ion типа NRC18650 при интервале опроса от минуты до часа обеспечивает работу от 10 суток до 3 месяцев. Для удалённого управления исполнительными устройствами предусмотрено применение оптоэлектронного ключа.
Проведение обмена на скорости 1200 бод в радиоканале модулей HC11 и антенн типа «вертикальный полуволновой вибратор» позволяет получить устойчивую связь на открытом пространстве не менее километра. Время получения данных от одного датчика DS1820 увеличивается с 50 мс до 2 с, что приемлемо для большинства систем регистрации.
Интерфейс 1-Wire, кроме температурных датчиков, имеют датчики АЦП–ЦАП, которые удалённо могут работать через радиоканал по приведённой схеме. Возможно применение интерфейса 1-Wire c радиоканалом в системах контроля температур в сельскохозяйственном производстве (теплицы, зернохранилища, пасеки, индивидуальные овощехранилища), в учебных, научных задачах и т.п.
Предложенная система для измерения по радиоканалу 433 МГц на модуле HC11 с использованием цифровых датчиков измерения температуры DS1820 интерфейса 1-Wire позволяет избавиться от проводных соединений и минимизировать риски, связанные с человеческим фактором.
Литература
- Электронный термометр с беспроводным датчиком (прототип). URL: https://radiolaba.ru/microcotrollers/termometr-s-besprovodnyim-datchikom.html.
- Термоштанга с термогигрометром ИВТМ-7М. URL: https://eltemiks-agro.ru/product/termoshtanga-s-termogigrometrom-ivtm-7m.
- Модуль HC11. URL: http://www.hc01.com/.
- Сcылка на программу. URL: http://shabronov_s2.dyn-dns.ru/temp/agromontag_433m_v1/test/.
- Черезов А. Описание языка Форт spf4.exe. URL: http://www.forth.org.ru/.
Если вам понравился материал, кликните значок — вы поможете нам узнать, каким статьям и новостям следует отдавать предпочтение. Если вы хотите обсудить материал —не стесняйтесь оставлять свои комментарии : возможно, они будут полезны другим нашим читателям!

