Потери активов на складах и в логистике — одна из главных головных болей бизнеса. По данным исследования Zebra Technologies (2024), до 30% запасов на складах могут быть утеряны из-за ошибок учёта, а время поиска нужного оборудования занимает до 20% рабочего времени персонала. Системы asset tracking (GPS-трекеры, BLE-метки) призваны решить эту проблему, но их интеграция с AI-агентами открывает новые горизонты: автоматическая инвентаризация, предиктивное оповещение о перемещениях, генерация отчётов без участия человека. В этой статье я покажу, как подключить устройство Asset Tracking (на примере ESP32 с GPS-модулем NEO-6M и датчиком BME280) к AI-агенту ASI Biont через MQTT, настроить сбор данных и автоматизировать управление активами — и всё это без написания кода вручную.
Что такое Asset Tracking и зачем подключать к AI-агенту?
Asset tracking — это система отслеживания местоположения и состояния физических объектов (оборудование, товары, транспорт) в реальном времени. Устройства asset tracking бывают:
- GPS-трекеры — для наружного мониторинга (автомобили, контейнеры, строительная техника).
- BLE-метки — для внутреннего позиционирования (инструменты, паллеты, медицинское оборудование).
- Комбинированные — с датчиками температуры, влажности, удара (для перевозки хрупких грузов).
Подключение такого устройства к AI-агенту ASI Biont превращает пассивный трекер в интеллектуального помощника: AI анализирует данные, выявляет аномалии, отправляет уведомления в Telegram или Slack, формирует отчёты и даже автоматически корректирует записи в системе учёта (1С, SAP). Всё это происходит через диалог в чате — вы просто описываете задачу, а AI пишет и выполняет код интеграции.
Как ASI Biont подключается к устройству Asset Tracking?
AI-агент ASI Biont не имеет жёстко заданных протоколов — он сам пишет код под ваше устройство. Для asset tracking оптимальны два способа:
- MQTT — ESP32 (или другой микроконтроллер) публикует данные о местоположении и сенсорах в MQTT-брокер (например, Mosquitto или HiveMQ Cloud). AI-агент подписывается на нужный топик, получает сообщения, парсит их и выполняет действия.
- Hardware Bridge + COM-порт — если трекер подключён к ПК через USB/UART (например, GPS-приёмник), AI использует bridge.py для чтения NMEA-строк и отправки команд.
В этой статье мы рассмотрим MQTT-подход, так как он наиболее универсален для IoT-устройств и не требует постоянного подключения к ПК.
Практический сценарий: Отслеживание контейнеров с лекарствами
Представьте: у вас есть 50 контейнеров с термочувствительными препаратами. Каждый контейнер оборудован ESP32 с GPS-модулем NEO-6M и датчиком BME280 (температура, влажность). Контейнеры перемещаются между складом и больницами. Задача:
- Собирать координаты и показания датчиков каждые 5 минут.
- При выходе температуры за пределы 2-8°C — мгновенно оповещать логиста.
- Раз в сутки формировать отчёт о перемещениях.
Шаг 1. Настройка ESP32
ESP32 подключаем к GPS-модулю и BME280. Схема подключения:
| ESP32 | NEO-6M | BME280 |
|---|---|---|
| 3.3V | VCC | VCC |
| GND | GND | GND |
| GPIO16 (RX2) | TX | — |
| GPIO17 (TX2) | RX | — |
| GPIO21 (SDA) | — | SDA |
| GPIO22 (SCL) | — | SCL |
Прошивка ESP32 на MicroPython. Код публикует данные в MQTT-брокер:
import network
import ujson
import time
from machine import Pin, I2C, UART
import bme280
from umqtt.simple import MQTTClient
# Настройка Wi-Fi
wifi = network.WLAN(network.STA_IF)
wifi.active(True)
wifi.connect('YOUR_SSID', 'YOUR_PASSWORD')
while not wifi.isconnected():
time.sleep(1)
# Настройка UART для GPS
uart = UART(2, baudrate=9600, rx=16, tx=17)
# Настройка I2C для BME280
i2c = I2C(scl=Pin(22), sda=Pin(21))
sensor = bme280.BME280(i2c=i2c)
# MQTT-клиент
def mqtt_callback(topic, msg):
print('Received:', topic, msg)
client = MQTTClient('esp32_asset_42', 'broker.hivemq.com', port=1883)
client.set_callback(mqtt_callback)
client.connect()
while True:
# Чтение GPS (NMEA)
line = uart.readline()
if line and line.startswith(b'$GPGGA'):
parts = line.decode().split(',')
if len(parts) > 5 and parts[2] and parts[4]:
lat = float(parts[2][:2]) + float(parts[2][2:]) / 60.0
lon = float(parts[4][:3]) + float(parts[4][3:]) / 60.0
if parts[3] == 'S': lat = -lat
if parts[5] == 'W': lon = -lon
# Чтение BME280
temp, press, hum = sensor.read_compensated_data()
temp_c = temp / 100.0
payload = ujson.dumps({
'device_id': 'container_42',
'lat': lat,
'lon': lon,
'temperature': temp_c,
'humidity': hum / 1024.0,
'timestamp': time.time()
})
client.publish(b'asset/container_42/data', payload.encode())
time.sleep(300) # 5 минут
Шаг 2. Подключение ASI Biont к MQTT-брокеру
Теперь, когда ESP32 публикует данные, AI-агент должен их получать. Всё, что нужно сделать пользователю — написать в чат ASI Biont:
«Подключись к MQTT-брокеру по адресу broker.hivemq.com:1883, подпишись на топик asset/container_42/data. При получении сообщения проверяй температуру: если она выходит за пределы 2-8°C, отправь уведомление в Telegram на ID 123456789. Также раз в 24 часа формируй Excel-отчёт со всеми полученными данными за сутки и сохрани его в формате report_YYYY-MM-DD.xlsx.»
AI сам напишет и выполнит скрипт на Python в sandbox-окружении. Вот как выглядит сгенерированный код (вы можете увидеть его в логах чата):
import paho.mqtt.client as mqtt
import json
import requests
from datetime import datetime
import openpyxl
from openpyxl import Workbook
# Конфигурация
BROKER = 'broker.hivemq.com'
PORT = 1883
TOPIC = 'asset/container_42/data'
TELEGRAM_BOT_TOKEN = 'YOUR_BOT_TOKEN'
TELEGRAM_CHAT_ID = '123456789'
TEMP_MIN = 2.0
TEMP_MAX = 8.0
DATA_BUFFER = []
# Функция отправки в Telegram
def send_telegram_alert(message):
url = f'https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage'
payload = {'chat_id': TELEGRAM_CHAT_ID, 'text': message}
try:
requests.post(url, json=payload, timeout=5)
except Exception as e:
print('Telegram error:', e)
# Функция формирования отчёта
def generate_report():
if not DATA_BUFFER:
return
wb = Workbook()
ws = wb.active
ws.title = 'Asset Data'
ws.append(['Timestamp', 'Device ID', 'Latitude', 'Longitude', 'Temperature', 'Humidity'])
for entry in DATA_BUFFER:
ws.append([
entry.get('timestamp'),
entry.get('device_id'),
entry.get('lat'),
entry.get('lon'),
entry.get('temperature'),
entry.get('humidity')
])
filename = f'report_{datetime.now().strftime("%Y-%m-%d")}.xlsx'
wb.save(filename)
print(f'Report saved: {filename}')
# Callback при получении сообщения
def on_message(client, userdata, msg):
try:
data = json.loads(msg.payload.decode())
DATA_BUFFER.append(data)
temp = data.get('temperature')
if temp and (temp < TEMP_MIN or temp > TEMP_MAX):
alert = f'⚠️ Температура вышла за норму! Устройство {data["device_id"]}: {temp}°C'
send_telegram_alert(alert)
print(alert)
else:
print(f'Норма: {temp}°C')
except Exception as e:
print('Parse error:', e)
# Подключение
def main():
client = mqtt.Client()
client.on_message = on_message
client.connect(BROKER, PORT, 60)
client.subscribe(TOPIC)
print(f'Подписан на {TOPIC}')
# Таймер на генерацию отчёта раз в сутки (здесь упрощённо: после 10 сообщений)
# В реальности используйте threading.Timer или asyncio
client.loop_start()
import time
time.sleep(86400) # или до прерывания
generate_report()
client.loop_stop()
if __name__ == '__main__':
main()
Обратите внимание: AI сам подставляет ваш Telegram-токен и ID чата, которые вы указали в диалоге. Всё выполняется в облаке, без установки дополнительного ПО на ваш ПК (кроме bridge.py, если используете COM-порт).
Шаг 3. Результат работы
После запуска скрипта:
- Каждые 5 минут AI получает данные с ESP32.
- При превышении температуры — мгновенное уведомление в Telegram.
- Раз в сутки — Excel-файл с историей перемещений.
Вы можете в любой момент запросить у AI: «Покажи последние 10 координат контейнера 42» или «Построй график температуры за последнюю неделю» — и AI выполнит код с использованием matplotlib и отобразит результат прямо в чате.
Дополнительные сценарии для Asset Tracking
1. Управление инвентаризацией через BLE-метки
Если на складе используются BLE-метки (например, на базе nRF52840), AI может подключаться к MQTT-брокеру, куда шлюзы отправляют RSSI-сигналы. AI рассчитывает расстояние до меток и определяет, на какой стеллаже находится актив. При расхождении с учётной системой (например, 1С) AI отправляет запрос на корректировку.
Пример команды пользователя:
«Подключись к MQTT-брокеру 192.168.1.100:1883, топик warehouse/ble/rssi. Для каждой метки с device_id вычисли приблизительное местоположение на основе RSSI от трёх шлюзов. Если метка покинула зону склада, отправь email на manager@company.com.»
2. Геозоны и оповещения
AI может создавать виртуальные геозоны (полигоны на карте) и отслеживать вход/выход трекера из зоны. Для этого достаточно передать AI координаты границ.
Пример:
«Создай геозону с центром (55.751244, 37.618423) и радиусом 500 метров. Если трекер container_42 выходит за пределы зоны, отправь SMS через Twilio на номер +7-999-123-45-67.»
AI сгенерирует код с использованием библиотеки geopy для расчёта расстояния и twilio для SMS.
3. Интеграция с 1С через HTTP API
Если ваша учётная система имеет REST API, AI может автоматически обновлять статус актива при изменении местоположения.
Пример:
«При получении данных с топика asset/container_42/data, если координаты изменились более чем на 100 метров от предыдущих, отправь POST-запрос на http://erp.company.com/api/v1/update с JSON: {"asset_id": "42", "lat": ...}. Авторизация: Bearer token YOUR_TOKEN.»
Почему это выгодно?
Традиционная интеграция asset tracking с AI требует:
- Написания бэкенда на Node.js/Python.
- Настройки брокера сообщений.
- Разработки системы уведомлений.
- Создания дашборда.
С ASI Biont весь процесс занимает минуты. Вы просто описываете задачу на естественном языке, и AI:
- Пишет код на Python с использованием реальных библиотек (paho-mqtt, requests, openpyxl).
- Выполняет его в sandbox-окружении.
- При необходимости генерирует отчёты, графики, отправляет уведомления.
- При использовании COM-порта (например, для прямого подключения GPS-приёмника к ПК) AI использует Hardware Bridge — вы скачиваете bridge.py из дашборда, запускаете на своём компьютере, и AI получает доступ к порту через WebSocket.
Никаких панелей управления и кнопок «добавить устройство» — всё через диалог в чате.
Заключение
Интеграция Asset Tracking с AI-агентом ASI Biont превращает обычный трекер в интеллектуальную систему управления активами. Вы получаете:
- Автоматический сбор данных о местоположении и состоянии.
- Мгновенные оповещения при нарушениях.
- Отчёты в Excel или PDF.
- Интеграцию с любыми внешними системами (ERP, Telegram, email) без программирования.
Попробуйте сами: зайдите на asibiont.com, создайте API-ключ, скачайте bridge.py (если нужно), и напишите AI: «Подключи мой GPS-трекер через MQTT и отправляй уведомления при выходе из зоны». Убедитесь, что интеграция занимает минуты, а не недели.
Комментарии