Микроконтроллер для обогрева улья, аппаратная реализация

Оставлен Evgenij Bortnik Ср, 03/08/2017 - 13:14

Создание автоматизированной системы управления обогревом пчелиных ульев ранней весной в первую очередь следует рассмотреть с точки зрения здравого смысла. Почему вообще этот вопрос возник? А возник вопрос потому, что некоторые разумные современные пчеловоды предпочли бы иметь рациональное техническое средство, способное освободить часть времени и уменьшить количество забот в рамках своего продвинутого хобби. Это безусловно грамотные и обеспеченные люди. Для нищего колхозника излагаемые здесь материалы попросту избыточны. Максимально возможная для некоторых подобных читателей текста польза - это подсмотреть простые и очевидные технические решения и приколхозить их для своего дырявого ульевого хозяйства, расположенного за забором скотного двора. Годится и так. Но изложение будет несколько подробнее. Надо заметить при этом, что понты по выбору элитных решений раскидывать вокруг всё равно не стоит. Очень внимательно нужно отнестись к рациональному технико-экономическому обоснованию проекта автоматизированного микроконтроллерного обогрева. Обеспеченные люди потому и обеспечены, что не любят выбрасывать деньги на ветер. Поэтому в рамках минимально возможной стоимости следует создать полупрофессиональное оборудование, позволяющее оптимизировать управление тепловыми режимами обогрева ульев, сделать процесс управления простым и очевидным даже для неподготовленного человека.

Какой порядок стоимости оборудования можно считать приемлемым и вообще реальным? Для технико-экономического обоснования следует приближенно оценить стоимости всех компонент проекта. В 2017 году, опираясь на базовую продажную стоимость одного фальшь-днища с нагревателями в сумме 2500 рублей, можно предположить, что при наличии его микроконтроллерного оснащения цена на это изделие не должна превышать сумму 3000 рублей. При этом если не удастся уложиться в вилку 500 рублей по стоимости микроконтроллерного "железа", то нужно снижать базовую цену фальшь-днища. А это возможно, поскольку в днище заложена деревянная конструкция и ТЭН. Конечно плохо, что вместо хорошо высушенного дерева придётся использовать сырое. Дело в том, что в результате подогрева доски будут безжалостно рассыхаться и образовываться щели. Это имеет очень плохие последствия. Однако практика показала, что отрасль пчеловодства в РФ традиционно находится в нищенском положении. И покупать даже безусловно полезные устройства обогрева по дорогой цене нищий никогда не станет. По наблюдениям люди по-прежнему предпочитают покупать вовсе галиматью в виде пластинок для засовывания вовнутрь ульев и игрушечных терморегуляторов на 12 вольт. И проблема совсем не в том, что через пару лет этот хлам автоматически попадает на помойку. Дело в том, что в голове обиженного (самообманутого) умельца фиксируется обида за напрасно потраченные 5-6 тысяч деревянных денег. И эту обиду люди часто заменяют спекулятивными изречениями о бесполезности обогрева вообще. А дело как раз обстоит наоборот и в точном соответствии с русской поговоркой - СКУПОЙ ПЛАТИТ ДВАЖДЫ. Так вот при правильном подходе, без жадности и скупердяйства, нормальное оборудование с фальшь-доньями Кинева успешно эксплуатируется десятилетиями. Технология его применения проста, оборудование надёжно и удобно, а размещение выполняют один раз, весной во время облёта, что не доставляет никаких хлопот. А вот автоматизированная версия оборудования уже требует умения обращаться с ноутбуком. Но думается, что спустя 100 лет после Октябрьского революционного еврейского переворота значительная часть населения России уже освоила элементарные навыки разглядывания картинок на мониторе и нажимания клавишь. 

В качестве фиксированного аксиоматичного начала следует напомнить, что структура обсуждаемой системы в целом определена. Кроме программируемого логического контроллера в составе системы есть модуль связи. В качестве технологии внешней коммуникации предусмотрено применение PLC-модема, работающего через силовую распределительную сеть. В условиях колхозного электропотребителя третьей категории это бытовая однофазная сеть с коэффициентом несинусоидальности напряжения до 15%. 

При изучении любого незнакомого дела, особенно когда речь идет о микроконтроллерах, возникает вопрос — «С чего начать». Можно поискать статьи по ключевым словам «Getting Started», неизбежно появляется дилема выбора среды разработки и программатора-отладчика. Здесь изложен фрагмент опыта в освоении 32-битных контроллеров семейства STM32F от ST Microelectronics. Сразу нужно сказать, что 32-битный контроллер это уже не игрушка, а очень мощный инструмент для управления практически любым технологическим процессом и любым оборудованием. Выбранная модель контроллера определяется соотношением цена/качество. 
Для справки. STMicroelectronics образована в 1987 года слиянием двух микроэлектронных компаний: итальянской Societa Generale Semiconduttori (SGS) Microelettronica и французской Thomson Semiconducteurs и в 1987 занимала 14-е место в мире по продажам полупроводниковых компонентов. В 2005 г. STMicroelectronics по сумме продаж вышла на пятое место в мире после Intel, Samsung, Texas Instruments и Toshiba, оставив позади компании Infineon, Renesas Electronics, NEC, NXP, и Freescale. Пример "Железа" от STM показан ниже. И железо это достаточно дёшево.
Выбор контроллера. Вариантов по сути дела два — STM32F или NXP (LPC1xxx). Выбрать микроконтроллеры STM32F можно по нескольким причинам. Во-первых, дешёвая отладочная плата STM32VL-Discovery. Кто занимается электроникой, могли отхватить дармовую Discovery, бесплатно раздаваемую при участии в конкурсе от EBV-Electronik. Тем, кто не успел подать заявку расстраиваться не стоит — плата стоит порядка 500 рублей. Цена вполне доступная, что приемлемо при мелкосерийном производстве.  
Во-вторых, контроллеры STM32 неприлично дёшевы. Простейший камень STM32F100C4T6 c 16 килобайтами на борту стоит меньше 40 рублей, при этом по характеристикам  и периферии богаче любой «Мегу», которая, кстати, всё равно стоит дороже. Цена на камни старшей линейки с аппаратным USB (STM32F103) тоже вполне гуманна, порядка 120 рублей. В-третьих, контроллеры активно интересуют армию электронщиков. Статьи по освоению STM32 появляются в сети одна за другой.  Если так пойдет и дальше, то народная популярность вполне может достигнуть уровня контроллеров Atmel (Arduino).
Для справки. Atmel Corporation — изготовитель полупроводниковых электронных компонентов. Компания основана в 1984 году. Акции продаются на бирже, NASDAQ: ATML. Один из лидеров производства микроконтроллеров (MCS-51, ARM, AVR, AVR32). Также разрабатывает и производит небольшие модули энергонезависимой памяти для электронных изделий, ПЛИС, цифровые микросхемы-радиоприёмники и передатчики, сканеры отпечатков пальцев. Компания для своих клиентов может предложить систему на кристалле, объединяющую затребованные компоненты.
Для справки. Arduino — торговая марка аппаратно-программных средств, предназначенных для построения простых устройств автоматики и робототехники непрофессионалами. Программная часть состоит из бесплатной программной оболочки (IDE) для написания программ, их компиляции и загрузки в аппаратуру. Аппаратная часть представляет собой набор смонтированных печатных плат. Полностью открытая архитектура системы позволяет свободно копировать или дополнять линейку продукции Arduino. Под торговой маркой Arduino выпускается несколько плат с микроконтроллером и платы расширения. Большинство плат с микроконтроллером снабжены минимально необходимым набором обвязки для нормальной работы микроконтроллера (стабилизатор питания, кварцевый резонатор, цепочки сброса и т. п.). Arduino и Arduino-совместимые платы спроектированы таким образом, чтобы их можно было при необходимости расширять, добавляя в устройство новые компоненты. Эти платы расширений подключаются к Arduino посредством установленных на них штыревых разъёмов. Микроконтроллеры для Arduino отличаются наличием предварительно прошитого в них загрузчика. С помощью этого загрузчика пользователь загружает свою программу в микроконтроллер без использования традиционных отдельных аппаратных программаторов. Загрузчик соединяется с компьютером через интерфейс USB (если он есть на плате) или с помощью отдельного переходника UART-USB. Поддержка загрузчика встроена в Arduino IDE и выполняется в один щелчок мыши. В линейке устройств Arduino применяют микроконтроллеры Atmel AVR ATmega328 и др. с частотой тактирования 16 или 8 МГц. Язык программирования Arduino является стандартным C++ (компилятор AVR-GCC) с некоторыми особенностями, облегчающими новичкам написание работающей программы. Год разработки ядра — 1996. Примеры "железа" от Ардуино показаны ниже. И железо это совсем не дёшево.
Раскрученные контроллеры и сопутствующую периферию применять не будем. 
В продолжении статьи рассмотрены особенности построения системы, которые можно рассматривать как фрагменты последовательности сборки конструктора. Следует иметь ввиду, что изложенные здесь  сведения не претендуют на оптимальность и не содержат признаков системности. В условиях отечественной действительности их скорее следует рассматривать как пример лабораторной работы в которой есть цель сделать работающее изделие, сделать очень дёшево, сделать с применением всевозможных фокусов и недорогих приспособлений, в простонародии описываемых веским понятием - приколхозить. 
 
В качестве демонстрации решения, можно показать создание готового устройства, как пример: набор датчиков в одном корпусе. Почему в этом изложении материалов о выборе и конструировании микроконтроллерного устройства возникают сведения про модем? А дело в том, что при тестировании  модема были использованы те же решения, про которые пишется здесь, как то создание устройств из ПП, разработанных с целью изготовления модуля с завершенным видом, имеющего в составе набор относительно унифицированных плат. Печатные платы, в отличие от ардуиновских шилдов, здесь реализованы под пайку. Такая технология существенно отличается от «воткнул и заработало». И это решение нередко оказывается лучше, например в условиях эстремальной эксплуатации и, особенно, в химически агрессивных средах. В частности в тестовой версии модема, что был собран для проверки идеи как таковой, были использованы плата процессорная, плата макетная и трех-юнитовый корпус. Как это выглядело можно посмотреть на картинках, тоже самое было выполнено при построении аппаратного оснащения для испытания модема.

Вернемся к датчикам. Поскребши «по сусекам» на столе оказались: DHT-22 — датчик влажности и температуры, интерфейс Single Wire (не путать с 1-Wire), GY-65 — датчик давления и температуры, интерфейс I2C, GY-302 — датчик освещенности, интерфейс I2C, GAS Sensor (MQ-135) — датчик на кучу газов, но самое интересное — CO2, аналоговый выход. В общем, всё из набора для ардуинки. Сюда же добавим плату процессорную, плату крепления датчиков. Текущая версия платы мезонинной под датчики мне не нравится, будет переделана с целью унификации под большее число поддерживаемых, в том числе одновременно, датчиков. В нашем модуле оказались сразу два температурных датчика. Один показывает температуру внутри корпуса, другой — снаружи. «Слабым звеном» в этом наборе будет GAS Sensor. У него диапазон рабочих температур -10 +45. Остальные компоненты, включая датчики -40 +85. Это температурный пром. диапазон. Применение компонент для данного температурного диапазона делает несколько дороже стоимость изделия. Если у кого то появится желание, то можно подобрать компоненты совместимые с примененными, но попроще, допустим диапазона температур -10 +70. Так же, для снижения стоимости, печатные платы можно укомплектовывать не полностью. Платы спроектированы на применение в пром. условиях. В домашнем хозяйстве нет таких жестких требований к оборудованию, поэтому такие компоненты как монитор старта, защита CAN, внешний кварц для МК, многоуровневые гальванические развязки можно не устанавливать. Цена изделия будет ниже, но и сфера применения ограничена.
Применительно к модулю датчиков, с целью посмотреть/оценить/протестировать ПО работы с каждым датчиком по отдельности и всех вместе, достаточно любой демо-платы с МК STM32F10x «на борту». На какие порты МК какие датчики цеплять — есть описание в архиве с исходниками.
DHT_t — температура, датчик DHT-22. DHT_h — влажность, датчик DHT-22. BMP085_p — давление, датчик BMP085. BMP085_t — температура, датчик BMP085. BHT1750 — освещенность, датчик BHT1750. CO2 — концентрация СО2 (вывод напряжения со входа АЦП, ppm более сложный пересчет). Собранный модуль можно использовать для «автономной» работы, как тестовый или как мини-погодная станция. При тестировании, информацию с датчиков получают через USB - UART. Питание модуля внешнее, DC 5V или 24V (мезонинные платы, для различного питания будут отличаться числом компонентов). При варианте работы через USB - UART перемычкой на плате МК можно запитаться от 5V USB. Но, цель создания модулей по данной технологии это не развлечения с отдельной коробочкой, задача строить системы из подобных модулей, где каждый из модулей выполняет определенную функцию. Например, уже созданный модуль датчиков. Для объединения модулей в сеть на плате с МК присутствует CAN интерфейс. Помимо CAN, в качестве эксперимента были построены небольшие беспроводные сети на основе ESP8266 и NRF24L01. Решение с использованием ESP8266 в то же время позволяет модулям простым способом подключиться к сети TCP/IP.
Но, вернемся к CAN. Наиболее разумное решение это один мастер, остальные подчиненные. Мастер с определенной частотой рассылает запросы, а устройства/модули отвечают. Запрос/ответ асинхронны. Т.е. мастер не ждет, когда придет ответ от подчиненных. Но в то же время, если в заданный промежуток времени ответ от подчиненного модуля не пришел, то с этим модулем возможны какие-то проблемы. В то же время, в силу особенностей реализации CAN, любой модуль в произвольный момент времени может послать сообщение, напимер об аварии или критическом событии, не дожидаясь запроса от мастера. Данное сообщение получат как мастер, так и все модули сети CAN. CAN Bus дает возможность подключать наборы модулей к ПЛК различных производителей, в этом случае требуется написать библиотечные модули, например на языке ST, для поддержки промышленным контроллером протокола передачи данных для приделанных модулей. В этом случае ПЛК будет мастером. Повторю, что в качестве мастера может выступать любой компьютер или микроконтроллер, такие как PC, Raspberry, Arduino, любой из описанных модулей. Например, для построения сети из модулей, на основе предложенной концепции, делают модуль USB/UART/CAN. Для этого используют кусок платы, отрезанный от макетной. На этот кусок платы припаивают плату с микроконтроллером и клеммы.
 
 
Изложенные в статье сведения обыкновенному телезрителю могут вовсе не понадобиться. Поскольку потребитель (покупатель) например автомобиля вовсе может и не знать, как работает двигатель и сколько в моторе цилиндров. Важно лишь вовремя заправлять автомобиль бензином, глядя как стрелка плавно скользит к нулю. Именно к таком режиму эксплуатации оборудования для обогрева пчёл и следует стремиться.
Методика настройки оборудования. После приобретения комплекта фальшь-доньев с микроконтроллерным управлением их следует просто установить под ульи и подключить к силовой магистрали через штепсельный разъём. Процесс обогрева начнётся автоматически в режиме минимальной подводимой мощности. Для увеличения мощности следует взять ноутбук. В розетку дома вставляют PLC-модем и соединяют USB-шнуром комп и модем. Кроме того, понадобится установить на комп софт с картой пасеки для управления обогревом и далее следовать указаниям программной оболочки. Ведомые контроллеры комплекса оборудования будут автоматически обнаружены и показаны на цветной картинке монитора (но без номеров). Для автоматической нумерации ульев на компе внутри карты пасеки нужно выполнить следующие действия. Следует обойти пасеку пронумеровав ульи от 1 до 50. Далее в заданной последовательности номеров поочерёдно выдёргивают из розетки вилку подключения фальшь-днища улья на 2-3 и более секунды, а затем подключают днище снова. Этими действиями выполняют автоматическую нумерацию ульевых фальшь-доньев в памяти компьютера. Для однократной калибровки уровня температуры и задания регулирующих воздействий придётся воспользоваться китайским термометром с гибким датчиком. Датчик по очереди засовывают в леток каждого улья, в выбранной последовательности номеров и записывают установившееся показание температуры на бумаге. А затем зафиксированные фактические значения температуры вводят с клавиатуры в текстовый файл, следом после записи с номером улья (в ячейку с номером улья в интерфейсе карты пасеки). Таким образом фиксируют реальную термическую обстановку на карте пасеки. При необходимости повышения или понижения температуры в управляющую ячейку вводят значение температуры, которую должен обеспечить контроллер путём регулирования.
В самом бюджетном варианте микроконтроллерной системы управления, вместо графической оболочки, называемой картой пасеки, можно ограничиться работой с текстовым файлом, в котором информация представлена в табличной форме. При этом в полном объёме доступна функция редактирования параметров обогрева всех ульев. После редактирования текстового файла и изменения требуемых характеристик для отдельных ульев, файл с PC загружают в микроконтроллер, который отрабатывает задание, разгоняя или ослабляя нагрев в заданных узлах системы. В работе над проектом использованы умения и навыки толкового красноярского инженера Александра Суворова. Проект пока не завершен, требуется закончить макет и провести полномасштабные полевые испытания.

                     Евгений Бортник, Красноярск, Россия, февраль 2017