Введение: что такое 1-Wire и зачем подключать его к AI?
Протокол 1-Wire (Dallas Semiconductor / Maxim Integrated) — один из самых распространённых последовательных интерфейсов в IoT и умном доме. Он позволяет подключать десятки датчиков (температуры DS18B20, влажности, ключи iButton DS1990A) всего по двум проводам (Data + GND). Каждое устройство имеет уникальный 64-битный идентификатор (ROM ID), что делает топологию шины гибкой и масштабируемой.
Проблема: данные с 1-Wire датчиков обычно забираются микроконтроллером (Arduino, ESP32) или Raspberry Pi, но их анализ, логирование и автоматизация требуют написания скриптов, настройки баз данных и систем уведомлений. ASI Biont решает эту задачу за секунды: AI-агент сам подключается к шине через Hardware Bridge (COM-порт), читает данные, анализирует тренды и отправляет команды — всё через диалог в чате.
Как ASI Biont подключается к 1-Wire?
1-Wire — последовательный интерфейс, который в большинстве случаев подключается к ПК через USB-адаптер (например, DS9097U, FTDI + 1-Wire шина). ASI Biont использует Hardware Bridge — приложение bridge.py, которое пользователь запускает на своём компьютере. Bridge соединяется с облаком ASI Biont через WebSocket (единственный канал связи) и обеспечивает доступ к COM-портам.
Почему именно Hardware Bridge, а не execute_python в облаке?
- COM-порты физически привязаны к локальной машине пользователя.
- Sandbox execute_python не имеет доступа к локальному оборудованию.
- Bridge работает атомарно: AI отправляет команду serial_write_and_read(data=hex_string), bridge пишет в порт и сразу читает ответ.
Для 1-Wire используется команда serial_write_and_read(data="3030303030303030303030300a") — hex-представление строки "0000000000000\n", которая отправляет команду на мастер-контроллер (например, OW-SERVER или Arduino с библиотекой OneWire).
Конкретный сценарий: мониторинг температуры в теплице с DS18B20
Задача: Пользователь хочет каждые 5 минут читать температуру с трёх датчиков DS18B20, подключенных к Arduino Uno, и получать уведомление в Telegram, если температура выходит за пределы 18–30°C.
Шаг 1. Опишите задачу в чате ASI Biont
Пользователь пишет:
«Подключись к Arduino на COM5 (baud 9600). Arduino опрашивает 3 датчика 1-Wire по адресам: 28-000001, 28-000002, 28-000003. Команда для запроса всех датчиков: 'TEMP\n'. Ответ приходит в формате '28-000001:23.5,28-000002:24.1,28-000003:22.8\n'. Читай данные каждые 5 минут, анализируй тренд, если температура выходит за 18–30°C — отправь уведомление в Telegram. Используй bridge.»
Шаг 2. AI генерирует код интеграции
AI создаёт Python-скрипт, который выполняется в sandbox execute_python (облако). Скрипт использует industrial_command() для отправки запросов через bridge:
import time
import json
from datetime import datetime
TELEGRAM_BOT_TOKEN = "your_bot_token"
CHAT_ID = "your_chat_id"
TEMP_MIN = 18.0
TEMP_MAX = 30.0
while True:
# AI отправляет команду через bridge
response = industrial_command(
protocol='serial',
command='serial_write_and_read',
data="54454d500a" # 'TEMP\n' в hex
)
# Парсим ответ
raw = response.get('data', '')
sensors = {}
for part in raw.split(','):
if ':' in part:
addr, temp_str = part.split(':')
sensors[addr.strip()] = float(temp_str.strip())
alerts = []
for addr, temp in sensors.items():
if temp < TEMP_MIN or temp > TEMP_MAX:
alerts.append(f"Датчик {addr}: {temp}°C — выход за пределы")
if alerts:
message = "\n".join(alerts)
requests.post(
f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage",
json={"chat_id": CHAT_ID, "text": message}
)
time.sleep(300) # 5 минут
Важно: sandbox имеет таймаут 30 секунд, поэтому AI использует industrial_command() (tool call), а не бесконечный цикл в execute_python. Для периодического опроса AI создаёт расписание через системный планировщик ASI Biont (пользователь указывает интервал в чате).
Шаг 3. Результат
AI-агент:
- Подключается к bridge с указанными параметрами (COM5, 9600 baud).
- Отправляет команду TEMP\n каждые 5 минут.
- Парсит ответ, сравнивает с порогами.
- Отправляет Telegram-уведомление при выходе за пределы.
- Ведёт лог всех показаний (сохраняет в CSV через библиотеку csv).
Альтернативные сценарии для 1-Wire
| Сценарий | Устройство | Протокол | Действие AI |
|---|---|---|---|
| Умный дом: контроль температуры в комнатах | DS18B20 + ESP32 | MQTT через execute_python | AI подписывается на топик, анализирует тренды, управляет реле (вкл/выкл обогреватель) |
| Система доступа: iButton | iButton DS1990A + Arduino | COM-порт через bridge | AI читает ROM ID, сверяет с белым списком, открывает замок через сервопривод |
| Промышленный мониторинг: 1-Wire на заводе | OW-SERVER + 1-Wire датчики | Modbus TCP (AI использует pymodbus) | AI читает регистры OW-SERVER, логирует в PostgreSQL, предсказывает отказы |
Почему это выгодно?
- Нулевой код вручную. Пользователь не пишет ни одной строки — AI делает всё сам.
- Универсальность. Один AI-агент работает с любым 1-Wire оборудованием: DS18B20, iButton, DS2408 (GPIO), DS2450 (ADC).
- Мгновенная автоматизация. AI настраивает уведомления, логирование и управление за минуты.
- Безопасность. Bridge подключается только через WebSocket с токеном — никаких открытых портов.
Как начать?
- Скачайте bridge.py из дашборда ASI Biont (Devices → Create API Key).
- Подключите 1-Wire адаптер к USB.
- Запустите bridge:
python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud 9600. - Напишите в чате ASI Biont: «Подключись к COM3, читай данные с DS18B20 каждую минуту, если температура > 30°C — включи реле на Arduino через команду RELAY_ON\n».
AI-агент сделает всё остальное. Никаких панелей управления, кнопок «добавить устройство» или ручного конфигурирования — только диалог.
Заключение
1-Wire остаётся одним из самых надёжных протоколов для IoT, но его потенциал раскрывается только при интеграции с AI. ASI Biont превращает шину датчиков в интеллектуальную систему мониторинга и автоматизации без единой строки кода, написанной вручную. Попробуйте интеграцию уже сегодня на asibiont.com.
Комментарии