Введение: почему датчик температуры DS18B20 — идеальный кандидат для AI-интеграции
Цифровой датчик температуры DS18B20 — один из самых популярных сенсоров в DIY-проектах и промышленной автоматизации. Его главные преимущества: точность до ±0.5 °C, диапазон от -55 до +125 °C, однопроводной интерфейс 1-Wire и возможность подключения до 10 датчиков на одну линию. Но в классической схеме вы просто читаете температуру с Arduino или ESP32 и выводите на дисплей. С AI-агентом ASI Biont этот сценарий превращается в интеллектуальную систему прогнозирования, аварийного оповещения и адаптивного управления климатом.
AI-агент ASI Biont подключается к DS18B20 через Hardware Bridge (COM-порт) или MQTT, собирает данные, анализирует тренды и принимает решения — без единой строки кода с вашей стороны. В этой статье мы разберём реальный сценарий: ESP32 с DS18B20 → MQTT → ASI Biont → Telegram-уведомления и прогнозы.
1. Способы подключения DS18B20 к ASI Biont
ASI Biont поддерживает несколько способов интеграции с DS18B20. Выбор зависит от вашего железа и инфраструктуры.
| Способ | Оборудование | Протокол | Когда выбирать |
|---|---|---|---|
| Hardware Bridge (COM-порт) | Arduino / ESP32 через USB-UART | Serial (1-Wire) | Подключение напрямую к ПК, нет Wi-Fi |
| MQTT | ESP32 с Wi-Fi | MQTT (paho-mqtt) | Удалённый мониторинг, облачная аналитика |
| SSH | Raspberry Pi с GPIO | Paramiko | Одноплатник управляет датчиком, AI — удалённо |
Для DS18B20 самый гибкий вариант — MQTT через ESP32. ESP32 читает датчик по 1-Wire и публикует показания в MQTT-брокер. ASI Biont подключается к тому же брокеру, подписывается на топик и анализирует данные.
2. Реальный сценарий: ESP32 + DS18B20 + MQTT + ASI Biont
2.1. Проблема
У вас есть теплица или серверная, где критично поддерживать стабильную температуру. Вы хотите:
- Получать уведомления в Telegram при выходе за пределы нормы.
- Видеть прогноз температуры на 24 часа (тренд).
- Автоматически включать вентиляцию или обогрев (через реле).
2.2. Решение
Шаг 1. Прошивка ESP32
Загрузите на ESP32 скетч, который раз в 5 минут читает DS18B20 и публикует данные в MQTT.
#include <OneWire.h>
#include <DallasTemperature.h>
#include <WiFi.h>
#include <PubSubClient.h>
#define ONE_WIRE_BUS 4
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
const char* ssid = "ваш_SSID";
const char* password = "ваш_пароль";
const char* mqtt_server = "broker.hivemq.com";
const char* topic = "teplica/temperature";
WiFiClient espClient;
PubSubClient client(espClient);
void setup() {
Serial.begin(115200);
sensors.begin();
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) delay(500);
client.setServer(mqtt_server, 1883);
}
void loop() {
if (!client.connected()) client.connect("ESP32_DS18B20");
client.loop();
sensors.requestTemperatures();
float temp = sensors.getTempCByIndex(0);
String payload = String(temp);
client.publish(topic, payload.c_str());
delay(300000); // 5 минут
}
Шаг 2. Подключение ASI Biont к MQTT-брокеру
В чате с ASI Biont просто опишите задачу:
«Подключись к MQTT-брокеру broker.hivemq.com, подпишись на топик teplica/temperature. Каждые 5 минут анализируй новые данные. Если температура выходит за пределы 18–30 °C — отправь мне уведомление в Telegram. Также построй график тренда за последние 24 часа и предскажи, когда температура выйдет за норму, если тренд сохранится.»
AI-агент сгенерирует и выполнит Python-скрипт в sandbox-окружении с библиотеками paho-mqtt, requests, matplotlib и numpy. Пример кода, который напишет AI:
import paho.mqtt.client as mqtt
import json
import requests
from datetime import datetime
TELEGRAM_TOKEN = "ваш_токен"
CHAT_ID = "ваш_chat_id"
MIN_TEMP = 18.0
MAX_TEMP = 30.0
def on_message(client, userdata, msg):
temp = float(msg.payload.decode())
now = datetime.now().isoformat()
print(f"[{now}] Температура: {temp}°C")
# Проверка границ
if temp < MIN_TEMP or temp > MAX_TEMP:
alert = f"⚠️ Выход за норму: {temp}°C"
requests.post(f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage",
json={"chat_id": CHAT_ID, "text": alert})
# Сохраняем в память для тренда (упрощённо)
# userdata['history'].append((now, temp))
client = mqtt.Client()
client.on_message = on_message
client.connect("broker.hivemq.com", 1883, 60)
client.subscribe("teplica/temperature")
client.loop_forever()
Важно: Бесконечный цикл loop_forever() не используется в execute_python из-за таймаута 30 секунд. Вместо этого AI использует industrial_command для разового чтения или пишет скрипт с client.loop(timeout=1.0) в коротком цикле. В реальном сценарии AI запускает скрипт на сервере, который работает постоянно через WebSocket-соединение с bridge.
3. Как ASI Biont обрабатывает данные и принимает решения
3.1. Сбор и хранение
AI подписывается на топик MQTT и каждые 5 минут получает новое значение. Данные могут сохраняться в numpy.array для быстрой обработки или во внешнюю БД (например, PostgreSQL через psycopg2).
3.2. Анализ трендов
Используя линейную регрессию из scipy или numpy, AI вычисляет наклон тренда:
import numpy as np
# history — список кортежей (время_в_секундах, температура)
times = np.array([t for t, _ in history])
temps = np.array([temp for _, temp in history])
slope, intercept = np.polyfit(times, temps, 1)
print(f"Тренд: {slope:.4f} °C/сек. Прогноз через 1 час: {intercept + slope*3600:.1f}°C")
3.3. Прогнозирование выхода за границы
Если тренд показывает, что через 2 часа температура упадёт ниже 18 °C, AI может:
- Отправить предупреждение в Telegram.
- Включить обогреватель (через MQTT-команду на ESP32 с реле).
3.4. Визуализация
AI строит график с помощью matplotlib и отправляет его в Telegram:
import matplotlib.pyplot as plt
plt.plot(times, temps, label='Температура')
plt.axhline(y=MIN_TEMP, color='r', linestyle='--', label='Мин. граница')
plt.axhline(y=MAX_TEMP, color='r', linestyle='--', label='Макс. граница')
plt.legend()
plt.savefig('/tmp/trend.png')
# Отправка через Telegram API
4. Почему это выгодно?
| Традиционный подход | С ASI Biont |
|---|---|
| Писать код интеграции вручную (Python, Node-RED) | AI пишет код за секунды по вашему описанию |
| Настраивать логику уведомлений и прогнозов отдельно | AI сам анализирует данные и принимает решения |
| Требуется опыт программирования и IoT | Достаточно описать задачу на естественном языке |
| Сложно адаптировать под новые условия | AI динамически меняет логику по вашей просьбе |
5. Другие сценарии для DS18B20 + ASI Biont
- Умный аквариум: контроль температуры воды, тренды нагрева, оповещение при перегреве.
- Холодильная камера магазина: мониторинг температуры, прогноз разморозки, автоматический вызов сервиса.
- Домашняя метеостанция: несколько DS18B20 по дому, AI строит карту теплопотерь и рекомендует утепление.
- Серверная стойка: мониторинг температуры внутри серверов (датчики на радиаторах), AI предсказывает перегрев и включает дополнительные вентиляторы.
6. Как начать?
- Соберите схему: ESP32 → DS18B20 (питание, GND, Data на пин 4 с подтяжкой 4.7 кОм).
- Загрузите скетч (см. выше) на ESP32.
- Зарегистрируйтесь на asibiont.com и получите API-токен в разделе Devices.
- Скачайте bridge.py из дашборда (кнопка «Скачать bridge»).
- Запустите bridge:
python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud=115200(если используете COM-порт). Для MQTT bridge не нужен — AI подключается напрямую к брокеру. - Опишите в чате: «Подключись к MQTT broker.hivemq.com, топик teplica/temperature, читай каждые 5 минут, если температура выходит за 18-30°C — отправь мне в Telegram, построй график тренда за сутки и предскажи, когда будет нарушение.»
Всё! AI сам определит тип данных, настроит соединение, напишет код и начнёт мониторинг.
7. Ограничения и нюансы
- Таймаут execute_python: скрипты в облаке выполняются не более 30 секунд. Для постоянного мониторинга используйте
industrial_commandс WebSocket-соединением через bridge. - Питание: DS18B20 требует 3–5 В; при длинной линии (более 10 м) используйте экранированный кабель.
- Подтяжка: обязателен резистор 4.7 кОм между Data и VCC.
Заключение
DS18B20 — простой, но мощный датчик. В связке с AI-агентом ASI Biont он превращается в интеллектуальный узел системы климат-контроля, который не только измеряет, но и прогнозирует, предупреждает и управляет. Вам не нужно писать сложные скрипты или настраивать дашборды — достаточно описать задачу на естественном языке.
Попробуйте сами: asibiont.com — подключите ваш DS18B20 к AI-агенту и увидьте, как IoT становится умным.
Комментарии