Интеграция метеостанции с AI-агентом ASI Biont: IoT, MQTT и автоматизация сбора данных о погоде

Введение: зачем подключать метеостанцию к AI-агенту?

Метеостанции — это не просто датчики температуры и влажности. Современные IoT-метеостанции (на базе ESP32, Raspberry Pi или промышленных контроллеров) собирают десятки параметров: температуру, влажность, атмосферное давление, скорость и направление ветра, количество осадков, уровень УФ-излучения. Данные поступают непрерывно, и вручную анализировать их практически невозможно. Именно здесь на помощь приходит AI-агент ASI Biont.

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

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

Как ASI Biont подключается к метеостанции?

ASI Biont поддерживает несколько способов подключения к IoT-устройствам. Для метеостанций оптимальный вариант — MQTT. Почему?

  • MQTT — лёгкий протокол, идеально подходит для ESP32 с ограниченными ресурсами.
  • Позволяет организовать двустороннюю связь: метеостанция публикует данные (publish), AI-агент подписывается на топики (subscribe) и при необходимости отправляет команды управления.
  • Не требует статического IP-адреса устройства — достаточно MQTT-брокера (например, Mosquitto, HiveMQ Cloud или локального брокера на Raspberry Pi).

Альтернативные способы для метеостанций:
- COM-порт (RS-232/RS-485) — если метеостанция подключена к ПК через USB-COM-адаптер. Используется Hardware Bridge (bridge.py).
- SSH — если метеостанция работает на одноплатнике (Raspberry Pi, Orange Pi) и данные передаются через локальный скрипт.
- HTTP API — если метеостанция имеет встроенный веб-сервер (например, на базе ESP32 с REST API).

В нашем примере мы используем MQTT, так как это самый гибкий и масштабируемый вариант для IoT.

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

Ниже приведена упрощённая схема интеграции:

[ESP32 + BME280 + анемометр] → (MQTT publish) → [MQTT Broker (mosquitto)] → (MQTT subscribe) → [ASI Biont (облако)] → [Telegram / аналитика]

ESP32 подключена к датчикам по шине I2C (BME280) и GPIO (анемометр). Каждые 10 секунд ESP32 публикует JSON-сообщение в топик weather/data. ASI Biont через execute_python запускает скрипт, который подписывается на этот топик с помощью библиотеки paho-mqtt, получает данные и анализирует их.

Аппаратная часть

  • ESP32 DevKit V4 — микроконтроллер с Wi-Fi.
  • BME280 — датчик температуры, влажности, давления (I2C, адрес 0x76).
  • Анемометр (датчик скорости ветра) — подключается к GPIO34 (аналоговый вход).
  • MQTT-брокер — можно использовать публичный broker.hivemq.com:1883 или поднять локальный Mosquitto на Raspberry Pi.

Пример прошивки для ESP32 (MicroPython)

Вот как выглядит код на MicroPython, который ESP32 будет выполнять для публикации данных. Обратите внимание: вы можете попросить ASI Biont сгенерировать такой код, просто описав задачу в чате.

import network
import time
import json
from machine import Pin, I2C, ADC
import ubinascii
from umqtt.simple import MQTTClient

# Настройка Wi-Fi
ssid = 'YOUR_SSID'
password = 'YOUR_PASSWORD'

def connect_wifi():
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    wlan.connect(ssid, password)
    while not wlan.isconnected():
        time.sleep(1)
    print('Wi-Fi connected')

connect_wifi()

# Настройка I2C для BME280
i2c = I2C(0, scl=Pin(22), sda=Pin(21), freq=100000)

# Адрес BME280: 0x76 (или 0x77)
BME_ADDR = 0x76

# Функции чтения BME280 (упрощённо)
def read_bme280():
    # Читаем регистры калибровки и данных
    # (полный код см. в официальной библиотеке bme280_float)
    # Возвращаем кортеж (t, h, p)
    return (25.0, 60.0, 1013.25)  # заглушка

# Настройка анемометра (аналоговый вход)
anemometer = ADC(Pin(34))
anemometer.atten(ADC.ATTN_11DB)  # 0-3.3V

def read_wind_speed():
    raw = anemoeter.read()
    # Преобразование в м/с (зависит от датчика)
    voltage = raw / 4095 * 3.3
    speed = voltage * 5.0  # пример калибровки
    return speed

# Настройка MQTT
mqtt_server = 'broker.hivemq.com'
client_id = ubinascii.hexlify(network.WLAN().config('mac')).decode()
client = MQTTClient(client_id, mqtt_server, port=1883)
client.connect()
print('MQTT connected')

# Основной цикл
while True:
    temp, hum, pres = read_bme280()
    wind = read_wind_speed()
    payload = json.dumps({
        'temperature': temp,
        'humidity': hum,
        'pressure': pres,
        'wind_speed': wind,
        'timestamp': time.time()
    })
    client.publish('weather/data', payload)
    print('Published:', payload)
    time.sleep(10)

Важно: Этот код выполняется на ESP32, а не в ASI Biont. ASI Biont будет принимать данные через MQTT.

Как ASI Biont подключается к MQTT-брокеру?

Всё, что нужно сделать пользователю, — описать задачу в чате ASI Biont. Например:

«Подключись к MQTT-брокеру broker.hivemq.com:1883, подпишись на топик weather/data, получай данные с метеостанции (температура, влажность, давление, скорость ветра). Если температура поднимается выше 35°C или скорость ветра превышает 15 м/с — отправь мне уведомление в Telegram. Также построй график температуры за последний час и сохрани в PDF.»

AI-агент автоматически сгенерирует и выполнит Python-скрипт с использованием библиотеки paho-mqtt. Вот как выглядит этот скрипт (он выполняется в защищённом sandbox-окружении ASI Biont):

import paho.mqtt.client as mqtt
import json
import time
import requests
from datetime import datetime
import matplotlib.pyplot as plt
import numpy as np

# Конфигурация
BROKER = 'broker.hivemq.com'
PORT = 1883
TOPIC = 'weather/data'
TELEGRAM_BOT_TOKEN = 'YOUR_BOT_TOKEN'
TELEGRAM_CHAT_ID = 'YOUR_CHAT_ID'

# Хранилище данных
temperatures = []
timestamps = []

def on_connect(client, userdata, flags, rc):
    print('Connected to MQTT broker')
    client.subscribe(TOPIC)

def on_message(client, userdata, msg):
    global temperatures, timestamps
    try:
        data = json.loads(msg.payload.decode())
        temp = data['temperature']
        humidity = data['humidity']
        pressure = data['pressure']
        wind_speed = data['wind_speed']
        current_time = datetime.now()

        # Сохраняем данные
        temperatures.append(temp)
        timestamps.append(current_time)

        # Проверка аномалий
        if temp > 35.0:
            message = f'⚠️ Высокая температура: {temp:.1f}°C'
            requests.post(
                f'https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage',
                json={'chat_id': TELEGRAM_CHAT_ID, 'text': message}
            )
        if wind_speed > 15.0:
            message = f'💨 Сильный ветер: {wind_speed:.1f} м/с'
            requests.post(
                f'https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage',
                json={'chat_id': TELEGRAM_CHAT_ID, 'text': message}
            )

        # Построение графика (каждые 100 сообщений)
        if len(temperatures) % 100 == 0:
            plt.figure(figsize=(10, 5))
            plt.plot(timestamps, temperatures, label='Temperature (°C)')
            plt.xlabel('Time')
            plt.ylabel('Temperature (°C)')
            plt.title('Temperature Trend (Last Hour)')
            plt.xticks(rotation=45)
            plt.tight_layout()
            plt.savefig('temperature_trend.pdf')
            plt.close()

        print(f'Received: T={temp:.1f}°C, H={humidity:.1f}%, P={pressure:.1f} hPa, W={wind_speed:.1f} m/s')

    except Exception as e:
        print(f'Error processing message: {e}')

client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect(BROKER, PORT, 60)

# Запускаем цикл обработки (не бесконечный, чтобы не превысить таймаут sandbox)
client.loop_start()
time.sleep(30)  # Работаем 30 секунд (максимум для sandbox)
client.loop_stop()

Важно: Sandbox ASI Biont имеет таймаут 30 секунд. Поэтому скрипт не может работать непрерывно. В реальном сценарии AI запускает такой скрипт периодически (например, каждые 5 минут) или использует MQTT-мост с долгоживущим процессом на стороне пользователя (Hardware Bridge).

Реальные сценарии использования

1. Умный полив на основе данных метеостанции

AI-агент анализирует данные о температуре, влажности воздуха и давлении. Если в ближайшие 2 часа ожидается дождь (по данным прогноза и тренду давления), AI отменяет запланированный полив и отправляет уведомление в Telegram. Если, наоборот, жарко и сухо — включает полив через MQTT-команду на ESP32 с реле.

Пример команды в чате:

«Настрой сценарий: если температура > 30°C и влажность < 30% — включи полив на 15 минут через топик irrigation/control. Если давление резко падает (более 2 гПа за час) — отмени полив и предупреди меня.»

2. Оповещения о резких изменениях погоды

Метеостанция измеряет скорость ветра и давление. AI-агент отслеживает аномалии: резкое падение давления (признак шторма) или порывы ветра > 20 м/с. При обнаружении AI отправляет оповещение в Telegram или Slack.

Пример команды в чате:

«Мониторь скорость ветра. Если за 5 минут средняя скорость превысит 15 м/с — отправь предупреждение в Telegram. Также построй график давления за последние 3 часа и пришли мне PDF.»

3. Аналитика микроклимата теплицы

В теплице установлена метеостанция с датчиками CO2, освещённости и температуры. AI-агент собирает данные, строит корреляции (например, зависимость температуры от освещённости) и рекомендует оптимальное время для проветривания или включения обогрева.

Пример команды в чате:

«Проанализируй данные за последнюю неделю: температура, влажность, CO2. Найди периоды, когда CO2 превышал 800 ppm, и сопоставь с температурой. Построй тепловую карту и сохрани в Excel.»

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

  1. Нулевой порог входа. Вам не нужно уметь программировать на Python или разбираться в протоколах IoT. Достаточно описать задачу на естественном языке.
  2. Экономия времени. AI генерирует и отлаживает код за секунды. Типичная интеграция, которая заняла бы у разработчика 2-3 часа, выполняется за 2-3 минуты диалога.
  3. Гибкость. Можно подключать любые устройства: от простых датчиков на Arduino до промышленных контроллеров Siemens S7 по протоколу S7 или Modbus TCP. ASI Biont поддерживает более 15 протоколов.
  4. Масштабируемость. Добавление новой метеостанции — это просто новая строка в конфигурации MQTT. AI сам адаптирует скрипты под новые устройства.

Заключение

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

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

← Все статьи

Комментарии

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

Бенчмаркая регресс LINQ: обещали −19%, а на четырёх машинах намерили +31%

19 июля 2026

ISO 9001:2026: Как курс по СМК помогает бизнесу выживать в эпоху AI и автоматизации

19 июля 2026

Ч. 18 — Конвейер контента для MMO: как импортировать анимацию, настраивать экипировку и обновлять игру без патчей

19 июля 2026

Кадр не обязан жить в одном времени: философия воспринимаемой задержки в игровом стриминге на примере команды EVRT

19 июля 2026

HubSpot интеграция с AI-агентом: как ASI Biont превращает CRM в машину прогнозов и автоматизации продаж

19 июля 2026

Почему наука о данных для бизнеса — это навык, который нельзя игнорировать в 2026 году

19 июля 2026

Сократите накладные расходы Asana на 70%: как ИИ-агент ASI Biont автоматизирует управление задачами через чат

19 июля 2026

Better and Cheaper Than IPTV: Как Vibe Coding меняет рынок контента и развлечений в 2026 году

19 июля 2026

Raspberry Pi 4/5 и ASI Biont: автоматизация умного дома через Telegram без программирования

19 июля 2026