Написать статью натолкнул материал «Кто такие «промышленные революционеры»? Интервью с CIO Кировского завода«. Я больше 20 лет занимаюсь автоматизацией. Участвовал в разных проектах, нередко затяжных, длящихся по нескольку лет, разработка, потом сопровождение. И мне это порядком надоело. 🙂
В нынешних условиях я скорее соглашусь с фразой, которую нередко цитирует один мною весьма уважаемый коллега: «Сейчас главное быcтро и недорого ошибаться». 🙂 В моем понимании сейчас лучше быстро создать прототип из недорогих массовых компонентов с Aliexpress. Оперативно проверить гипотезу, используя готовые, например, облачные сервисы. И, либо понять, что нужно развивать проект дальше, либо свернуть и пробовать другие варианты.
Последние несколько лет примечательны тем, что разрабатывать прототипы стало проще и дешевле. Да, надежность продолжает оставлять желать лучшего, но хотя бы быстро. Нужно прикинуть, как эффективнее использовать промышленное оборудование, где есть узкие места, как сэкономить на чем-то — сначала нужно собрать данные. И здесь Aliexpress в помощь. 🙂 Я сейчас говорю о мирах физическом и нематериальном — о стыке в разработке аппаратной и программной частей, нередко называемых популярным нынче термином «интернет вещей» IoT или IIoT для промышленности.
Сбор показаний энергопотребления
Некоторое время назад для одного проекта я разрабатывал несложный датчик, снимающий показания с электрокабеля и передающий в облако по протоколу MQTT. Устройство несложное. Если кому-то пригодится — хорошо. Просьба только не забывать делать ссылки на мой блог и не убирать ссылку на печатной плате. Если есть необходимость в доработке под вашу инфраструктуру — можно обсудить. Внизу я разместил форму для заказа, где можно указать свои пожелания.
Для начала отвечу на вопрос: «Зачем?». Предположим, в продуктовом магазине стоит большое количество холодильных шкафов. Нередко у них есть интерфейсы (например, RS485 (Modbus)) для снятия данных о температуре и не только, но хотелось бы также получать информацию об энергопотреблении. Вкупе с данными по температуре в шкафу, при анализе, например, нейронной сетью, можно получить интересные данные. Например, предсказать выход из строя оборудования или его компонентов.
Если подобный датчик энергопотребления подцепить к станку, то по показаниям энергопотребления можно определять, работает ли станок вхолостую, в какое время включался и выключался. Дополнение датчика энергопотребления вибродатчиками или датчиками звука добавит ещё больше красок в картину. По этим данным можно уже попытаться восстановить, какая деталь обрабатывалась, нужно ли делать какую-то профилактику оборудования, менять какие-то компоненты и пр. Т.е. «бестолковый» станок становится чуть более интеллектуальным.
Другой пример. Есть парк дорогого переносного электроинструмента: перфораторы, электродрели, гайковерты, электропилы, шлифмашинки и пр. Владельцам хотелось бы понимать, в каких режимах он эксплуатируется, продолжительность непрерывной работы, соблюдаются ли технологические перерывы, озвученные заказчиком, сколько суммарно времени проработал электроинструмент и пр.
Дорогой электроинструмент, например, Hilti, уже оснащается соответствующими датчиками и позволяет выстраивать tools management. Но что делать, если предприятие использует дорогой, но не «smart» инструмент Bosch, Makita, Hitachi и пр.? Когда износ оборудования приблизится к границе, после которой нужно производить замену? Ведь эти затраты нужно заложить в бюджет.
Датчик, снимающий и передающий информацию — штука уже полезная. Ещё лучше, если на оконечном (edge) устройстве есть некоторая предварительная обработка, минимизирующая объемы передаваемых данных на сервере/в облако. Хотя написать какой-то сложный код на микроконтроллерах — это то ещё испытание. Иногда дешевле все же передать в облако и там обработать.
Концепция датчика энергопотребления
Какие моменты учитываются при разработке датчика энергопотребления:
- Низкая стоимость. Нередко оборудование, которое нужно мониторить, стоит недорого. Если устройство мониторинга будет стоить сопоставимых денег, то его использование теряет экономический смысл.
- Автономная работа. В промышленных помещениях, на строительной площадке и пр. может отсутствовать Wi-Fi или покрытие плохое. Нужно обеспечить сохранение данных на время отсутствия соединения и передачу, когда соединение вернется.
- Встроенные часы RTC для фиксации времени снятия данных в отсутствии доступа к NTP серверам.
- Компактность. Важно в случае, если нужно мониторить переносной электроинструмент. Габариты системы мониторинга должны быть удобными для эксплуатации, чтобы не ухудшать удобство использования инструмента.
- Неинвазивность. Датчик должен подключаться так, чтобы не требовалось вскрывать кабель электрооборудования или корпус прибора, чтобы сохранить гарантию.
- Передача данных по стандартным протоколам. Лучше использовать MQTT. Это важно, чтобы исключить завязку на какого-то одного разработчика серверного ПО (vendors lock-in).
В настоящее время небольшая стоимость IoT устройств получается при использовании микроконтроллеров из линейки ESP, например, ESP8266, ESP8285, ESP32. Это микроконтроллеры, уже имеющие на борту Wi-Fi, а то и Bluetooth (BLE) чип, АЦП и пр.
Для автономной работы достаточно кэшировать полученные данные, например, на SD карту. Если Wi-Fi соединение отсутствует или нестабильно, объем собираемых данных будет приличным. После подключения к Wi-Fi данные с карты памяти можно передать на облачный сервер.
Для прототипирования подобного оборудования можно воспользоватся платой ESP8266 Wemos D1 Mini. Модуль достаточно компактный, и на базе него удобно разрабатывать дополнительные модули в виде шилдов (shield).
В качестве датчика тока целесообразно использовать ACS712 датчик тока на эффекте Холла. Он дает достаточно точные результаты замеров. Работу с ACS712 я подробно рассмотрел в статье. ACS712 подключается в разрыв одного из проводов. Чтобы не разрезать кабель достаточно сделать вариант «умной» розетки или «умного» удлинителя, в которую разместить всю необходимую электронику. Сейчас похожих устройств, управляемых по Wi-Fi с мобильного телефона, на Aliexpress немало. К сожалению, они имеют программное обеспечение с достаточно ограниченными возможностями. Интегрировать их с облачными сервисами, например, «из коробки» не получится.
Можно использовать неинвазивный датчик на базе катушки индуктивности и высокочувствительного операционного усилителя. Для этой схемотехники не требуется разрывать соединение. Например, схемотехника рассмотрена в статье. Этот вариант сложнее монтировать на кабеле и точность хуже. Однако, в некоторых случаях можно использовать этот вариант.
Схемотехника датчика энергопотребления
Основные компоненты для разработки:
- Микросхема датчика Холла ACS712-20A.
- Часы реального времени RTC DS1338Z-33.
- ESP8266 Wemos D1 Mini.
- Миниатюрный 5V блок питания.
- Слот для Micro SD карты с откидной крышкой.
- SMD держатель батареи CR1220.
- Корпус — Коробка распаячная Tyco 43х80х35 IP54 о/п (67091).
Устройство предельно простое. На DS1338Z собран RTC. Он периодически соединяется с NTP сервером для синхронизации времени. Автономное питание часов от батарейки CR1220.
ACS712 снимает данные с разъема J1 (Wires), к которому подключается один из проводов, идущих к нагрузке. Разрезать кабель не нужно. Достаточно сделать розетку с вилкой:
На разъем D3 подается напряжение с миниатюрного 5V блока питания. На клемму третьим проводом (to Power Supply) выведено напряжение, снимаемое с силового провода для подведения напряжения 220 V на вход блока питания.
Диод D1 закорочен, хотя в datasheet ACS712 он указывается. Однако, на нем падает приличное напряжение, из-за чего происходит снижение напряжения на входе АЦП. На плате я его развел. Если потребуется, достаточно разрезать дорожку.
Данные с ACS712 подаются на вход A0 10-ти битного АЦП ESP8266. Обработка данных для получения значений потребляемого тока и мощности подробно описана в статье.
Данные передаются в облако по протоколу MQTT. Чтобы минимизировать объем передаваемых данных, на микроконтроллере производится некоторая предварительная обработка. Отправляются только данные, если произошло некоторое существенное изменение энергопотребления. Постоянно дергать MQTT сервер отправкой нет особого смысла. Отсутствующие данные легко могут быть восстановлены на серверной стороне, исходя из предположения, что при отсутствии данных нужно принять их равным переданному ранее отсчету.
Полезные ссылки
- Схемотехника и разводка платы на EasyEDA.
- Аналог ACS712 — MCS1803: https://www.monolithicpower.com/en/mcs1803.html
- Аналог ACS712 — INA219: https://www.ti.com/lit/ds/symlink/ina219.pdf
- Обзор INA219: https://robotchip.ru/obzor-modulya-toka-i-napryazheniya-ina219/
- Китайский датчик тока на эффекте Холла MagnTek MT9523 аналог ACS712.
- Датчик тока на эффекте Холла Melexis MLX91220 5V аналог ACS712.
- Датчик тока на эффекте Холла Melexis MLX91221 3.3V аналог ACS712.
- Китайский датчик тока на эффекте Холла Cosemi CH701 аналог ACS712. Cosemi CH701 datasheet.
- Datasheet RTC DS1338Z-33 (3,3V питание). Стоит в Compel порядка 110 руб.
- Datasheet RTC BQ32002 (3,3 V питание). Стоит в Compel порядка 60 руб.
- Datasheet RTC M41T56M6F (5V питание). Стоит в Compel порядка 73 руб.
- Брошюра ST по RTC.