Интеграция датчика температуры DS18B20 с ASI Biont: мониторинг, уведомления и автоматизация климата через MQTT

Введение

DS18B20 — один из самых популярных цифровых датчиков температуры в IoT-проектах. Диапазон измерений от –55 до +125 °C, точность ±0.5 °C, интерфейс 1-Wire, уникальный 64-битный идентификатор — всё это делает его идеальным для автоматизации климата, теплиц, серверных и умного дома. Но собранные данные становятся по-настоящему ценными только тогда, когда они анализируются в реальном времени и преобразуются в действия. Именно здесь на помощь приходит AI-агент ASI Biont.

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

Почему MQTT и ESP32?

ASI Biont поддерживает 13 промышленных протоколов, включая MQTT, Modbus, SSH, COM-порт и HTTP API. Для DS18B20 логичнее всего использовать пару ESP32 + MQTT:

Компонент Роль
DS18B20 Датчик температуры, подключён по 1-Wire к ESP32
ESP32 Микроконтроллер, считывает данные и публикует в MQTT
MQTT-брокер Промежуточное звено (например, Mosquitto, HiveMQ Cloud)
ASI Biont AI-агент, подписывается на топик, анализирует данные

ESP32 может быть заменён на любую платформу с Wi-Fi и библиотекой OneWire (например, NodeMCU или Raspberry Pi Pico W). Выбор MQTT обусловлен асинхронностью, малым потреблением трафика и простотой интеграции с облачными сервисами.

Схема подключения DS18B20 к ESP32

DS18B20 подключается по 1-Wire: вывод VCC — 3.3 В, GND — земля, DATA — любой GPIO (например, GPIO4) с подтягивающим резистором 4.7 кОм к VCC.

ESP32                DS18B20
3.3V  --------------- VCC
GND   --------------- GND
GPIO4 --------------- DATA
       +---[4.7k]---+ VCC

Прошивка ESP32 (MicroPython)

Ниже приведён минимальный код для ESP32 на MicroPython. Он измеряет температуру каждые 10 секунд и публикует значение в топик sensors/temperature с флагом retain, чтобы AI мог получить последнее значение в любой момент.

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

# Конфигурация Wi-Fi и MQTT
SSID = "your_wifi"
PASSWORD = "your_password"
MQTT_BROKER = "mqtt.example.com"
TOPIC = b"sensors/temperature"

# Инициализация DS18B20
ds_pin = machine.Pin(4)
ds_sensor = ds18x20.DS18X20(onewire.OneWire(ds_pin))
roms = ds_sensor.scan()

# Подключение к 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_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)
        client.publish(TOPIC, str(temp).encode(), retain=True)
        print("Published:", temp)
    time.sleep(10)

Этот код рассчитан на работу в фоне. После загрузки на ESP32 данные начнут поступать в MQTT-топик.

Как AI-агент ASI Biont подключается к устройству

Пользователь не пишет код интеграции — он просто описывает задачу в чате с AI-агентом. Например:

«У меня есть ESP32 с DS18B20, данные публикуются в MQTT на брокере mqtt.example.com, топик sensors/temperature. Подпишись на топик и каждые 5 минут проверяй температуру. Если она превышает 30 °C, отправь мне уведомление в Telegram. Если температура ниже 5 °C — включи реле, отправив команду в топик actuators/heater.»

AI сам генерирует код на Python и выполняет его в безопасном sandbox-окружении (execute_python). Для работы с MQTT используется библиотека paho-mqtt, для Telegram — requests.

Пример сгенерированного AI кода

import paho.mqtt.client as mqtt
import time
import requests

TELEGRAM_BOT_TOKEN = "123456789:ABCdef..."
CHAT_ID = "123456789"
MQTT_BROKER = "mqtt.example.com"
TEMP_TOPIC = "sensors/temperature"
CMD_TOPIC = "actuators/heater"

def send_telegram(message):
    url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage"
    requests.post(url, json={"chat_id": CHAT_ID, "text": message})

def on_message(client, userdata, msg):
    temp = float(msg.payload.decode())
    print(f"Received temperature: {temp}")
    if temp > 30.0:
        send_telegram(f"⚠️ Температура превышает 30°C: {temp}°C")
    elif temp < 5.0:
        client.publish(CMD_TOPIC, "ON")
        send_telegram(f"❄️ Температура ниже 5°C, включен обогреватель")
    else:
        client.publish(CMD_TOPIC, "OFF")

client = mqtt.Client()
client.on_message = on_message
client.connect(MQTT_BROKER)
client.subscribe(TEMP_TOPIC)
client.loop_start()

# Ждём 25 секунд, собираем данные (sandbox таймаут 30 секунд)
time.sleep(25)
client.loop_stop()

AI-агент выполняет этот скрипт на своих серверах (Railway). В течение ~25 секунд он получает сообщения из MQTT (ESP32 публикует каждые 10 секунд), проверяет условия и отправляет уведомления или команды. При необходимости AI может сохранить настройки и запускать такой скрипт периодически через Hardware Bridge или как отдельный сервис, но даже разовое выполнение позволяет быстро протестировать логику.

Расширенные сценарии

1. Логирование и построение графиков

AI может записывать все полученные температуры в PostgreSQL (через psycopg2) и строить график matplotlib:

# Фрагмент: сохранение данных в БД
import psycopg2
conn = psycopg2.connect(database="temps", user="user", password="pass", host="db.example.com")
cur = conn.cursor()
cur.execute("INSERT INTO measurements (time, temp) VALUES (NOW(), %s)", (temp,))
conn.commit()

2. Управление через MQTT publish

ESP32 может подписаться на топик actuators/heater и включать/выключать реле. AI публикует команду используя тот же client.publish().

3. Комбинированный сценарий с несколькими датчиками

Если в системе несколько DS18B20, ESP32 публикует каждый с уникальным идентификатором (например, sensors/temperature/28-xxxx). AI подписывается на wildcard sensors/temperature/+ и анализирует все точки.

Преимущества интеграции с ASI Biont

  • Отсутствие ручного кодирования. Пользователь формулирует задачу естественным языком — AI генерирует рабочий код за секунды.
  • Гибкость. Не нужно ждать обновлений или плагинов — AI использует execute_python, который поддерживает десятки библиотек: paho-mqtt, pymodbus, aiohttp, paramiko и другие.
  • Единый интерфейс. Все устройства — от датчика температуры до промышленного PLC — управляются через один чат.

Как начать

  1. Подключите DS18B20 к ESP32 и загрузите приведённый выше MicroPython-скрипт (или используйте Arduino IDE).
  2. Настройте MQTT-брокер (можете использовать бесплатный HiveMQ Cloud или поднять Mosquitto на Raspberry Pi).
  3. Получите API-токен ASI Biont в дашборде (Devices → Create API Key). Скачайте bridge.py с той же страницы и запустите: python bridge.py --token=XXX --ports=COM3 (для локального оборудования) или просто используйте облачный execute_python.
  4. Откройте чат с AI-агентом и опишите свою задачу. Например: «Подключись к MQTT-брокеру на mqtt.example.com, прочитай последнюю температуру из топика sensors/temperature, и если она больше 28°C, отправь мне сообщение в Telegram».

AI выполнит скрипт и вернёт результат. При необходимости он может создать повторяющуюся задачу через Hardware Bridge или настроить webhook.

Заключение

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

Попробуйте интеграцию уже сегодня на asibiont.com. Создайте свой первый AI-агент, подключите DS18B20 и убедитесь, насколько быстро автоматизируется мониторинг температуры.

← Все статьи

Комментарии

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

Чо по образованию: мифы и реальность платного обучения в 2026 году

26 июля 2026

Kill The Cookie Banner: как законно отказаться от назойливых уведомлений в 2026 году

26 июля 2026

Cambridge International A-Level Economics (9708): Современный путь на основе ИИ к освоению микроэкономики, макроэкономики и международной торговли

26 июля 2026

Как выиграть дело о выселении за две недели: обзор курса «Жилищное право» на Asibiont с AI-обучением

26 июля 2026

Освойте основы информатики: курс Cambridge IGCSE Computer Science (0478) на Asibiont

26 июля 2026

14 промтов для SMM и контент-плана: посты, stories, Reels

26 июля 2026

Курс по креативности и инновациям: раскройте свой творческий потенциал с помощью обучения на основе ИИ на платформе Asibiont

26 июля 2026

Освойте курс Кембридж IGCSE Химия (0620): Полный курс с ИИ для успешной сдачи экзамена

26 июля 2026

Сертификация CISA 2026: Почему подготовка с помощью ИИ эффективнее традиционных методов — Обзор курса Asibiont

26 июля 2026