Интеграция BME280 / BMP280 с ASI Biont: мониторинг давления и погоды через AI-агента без кода

Введение

Датчики BME280 и BMP280 — одни из самых популярных в IoT-проектах. Они измеряют атмосферное давление (±1 гПа), температуру (±0.5 °C) и влажность (только BME280). Их ставят в метеостанции, системы умного дома, теплицы и промышленные контроллеры. Но чтобы данные с датчика превратились в полезные действия (уведомление в Telegram, автоматическое закрытие форточки, прогноз погоды), нужен интеграционный слой — AI-агент, который понимает контекст и сам пишет код подключения.

Как ASI Biont подключается к BME280/BMP280

ASI Biont не требует готовых драйверов или SDK. Вы просто описываете в чате: «Подключись к моему ESP32 с BME280 по MQTT, читай давление и температуру каждые 5 минут, и если давление упало ниже 990 гПа — отправь предупреждение в Telegram». AI сам выбирает способ подключения:

Способ Когда используется Пример устройства
MQTT (paho-mqtt) ESP32 / Raspberry Pi публикуют данные по Wi-Fi ESP32 + BME280 → MQTT-брокер
SSH (paramiko) Одноплатник с Linux, Python-скрипт на борту Raspberry Pi с BME280 по I²C
COM-порт (Hardware Bridge) Микроконтроллер подключён к ПК через USB-UART Arduino + BME280 на COM3

Сценарий: ESP32 + BME280 + MQTT → уведомления в Telegram

Что нужно

  • ESP32 (или ESP8266) с прошивкой, отправляющей данные в MQTT
  • BME280/BMP280, подключённый по I²C (SDA→GPIO21, SCL→GPIO22)
  • MQTT-брокер (например, Mosquitto на Raspberry Pi или облачный HiveMQ)
  • Telegram-бот (токен от @BotFather)

Как это работает

  1. ESP32 раз в 5 мин измеряет давление и отправляет JSON в топик sensors/bme280.
  2. ASI Biont подключается к тому же MQTT-брокеру через execute_python.
  3. AI подписывается на топик, получает данные и анализирует.
  4. При падении давления ниже порога — отправляет сообщение через Telegram Bot API.

Пример кода, который AI генерирует сам

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

TELEGRAM_TOKEN = "ваш_токен"
CHAT_ID = "ваш_chat_id"
MQTT_BROKER = "192.168.1.100"
TOPIC = "sensors/bme280"

def on_message(client, userdata, msg):
    data = json.loads(msg.payload.decode())
    pressure = data.get("pressure", 1013)
    if pressure < 990:
        text = f"⚠️ Давление упало до {pressure} гПа! Возможен шторм."
        requests.post(f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage",
                      json={"chat_id": CHAT_ID, "text": text})

client = mqtt.Client()
client.on_message = on_message
client.connect(MQTT_BROKER, 1883, 60)
client.subscribe(TOPIC)
client.loop_start()  # работает в фоне, не блокирует sandbox

Этот код выполняется в облачном sandbox ASI Biont (30 секунд на выполнение, без while True). AI может запустить его по расписанию или однократно.

Сценарий: Raspberry Pi + BME280 по SSH

Если датчик подключён к Raspberry Pi (через I²C), AI подключается по SSH и запускает скрипт прямо на устройстве. Пользователь пишет: «Подключись к моей Raspberry по SSH (IP: 192.168.1.50, логин: pi, пароль: raspberry) и читай BME280 каждые 10 минут».

AI генерирует код с paramiko, который:
- Устанавливает библиотеку bme280 (pip install bme280)
- Читает регистры датчика через /dev/i2c-1
- Логирует давление в CSV-файл
- При резком скачке давления отправляет уведомление

import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect("192.168.1.50", username="pi", password="raspberry")

stdin, stdout, stderr = ssh.exec_command("python3 -c \"import smbus2, bme280; bus=smbus2.SMBus(1); addr=0x76; data=bme280.load_calibration_params(bus, addr); print(bme280.sample(bus, addr, data).pressure)\"")
pressure = float(stdout.read().decode().strip())
print(f"Давление: {pressure} гПа")
ssh.close()

Сценарий: Arduino + BME280 через Hardware Bridge

Если устройство — Arduino Nano с BME280 на COM-порту, пользователь запускает bridge.py на своём ПК (скачивается из дашборда ASI Biont, Devices → Create API Key). Bridge подключается к облаку через WebSocket и открывает COM3 на 115200 бод.

Пользователь пишет в чат: «Прочитай давление с Arduino на COM3».

AI использует industrial_command(protocol='serial://', command='serial_write_and_read', params={'port': 'COM3', 'baud': 115200, 'data': 'GET_PRESSURE\n'}). Bridge отправляет команду, получает ответ и возвращает его в чат.

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

  • Не нужно писать код вручную. AI генерирует скрипты под ваше железо за секунды.
  • Любой способ подключения. MQTT, SSH, COM-порт, Modbus — ASI Biont поддерживает все популярные протоколы.
  • Гибкие сценарии. Хотите прогноз погоды по давлению? Умное управление вентиляцией? AI настроит триггеры в чате.
  • Без панелей управления. Никаких кнопок «добавить устройство» — просто опишите задачу словами.

Заключение

BME280/BMP280 — простой и точный датчик, но его ценность раскрывается только в связке с AI-агентом. ASI Biont берёт на себя всю рутину: написание кода, выбор протокола, обработку ошибок, отправку уведомлений. Вам остаётся только подключить датчик по I²C и сказать в чат: «Следи за давлением». Попробуйте сами на asibiont.com.

← Все статьи

Комментарии