Анатолию Коровину случилось поработать на таком проекте, который они делали с нуля. А в этой статье разбор его доклада с конференции Heisenbug, где он подробно рассказал, почему нужно было делать «Умный мусоровоз» и как велись разработка и тестирование этого проекта.
Общая структура доклада показана на картинке ниже. В этой статье мы рассмотрим только то, что закрашено зеленым на схеме.
![](https://habrastorage.org/webt/dh/fh/po/dhfhpoywrpxqbnzmgx9cqevapvg.png)
Проблемы в отрасли
Основные действующие лица:
- мусорные контейнеры (ну тут все понятно, мы каждый день видим мусорные баки);
- жильцы многоквартирных домов;
- региональный оператор (организация отвечающая за работу с твердыми коммунальными отходами (ТКО) в регионе);
- компании перевозчики мусора (транспортные компании, спецтехника для вывоза ТКО);
- мусорные полигоны (это и мусорные котлованы, и мусоросжигатели, и заводы по переработке мусора).
Когда мы платим за вывоз мусора, то оценить качество услуги проще всего на основании факта вывоза мусора со двора. Но если погрузиться глубже в этот вопрос и попытаться выяснить, куда перевозчик везет мусор (до полигона или в ближайшую канаву), то возникают сложности. Поэтому одной из задач нашей системы стал контроль добросовестности исполнителей.
Бумажная отчетность
В большинстве регионов, с которыми мы работали, региональные операторы собирали отчеты от перевозчиков в бумажном виде. В отчете фиксируется номер автомобиля перевозчика, его маршрут, время загрузки баков и объем мусора. И сдают эти отчеты один раз (или два раза) в год, так что вы можете представить какой это объем данных.
![](https://habrastorage.org/webt/e0/wr/0r/e0wr0rtymt4_sly202fwivi0cle.png)
Сложно проверить
Учитывая, что нет никакого механизма для проверки достоверности этих данных, то во многом отчет принимается «на веру». Для решения проблемы операторы в некоторых регионах установили GPS-трекеры на машины перевозчика и стали отслеживать маршрут транспорта.
Хоть операторы и задали вектор решения верно, целиком задача не была решена — отчеты все также представляли собой кипу бумаг на полках в офисе операторов. Сложно представить, что кто-то станет проверять все руками. Из этой кучи бумаги нужно достать какую-нибудь случайно, открыть программу трекера, сверить время в отчете и на трекере, местоположение машины. И на проверяющего падает слишком большой объем данных.
Помимо этого, есть недобросовестные перевозчики, использующие уязвимости в этой системе. Они постепенно осознали, какие показатели у них проверяют, и начали выстраивать «серые» схемы.
![](https://habrastorage.org/webt/gs/lp/ue/gslpuehtndhu8lwlqjjduc0kx6g.png)
Например, перевозчик подъезжает к мусорному контейнеру во дворе, водитель выходит из машины, курит пару минут и уезжает, так и не забрав мусор. Затем он приезжает на ближайшую стройку и загружает себя коммерческим мусором, утилизация которого должна оплачиваться отдельно, потому что это отходы производств и других промышленных предприятий. После этого перевозчик добирается до полигона, где уверенно говорит, что весь этот мусор забрал у подъездов жилых домов.
В таком сценарии маршрут, полученный с GPS-трекера, будет показывать те же самые точки, что фигурируют в отчете перевозчика, но мусор никто не вывез.
И это только один из множества сценариев.
Решаем проблемы при помощи IoT
Чтобы покрыть наибольшее число сценариев, была построена IoT-система, включающая автоматизацию мусорных баков, транспорта перевозчика и мусорные полигоны.
Умные мусорные баки
Для начала мы оборудовали мусорные контейнеры несколькими типами датчиков:
- Обычный ультразвуковой датчик — определяет уровень заполненности контейнера. Использовать дорогие навороченные системы не имело смысла, поскольку такой девайс по цене iPhone не поставишь в мусорку где-то в удаленном районе, и наверняка его кто-то захочет унести домой.
- Датчик температуры — телеметрия с него дает понять, не горит ли мусор; акселерометр. Он определяет угол наклона контейнера, и так мы фиксируем в истории, когда приезжал перевозчик и выгружал мусор. А в качестве приятного бонуса мы можем узнать, не перевернули ли вандалы мусорку.
- RFID-метка. С ее помощью можно однозначно сопоставить, какая машина перевозчика выгружает контейнер.
Все данные передавались через GSM/GPRS, так что никаких проводов, просто прицепили на стенку контейнера, и девайс измеряет уровень мусора перед собой.
Следим за транспортом перевозчика
Для контроля транспорта мы использовали:
- GPS-трекеры;
- датчик подъема крана, чтобы отслеживать передвижение арматуры;
- RFID-считыватель для определения, какой контейнер прицеплен к машине;
- камера на случай каких-либо разбирательств.
![](https://habrastorage.org/webt/w0/db/6_/w0db6_dcxazx3hdxsmdj9ssg2cw.png)
Как вы думаете, какой датчик оказался самым бесполезным?
Да, снимки с камеры не принесли никакой пользы. Из них не то что гламурный аккаунт в Instagram не соберешь, там даже непонятно, на что смотрим-то:
![](https://habrastorage.org/webt/2k/_s/sw/2k_ssw2orhaa6x4irc7pabe4-xs.png)
Камеру довольно сложно установить на спец-транспорте перевозчика так, чтобы фотографии были наглядными. В итоге на фото были: дорога, шлагбаум, лужи и т.д., и изредка контейнерные площадки с не самых удачных ракурсов. Ожидали увидеть различные нарушения перевозки мусора, а на деле мусор — сами фото.
![](https://habrastorage.org/webt/pi/si/hs/pisihsuakhcgcebpbk_wultyhhu.gif)
Контролируем утилизацию мусора
Контейнеры и транспорт подключили, осталось получить телеметрию от конечной точки — мусорного полигона. Для этого на въезде устанавливается огромный весовой стенд. Когда автомобиль заезжает, мы распознаем номер машины и фиксируем данные в базе. На выезде транспорт проходит аналогичную процедуру, и на разнице этих двух значений мы и работаем.
Что дало внедрение системы?
Перевозчики от этой системы получают довольно большой профит, поскольку теперь каждое утро они знают оптимальный маршрут следования. Машины теперь могут отправиться сначала к точкам, где контейнеры полностью заполнены, и затем двигаться по точкам по убыванию уровня заполненности.
![](https://habrastorage.org/webt/m3/h1/th/m3h1thurvfwagsnfpenut0nwpxq.png)
Такие треки разительно отличаются от обычных маршрутов перевозчиков, поскольку без телеметрии предугадать оптимальный вариант довольно сложно.
![](https://habrastorage.org/webt/7w/ep/bs/7wepbsdgqcxfkec4-m95wchl-54.png)
Также бывает и такой сценарий: большинство площадок для вывоза мусора скомпоновано в достаточно малой области, но есть одна точка, которая располагается на значительном расстоянии от других. Без телеметрии трудно узнать, нужно ли забирать мусор с этой площадки, и водитель приедет к ней, увидит, что контейнеры пустые, и уедет, потратив время и топливо.
В продолжении этой статьи расскажем, как устроен бэкенд этого проекта и какую специфику привнес IoT в подходы к тестированию.
Анатолий Коровин выступит на ближайшей конференции Heisenbug 2020 Piter, которая пройдет 15-18 июня в онлайне.
Этим летом возможно получить знания не только в области тестирования, но и в распределенных вычислениях, фронтенде, бэкенде, DevОps, мобильных проектах, по билету-абонементу.
alex_kag
А где же хоть какие детали по оконечным устройствам? В частности очень интересно устройство модулей контейнера в плане питания
lenz1986
и еще интересно что за мусор складывают в контейнеры? Я просто сам думал над такой задачей но не смог решить проблемы:
antkorwin
1) требований к мусору почти никаких нет, за время пилотной эксплуатации (полгода) ни один датчик не пострадал. Хотя мусор там накидывали иногда так, что казалось датчику кранты. И большими досками закидывали, и мебель кто-то кидал (короче все что вроде как не относится к бытовым отходам, а больше к строительным). Исполнение корпуса там довольно крепкое, поломать его можно наверное только прицельным ударом чем-то очень тяжелым.
2) датчики пробовали разные, проблема с пылью и ультразвуковыми сенсорами, можно сказать что переоценена. Ну и никто не отменял тот факт что всю систему надо периодически обслуживать, в случае с датчиком с которого мы потеряли сигнал — все просто (туда направляется техник).
3) думаю уже ответил в первом пункте,
да, и чего только люди не кидают в эти баки, кто бы мог подумать =)
antkorwin
Рассказать всех подробностей не могу, но в целом на контейнер крепится беспроводной датчик, питание — внутренний АКБ. Батарейки хватает на 3-5 лет. Никакого рокет-саенса в этом плане =)