BH1750 + ASI Biont: AI-агент управляет светом через I2C-датчик освещенности
Дата: 13 июля 2026
Представьте: вы сидите в офисе, солнце бьёт в глаза, вы говорите в Telegram: «Агент, закрой шторы на южном окне до 30% освещённости». Через 5 секунд AI-агент ASI Biont считывает показания с датчика BH1750, подключённого к ESP32, вычисляет нужный угол сервопривода и отправляет команду — шторы плавно закрываются. Автоматизация, которая раньше требовала недели программирования, теперь делается за минуту диалога.
В этой статье — полный технический разбор: как подключить BH1750 к ASI Biont, какие протоколы использовать (I2C, MQTT, COM-порт) и какие реальные сценарии можно реализовать прямо сейчас.
Что такое BH1750 и зачем его подключать к AI-агенту
BH1750 — это цифровой датчик освещённости (люксметр) на шине I2C. Он измеряет освещённость от 1 до 65535 люкс с точностью до 1 люкс. Производится компанией ROHM Semiconductor, используется в умных домах, теплицах, офисах и носимой электронике.
Интеграция с AI-агентом даёт:
- Адаптивное управление светом: AI анализирует показания в реальном времени и регулирует яркость ламп или положение штор.
- Прогнозирование: на основе истории освещённости AI предсказывает, когда потребуется включить свет (например, перед закатом).
- Автоматизация по сценариям: «Если освещённость ниже 100 люкс и время > 18:00 — включи свет в гостиной».
- Уведомления: AI отправляет в Telegram предупреждения, если освещённость выходит за норму (например, в теплице).
Как ASI Biont подключается к BH1750: обзор подходов
ASI Biont использует execute_python — AI-агент сам пишет Python-код в sandbox-окружении (Railway) с доступом к библиотекам paho-mqtt, pyserial (через Hardware Bridge), paramiko, pymodbus, aiohttp. Пользователь просто описывает в чате задачу: «Подключись к ESP32 с BH1750 через MQTT по адресу 192.168.1.100», и AI генерирует рабочий скрипт.
Для BH1750 доступны три основных способа:
| Способ | Как работает | Когда использовать |
|---|---|---|
| MQTT | ESP32 публикует данные в топик, AI подписывается через paho-mqtt | Удалённый мониторинг, умный дом с Wi-Fi |
| Hardware Bridge (COM-порт) | ESP32 подключён к ПК по USB, bridge.py передаёт данные AI через long polling | Локальное управление, отладка, быстрые прототипы |
| SSH | AI подключается к Raspberry Pi (или другому Linux-одноплатнику) по SSH и запускает скрипт чтения I2C | Промышленные сценарии с Raspberry Pi |
Почему MQTT — самый популярный вариант? BH1750 часто используется с ESP32, который по умолчанию имеет Wi-Fi. MQTT — лёгкий протокол, идеальный для IoT. AI может подписаться на топик с данными и одновременно публиковать команды на управление светом.
Сценарий 1: Умный дом — автоматическое управление шторами через MQTT
Задача: В офисе на южной стороне установлен BH1750 + ESP32. Если освещённость превышает 500 люкс, AI должен закрыть шторы на 70%. Если падает ниже 100 люкс — открыть полностью.
Шаг 1. Прошивка ESP32
Пользователь предварительно загружает на ESP32 прошивку на MicroPython, которая каждые 5 секунд читает BH1750 и публикует данные в MQTT-топик sensor/light. Код прошивки:
# ESP32 MicroPython
import machine
import time
import ujson
from umqtt.simple import MQTTClient
import bh1750 # библиотека для BH1750
# Настройка I2C
i2c = machine.I2C(scl=machine.Pin(22), sda=machine.Pin(21))
sensor = bh1750.BH1750(i2c)
# MQTT настройки
BROKER = "192.168.1.50" # IP Mosquitto
CLIENT = MQTTClient("ESP32_LIGHT", BROKER)
CLIENT.connect()
while True:
lux = sensor.read()
payload = ujson.dumps({"lux": lux, "timestamp": time.time()})
CLIENT.publish(b"sensor/light", payload.encode())
time.sleep(5)
Шаг 2. Подключение ASI Biont через диалог
Пользователь пишет в чате ASI Biont:
«Подключись к MQTT-брокеру 192.168.1.50, порт 1883, без пароля. Подпишись на топик sensor/light. Если lux > 500, опубликуй в топик curtain/command команду "close_70". Если lux < 100 — "open". Повторяй каждые 30 секунд.»
AI генерирует и выполняет скрипт:
import paho.mqtt.client as mqtt
import time
BROKER = "192.168.1.50"
PORT = 1883
TOPIC_SENSOR = "sensor/light"
TOPIC_CURTAIN = "curtain/command"
light_history = []
def on_message(client, userdata, msg):
import json
data = json.loads(msg.payload.decode())
lux = data["lux"]
light_history.append(lux)
# Анализ и принятие решения
if lux > 500:
client.publish(TOPIC_CURTAIN, "close_70")
print(f"Закрываю шторы на 70% (lux={lux})")
elif lux < 100:
client.publish(TOPIC_CURTAIN, "open")
print(f"Открываю шторы (lux={lux})")
client = mqtt.Client()
client.on_message = on_message
client.connect(BROKER, PORT, 60)
client.subscribe(TOPIC_SENSOR)
client.loop_start()
# Ждём 30 секунд для накопления данных
time.sleep(30)
client.loop_stop()
print("Сеанс завершён, история освещённости:", light_history)
Результат
- Время настройки: 2 минуты (вместо 2–3 часов ручного кодирования).
- AI не только управляет шторами, но и ведёт историю освещённости, которую можно использовать для оптимизации расписания.
Сценарий 2: Теплица — мониторинг и уведомления через Hardware Bridge
Задача: BH1750 подключён к ESP32, который висит на USB-порте ПК в теплице. Пользователь хочет получать в Telegram уведомления, если освещённость падает ниже 200 люкс (пасмурно) — нужно включить фитолампы.
Шаг 1. Запуск Hardware Bridge
Пользователь скачивает bridge.py с asibiont.com/bridge, запускает:
python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --default-baud=115200
Bridge подключается к ASI Biont через HTTP long polling и открывает COM3.
Шаг 2. Прошивка ESP32
ESP32 отправляет данные по UART в формате JSON:
# ESP32 MicroPython (UART)
import machine
import ujson
import bh1750
uart = machine.UART(2, baudrate=115200)
i2c = machine.I2C(scl=machine.Pin(22), sda=machine.Pin(21))
sensor = bh1750.BH1750(i2c)
while True:
lux = sensor.read()
payload = ujson.dumps({"lux": lux})
uart.write(payload.encode() + b"\n")
time.sleep(10)
Шаг 3. Команда AI
Пользователь пишет:
«Читай данные с COM3 (115200 baud), парси JSON с ключом lux. Если lux < 200, отправь мне в Telegram: "Внимание! Освещённость в теплице ниже нормы: {lux} люкс. Включите фитолампы."»
AI использует industrial_command с протоколом serial://:
# Пример команды (выполняется в sandbox через tool call)
# industrial_command(protocol='serial://', command='read', port='COM3', baud=115200)
Так как чтение из COM-порта происходит через bridge, AI получает строку, парсит её и отправляет уведомление через Telegram API.
Сценарий 3: Офис — адаптивное освещение по расписанию
Задача: В переговорной комнате BH1750 измеряет освещённость. AI должен:
- Если освещённость < 300 люкс в рабочее время (09:00–18:00) — включить свет.
- Если > 800 люкс — приглушить свет до 50%.
- В нерабочее время — выключить свет полностью.
Подключение по MQTT (аналогично сценарию 1)
AI генерирует скрипт с учётом времени:
import paho.mqtt.client as mqtt
from datetime import datetime, time
BROKER = "192.168.1.50"
TOPIC_LIGHT = "sensor/light"
TOPIC_LAMP = "lamp/command"
def is_working_hours():
now = datetime.now()
return time(9, 0) <= now.time() <= time(18, 0)
def on_message(client, userdata, msg):
import json
data = json.loads(msg.payload.decode())
lux = data["lux"]
if not is_working_hours():
client.publish(TOPIC_LAMP, "off")
return
if lux < 300:
client.publish(TOPIC_LAMP, "on_full")
elif lux > 800:
client.publish(TOPIC_LAMP, "dim_50")
else:
client.publish(TOPIC_LAMP, "on_auto")
client = mqtt.Client()
client.on_message = on_message
client.connect(BROKER, PORT, 60)
client.subscribe(TOPIC_LIGHT)
client.loop_forever()
Результат: Экономия электроэнергии до 30% за счёт того, что свет не горит впустую, а AI анализирует реальную освещённость.
Почему это выгодно: AI вместо ручного программирования
Традиционный подход:
1. Написать прошивку для ESP32 (2–3 часа).
2. Настроить MQTT-брокер (1 час).
3. Написать backend-логику для анализа (4–5 часов).
4. Подключить Telegram-бота (2 часа).
Итого: 8–11 часов на одну интеграцию.
С ASI Biont:
- Пользователь описывает задачу на естественном языке.
- AI генерирует и выполняет код за 30–60 секунд.
- Никаких панелей управления — всё через чат.
Ключевое преимущество: ASI Biont подключается к любому устройству через execute_python. Не нужно ждать, пока разработчики добавят поддержку нового датчика или протокола. BH1750, DHT22, ультразвуковой дальномер, реле — всё это уже работает через pyserial, paho-mqtt, paramiko, pymodbus, aiohttp или opcua-asyncio.
Как начать: пошаговая инструкция
- Зарегистрируйтесь на asibiont.com — получите API-токен.
- Подготовьте устройство: загрузите на ESP32 прошивку с чтением BH1750 (код выше) и публикацией в MQTT/UART.
- Запустите Hardware Bridge (если используете COM-порт):
python bridge.py --token=YOUR_TOKEN --ports=COM3. - Напишите в чат ASI Biont задачу, как в примерах выше.
- AI сделает всё остальное — подключится, прочитает данные, выполнит сценарий.
Заключение
BH1750 — простой, но мощный датчик, который в паре с AI-агентом ASI Biont превращается в полноценную систему управления освещением. Вы можете автоматизировать шторы, фитолампы, офисный свет и получать уведомления — и всё это без написания десятков строк кода вручную.
Попробуйте сами: asibiont.com — опишите свою задачу в чате, и AI подключится к вашему BH1750 за секунды.
Комментарии