Введение
Системы мониторинга на базе датчиков 1-Wire, таких как DS18B20 (температура) и влажности, десятилетиями используются в умных домах, теплицах, серверных и промышленности. Однако их потенциал часто ограничен: данные просто записываются в лог или отображаются на экране. AI-агент ASI Biont превращает любой 1-Wire датчик в интеллектуальный узел, способный анализировать тренды, прогнозировать аномалии и отправлять оповещения в Telegram, Slack или по email — без единой строки кода, написанной вручную.
Эта статья — практическое руководство по подключению 1-Wire датчиков (DS18B20, влажности) к ASI Biont через COM-порт с использованием Hardware Bridge. Вы узнаете, как AI-агент сам пишет код интеграции, настраивает опрос датчиков и создаёт сценарии автоматизации на основе данных.
Что такое 1-Wire и зачем его подключать к AI?
1-Wire — это последовательный протокол связи, разработанный Dallas Semiconductor (ныне Maxim Integrated). Он позволяет подключать несколько датчиков по двум проводам (data + ground), используя уникальные 64-битные идентификаторы для каждого устройства. Самые популярные датчики:
- DS18B20 — цифровой термометр с точностью ±0.5°C, диапазон от -55 до +125°C.
- DS2438 — датчик температуры и напряжения с возможностью измерения влажности через внешний сенсор.
- DHT22/AM2302 — часто подключаются через 1-Wire адаптер (хотя нативно используют собственный протокол).
Подключение к ASI Biont даёт:
- Интеллектуальный анализ: AI выявляет аномалии (резкий скачок температуры, выход за пределы нормы) и предсказывает отказы оборудования.
- Автоматизация: при превышении порога AI может включить вентиляцию через реле (по MQTT или HTTP) или отправить команду на контроллер.
- Бескодовая настройка: пользователь описывает задачу в чате, AI пишет Python-код для опроса датчика через COM-порт и обработки данных.
Как ASI Biont подключается к 1-Wire датчикам?
ASI Biont использует Hardware Bridge — приложение bridge.py, которое пользователь запускает на своём ПК (Windows/Linux/macOS). Bridge соединяется с облачным AI-агентом через WebSocket (единственный канал связи) и обеспечивает доступ к локальным COM-портам. Это архитектурно правильный подход: код AI выполняется в облаке (sandbox на Railway), но через bridge он может читать/писать в последовательный порт на вашем компьютере.
Схема подключения:
Датчик 1-Wire (DS18B20) → USB-адаптер 1-Wire → COM-порт (например, COM3) → bridge.py на ПК → WebSocket → ASI Biont (облако)
Почему именно COM-порт?
- 1-Wire — последовательный протокол, работающий через UART/USB.
- Hardware Bridge поддерживает
serial_write_and_read()— атомарную операцию записи и чтения в hex-формате. - Альтернативы (MQTT, HTTP) требуют дополнительного микроконтроллера (ESP32, Arduino) для преобразования 1-Wire в сетевой протокол. Прямое подключение через COM-порт проще и дешевле.
Пошаговое руководство: подключение DS18B20 через bridge.py
Шаг 1. Подготовка оборудования
- Подключите датчик DS18B20 к USB-адаптеру 1-Wire (например, DS9490R или на базе FTDI).
- Подключите адаптер к USB-порту компьютера. Определите номер COM-порта:
- Windows:
COM3,COM5и т.д. (в Диспетчере устройств). - Linux:
/dev/ttyUSB0. - macOS:
/dev/cu.usbserial-*.
Шаг 2. Установка bridge.py
- Войдите в дашборд ASI Biont (asibiont.com).
- Перейдите в раздел Devices → Create API Key → Скачать bridge.
- Установите зависимости:
pip install pyserial requests websockets. - Запустите bridge:
bash python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud 115200 --token— API-ключ из дашборда.--ports— список портов (через запятую).--baud— скорость (для 1-Wire адаптера обычно 9600 или 115200, уточните в документации).--rate=10— ограничение частоты запросов (опционально).
Шаг 3. Пользователь описывает задачу в чате
Пример диалога:
Пользователь: «Подключись к моему датчику DS18B20 на COM3, скорость 115200. Каждые 5 минут читай температуру. Если температура выше 30°C или ниже 5°C, отправь уведомление в Telegram. Также построй график за последние 24 часа с помощью matplotlib.»
Шаг 4. AI пишет код интеграции
ASI Biont использует execute_python для выполнения кода в sandbox и industrial_command для отправки команд через bridge. Пример реального кода, который генерирует AI:
import time
import json
import requests
from datetime import datetime, timedelta
# Конфигурация
COM_PORT = "COM3"
BAUD = 115200
TELEGRAM_BOT_TOKEN = "ваш_токен"
TELEGRAM_CHAT_ID = "ваш_chat_id"
TEMP_THRESHOLD_HIGH = 30.0
TEMP_THRESHOLD_LOW = 5.0
SAMPLES_FILE = "/tmp/temps.json"
# Функция для отправки команды на bridge через industrial_command
def read_temperature():
# Отправляем команду serial_write_and_read через industrial_command
# AI использует tool call, но в коде это выглядит как вызов industrial_command
# Здесь мы эмулируем: AI уже получил данные от bridge
import random
return round(20 + random.uniform(-5, 5), 2) # Эмуляция
def send_telegram(message):
url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage"
payload = {"chat_id": TELEGRAM_CHAT_ID, "text": message, "parse_mode": "Markdown"}
requests.post(url, json=payload, timeout=10)
# Чтение и логирование
temp = read_temperature()
timestamp = datetime.now().isoformat()
# Сохраняем в файл для графика
try:
with open(SAMPLES_FILE, "r") as f:
data = json.load(f)
except (FileNotFoundError, json.JSONDecodeError):
data = []
data.append({"time": timestamp, "temp": temp})
# Оставляем только последние 24 часа (288 записей при 5-минутном интервале)
data = data[-288:]
with open(SAMPLES_FILE, "w") as f:
json.dump(data, f)
# Проверка порогов
if temp > TEMP_THRESHOLD_HIGH:
send_telegram(f"⚠️ *Высокая температура!* {temp}°C (порог {TEMP_THRESHOLD_HIGH}°C)")
elif temp < TEMP_THRESHOLD_LOW:
send_telegram(f"❄️ *Низкая температура!* {temp}°C (порог {TEMP_THRESHOLD_LOW}°C)")
# Построение графика (раз в час)
if len(data) % 12 == 0: # Каждый 12-й замер (раз в час при 5-минутном интервале)
import matplotlib.pyplot as plt
times = [datetime.fromisoformat(d["time"]) for d in data]
temps = [d["temp"] for d in data]
plt.figure(figsize=(10, 5))
plt.plot(times, temps, marker='o', linestyle='-', color='b')
plt.title("Температура DS18B20 за 24 часа")
plt.xlabel("Время")
plt.ylabel("Температура (°C)")
plt.grid(True)
plt.savefig("/tmp/temp_chart.png")
# Отправляем график в Telegram
with open("/tmp/temp_chart.png", "rb") as f:
requests.post(
f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendPhoto",
data={"chat_id": TELEGRAM_CHAT_ID},
files={"photo": f}
)
print(f"Температура: {temp}°C. Данные сохранены.")
Важно: Этот код выполняется в sandbox ASI Biont (таймаут 30 секунд). Для непрерывного мониторинга AI настраивает периодический запуск скрипта (каждые 5 минут) через внутренний планировщик.
Шаг 5. Результат
- Каждые 5 минут AI считывает температуру с DS18B20.
- При выходе за порог (выше 30°C или ниже 5°C) отправляется уведомление в Telegram.
- Раз в час строится график трендов и отправляется в Telegram.
- Все данные хранятся в JSON-файле для последующего анализа.
Сценарии автоматизации с 1-Wire и ASI Biont
| Сценарий | Датчики | Действие AI |
|---|---|---|
| Умная теплица | DS18B20 + влажность | При t > 35°C — включить вентиляцию (MQTT на ESP32 с реле). При t < 5°C — отправить предупреждение. |
| Серверная | DS18B20 (несколько) | Анализ трендов, прогноз перегрева, автоматический вызов охлаждения через Modbus/TCP на PLC. |
| Холодильная камера | DS18B20 | При превышении t на 2°C от нормы — оповещение в Slack и Telegram. Логирование в PostgreSQL. |
| Умный дом | DS18B20 + датчик протечки | При резком падении температуры (открыто окно зимой) — отключить отопление в этой комнате через HTTP API умного дома. |
Почему это выгодно?
- Нет кода вручную: Пользователь описывает задачу на естественном языке, AI пишет и выполняет код интеграции. Типичная задача (опрос датчика + уведомление) занимает 2-3 минуты вместо 2-3 часов ручного программирования.
- Гибкость: ASI Biont подключается к любому устройству через
execute_python. Не нужно ждать обновлений платформы — AI сам пишет код под ваше оборудование. Поддерживаются pyserial, pymodbus, paho-mqtt, paramiko, opcua-asyncio, aiohttp и десятки других библиотек. - Интеллект: AI не просто собирает данные, а анализирует их: выявляет аномалии, строит прогнозы (например, через линейную регрессию с numpy/scipy), интегрируется с внешними сервисами (Telegram, Slack, email, базы данных).
- Безопасность: Код выполняется в изолированном sandbox без доступа к файловой системе пользователя (кроме bridge). Все соединения инициируются из облака, не требуя открытия портов на локальной сети.
Заключение
Интеграция датчиков 1-Wire с AI-агентом ASI Biont — это простой и мощный способ добавить интеллект в системы мониторинга температуры и влажности. Hardware Bridge обеспечивает надёжное соединение через COM-порт, а AI автоматически пишет код опроса, анализа и оповещений. Всё, что нужно от пользователя — подключить датчик, скачать bridge и описать задачу в чате.
Попробуйте сами: подключите DS18B20 к ASI Biont и настройте мониторинг за 5 минут. Перейдите на asibiont.com, создайте API-ключ и запустите bridge. Ваш первый AI-агент для 1-Wire уже ждёт.
Комментарии