Кто каким ИИ пользуется для написания скетчей?

Странно. С чего бы это удивляло? Нашли чему удивляться.

Я провел простой тесь с ИИ. Попросил написать программу для устройства своего умного дома. Он честно залез на данный форум и дернул исходник, который я публиковал. С моими коментами. А разобраться в коде не смог и понес чушь из api телеграм. Не умеет он писать программы. Он умеет выдергивать похожие куски из исходников - не более.

Дак это не он не умеет писать программы, как мне видицца.

Странный вообще подход. Выглядит как:

“Молоток, сделай мне табуретку”

ИИ это инструмент всё же.

Вы не оригинальны. Уже обсуждалось.

напиши программу реле для умного дома 4duk

Для создания программы управления 4-канальным реле (4DUK/Smart Aura) для умного дома, использующего платформу Tuya/Smart Life (наиболее вероятно для таких устройств), можно использовать платформу Arduino IDE (для самодельных устройств на ESP8266/ESP32) или просто настроить устройство через приложение, если это готовый Wi-Fi модуль. [1, 2]

Ниже приведен пример программы на языке C++ (Arduino IDE) для ESP8266, которая управляет 4 реле через Wi-Fi с использованием MQTT (для интеграции в умный дом типа Home Assistant) или простым HTTP-сервером.

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>

// Настройки Wi-Fi
const char* ssid = "YOUR_WIFI_SSID";
const char* password = "YOUR_WIFI_PASSWORD";

// Пины, к которым подключены реле (настройте под свою плату)
const int relay1 = 12; // D6
const int relay2 = 13; // D7
const int relay3 = 14; // D5
const int relay4 = 15; // D8 (или GPIO16)

ESP8266WebServer server(80);

void handleRoot() {
  String html = "<h1>4DUK Relay Control</h1>";
  html += "<p><a href=\"/r1/on\"><button>Relay 1 ON</button></a> <a href=\"/r1/off\"><button>Relay 1 OFF</button></a></p>";
  html += "<p><a href=\"/r2/on\"><button>Relay 2 ON</button></a> <a href=\"/r2/off\"><button>Relay 2 OFF</button></a></p>";
  html += "<p><a href=\"/r3/on\"><button>Relay 3 ON</button></a> <a href=\"/r3/off\"><button>Relay 3 OFF</button></a></p>";
  html += "<p><a href=\"/r4/on\"><button>Relay 4 ON</button></a> <a href=\"/r4/off\"><button>Relay 4 OFF</button></a></p>";
  server.send(200, "text/html", html);
}

void setup() {
  Serial.begin(115200);
  
  pinMode(relay1, OUTPUT);
  pinMode(relay2, OUTPUT);
  pinMode(relay3, OUTPUT);
  pinMode(relay4, OUTPUT);
  
  // Изначально все реле выключены (логика может быть инвертирована LOW/HIGH)
  digitalWrite(relay1, HIGH); 
  digitalWrite(relay2, HIGH);
  digitalWrite(relay3, HIGH);
  digitalWrite(relay4, HIGH);

  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println(WiFi.localIP());

  server.on("/", handleRoot);
  
  // Настройка обработчиков URL
  server.on("/r1/on", [](){ digitalWrite(relay1, LOW); server.send(200, "text/html", "R1 ON"); });
  server.on("/r1/off", [](){ digitalWrite(relay1, HIGH); server.send(200, "text/html", "R1 OFF"); });
  server.on("/r2/on", [](){ digitalWrite(relay2, LOW); server.send(200, "text/html", "R2 ON"); });
  server.on("/r2/off", [](){ digitalWrite(relay2, HIGH); server.send(200, "text/html", "R2 OFF"); });
  // ... добавить для r3, r4

  server.begin();
}

void loop() {
  server.handleClient();
}

Даже намека на использование API нет.

Он даже не анализирует исходники.

А это шедевр! Причем про API есть даже описание.

У меня вопрос сразу

ты где-нить видел у микроконтроллеров пин с номером, допустим -32600? А константы, между прочим, хранятся в сегменте инициализированных данных.

Ну, так я же там говорил очевидную истину, что

Вы этого не поняли? Тогда беда :frowning:

Нет. Но может он где то прибавляет лишнее, чтобы получился правильный пин?

а constexpr uint8_t PIN_LED_BIULTIN = 13 не хранится нигде, кроме текста программы и не требует никаких преобразований.

Ну а если это твоё

то это не он не умеет писать программы, как я и говорил

Нет.

Протокол связи простой - это пакет UDP по broadcast адресу на порт 9009 в виде -
device:devname: action:actionname: value:val.
Devname - имя устройства,
actionname - команда,
val - значение.
В нашем случае мы не выясняем IP адрес устройства, чтобы максимально сократить трафик на выяснение его и добавляем возможность делать дублирующие устройства с одним именем и функционалом.

В свою очередь устройства могут отвечать состоянием в виде аналогичного пакета
devstate:devname: controlname: controlvalue .
devname - имя устройства,
controlname - имя датчика/параметра,
controlvalue - значение .

И WEB интерфейс тут - как собаке пятое колесо.

Ачётакова?

Берём LTSpice (практически “золотой стандарт” в своей области) и любуемся на напряжение в средней токе делителя :slight_smile:

а напряжение причом? я про const, int и номер пина

А не без разницы ли const int или constexpr uint8_t? В размере кода? Оптимизатор же, не?

Const имеет адрес, значит еще и хранится в коде (2 байта минимум, еще и со знаком), а constexpr видим только на этапе канпиляции и нигде, кроме текста программы не хранится унутре микроконтроллера. Умножаем на число описанных пинов, получаем дохрена лишних байт во флэше, в хранении которых нет ни малейшего смысла. Актуально для AVR. В “жирных” контроллерах это просто индикатор неаккуратного кода.

Так и запишем.)

прописать куда подключаться, связать топики, и все должно работать…
скинуть пример работы именно с вашим брокером, и может тоже сделает вам код))) ну или хотя бы пример подключения чужого брокера..
но брокер mqtt вам надо организовывать правильно заранее, а если вы сделали свой какой то, который работает по своим алгоритмам, так и сделайте код как он должен работать по вашему мнению, или скормите весь код ии и пусть попробует разобраться сам…

но я с вами согласен, ии совсем обнаглели, и не угадывают мысли…