Введение: почему Asset Tracking нуждается в AI-агенте
Отслеживание активов (Asset Tracking) — одна из ключевых задач логистики, складов и промышленных предприятий. BLE-трекеры (Tile, AirTag, ESP32 с Bluetooth) позволяют определять местоположение оборудования, инструментов и товаров, но их потенциал раскрывается только при интеграции с интеллектуальной системой. Классические решения, такие как платформы на базе AWS IoT или Azure IoT Hub, требуют ручного написания кода, настройки правил и дашбордов. AI-агент ASI Biont (asibiont.com) меняет подход: пользователь описывает задачу в чате, а AI сам пишет код подключения, парсит данные и запускает сценарии автоматизации. В этой статье мы покажем, как подключить BLE-трекер к ASI Biont, передать координаты, настроить геозоны и оповещения — без единой строки кода, написанной вручную.
Как ASI Biont подключается к BLE-трекерам?
ASI Biont поддерживает несколько способов подключения к IoT-устройствам. Для Asset Tracking оптимальны два варианта:
| Способ | Когда использовать | Плюсы | Минусы |
|---|---|---|---|
| MQTT | Трекер (например, ESP32) публикует данные в MQTT-брокер | Стандартный протокол, низкая задержка, поддержка QoS | Требуется стабильное Wi-Fi-подключение |
| Hardware Bridge (COM-порт) | GPS-трекер подключается по RS-232 к ПК | Работает с любым COM-устройством, не требует сети | Bridge должен быть запущен локально |
| execute_python (HTTP API) | Трекер имеет REST API (например, Tile) | Универсально, работает из облака | Зависит от доступности API |
В этой статье мы рассмотрим сценарий с MQTT, так как он наиболее распространён для BLE-трекеров на базе ESP32.
Сценарий: ESP32 с BLE-сканером + ASI Biont через MQTT
Представим склад, где каждая единица оборудования оснащена BLE-маячком (например, nRF51822). ESP32 с BLE-сканером собирает RSSI и идентификаторы маячков, вычисляет приблизительные координаты (по триангуляции) и публикует данные через MQTT в топик warehouse/asset_location. ASI Biont подключается к тому же MQTT-брокеру, подписывается на топик, анализирует данные и выполняет действия: запись в базу, оповещение при выходе из геозоны, инвентаризация.
Шаг 1. Настройка ESP32 (MicroPython)
Прошивка MicroPython на ESP32 позволяет быстро реализовать MQTT-клиент. Пример кода для публикации координат:
import network
import time
import json
from umqtt.simple import MQTTClient
# Подключение к Wi-Fi
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect('SSID', 'PASSWORD')
while not wlan.isconnected():
time.sleep(1)
# MQTT-клиент
client = MQTTClient('esp32_asset', 'broker.emqx.io', port=1883)
client.connect()
# Симуляция данных (в реальности — BLE-сканер)
while True:
data = {
'device_id': 'asset_001',
'lat': 55.7558,
'lon': 37.6173,
'rssi': -65
}
client.publish('warehouse/asset_location', json.dumps(data))
time.sleep(10)
Этот код работает на ESP32, но его можно адаптировать под любой BLE-маяк.
Шаг 2. Подключение ASI Biont к MQTT-брокеру
Пользователь описывает задачу в чате ASI Biont:
«Подключись к MQTT-брокеру broker.emqx.io:1883, подпишись на топик warehouse/asset_location и сохраняй все сообщения в PostgreSQL базу данных. При выходе asset_001 за пределы радиуса 50 метров от точки (55.7558, 37.6173) отправь уведомление в Telegram.»
AI-агент генерирует и выполняет Python-скрипт в sandbox-окружении (execute_python):
import paho.mqtt.client as mqtt
import json
import psycopg2
import requests
# Параметры
BROKER = 'broker.emqx.io'
PORT = 1883
TOPIC = 'warehouse/asset_location'
DB_CONFIG = {
'dbname': 'warehouse',
'user': 'admin',
'password': 'secret',
'host': 'localhost'
}
TELEGRAM_BOT_TOKEN = '123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11'
TELEGRAM_CHAT_ID = '987654321'
REF_LAT = 55.7558
REF_LON = 37.6173
RADIUS = 50 # метров
def on_message(client, userdata, msg):
data = json.loads(msg.payload)
device_id = data['device_id']
lat = data['lat']
lon = data['lon']
# Сохранение в БД
conn = psycopg2.connect(**DB_CONFIG)
cur = conn.cursor()
cur.execute(
"INSERT INTO asset_logs (device_id, lat, lon, timestamp) VALUES (%s, %s, %s, NOW())",
(device_id, lat, lon)
)
conn.commit()
cur.close()
conn.close()
# Проверка геозоны (через формулу гаверсинуса)
from math import radians, sin, cos, sqrt, asin
R = 6371000
dlat = radians(lat - REF_LAT)
dlon = radians(lon - REF_LON)
a = sin(dlat/2)**2 + cos(radians(REF_LAT)) * cos(radians(lat)) * sin(dlon/2)**2
c = 2 * asin(sqrt(a))
distance = R * c
if distance > RADIUS:
requests.post(
f'https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage',
json={'chat_id': TELEGRAM_CHAT_ID, 'text': f'Оборудование {device_id} вышло из зоны! Расстояние: {distance:.0f} м'}
)
client = mqtt.Client()
client.on_message = on_message
client.connect(BROKER, PORT, 60)
client.subscribe(TOPIC)
client.loop_forever()
Этот скрипт выполняется в облаке ASI Biont. Обратите внимание: для работы с COM-портами потребовался бы Hardware Bridge, но здесь MQTT-подключение полностью облачное.
Шаг 3. Дополнительные сценарии автоматизации
После подключения AI-агент может:
- Инвентаризация склада: раз в час сканировать данные из БД и формировать отчёт в Excel (через openpyxl) с количеством активов в каждой зоне.
- Контроль перемещения: при обнаружении нового устройства в зоне (например, asset_002) AI добавляет его в таблицу и отправляет уведомление.
- Прогнозирование: используя библиотеку scikit-learn, AI анализирует историю перемещений и предсказывает, когда оборудование покинет склад.
Пример команды для AI:
«Сформируй отчёт по инвентаризации за последнюю неделю: количество записей по каждому устройству, среднее время в зоне, список устройств, покидавших склад. Отправь файл в Telegram.»
AI выполнит запрос к PostgreSQL, обработает данные и отправит XLSX-файл.
Сравнение с классическими системами мониторинга
| Параметр | Классическая система (AWS IoT + Lambda) | ASI Biont |
|---|---|---|
| Время настройки | Дни — недели (написание кода, деплой) | Минуты (описание задачи в чате) |
| Гибкость | Нужно переписывать код при изменении логики | AI адаптирует скрипт по запросу |
| Стоимость | Высокая (инфраструктура AWS, разработчик) | Низкая (подписка, без DevOps) |
| Интеграция с Telegram | Требуется отдельный сервис | Встроенная поддержка через requests |
Почему это выгодно?
- Нет ручного кода: AI пишет интеграцию за секунды, пользователь только описывает сценарий.
- Универсальность: ASI Biont подключается к любому устройству через execute_python — не нужно ждать обновлений платформы.
- Безопасность: скрипты выполняются в sandbox-окружении с ограниченным доступом к файловой системе и сети.
Заключение
Интеграция Asset Tracking с AI-агентом ASI Biont превращает BLE-трекеры в полноценную систему контроля активов с геозонами, инвентаризацией и оповещениями. Всё, что нужно — описать задачу в чате на asibiont.com. Попробуйте прямо сейчас: подключите свой трекер и получите готовую автоматизацию без единой строки кода.
Комментарии