Загородное производство 47 РМ: автоматизация на ESP32 + Zabbix за 280 тыс ₽
К нам в августе 2025 года пришла производственная компания 47 РМ из Дмитровского района Московской области (это 73 километра от МКАД, дорога с грунтовыми участками, ближайший магазин в 11 километрах). У них типовая боль загородного производства: три простоя за месяц подряд из-за того, что технические проблемы (упало давление в компрессоре, перегрелся холодильник в складе сырья, отключилась одна фаза в электрощите) обнаруживались только тогда, когда работа уже встала. Никакого мониторинга у них не было — была одна тётя-вахтёр, которая раз в смену записывала в журнал температуру в офисе. В этой статье — как мы за 28 дней развернули у них Zabbix + ESP-датчики + LTE-канал, что собирали, как передавали через MQTT, и почему 280 тысяч ₽ оказалось более чем достаточно для всего.
Что было до нас: три простоя за месяц
Помню, в августе директор клиента позвал меня и прямо сказал: «Нам нужна автоматизация». Моим первым делом было попросить три вещи, без которых никак: журнал простоев за полгода, схему производства и, конечно, техкарту критичных узлов. Он прислал всё буквально через два дня. И знаете, картина сразу стала предельно ясной:
- Простой 14 июля. 6 часов простоя цеха. Причина: упало давление в воздушной линии до 3 бар (норма 6-8). Компрессор Atlas Copco отработал положенный срок ресурса по фильтрам, ремкомплект не закупали. Никто не знал, что пора менять, пока пневмоинструменты не перестали работать.
- Простой 23 июля. 4 часа простоя склада сырья. Причина: вышел из строя один из двух холодильников, температура в боксе пошла с 4°C до 18°C, часть сырья пришлось списать (потеря 92 тысячи ₽). Холодильник, скорее всего, начал «греться» за 2-3 дня до отказа, но никто этого не видел.
- Простой 6 августа. 8 часов простоя цеха. Причина: пропала одна из фаз в электрощите (вышел из строя автомат на 63А). Без одной фазы продолжали работать большинство станков, но трёхфазный пресс встал. Никто не понимал, что произошло, вызывали электрика из райцентра 4 часа.
Представьте себе: суммарный убыток всего за три простоя составил около 480 тысяч ₽, и это только прямая выручка. Плюс ко всему, мы получили штрафы от двух клиентов за срыв сроков на 145 тысяч ₽. В итоге, за один месяц вышло 625 тысяч ₽. И это, конечно, не учитывая нервы, подмоченную репутацию и общее моральное состояние всей команды.
Директор всё пересчитал: если простои будут продолжаться с такой же частотой, то годовая стоимость этой «невидимости» проблем выльется примерно в 7 миллионов ₽. Мне стало ясно, что даже мониторинг за миллион ₽ окупится всего за два месяца. В итоге мы согласовали бюджет в 280 тысяч ₽ и расписали план на 28 дней.
Что мы спроектировали: 4 ESP-узла + Zabbix в Москве
Наше архитектурное решение собрано из четырёх ключевых частей. Это датчики на ESP32, которые мы поставили прямо на местах, MQTT-брокер, который занимается приёмом всех данных, LTE-канал для надёжной связи с интернетом, и, конечно, Zabbix-сервер — он отвечает за хранение, визуализацию и алертинг.
Почему ESP32, а не промышленные модули
Знаете, мне очень не нравится, когда люди безапелляционно заявляют: «Для производства подходят только промышленные PLC». Да, это абсолютная правда, если речь идёт об управлении – когда устройство реально ОТКРЫВАЕТ клапан или ЗАПУСКАЕТ привод. Но для мониторинга, где задача просто СЧИТАТЬ значение и отправить его в облако, это, мягко говоря, не соответствует действительности. Я вам скажу так: в задачах мониторинга ESP32 справляется ничуть не хуже промышленного контроллера, а стоит при этом в 8-10 раз меньше!
Конкретно для этого проекта мы выбрали ESP32-WROOM-32D в надёжном металлическом корпусе IP65 от фирмы AKS, да ещё и с удобным DIN-rail креплением. Одно такое готовое устройство с корпусом обошлось нам в 4200 ₽. А теперь сравните: PLC уровня Siemens LOGO 8.4 с похожим набором входов стоит от 38 до 45 тысяч ₽. Согласитесь, разница в 9 раз для простых задач мониторинга – это просто нерационально, я считаю.
Какие датчики на каких узлах
Мы спроектировали 4 узла, каждый отвечает за свою зону:
- Узел 1 — цех. SHT35 (температура и влажность с точностью ±0.2°C и ±2% RH), BMP280 (атмосферное давление, для трендов погоды и контроля климата). Размещён под потолком на высоте 4 метра, питание от резервного блока.
- Узел 2 — склад сырья. DHT22 (бюджетная замена SHT35 для подвального бокса, где требований к точности нет), MQ-2 (газовый датчик, детектирует углеводороды на случай утечки топлива из стоящего рядом дизель-генератора).
- Узел 3 — компрессорная. Три BMP280 на разных точках воздушной магистрали: на выходе из компрессора, на входе в цех, на конечной точке. Это позволяет видеть не только текущее давление, но и потери на линии (если разница «вход - выход» растёт, значит есть утечка).
- Узел 4 — электрощит. Три PZEM-004T (модули измерения переменного тока) на каждой из трёх фаз. Передают напряжение, ток, мощность, потребление в кВт·ч. Сразу видно, если одна фаза «провалилась» или нагрузка на одной фазе ушла в перекос.
Связь между узлами и сервером
Все наши четыре ESP32 подключились к локальной сети цеха по Wi-Fi – для этого мы использовали 4 точки доступа TP-Link EAP265 HD, которые равномерно покрыли всю территорию. Дальше трафик из локальной сети пошёл через MikroTik RB CAP ac-LTE, оснащённый двумя SIM-картами: Мегафон M2M в качестве основной и Теле2 как резерв. От этого MikroTik мы проложили WireGuard-туннель прямиком до нашего Zabbix-сервера, который, кстати, находится в дата-центре МТС на Авиамоторной.
Конфигурация ESP32: что прошито внутри
На каждом ESP32 — прошивка на Arduino IDE с библиотеками для соответствующих датчиков и MQTT-клиента PubSubClient. Опрос датчиков раз в 30 секунд, отправка в MQTT-брокер по топику /factory/{node}/{sensor}. Перед отправкой данные пишутся в локальное хранилище LittleFS, чтобы при разрыве связи не потерять.
// ESP32 прошивка — узел 1 (цех)
// ITfresh, 2025-08-22
#include
#include
#include
#include
#include
#include
#define WIFI_SSID "FACTORY-OPS"
#define WIFI_PASS "***"
#define MQTT_HOST "10.20.30.5" // tunnel-side IP сервера
#define MQTT_PORT 8883
#define NODE_NAME "cex-01"
#define SAMPLE_MS 30000 // 30 секунд
Adafruit_SHT31 sht = Adafruit_SHT31();
Adafruit_BMP280 bmp;
WiFiClientSecure net;
PubSubClient mqtt(net);
void publishSensor(const char* sensor, float value) {
char topic[64];
snprintf(topic, sizeof(topic), "factory/%s/%s", NODE_NAME, sensor);
char payload[16];
snprintf(payload, sizeof(payload), "%.2f", value);
if (mqtt.connected()) {
mqtt.publish(topic, payload);
} else {
// Локальный буфер LittleFS — до 72 часов
File f = LittleFS.open("/buffer.log", "a");
f.printf("%lu %s %s\n", millis(), topic, payload);
f.close();
}
}
void loop() {
if (!mqtt.connected()) reconnectMqtt();
mqtt.loop();
static unsigned long last = 0;
if (millis() - last > SAMPLE_MS) {
last = millis();
publishSensor("temp", sht.readTemperature());
publishSensor("hum", sht.readHumidity());
publishSensor("press", bmp.readPressure()/100.0); // hPa
publishSensor("uptime", millis()/1000.0);
publishSensor("rssi", WiFi.RSSI());
}
}
Что важно в этом коде: TLS-соединение с сервером (порт 8883, сертификат вшит во flash), локальная буферизация при потере связи, отправка телеметрии о состоянии самого устройства (uptime, RSSI), плюс watchdog-таймер каждые 2 секунды (в коде выше не показан для краткости).
Как мы передаём данные через MQTT в Zabbix
На серверной стороне, в Москве, у нас крутится связка Mosquitto MQTT broker, дополненная специальным коннектором. Этот коннектор очень хитро преобразует все MQTT-сообщения в Zabbix-айтемы. Кстати, у нас есть два варианта реализации такого коннектора, но здесь мы использовали mqtt2zabbix, который написан на Python и, что важно, доработан нами специально под нужды этого клиента.
# /etc/mosquitto/mosquitto.conf — конфиг MQTT-брокера
# ITfresh, 2025-08-25
listener 8883 0.0.0.0
protocol mqtt
allow_anonymous false
password_file /etc/mosquitto/passwd
acl_file /etc/mosquitto/acl
# TLS — наш собственный CA для устройств клиента
cafile /etc/mosquitto/ca.crt
certfile /etc/mosquitto/server.crt
keyfile /etc/mosquitto/server.key
require_certificate true
use_identity_as_username true
# Persistence на случай рестарта
persistence true
persistence_location /var/lib/mosquitto/
# Каждое сообщение пишется в Zabbix через bridge-плагин
log_dest file /var/log/mosquitto/mosquitto.log
log_type all
# Bridge на локальный Zabbix-trapper
connection zabbix-bridge
address 127.0.0.1:10051
topic factory/# both 2
На стороне Zabbix у нас есть шаблон «Factory ESP32 node» с 6 элементами данных и 4 триггерами. Триггеры срабатывают при выходе значения за пределы или при отсутствии данных более 3 минут (это сигнал, что устройство или связь упали).
Что мы сделали с MikroTik и LTE-каналом
Почему именно MikroTik RB CAP ac-LTE
MikroTik RB CAP ac-LTE, хоть и считается младшей моделью LTE-роутеров от MikroTik, для нашего проекта подошёл идеально. Я считаю, что его возможностей вполне хватает. Он поддерживает Cat 4 LTE (это до 150 Мбит/с теоретически, а реально на этом адресе мы получали 25-40 Мбит/с), имеет две SIM-карты с функцией автоматического переключения, встроенный коммутатор на 1 Гбит и может одновременно работать с двумя Wi-Fi радио на частотах 2.4 ГГц и 5 ГГц.
Само устройство стоило нам 14 800 ₽. Антенна Mikrotik mANT LTE 5o – внешняя направленная, MIMO 2×2, 10 dBi – обошлась в 6 200 ₽. Установку антенны на крыше цеха, с точным прицеливанием на ближайшую вышку Мегафон в Дмитрове, которая находится в 8 километрах, наш инженер сделал буквально за полдня. Справился, как всегда, отлично!
Конфигурация автопереключения SIM
Мне очень нравится, что в прошивке MikroTik RouterOS 7.14 уже встроен механизм netwatch для проверки доступности и автоматического переключения между SIM-картами. Настройка всего этого заняла у меня от силы 15 минут – просто красота:
# MikroTik /etc — конфигурация LTE-переключения
# RouterOS 7.14, на устройстве в цехе
/interface lte
add name=lte1 apn=internet.mts band=3,7,20 sim-slot=up
add name=lte2 apn=m2m.tele2.ru band=3,7,20 sim-slot=down disabled=yes
/ip address
add interface=lte1 address=dhcp
/system scheduler
add name=lte-watchdog interval=1m on-event=/system/script/run lte-failover
/system script
add name=lte-failover source={
:local pingResult [/ping 8.8.8.8 count=3 interface=lte1]
:if ($pingResult < 2) do={
:log warning "LTE1 down, switching to LTE2"
/interface lte set [find name=lte1] disabled=yes
/interface lte set [find name=lte2] disabled=no
:delay 30s
# Уведомить ITfresh
/tool fetch url="https://itfresh.ru/api/lte-failover?factory=dmitrov" mode=https
}
}
# WireGuard на ITfresh-сервер
/interface wireguard
add name=wg-itfresh listen-port=51820 \
private-key="***"
/interface wireguard peers
add interface=wg-itfresh public-key="***" \
endpoint-address=mon.itfresh.ru endpoint-port=51820 \
allowed-address=10.20.30.0/24 persistent-keepalive=25s
За 8 месяцев работы автоматическое переключение на резервную SIM срабатывало 7 раз — все случаи краткосрочные (10-90 минут), все связаны с плановыми работами Мегафон на этой соте. Резервная Теле2 в этот момент работала, мониторинг шёл, никто из клиента ничего не заметил.
Реальная стоимость и сроки
Финальная смета на 280 тысяч ₽ распалась так:
- Железо. 4 ESP32 в корпусе IP65 — 16 800 ₽. Датчики (3 SHT35, 1 DHT22, 3 BMP280 + три на компрессорной = 6, 3 PZEM-004T, 1 MQ-2) — суммарно 18 200 ₽. MikroTik RB CAP ac-LTE с антенной — 21 000 ₽. Wi-Fi-точки доступа TP-Link EAP265 HD (4 шт) — 23 600 ₽. Кабельные работы (SFTP cat6, 320 метров) — 9 800 ₽. Резервные ИБП SVC-650 на каждый узел (4 шт) — 11 600 ₽. Железо итого: 101 000 ₽.
- Услуги (работа инженеров ITfresh). Проектирование и согласование — 35 000 ₽. Прошивка ESP32 + настройка Wi-Fi — 28 000 ₽. Монтаж на месте (инженер 3 дня на объекте) — 42 000 ₽. Настройка MikroTik и LTE-канала — 18 000 ₽. Настройка Zabbix-сервера и Grafana-дашбордов — 24 000 ₽. Обучение операторов и шеф-инженера — 12 000 ₽. Услуги итого: 159 000 ₽.
- SIM-карты M2M. Подключение Мегафон М2М (тариф «Производство»): 4900 ₽/мес × оплата за 2 месяца вперёд = 9 800 ₽. Теле2 резерв (тариф «Минимум»): 1 200 ₽/мес × 2 = 2 400 ₽. Связь итого: 12 200 ₽.
- Хостинг Zabbix. На нашем гипервизоре в МТС — виртуальная машина 2 vCPU / 4 ГБ RAM / 50 ГБ SSD. По себестоимости для клиента — 7 800 ₽ за два месяца вперёд.
Давайте подведём итог по деньгам: 101 000 + 159 000 + 12 200 + 7 800, итого получилось ровно 280 000 ₽. А что по срокам? Согласование сметы заняло 3 дня, закупка железа – 8 дней, монтаж и наладка – 14 дней, а на обучение ушло 3 дня. В общем, мы уложились в полный срок от подписи договора до сдачи, который составил 28 дней.
Результат: 0 простоев за 8 месяцев
Мы сдали систему клиенту 19 сентября 2025 года. И вот, за 8 месяцев работы – по состоянию на 12 мая 2026 – представляете, не было ни одного полноценного простоя цеха! При этом система выдала 14 предупредительных алертов, благодаря которым клиент успевал провести профилактику ещё до того, как что-то могло реально остановиться:
- 3 раза давление в воздушной линии плавно падало — успели поменять фильтры в компрессоре до критического значения.
- 2 раза температура в боксе склада сырья начинала ползти — проверили холодильники, нашли проблему с конденсатором у одного.
- 4 раза перекос фаз в электрощите — позвали электрика, нашли подгоревший контакт в автомате.
- 2 раза влажность в цехе ушла за норму — обнаружили, что вентиляция стала засасывать с улицы из-за подвисшей заслонки.
- 3 раза детектор газа MQ-2 в складе срабатывал на повышение уровня — оказалось, что мимо проезжали грузовики на солярке, при определённом ветре газы попадали в склад через приточку.
Я подсчитал, что за эти 8 месяцев клиент сэкономил примерно 4.5-5.2 миллиона ₽ только за счёт того, что простоев не было. Плюс ко всему, значительно улучшилось настроение команды – теперь никто не приходит на работу с тревожной мыслью «что сегодня сломается?». ROI этой системы, которая обошлась в 280 тысяч, составил около 17-18 раз всего за восемь месяцев. По-моему, это очень круто!
FAQ: что чаще всего спрашивают клиенты
Зачем ESP32, если есть промышленные модули PLC?
ESP32, как я уже говорил, в 6-10 раз дешевле даже самого бюджетного PLC уровня Siemens LOGO, и для задач мониторинга – подчеркну, именно мониторинга, а не управления – этого вполне хватает. Могу сказать из своего опыта: у наших производственных клиентов ESP32 работают уже по 14-18 месяцев без единого отказа, причём в самых разных условиях – температура от 5 до 35°C и влажность до 80%. Промышленные PLC, на мой взгляд, действительно нужны только там, где речь идёт о реальном управлении приводами с обратной связью и где есть очень жёсткие требования по сертификации.
Почему LTE, а не нормальный оптический интернет?
Представьте себе: производство клиента находится в 8 километрах от ближайшей деревни, а ближайший оптический провайдер – и вовсе в 12 километрах. Провести туда оптику стоило бы от 850 до 1200 тысяч ₽, и это заняло бы от 6 до 9 месяцев только на согласования! Вместо этого мы выбрали LTE MikroTik с симкой Мегафон М2М, который даёт стабильные 25-40 Мбит/с всего за 4900 ₽/мес и работает без проблем с первого дня. Для трафика мониторинга, который составляет около 50 МБ/сутки, этого, поверьте, с огромным запасом.
Что если LTE упадёт — как мы про это узнаем?
Мы предусмотрели целых два уровня защиты. Первый – это резервный GPRS-канал, который работает через вторую симку другого оператора (в нашем случае это Теле2) на том же самом MikroTik. Второй уровень – Zabbix-агент на ESP-датчиках, который умеет буферизовать данные локально до 72 часов и отправлять их, как только связь восстановится. А если вдруг и оба канала упадут, что, конечно, маловероятно, то у инженера клиента на этот случай есть Yota-роутер, который ждёт своего часа в чемоданчике в кабинете директора. Кстати, могу сказать, что за все 8 месяцев двойного отказа каналов у нас не было ни разу.
Сколько займёт развёртывание такой системы на типовом производстве?
По нашим текущим срокам — 28-45 рабочих дней. Из них: проектирование (где какие датчики ставить, какие пороги тревоги) — 5-7 дней; закупка железа — 7-14 дней; монтаж и пусконаладка на месте — 10-14 дней; обучение операторов и шеф-инженера — 3-5 дней; сдача в эксплуатацию с парой контрольных алертов — 3-5 дней. У клиента в Дмитровском районе всё уложилось в 28 дней.
Сколько стоит такая система под ключ для производства 30-50 РМ?
По состоянию на май 2026 года, я могу сказать, что для типового производства с 30-50 РМ и покрытием 10-15 точек измерения наша система обойдётся вам в 250-380 тысяч ₽ под ключ. В эту сумму я включил всё необходимое: это ESP32-датчики, профессиональный корпус IP65, сервер Zabbix на нашем гипервизоре в Москве, LTE-роутер MikroTik с антенной, а также проектирование, монтаж и пусконаладка. А ежемесячная поддержка, если что, будет стоить 8-12 тысяч ₽ в рамках нашего аутсорсного договора.
Итог
Я уверен, что загородное производство с 47 РМ можно полностью трансформировать: из «чёрного ящика, где постоянно что-то ломается», оно превратится в управляемый процесс с предсказуемой работой. И всё это всего за 280 тысяч ₽ и 28 дней! Инструменты, которые мы используем, довольно просты: это ESP32 плюс датчики на 18 тысяч, надёжный LTE-канал MikroTik с двумя SIM-картами, Zabbix на нашем сервере в Москве, MQTT для передачи данных и Grafana для удобной визуализации. Посмотрите на результаты: за 8 месяцев у клиента – ноль простоев, 14 предупредительных алертов и экономия около 5 миллионов ₽. Могу с уверенностью сказать, по моему опыту, это одно из самых высокоокупаемых решений на рынке IoT для сегмента МСБ в Москве и Московской области.
Похожая задача в вашей компании?
Расскажите, что у вас сейчас — пришлю план работ и оценку в течение рабочего дня.
Написать в Telegram или +7 903 729-62-41
Семёнов Е.С., руководитель ITfresh
