Keresés

Hirdetés

Új hozzászólás Aktív témák

  • Janos250

    őstag

    válasz lanszelot #21007 üzenetére

    Gondoltam, kipróbálom a ChatGPT-t erre.

    Már többször próbáltam kíváncsiságból. Általában jó programot írt egyszerűbb dolgokra, de volt, hogy logikai hibát rakott bele.
    Most azt írtam be neki:

    "Írj egy programot ESP32-re, amivel egy ledet tudok ki-bekapcsolni neten keresztül!"

    Ezt válaszolta:
    "Az alábbiakban egy egyszerű példaprogram található, amely segítségével egy ESP32 mikrovezérlőn keresztül vezérelhetsz egy LEDet a hálózaton keresztül. A program egy egyszerű webes felületet biztosít, ahol egy gomb segítségével ki- és bekapcsolhatod a LEDet."

    Ezt a programot írta:

    #include <WiFi.h>
    #include <ESPAsyncWebServer.h>
    // WiFi hálózati beállítások
    const char* ssid = "WiFi_SSID";
    const char* password = "WiFi_Password";
    // LED pin
    const int ledPin = 13;
    // Web szerver létrehozása az AsyncWebServer használatával
    AsyncWebServer server(80);
    void setup() {
      // LED pin inicializálása
      pinMode(ledPin, OUTPUT);
      digitalWrite(ledPin, LOW);
      // Sori monitor inicializálása
      Serial.begin(115200);
      // WiFi csatlakozás
      WiFi.begin(ssid, password);
      while (WiFi.status() != WL_CONNECTED) {
        delay(1000);
        Serial.println("Connecting to WiFi...");
      }
      Serial.println("Connected to WiFi");
      // Webes útvonalak kezelése
      server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
        String html = "<html><body>";
        html += "<h1>ESP32 LED Control</h1>";
        html += "<p>LED Status: ";
        html += (digitalRead(ledPin) == HIGH) ? "ON" : "OFF";
        html += "</p>";
        html += "<form action=\"/toggle\" method=\"post\">";
        html += "<button type=\"submit\">Toggle LED</button>";
        html += "</form>";
        html += "</body></html>";
        request->send(200, "text/html", html);
      });
      server.on("/toggle", HTTP_POST, [](AsyncWebServerRequest *request){
        digitalWrite(ledPin, !digitalRead(ledPin));
        request->send(200);
      });
      // Web szerver indítása
      server.begin();
    }
    void loop() {
      // Üresen hagyjuk a loop-ot
    }

    Én nem használnék AsyncWebServer-t, hanem csak símát, és nem is tudom eldönteni, hogy jó-e, mert nem használtam még, és most meg kipróbálni nem tudom, de érdekességként beírom ide, hogy felhívjam a figyelmet, hogy hol tart a todomány!
    Ha nem tudod, hogy ez:
    [](AsyncWebServerRequest *request)
    mi, akkor Google, C++ lambda

    Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

  • Aryes

    nagyúr

    válasz lanszelot #21007 üzenetére

    Én azt javaslom, hogy ne kész kisautót használj és ne webkamerát. A kisautó irányítása triviálisnak tűnik, de nem az. Ha kis helyeken, kis távolságokra kell irányítani, sokkal fontosabb a jó manőverező képesség, és az a lánctalpas vagy a hasonló logikájú, 2 hajtott kerék + bolygókerék és ezeknek a kombinációja (4 hajtott kerék), ezek ugyanis tudnak helyben fordulni. Cserébe nem mennek annyira gyorsan és túl egyenesen sem, de ezt nem is fogod tudni kihasználni, mert akkora lesz a lag a netes kapcsolat + kamera miatt. A kész autónál a vezérlést is nagy valószínűséggel ki kellene cserélni, tehát azzal sem vagy előrébb. Egy dupla h-bridge vagy két 360°-os szervó pont meg is teszi hajtásnak.

    A másik a külön kamera. Ehelyett inkább valamely ESP32CAM modult ajánlanám, de nem a legolcsóbb gagyi kamerával (pl ov2640), és akkor minden egyben lesz, ami fogyasztás szempontjából se mindegy.

Új hozzászólás Aktív témák