DS18B20 и AI-агент ASI Biont: температурный мониторинг с автоматизацией через Telegram и дашборд

Введение

Температурный мониторинг — одна из самых востребованных задач в IoT: от серверных и теплиц до умных домов и промышленных холодильников. Датчик DS18B20 — это цифровой термометр с интерфейсом 1-Wire, который позволяет измерять температуру в диапазоне от –55 до +125 °C с точностью ±0,5 °C. Он дёшев, прост в подключении и поддерживается практически всеми микроконтроллерами.

Но как превратить сырые показания датчика в умную систему, которая не только собирает данные, но и принимает решения: включает вентиляцию при перегреве, отправляет аварийные уведомления в Telegram или ведёт историю температур для анализа трендов? Ответ — интеграция DS18B20 с AI-агентом ASI Biont.

ASI Biont — это AI-агент, который умеет подключаться к любому устройству через диалог в чате. Вам не нужно писать код вручную: достаточно описать задачу, передать параметры подключения, и AI сам создаст Python-скрипт для сбора данных, анализа и автоматизации. В этой статье мы разберём конкретный сценарий: ESP32 + DS18B20 → ASI Biont через MQTT, с оповещениями и управлением.

Что такое DS18B20 и зачем подключать его к AI-агенту?

DS18B20 — это цифровой датчик температуры на шине 1-Wire. Его главные особенности:
- Уникальный 64-битный идентификатор — можно подключать несколько датчиков на один провод.
- Цифровой выход — не требует АЦП, данные передаются по протоколу 1-Wire.
- Питание по паразитной линии — может работать без отдельного провода питания.

Подключение DS18B20 к микроконтроллеру (например, ESP32) даёт локальное измерение температуры. Но без облачного AI-агента эти данные остаются «сырыми» — вы можете читать их через последовательный порт или выводить на дисплей, но не можете:
- получать уведомления на телефон при выходе за пределы нормы;
- анализировать тренды и предсказывать поломки оборудования;
- автоматически управлять исполнительными устройствами (вентиляцией, обогревом);
- вести централизованную историю показаний.

ASI Biont решает все эти задачи: он подключается к ESP32 по MQTT, собирает данные, анализирует их и выполняет действия по заданным правилам. При этом AI-агент не требует предустановленных драйверов или плагинов — он пишет код интеграции «на лету» под конкретное устройство.

Какой способ подключения используется и почему?

Для интеграции DS18B20 с ASI Biont мы используем MQTT (протокол publish/subscribe). Почему именно он?

Способ подключения Преимущества Недостатки Для DS18B20?
COM-порт (Hardware Bridge) Прямое чтение с микроконтроллера Требует ПК с bridge.py, проводное соединение Да, но менее удобно для удалённого мониторинга
SSH Управление Raspberry Pi или Orange Pi Требует одноплатника с Linux Да, если ESP32 заменён на Pi
MQTT Лёгкий, асинхронный, масштабируемый, идеален для ESP32 Нужен MQTT-брокер (например, Mosquitto) Рекомендуемый
Modbus/TCP Промышленные контроллеры (PLC) Избыточен для простого датчика Нет
HTTP API Устройства с REST-интерфейсом Требует HTTP-сервера на ESP32 Возможно, но сложнее
OPC-UA Промышленные OPC-серверы Избыточен Нет

MQTT — стандарт де-факто для IoT-устройств. ESP32 с библиотеками PubSubClient или umqtt.simple легко подключается к брокеру и публикует показания температуры. ASI Biont подписывается на нужный топик, получает данные и обрабатывает их.

Конкретный сценарий: ESP32 + DS18B20 + ASI Biont с оповещениями в Telegram

Шаг 1. Аппаратная часть

Подключите датчик DS18B20 к ESP32:
- VDD (красный) → 3.3 В
- GND (чёрный) → GND
- DQ (жёлтый) → GPIO4 (или любой цифровой пин) + подтягивающий резистор 4.7 кОм к 3.3 В

Шаг 2. Прошивка ESP32 (MicroPython)

Установите MicroPython на ESP32 (официальная прошивка с micropython.org). Затем загрузите скрипт, который читает DS18B20 и публикует данные в MQTT:

import machine
import onewire
import ds18x20
import network
import time
from umqtt.simple import MQTTClient

# Конфигурация Wi-Fi и MQTT
WIFI_SSID = "ваш_ssid"
WIFI_PASS = "ваш_пароль"
MQTT_BROKER = "test.mosquitto.org"  # или ваш брокер
MQTT_TOPIC = b"home/temperature/ds18b20"

# Подключение к Wi-Fi
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(WIFI_SSID, WIFI_PASS)
while not wlan.isconnected():
    time.sleep(1)

# Инициализация DS18B20 на GPIO4
ds_pin = machine.Pin(4)
ds_sensor = ds18x20.DS18X20(onewire.OneWire(ds_pin))
roms = ds_sensor.scan()
print("Найдено датчиков:", len(roms))

# Подключение к MQTT
client = MQTTClient("esp32_ds18b20", MQTT_BROKER)
client.connect()

while True:
    ds_sensor.convert_temp()
    time.sleep_ms(750)
    for rom in roms:
        temp = ds_sensor.read_temp(rom)
        payload = f"{{\"temperature\": {temp}, \"timestamp\": {time.time()}}}"
        client.publish(MQTT_TOPIC, payload)
        print("Опубликовано:", payload)
    time.sleep(60)  # раз в минуту

Шаг 3. Подключение ASI Biont к MQTT-брокеру

Теперь переходим к AI-агенту. В чате с ASI Biont (на asibiont.com) отправьте сообщение:

«Подключись к MQTT-брокеру test.mosquitto.org, подпишись на топик home/temperature/ds18b20 и читай данные температуры. Если температура превышает 35 °C, отправь мне уведомление в Telegram через мой бот @MyTempBot. Также каждые 10 минут сохраняй среднюю температуру за последний час в CSV-файл и присылай его мне в чат.»

AI-агент выполнит следующие действия:
1. Напишет Python-скрипт в execute_python, используя библиотеку paho-mqtt для подписки на топик.
2. Обработает входящие данные (парсинг JSON).
3. Создаст правило: если температура > 35 °C → отправка HTTP-запроса к Telegram Bot API (через requests.post).
4. Запустит фоновую задачу (в рамках таймаута sandbox) для агрегации данных и записи в CSV.
5. Отправит CSV-файл пользователю в чат (через вложение).

Вот как выглядит сгенерированный AI-код (пример, упрощён):

import paho.mqtt.client as mqtt
import json
import time
import csv
import io
import requests
from collections import deque

# Конфигурация
BROKER = "test.mosquitto.org"
TOPIC = "home/temperature/ds18b20"
TELEGRAM_BOT_TOKEN = "ваш_токен"
TELEGRAM_CHAT_ID = "ваш_chat_id"
TEMPERATURE_THRESHOLD = 35.0

# Буфер для хранения показаний за последний час (60 записей с интервалом 1 мин)
buffer = deque(maxlen=60)

def on_message(client, userdata, msg):
    payload = msg.payload.decode()
    data = json.loads(payload)
    temp = data["temperature"]
    timestamp = data["timestamp"]

    # Добавляем в буфер
    buffer.append((timestamp, temp))

    # Проверка порога
    if temp > TEMPERATURE_THRESHOLD:
        message = f"⚠️ Внимание! Температура {temp}°C превышает порог {TEMPERATURE_THRESHOLD}°C!"
        requests.post(
            f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage",
            json={"chat_id": TELEGRAM_CHAT_ID, "text": message}
        )

    # Каждые 10 минут (600 секунд) — формируем CSV и отправляем
    if int(timestamp) % 600 < 60:  # упрощённая проверка
        # Создаём CSV в памяти
        output = io.StringIO()
        writer = csv.writer(output)
        writer.writerow(["timestamp", "temperature"])
        for ts, t in buffer:
            writer.writerow([ts, t])
        csv_content = output.getvalue()

        # Отправляем через Telegram как документ
        files = {"document": ("temperature_log.csv", csv_content)}
        requests.post(
            f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendDocument",
            data={"chat_id": TELEGRAM_CHAT_ID},
            files=files
        )

client = mqtt.Client()
client.on_message = on_message
client.connect(BROKER, 1883, 60)
client.subscribe(TOPIC)
client.loop_forever()

Важно: sandbox ASI Biont имеет таймаут 30 секунд, поэтому loop_forever() не подходит для долгоживущих задач. В реальной интеграции AI использует industrial_command с MQTT publish/subscribe через bridge или создаёт фоновый скрипт на сервере пользователя через SSH. Но для демонстрации логики код корректен.

Шаг 4. Автоматизация управления

ASI Biont может не только уведомлять, но и управлять исполнительными устройствами. Например, если температура в серверной превышает 30 °C, AI может:
- отправить команду на ESP32 через MQTT publish: client.publish("home/relay/ventilation", "ON");
- включить вентиляцию;
- через 15 минут проверить температуру снова и выключить вентиляцию, если температура снизилась.

Это реализуется добавлением второго топика и ответного publish в скрипте ESP32:

# В коде ESP32
def callback(topic, msg):
    if msg == b"ON":
        machine.Pin(5).value(1)  # включить реле
    elif msg == b"OFF":
        machine.Pin(5).value(0)

client.set_callback(callback)
client.subscribe(b"home/relay/ventilation")

Как подключить DS18B20 к ASI Biont: пошаговая инструкция

  1. Подготовьте ESP32 с прошивкой MicroPython и загрузите скрипт чтения DS18B20 с MQTT-публикацией.
  2. Запустите MQTT-брокер (или используйте публичный test.mosquitto.org).
  3. Перейдите в чат ASI Biont на asibiont.com.
  4. Опишите задачу естественным языком, например: «Подключись к MQTT брокеру по адресу 192.168.1.100:1883 без пароля, подпишись на топик home/temperature/ds18b20, читай JSON с полем temperature, и если температура выше 30°C, опубликуй в топик home/relay/ventilation сообщение ON. Также отправляй мне уведомление в Telegram каждый раз, когда значение превышает порог.»
  5. AI-агент сгенерирует и выполнит код — вы получите подтверждение в чате.

Всё! Никаких панелей управления, никаких кнопок «добавить устройство» — только диалог.

Почему это выгодно?

  • Экономия времени: не нужно писать код вручную, AI делает это за секунды.
  • Гибкость: можно подключить любое устройство с любым протоколом (MQTT, Modbus, HTTP, COM-порт, SSH) без ожидания обновлений платформы.
  • Интеллектуальная обработка: AI может анализировать тренды, выявлять аномалии, предсказывать отказы.
  • Единый интерфейс: все уведомления и управление через Telegram или дашборд.

Сравнение альтернатив

Параметр ASI Biont (AI-агент) Классическая IoT-платформа (Home Assistant, Node-RED)
Подключение устройства Через диалог, AI пишет код сам Ручная настройка интеграций, скрипты, YAML-конфиги
Гибкость протоколов Любые: MQTT, Modbus, HTTP, COM, SSH, OPC-UA Ограничен набором поддерживаемых интеграций
Анализ данных AI-модели для трендов, аномалий, прогнозов Только правила if-then, без машинного обучения
Время настройки Минуты Часы или дни
Порог входа Низкий (нужен только чат) Требует знаний программирования и DevOps

Заключение

DS18B20 — простой и надёжный датчик температуры, но его истинная ценность раскрывается только в связке с AI-агентом, который может анализировать данные, уведомлять и управлять. ASI Biont делает эту интеграцию доступной каждому: вам не нужно быть программистом или DevOps-инженером. Просто опишите задачу в чате, и AI-агент сам напишет код, подключится к вашему устройству и начнёт работать.

Попробуйте интеграцию уже сегодня: подключите ваш DS18B20 к ASI Biont на asibiont.com и получите умный температурный мониторинг с оповещениями в Telegram и автоматическим управлением вентиляцией или отоплением.

← Все статьи

Комментарии

Читайте также

SPI Integration with ASI Biont: AI-агент управляет сенсорами, дисплеями и SD-картами через последовательный интерфейс

15 июля 2026

DSL-фреймворки: как предметно-ориентированные языки превращают хаос LLM в надежные инструменты

15 июля 2026

Почему фронтенд съедает больше времени, чем бэкенд: разбор на основе реального кейса

15 июля 2026

Агрегатор новостей заработал: почему отказ от слепого доверия ИИ спас проект

15 июля 2026

Lorde назвала AI-очки «несексуальными»: что стоит за критикой и почему это важно для индустрии

15 июля 2026

Освоение геологии и горного дела: карьерно-ориентированное руководство по курсу Asibiont

15 июля 2026

CISA — Certified Information Systems Auditor (ISACA): Как подготовиться к сертификации быстрее и эффективнее с помощью AI

15 июля 2026

QuickBooks + AI: Как ASI Biont автоматизирует бухгалтерию без кода за 15 минут

15 июля 2026

Zigbee-устройства под управлением AI: полный гайд по интеграции с ASI Biont через Zigbee2MQTT и ZHA

15 июля 2026