Как мы делали датчик для измерения уровня мусора

Тариф на вывоз мусора в нашей стране скоро будет рассчитываться исходя из объема образованных отходов. И сразу возникает вопрос, как измерить этот объем, который напрямую отразится на нашем кошельке. Самым действенным представляется измерение объемов отходов в контейнерах. Решению этой инженерной и отчасти экологической задачи и посвящена статья.

5dvnl2kbioavprggwpjbg4yooqk.jpeg
Рисунок 1 — Измерение уровня наполненности контейнера без применения электронных средств.

Я руковожу отделом разработки радиоэлектронной аппаратуры в производственной компании ООО «Большая Тройка». Компания занимается автоматизацией работы по обращению с отходами. Если вы хоть что-то слышали про территориальные схемы обращения с отходами и автоматизированные системы управления для региональных операторов, есть очень большая вероятность, что их разработали и внедрили именно мы. Мой отдел небольшой, но работает над весьма интересными задачами: телематические контроллеры для управления парком автомобилей-мусоровозов, разнообразная автоматика для полигонов, контейнерных площадок и самих контейнеров.

Я расскажу о разработке датчика уровня наполненности контейнера отходами. Задача такого прибора — измерять количество насыпанного в контейнер мусора и передавать эти данные на сервер для дальнейшей обработки. Уже сейчас, до внедрения тарификации по объему, данные от таких датчиков могут очень помочь в оптимизации использования контейнерных площадок: отходы из контейнеров должны вывозиться в строго определенный промежуток времени, холостой пробег мусоровозов должен быть минимизирован, а количество и качество контейнеров на контейнерной площадке должно быть максимально адекватно потребностям отходообразователей.

Способы измерить уровень наполненности контейнера


Содержимое контейнера, как и сам контейнер, не является экзотическим материалом для промышленной автоматики. Поэтому и пути технических решений для измерения физических величин вполне привычны и предсказуемы. Если посмотреть на представленные на рынке приборы для определения наполненности контейнера, можно выделить два популярных типа решений: оптические (инфракрасные) и звуковые (ультразвуковые). В качестве примера оптических решений можно привести продукцию GoodWAN, а в качестве звуковых — продукцию Wasteout. Бывают еще микроволновые, но это такая экзотика, про которую мне доводилось только слышать, а вот посмотреть реальный продукт хотя бы по ссылке (не говоря уже о подержать в руках) — не приходилось.

Уровень технической сложности этих решений тоже бывает разным. Например, среди звуковых можно встретить как относительно примитивный подход вроде «дешевый китайский парктроник в качестве дальномера», так и более интересный подход по определению геометрических параметров незаполненного объема по анализу отклика ультразвукового датчика на набор импульсов разной формы. Решение, внушающее уважение, но имеющее ряд нюансов, например, зависимость полученных результатов измерений от акустических характеристик отходов. Из оптических решений доводилось встречать изящное в своей простоте определение уровня наполненности по пересечению лучей между приемной и передающей частями датчика, установленными на противоположных стенках контейнера. За счет того, что лучей несколько, нет проблем с ложным срабатыванием датчика при неравномерном заполнении. Грубо, зримо, надежно, но имеет только два результата измерения: «уровень выше датчика» или «уровень ниже датчика».

Два решения в одном


После изучения существующих продуктов и небольшого мозгового штурма мы решили попытаться скомбинировать плюсы разных подходов: получить предсказуемость оптического датчика одновременно с шириной диапазона измерений и разрешением звукового датчика. В итоге для экспериментов был выбран инфракрасный дальномер GP2Y0A02YK0F от фирмы Sharp.

ipden4ut8cygh1y0wzax_yihedg.jpeg
Рисунок 2 — Дальномер, установленный на плату прототипа.

Принцип действия такого прибора: сфокусированный луч освещает мишень, отраженный от мишени луч возвращается к датчику и освещает светочувствительную линейку. По тому, какие ячейки линейки были освещены, определяется угол отражения, а по углу отражения — расстояние до мишени. Результат измерения предоставляется в виде аналогового сигнала с изменяющимся пропорционально расстоянию напряжением. Все, что остается пользователю, — измерить величину этого напряжения и по информации из документации на дальномер вычислить соответствующее измеренному напряжению расстояние.

Ручка от швабры и другие уязвимости


Какие очевидные уязвимости при использовании такого датчика для измерения уровня наполненности контейнера? Основных две: грязь и любой узкий и длинный предмет, попавшийся на пути луча дальномера, например ручка от швабры. Неизбежная грязь на прозрачном окне корпуса датчика со временем приведет к рассеиванию луча и искажению показаний. А ручка от швабры, «удачно» поставленная в пустом контейнере на пути луча, вызовет результат измерения в виде ложной наполненности.

u6pf7ycxwz1-vddfzyv9f8k-vqy.jpeg
Рисунок 3 — Ручка швабры на пути луча дальномера.

Бороться с этими уязвимостями можно и техническими, и административными методами. Использование двух дальномеров вместо одного позволит избежать «ручки от швабры», а регулярная очистка прозрачного окна корпуса спасет от грязи. Но это все впереди. А пока используем для тестовой версии устройства один дальномер, чтобы на практике увидеть адекватность работы выбранного нами технического решения.

Помимо моделирования путей обхода предполагаемых уязвимостей, мы проверили и технические ограничения дальномера, например, изучили температурный дрейф выходного напряжения. На нижеприведенном графике можно увидеть, как происходит изменение выходного напряжения от температурных колебаний.

1dfhcaqjd1ot9-7jqcmpr8gxjpw.png
Рисунок 4 — Красный график — температура воздуха около дальномера; желтый график — напряжение дальномера, измеряющего одинаковое расстояние при изменяющейся температуре.

Напряжение дальномера падает вместе с температурой, а ниже -12 °C дрейф напряжения замедляется. Падение напряжение — около 50 мВ, что на практике означает погрешность измеренного расстояния всего лишь в ±10 мм на дистанциях от 200 до 500 мм. Для наших задач такая точность более чем достаточна. Что интересно, открыто доступная документация на дальномер не содержит информации о температурном дрейфе, зато указаны весьма широкие допуски по выходному напряжению ±150 мВ. Производитель гарантирует работоспособность дальномера только до -10 °C. На практике мы проверяли эти дальномеры и в лабораторных условиях, и на объектах в других проектах в зимнее время: до -30 °C они работают стабильно и без последствий для срока службы и точности измерений.

Все эти нюансы с точностью получаемых данных не позволяют относить датчик наполненности к измерительным приборам, правильнее отнести наш прибор к классу индикаторов. Это, впрочем, нисколько не мешает выполнять поставленную задачу.

Способ передачи данных


Тут тоже чаще всего все сводится к двум подходам: работа в сетях сотовой подвижной радиосвязи или работа в частных LPWAN (энергоэффективных сетях дальнего радиуса действия).

zva6e7rnqkplfnemp60vhlfhyz8.jpeg
Рисунок 5 — Радиомодуль SIMCom SIM800, керамическая антенна Mobinus Tri 4 и держатель сим-карты на плате прототипа.

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

Очевидные минусы такого подхода — финансовая зависимость от оператора (приходится включать расходы на сотовую связь в тарифы для потребителя ваших услуг, в результате стоимость услуги растет вместе с недовольством клиента) и низкая энергоэффективность передачи малых объемов данных. Про низкую энергоэффективность поясню подробнее: если вам раз в несколько часов нужно отправить десяток-другой байт информации, то нужно включить радиомодуль, дождаться регистрации модуля в сотовой сети и только после этого отправлять SMS или открывать сессию соединения с сетью Интернет. Все эти процессы происходят далеко не мгновенно и занимают единицы (иногда десятки) секунд. То есть на те миллисекунды (или даже микросекунды) работы радиомодуля, за который ваши десятки байт ушли в эфир, приходятся десятки секунд работы, затраченные на накладные расходы обслуживания этого процесса передачи! Ситуация усугубляется, если вы используете радиомодули, работающие в сетях 2G (а это до сих пор самые массовые и недорогие модули на современном рынке электронных компонентов): в ряде стран поддержка стандартов 2G уже отключена, во многих других они поддерживаются по остаточному принципу с низким приоритетом обслуживания. В этом случае время регистрации в сети увеличивается, а иногда и вовсе происходит отказ в регистрации, а значит снова растут накладные расходы на электроэнергию. В попытке найти компромисс был разработан NB-IoT как один из стандартов сетей 4G. Он уже работает, но пока не впечатляет: зона покрытия в России все еще меньше, чем у сетей 2G, энергопотребление и накладные расходы хоть и сильно меньше, но все же не настолько, чтобы оправдать все риски перехода. Очень надеемся, что с NB-IoT все в обозримом будущем станет лучше, переход на этот стандарт станет реальным спасением от умирающих сетей 2G.

Работа в сетях LPWAN практически идеальна с точки зрения эффективности потребления энергии. Но есть один большой недостаток — это инфраструктура. Либо нужно искать партнера, у которого уже развернута такая сеть, либо поднимать свою. А на такой шаг готова пойти не каждая компания. Есть повод для беспокойства и для параноиков: такие сети гораздо проще «положить» злонамеренными действиями, чем сеть сотовой связи. И последствия для злоумышленника совсем другие: у операторов сотовой связи, как правило, есть свои серьезные службы безопасности и возможность быстро и эффективно вызвать жесткую и своевременную реакцию со стороны компетентных государственных органов. У операторов сетей LPWAN таких ресурсов чаще всего не имеется. Тем не менее на рынке представлены решения для работы в сетях LPWAN, и предоставляющие их компании вполне готовы разворачивать свои сети на объектах клиента.

Мы же пока для себя решили выбрать неэффективный в потреблении электроэнергии, но проверенный способ, — передача данных по каналу SMS-сообщений в сетях 2G. Но в сторону NB-IoT смотрим жадно и пристально!

Элементы питания


88zesdrbxkg4jp7vhqxew6ch3eg.jpeg
Рисунок 6 — Литий-тионилхлоридные элементы питания типоразмера AA разных производителей.

Если нужны долгий срок службы, низкий ток саморазряда, высокая удельная емкость и широкий диапазон температур эксплуатации, то выбор один — литий-тионилхлоридные элементы питания (Li-SOCl2). Их прелесть в том, что все вышеперечисленные характеристики они обеспечивают одновременно! Впрочем за все приходится платить, и в случае с Li-SOCl2 «батарейками» как буквально (цены на них относительно высокие), так и в переносном смысле. Дело в том, что у этих элементов очень высокое внутреннее сопротивление (если сравнивать с аналогичными по массогабаритным характеристикам элементами питания с другой «химией»). Кроме того, на поверхности электродов этих элементов образуется пассивационная пленка, что дополнительно увеличивает внутреннее сопротивление. Производители специально описывают процедуру депассивации в документации к элементам: перед началом эксплуатации нужно нагрузить элемент определенным током в течение определенного времени.

Чем плохо высокое внутреннее сопротивление элемента питания? Неспособностью отдать высокий ток. И те пиковые 2 А, которые запрашивают производители для 2G-радиомодулей, для этих элементов — настолько высокий ток, что делает эксплуатацию этих модулей при прямом подключении к литий-тионилхлоридному элементу практически невозможной. Спасет только использование относительно крупных и дорогих Li-SOCl2 элементов типоразмера C (и крупнее), да и то в специальном «высокотоковом» исполнении (отличается от «обычного» исполнения способом навивки электродов). Ну и установка емкостей побольше в цепи питания радиомодуля, да с низкими паразитными сопротивлением и индуктивностью.

zuey5tsygxdafepnue-5leoqdgq.jpeg
Рисунок 7 — Два Li-SOCl2 элемента ER14505 от фирмы EEMB, установленные на плату прототипа.

Нас несколько смутили стоимость и габариты элементов типоразмера C, и мы нашли другой подход — использование двух последовательно соединенных элементов типоразмера AA и понижающего импульсного преобразователя. В этом случае для стабильной работы радиомодуля в течение достаточного для отправки SMS-сообщения времени хватает двух «высокотоковых» элементов, а при внесении определенных хитростей и ограничений в алгоритмы управления питанием, даже «обычных» Li-SOCl2 элементов типоразмера AA! Стендовые испытания показали: два последовательно соединенных элемента демонстрируют соотношение количества выходов на связь радиомодуля к суммарной емкости элементов лучше, чем одиночный элемент типоразмера C, и немногим хуже, чем одиночный «высокотоковый» элемент типоразмера C. Весьма достойный результат.

Сборка прототипов и стендовые испытания

rkcsgjzmusj-ulqumcpuyyjje_0.png
Рисунок 8 — Разработка схемы и печатной платы в программном пакете DipTrace.

После того как мы определились с ключевыми элементами будущего устройства, процесс пошел по накатанной дорожке. Я разработал принципиальную схему и печатную плату, наш монтажник-наладчик «напылил» слой компонентов на полученные с производства платы. После этого платы попали в руки программиста микроконтроллеров, который начал вдыхать жизнь в виде тестовой прошивки в новые устройства.

6tjfcxwcqyvpi2wnp4fevgnwpi4.jpeg
Рисунок 9 — Печатная плата прототипа с установленными на нее компонентами.

Основная задача тестовой прошивки — помочь быстро накопить статистику отказов в работе радиомодуля и предоставить достаточно данных с реальными результатами измерения от дальномеров. Для установки прототипа в условиях офиса отлично подошла небольшая комната для переговоров: прибор был установлен на стену и направлен дальномером на дверь, которую сотрудники открывают и закрывают по многу раз в день.

rbco8gi111trcbzpxrmi3redkau.jpeg
Рисунок 10 — Плата прототипа со свисающим держателем батарей (справа) направлена на приоткрытую дверь (слева).

После включения прибор начал присылать SMS-сообщения в человекочитаемом формате с важной для нас информацией: напряжением питания при маленькой и большой нагрузке, массивом измерений от дальномеров, температурой воздуха вокруг платы прибора и показаниями пары счетчиков. Один счетчик подсчитывает количество включений радиомодуля, другой — количество отправленных сообщений. По этим двум счетчикам сразу видно, сколько раз радиомодуль столкнулся с проблемами регистрации в сети (так и не дойдя до этапа отправки сообщений) и сколько сообщений было отправлено. Сквозная нумерация сообщений позволяет наглядно выявлять пропущенные SMS. У датчика температуры, кстати, есть еще одна важная функция — если повезет, устройство успеет определить пожар в контейнере и отправить внеочередное сообщение с тревогой.

cvt1fetgudpegqeng530kauqs70.jpeg
Рисунок 11 — Сообщения от прототипа на экране смартфона.

Первые результаты тестовых испытаний показали несколько мелких недостатков в схемотехнике: недостаток емкости в цепях питания контроллера мог в некоторых случаях приводить к перезагрузке при включении ключа питания радиомодуля. Это мы легко исправили, добавив дополнительный конденсатор на платы прототипов. Если вспомнить про относительно большое внутреннее сопротивление элементов питания, то можно понять, почему включение радиомодуля — это такое большое событие для устройства. Достаточно посмотреть на колебания напряжения в цепях на экране осциллографа до установки дополнительных емкостей в цепь питания контроллера.

svwzbi1bt6yt8cxj3q5iax7fjjw.jpeg
Рисунок 12 — Желтый график — напряжение на элементах питания; бирюзовый — напряжение в цепи питания контроллера.

После коррекции все гораздо приличнее: резкая просадка напряжения в цепи питания контроллера не наблюдается.

hec_vl8cpzncvcs2mt0phwkmn-w.jpeg
Рисунок 13 — Желтый график — напряжение на элементах питания; бирюзовый — напряжение в цепи питания контроллера. Просадка на бирюзовом графике пропала после установки дополнительного конденсатора.

Кстати, «пила» на графике напряжения элементов питания — это не баг, это фича: зарядка входных емкостей преобразователя напряжения осуществляется короткими импульсами для растягивания фронта броска зарядного тока. С питанием в устройствах с большой автономностью и питанием от химических источников тока вообще много заморочек. Например, какие попало конденсаторы в дежурные цепи не поставишь: нужно подбирать модели с низкими токами утечки. Все редко используемое, что может понемногу «травить» ток, приходится ставить за наглухо закрытые ключи. Ну, а про «синдром беспокойных ног» на Хабре уже есть замечательная статья.

Доставляют беспокойства не только цепи питания. Взаимодействие радиомодуля с сетью сотовой связи — отдельный детектив. Отказы в регистрации в сети, отказы в предоставлении услуг и непредсказуемые временные задержки между разными этапами работы с передачей данных — это банальности, с которыми сталкивались многие пользователи GSM-радиомодулей. А у нас в условиях нестабильного качества связи не хватает времени работы для отправки SMS-сообщений. Выглядит это так: радиомодуль с некоторой попытки все-таки пробивается через эфир и получает регистрацию в сети. После этого следуют неудачные попытки отправки сообщения до тех пор, пока не выходит время, отведенное на непрерывную работу радиомодуля. Так теряются драгоценные попытки выйти на связь, причем простое увеличение максимального времени непрерывной работы опасно: есть вероятность сильно увеличить внутреннее сопротивление элементов питания с последующим длительным восстановлением. На графике ниже можно наблюдать процесс роста количества разных ошибок передачи данных.

zaygiunc3t-pgp7cffyp9e2vteu.png
Рисунок 14 — Красный график — напряжение элементов питания без нагрузки; желтый — напряжение элементов питания под нагрузкой во время работы радиомодуля; зеленый график — разница между количеством успешных регистраций радиомодуля и количеством принятых сообщений; фиолетовый — разница между количеством включений радиомодуля и количеством принятых сообщений.

Статистические данные в виде таблицы:


Вот это уже тревожный звоночек: улучшения качества услуг и расширения зоны покрытия для сетей 2G не предвидится. Пока будем бороться с этим явлением алгоритмически: будем динамически изменять максимальное время непрерывной работы и параллельно следить за степенью просадки напряжения элементов под нагрузкой. Уж если потратили драгоценную электроэнергию от элементов питания на включение радиомодуля, то нужно приложить все зависящие от нас усилия, чтобы убедиться, что эта энергия не была потрачена зря.

Что касается данных от дальномера, там все предсказуемо и стабильно. На графиках хорошо видно, когда дверь в комнату для переговоров открыта, а когда закрыта.

cxdqpk5sw3egelnwkmkmdjem-mg.png
Рисунок 15 — Зеленый график — напряжение на выходе дальномера; красный график — температура от датчика на плате.

Дальнейшие планы


После проведения стендовых испытаний и исправления найденных недостатков мы подготовили пару приборов к установке на объекте заказчика. С корпусными изделиями выручила популярная Gainta. Скоро приборы будут установлены в реальные контейнеры, и мы наконец-то перейдем от стендовых испытаний к опытной эксплуатации.

zwzt0ihcv_mttk5lfmgbkdbcdrg.jpeg
Рисунок 16 — Опытные экземпляры устройства, собранные, проверенные и готовые к установке на объекты заказчика.

Еще на этапе разработки мы начали накапливать идеи по усовершенствованию устройства. Мелкие правки в схемотехнике — это понятно, там прибавить емкости, тут убавить, поменять номиналы и тому подобная рутина. А из более крупных и очевидных нововведений пока можно выделить следующие:

  1. Переход от дальномеров Sharp на более компактные дальномеры серии VL53Lxx от STMicroelectronics. Компактность — не единственный их плюс: они подключается по цифровому интерфейсу, имеют конфигурируемую двумерную приемную матрицу, доступнее для покупки в России.
  2. Добавление MEMS-акселерометра. Довольно-таки распространенный среди аналогичных приборов компонент, позволяющий определять пространственное положение датчика (и механически связанного с ним контейнера или его крышки). С акселерометром у меня вообще получилось странно: он почему-то не перекочевал на принципиальную схему прототипа из других наших устройств, где он вполне регулярно применялся. Бывает. Исправлюсь.
  3. Долгожданный переход к использованию NB-IoT-радиомодулей.
  4. Переход от покупных стандартных корпусов к чему-то более оригинальному и конструктивно подходящему для нашей задачи.
  5. Внедрение собственной радиосети ближнего радиуса действия для совместной работы датчиков наполненности контейнеров и телематических контроллеров на автомобилях-мусоровозах.


eif2b3r1whmkpxexcoms-bo1b4m.jpeg
Рисунок 17 — Прототип устройства в сборе.

На этом пока все! Надеюсь, было интересно. По мере прогресса в испытаниях и разработке буду писать продолжения к этой статье.

© Habrahabr.ru