DS18B20 (temperature) + ASI Biont: подключаем температурный датчик к AI-агенту без единой строки кода

Введение

Температурный датчик DS18B20 — один из самых популярных в DIY-проектах, промышленной автоматизации и системах «умного дома». Цифровой интерфейс 1-Wire, точность ±0.5°C в диапазоне от -55 до +125°C, невысокая цена и простота подключения делают его выбором номер один для мониторинга температуры в серверных, теплицах, холодильных камерах и жилых помещениях. Но ручное программирование логики опроса, записи данных и отправки уведомлений отнимает время и требует навыков. ASI Biont решает эту задачу: вы просто описываете в чате, к какому устройству подключиться и что нужно делать, а AI-агент сам пишет код интеграции, подключается к DS18B20 через один из доступных каналов и начинает управлять данными. Ниже — реальный кейс подключения DS18B20 через ESP32 и MQTT с мониторингом и уведомлениями в Telegram.

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

DS18B20 — это цифровой датчик температуры с уникальным 64-битным серийным номером, что позволяет подключать несколько датчиков на одну шину 1-Wire. Он выпускается компанией Maxim Integrated (ныне Analog Devices) и поддерживается практически всеми микроконтроллерами: Arduino, ESP32, Raspberry Pi, STM32. По данным datasheet (DS18B20 datasheet, 2023), типичная погрешность не превышает 0.5°C, а разрешение — до 12 бит (0.0625°C).

Подключение к AI-агенту даёт:
- Автоматический опрос датчика по заданному интервалу.
- Анализ трендов (рост/падение температуры, прогноз достижения порога).
- Уведомления в Telegram, Slack или по email при выходе за пределы нормы.
- Интеграцию с другими устройствами: включение вентилятора, кондиционера, обогревателя по команде AI.

Как ASI Biont подключается к DS18B20: сценарий с ESP32 + MQTT

Выбранный способ подключения — MQTT через paho-mqtt. Почему именно он? ESP32 — самый доступный микроконтроллер с Wi-Fi, DS18B20 подключается к нему по 1-Wire (пин GPIO4), а данные отправляются в MQTT-брокер (например, Mosquitto или HiveMQ Cloud). ASI Biont подписывается на топик с показаниями, анализирует их и при необходимости публикует команды обратно (например, fan/control с payload ON).

Альтернативные варианты, которые также поддерживаются:
- Hardware Bridge (COM-порт): если ESP32 подключён к ПК через USB-UART, AI использует bridge.py для чтения данных с COM-порта.
- SSH на Raspberry Pi: если датчик подключён к GPIO Raspberry Pi, AI подключается по SSH, запускает скрипт чтения и забирает данные.
- HTTP API: ESP32 может поднять веб-сервер, и AI будет опрашивать его через aiohttp.

Но MQTT — самый гибкий: не требует постоянного подключения ПК, данные доступны из облака, можно легко масштабировать на десятки датчиков.

Пошаговая реализация: от описания задачи до работающей системы

Шаг 1. Сборка схемы

Подключите DS18B20 к ESP32:
- Красный провод (VDD) — 3.3V.
- Чёрный (GND) — GND.
- Жёлтый (DATA) — GPIO4. Между DATA и VDD обязательно резистор 4.7 кОм (подтяжка к питанию).

Скетч для ESP32 (Arduino IDE) — публикует температуру каждые 30 секунд в топик sensor/ds18b20/temperature:

#include <WiFi.h>
#include <PubSubClient.h>
#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 4
#define PUBLISH_INTERVAL 30000

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

WiFiClient espClient;
PubSubClient client(espClient);

const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASSWORD";
const char* mqtt_server = "broker.hivemq.com";
const char* mqtt_topic = "sensor/ds18b20/temperature";

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) delay(500);
  client.setServer(mqtt_server, 1883);
  sensors.begin();
}

void loop() {
  if (!client.connected()) client.connect("ESP32DS18B20");
  client.loop();
  sensors.requestTemperatures();
  float temp = sensors.getTempCByIndex(0);
  String payload = String(temp);
  client.publish(mqtt_topic, payload.c_str());
  delay(PUBLISH_INTERVAL);
}

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

В чате с AI-агентом ASI Biont отправьте сообщение:

Подключись к MQTT-брокеру broker.hivemq.com порт 1883. Подпишись на топик sensor/ds18b20/temperature. Читай новые сообщения, анализируй температуру. Если температура превышает 35°C или падает ниже 5°C, отправь мне уведомление в Telegram. Telegram bot token: 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11, chat_id: 987654321.

AI-агент сгенерирует и выполнит Python-скрипт внутри execute_python. Пример кода, который будет выполнен (вы можете увидеть его в логах сессии):

import paho.mqtt.client as mqtt
import requests
import json

BROKER = "broker.hivemq.com"
PORT = 1883
TOPIC = "sensor/ds18b20/temperature"
TELEGRAM_TOKEN = "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
CHAT_ID = "987654321"
TEMP_MIN = 5.0
TEMP_MAX = 35.0

def send_telegram_alert(message):
    url = f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage"
    payload = {"chat_id": CHAT_ID, "text": message}
    requests.post(url, json=payload, timeout=10)

def on_message(client, userdata, msg):
    try:
        temp = float(msg.payload.decode())
        if temp > TEMP_MAX:
            send_telegram_alert(f"🔥 Температура превысила {TEMP_MAX}°C! Текущее значение: {temp}°C")
        elif temp < TEMP_MIN:
            send_telegram_alert(f"❄️ Температура упала ниже {TEMP_MIN}°C! Текущее значение: {temp}°C")
    except ValueError:
        pass

mqtt_client = mqtt.Client()
mqtt_client.on_message = on_message
mqtt_client.connect(BROKER, PORT, 60)
mqtt_client.subscribe(TOPIC)
mqtt_client.loop_forever(timeout=1.0)  # выполняется 30 секунд в sandbox

Важно: execute_python выполняется в sandbox-окружении с таймаутом 30 секунд. Для длительного мониторинга AI использует встроенный планировщик: вы задаёте периодичность (например, «проверяй каждые 10 минут»), и AI запускает скрипт по расписанию.

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

Добавим обратную связь: если температура превышает 35°C, AI публикует команду в топик fan/control с payload ON, чтобы включить вентилятор. Для этого в чате допишите:

При превышении 35°C опубликуй в топик fan/control сообщение ON.

AI модифицирует скрипт, добавив строку:

fan_client.publish("fan/control", "ON")

На стороне ESP32 нужно подписаться на fan/control и при получении ON включить реле, управляющее вентилятором. Это делается добавлением в скетч:

client.subscribe("fan/control");
void callback(char* topic, byte* payload, unsigned int length) {
  if (strcmp((char*)payload, "ON") == 0) digitalWrite(RELAY_PIN, HIGH);
}

Почему это выгодно? Сравнение с ручной разработкой

Параметр Ручная разработка ASI Biont
Время настройки 2-4 часа (написание скетча, MQTT-клиента, логики уведомлений) 2 минуты (описание задачи в чате)
Навыки Arduino C++, Python, MQTT, Telegram API Ничего, кроме описания задачи
Изменение логики Правка кода, перепрошивка ESP32 Изменение описания в чате
Масштабирование Добавление датчика — правка кода, новый топик Просто сказать «добавь датчик в топик sensor2/temperature»

Подводные камни и их решение

  • ESP32 не подключается к Wi-Fi: проверьте имя сети и пароль, убедитесь, что роутер не блокирует устройство.
  • MQTT-брокер недоступен: используйте публичный брокер (broker.hivemq.com, test.mosquitto.org) или поднимите собственный Mosquitto на Raspberry Pi.
  • Данные не приходят в ASI Biont: проверьте, подписан ли AI на правильный топик. В логах сессии можно увидеть, какие сообщения получены.
  • Sandbox таймаут 30 секунд: для длительного мониторинга используйте планировщик ASI Biont — AI будет запускать скрипт по расписанию (каждые 5, 10, 30 минут).

Другие способы подключения DS18B20 к ASI Biont

ASI Biont подключается к любому устройству через execute_python — AI сам пишет код интеграции под каждое устройство. Не нужно ждать, пока разработчики добавят поддержку — подключайте что угодно прямо сейчас. Пользователь просто описывает в чате, к какому устройству подключиться и какие параметры (порт, IP, baud rate, API-ключ), и AI сам пишет код на Python с использованием pyserial, paramiko, paho-mqtt, pymodbus, aiohttp или opcua-asyncio. Всё подключение происходит через диалог в чате, никаких панелей управления и кнопок «добавить устройство» не требуется.

Рассмотрим альтернативные сценарии:

1. Hardware Bridge (COM-порт)

Если ESP32 подключён к ПК через USB-UART, AI использует bridge.py. Скачайте bridge.py из дашборда (Devices → Create API Key → Скачать bridge). Запустите:

pip install pyserial requests websockets
python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud=115200 --rate=10

В чате напишите: «Подключись к COM3, читай данные с датчика DS18B20, выводи температуру каждые 10 секунд». AI отправит команду через serial_write_and_read, и bridge выполнит её локально.

2. SSH на Raspberry Pi

Если DS18B20 подключён к Raspberry Pi, AI подключается по SSH:

Подключись по SSH к 192.168.1.100, логин pi, пароль raspberry. Прочитай температуру из файла /sys/bus/w1/devices/28-*/w1_slave и отправь мне в Telegram.

AI выполнит execute_python с paramiko, прочитает файл и отправит результат.

3. HTTP API (ESP32 как веб-сервер)

ESP32 может поднять HTTP-сервер, возвращающий JSON с температурой. AI опрашивает его через aiohttp:

import aiohttp
import asyncio

async def fetch_temp():
    async with aiohttp.ClientSession() as session:
        async with session.get("http://192.168.1.50/temperature") as resp:
            data = await resp.json()
            return data["temp"]

Заключение

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

Попробуйте сами: зайдите на asibiont.com, создайте API-ключ, скачайте bridge (если нужно) и напишите AI: «Подключи мой DS18B20 через MQTT и пришли уведомление, если температура выйдет за пределы 10-30°C». Интеграция займёт меньше минуты.

← Все статьи

Комментарии

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

Hardcore IndieWeb: Как запустить собственный сайт полностью независимо всего за $0.01 в день

19 июля 2026

Революция в поддержке клиентов: как интеграция LiveChat с ASI Biont автоматизирует ответы и экономит деньги

19 июля 2026

Как интегрировать Twilio с AI-агентом ASI Biont: пошаговое руководство по автоматизации SMS и звонков без кода

19 июля 2026

HDMI (Raspberry Pi) и AI-агент ASI Biont: как превратить монитор в умный дисплей с прогнозами и автоматизацией

19 июля 2026

Как создать портфолио моушн-дизайна, которое поможет вам найти работу: Внутри курса «Анимация и моушн-дизайн — Анимация и моушн-графика»

19 июля 2026

Интеграция Airtable с AI-агентом ASI Biont: автоматизация управления проектами без кода и панелей управления

19 июля 2026

Как автоматизировать RSS и Atom-ленты с помощью AI-агента ASI Biont: практическое руководство по мониторингу новостей и курированию контента без программирования

19 июля 2026

Уроки риска от Питера Бернстайна: Как математика, история и психология меняют наше отношение к неопределенности

19 июля 2026

Почему стоит пройти курс «Нейронные сети для начинающих» в 2026 году: практическое руководство по ИИ без кода

19 июля 2026