Загородное производство 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 (TP-Link EAP265 HD, 4 точки доступа на территории). Из локальной сети трафик идёт через 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