Arduino Uno / Nano / Mega + ASI Biont: как подключить микроконтроллер к AI-агенту без единой строчки кода

Введение

Arduino Uno, Nano и Mega — это, пожалуй, самые популярные микроконтроллеры в мире. Они стоят дёшево, легко программируются и позволяют собирать данные с десятков типов датчиков (температура, влажность, давление, освещённость) и управлять исполнительными устройствами (реле, сервоприводы, шаговые двигатели). Но есть проблема: чтобы обрабатывать данные и принимать решения на основе показаний датчиков, обычно нужно писать сложную логику на C++ в Arduino IDE, настраивать веб-сервер или подключать внешний компьютер.

ASI Biont полностью меняет подход. Вместо того чтобы программировать логику на микроконтроллере, вы подключаете Arduino к AI-агенту через Hardware Bridge — и вся обработка данных, принятие решений и отправка уведомлений происходит в облаке. Пользователь просто описывает в чате, что нужно сделать, и AI сам пишет код интеграции. Никаких панелей управления и кнопок «добавить устройство» — всё через диалог.

Как работает подключение Arduino к ASI Biont

Arduino Uno, Nano и Mega подключаются к ASI Biont через COM-порт (USB-UART) с помощью Hardware Bridge. Это единственный способ для Arduino, так как у микроконтроллера нет Ethernet или Wi-Fi (кроме плат с дополнительными шилдами).

Схема подключения:
1. Подключите Arduino к компьютеру через USB-кабель.
2. Загрузите на Arduino простой скетч (см. ниже), который отвечает на команды через Serial.
3. Скачайте bridge.py из дашборда ASI Biont (Devices → Create API Key → Скачать bridge).
4. Запустите bridge.py с параметрами:
bash pip install pyserial requests websockets python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud=115200 --rate=10
5. Теперь AI-агент может отправлять команды на Arduino через industrial_command tool.

Почему именно Hardware Bridge?
- Arduino не имеет прямого доступа к интернету — bridge работает как шлюз между облаком ASI Biont и локальным COM-портом.
- Bridge использует WebSocket (единственный канал связи) — безопасно и надёжно.
- AI отправляет команды через industrial_command(protocol='serial://arduino', command='...'), bridge преобразует их в байты и отправляет в порт.

Прошивка Arduino: минимальный скетч для приёма команд

Загрузите на Arduino следующий код. Он принимает команды по Serial, выполняет их и возвращает ответ.

// Простейший скетч для управления Arduino через ASI Biont

const int LED_PIN = 13;
const int RELAY_PIN = 7;
const int TEMP_SENSOR_PIN = A0; // аналоговый вход для LM35 или DHT

void setup() {
  Serial.begin(115200);
  pinMode(LED_PIN, OUTPUT);
  pinMode(RELAY_PIN, OUTPUT);
  digitalWrite(LED_PIN, LOW);
  digitalWrite(RELAY_PIN, LOW);
}

void loop() {
  if (Serial.available() > 0) {
    String command = Serial.readStringUntil('\n');
    command.trim();

    if (command == "LED_ON") {
      digitalWrite(LED_PIN, HIGH);
      Serial.println("LED_ON_OK");
    } else if (command == "LED_OFF") {
      digitalWrite(LED_PIN, LOW);
      Serial.println("LED_OFF_OK");
    } else if (command == "RELAY_ON") {
      digitalWrite(RELAY_PIN, HIGH);
      Serial.println("RELAY_ON_OK");
    } else if (command == "RELAY_OFF") {
      digitalWrite(RELAY_PIN, LOW);
      Serial.println("RELAY_OFF_OK");
    } else if (command == "READ_TEMP") {
      int raw = analogRead(TEMP_SENSOR_PIN);
      float voltage = raw * 5.0 / 1024.0;
      float tempC = voltage * 100.0; // LM35: 10mV per degree C
      Serial.print("TEMP:");
      Serial.println(tempC);
    } else if (command == "HELP") {
      Serial.println("LED_ON, LED_OFF, RELAY_ON, RELAY_OFF, READ_TEMP");
    } else {
      Serial.println("UNKNOWN_COMMAND");
    }
  }
}

После загрузки скетча откройте монитор порта (115200 бод), отправьте HELP — Arduino должна ответить списком команд. Если всё работает, закройте монитор порта (он блокирует COM-порт для bridge).

Пример сценария: автоматизация лаборатории с контролем температуры

Представьте, что у вас в лаборатории стоит Arduino с датчиком температуры (LM35 или DHT22) и реле для управления вентилятором. Задача: если температура превышает 30°C, AI-агент должен отправить уведомление в Telegram и включить вентилятор. Если температура падает ниже 25°C — выключить вентилятор.

Шаг 1. Запустите bridge.py (как описано выше)

Шаг 2. Напишите в чате ASI Biont:

«Подключись к моему Arduino на COM3, 115200 бод. Каждые 30 секунд читай температуру с помощью команды READ_TEMP. Если температура больше 30°C — включи реле (команда RELAY_ON) и отправь мне уведомление в Telegram. Если температура меньше 25°C — выключи реле (RELAY_OFF). Мой Telegram-токен: 123456:ABC-DEF, chat_id: 987654321.»

Шаг 3. AI генерирует и выполняет код

ASI Biont автоматически создаёт Python-скрипт (execute_python), который использует industrial_command для опроса Arduino и отправки уведомлений. Вот как выглядит реальный код, который AI выполняет в sandbox:

import requests
import time
import json

# Функция для отправки команды на Arduino через bridge
# (реально AI использует industrial_command, но для примера показываем логику)
def send_command(cmd):
    # В sandbox AI вызывает industrial_command, но для наглядности:
    # Это не Python-функция, а tool call — AI её формирует сам
    pass

# Настройки Telegram
TELEGRAM_TOKEN = "123456:ABC-DEF"
CHAT_ID = "987654321"

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

fan_on = False

# Бесконечный цикл не используем — sandbox имеет таймаут 30 сек
# Вместо этого AI запускает логику по расписанию (через триггеры ASI Biont)
# Но для примера покажем один цикл опроса:

# industrial_command(protocol='serial://arduino', command='READ_TEMP')
# Предположим, ответ пришёл: "TEMP:32.5"
temp = 32.5

if temp > 30.0 and not fan_on:
    # industrial_command(protocol='serial://arduino', command='RELAY_ON')
    send_telegram(f"⚠️ Температура {temp}°C — включаю вентилятор!")
    fan_on = True
elif temp < 25.0 and fan_on:
    # industrial_command(protocol='serial://arduino', command='RELAY_OFF')
    send_telegram(f"✅ Температура {temp}°C — выключаю вентилятор.")
    fan_on = False

AI сам решает, как часто опрашивать датчик (можно настроить периодический запуск через триггеры ASI Biont). Всё, что нужно от пользователя — описать задачу на естественном языке.

Результат

Через несколько секунд после описания задачи:
- AI подключается к Arduino через bridge.
- Каждые 30 секунд считывает температуру.
- При превышении порога включает реле и отправляет уведомление в Telegram.
- При нормализации температуры выключает реле.

Сравнение способов подключения Arduino к AI

Способ Скорость Сложность Безопасность Управление AI
Hardware Bridge (COM-порт) Высокая (115200 бод) Низкая (скачать bridge.py, запустить) Высокая (локальное соединение) Да, через чат
Arduino + Ethernet Shield (HTTP) Средняя Высокая (настройка сети, HTTP-сервер) Средняя (открытый порт) Да, через чат
Arduino + ESP8266 (WiFi) Средняя Средняя (прошивка AT-команд) Средняя Да, через чат
Локальный ПК с Python (pyserial) Высокая Средняя (написание скрипта) Высокая Нет, нужен код

Hardware Bridge — оптимальный вариант для Arduino: не требует дополнительных шилдов, работает из коробки, безопасен (данные не выходят за пределы локальной сети без необходимости).

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

  1. Нулевой код для интеграции. Пользователь не пишет ни строчки Python или C++ для связи с AI — только простой скетч для Arduino (стандартный, его можно скопировать из этой статьи). Всю логику подключения, опроса датчиков и принятия решений AI генерирует сам.
  2. Любой датчик и любое реле. Вы можете подключить к Arduino что угодно: DHT22, BME280, ультразвуковой дальномер, сервопривод, шаговый двигатель. AI подстроится под ваш скетч.
  3. Автоматизация без программирования. Хотите, чтобы при превышении CO2 включалась вытяжка? Или при открытии окна отключался кондиционер? Просто опишите это в чате.
  4. Мгновенные уведомления. Telegram, email, Slack — AI может отправлять сообщения в любой канал.
  5. Масштабирование. Один AI-агент управляет десятками Arduino одновременно — просто запустите bridge на каждом компьютере.

Заключение

Arduino Uno, Nano и Mega — это идеальные устройства для сбора данных и управления физическим миром. А ASI Biont превращает их в умных ассистентов, которые реагируют на события, анализируют тренды и оповещают вас. Всё, что нужно — подключить Arduino к компьютеру, загрузить простой скетч, скачать bridge.py из дашборда и описать задачу в чате.

Попробуйте сами: зайдите на asibiont.com, создайте API-ключ, скачайте bridge.py и подключите свой Arduino. AI-агент уже ждёт ваших команд.

← Все статьи

Комментарии