Automatische Hühnerklappe mit wemos d1 mini

Hallo zusammen, ich wollte einen automatische Hühnerklappe bauen die man per Webinterface steuern (evtl. auch per webinterface zeiten zum auf und zu fahren eineprogrammieren) kann.
Ich habe hier einen Beispielcode

#include <WiFi.h>
#include <AsyncTCP.h>
#include <ESPAsyncWebServer.h>

// WiFi Zugangsdaten
const char* ssid = "Ihr SSID";
const char* password = "Ihr Passwort";

// Pin-Definitionen
const int IN1_PIN = D1;
const int IN2_PIN = D2;
const int IN3_PIN = D3;
const int IN4_PIN = D4;

// Schrittmotor-Parameter
const int stepsPerRevolution = 2048;  // Schritte pro Umdrehung
const int stepsPerDegree = stepsPerRevolution / 360;  // Schritte pro Grad
int currentPosition = 0;  // aktuelle Position des Schrittmotors
int openPosition = 90;  // Position, bei der die Klappe geöffnet ist
int closePosition = 0;  // Position, bei der die Klappe geschlossen ist

// Erstelle den Webserver
AsyncWebServer server(80);

void setup() {
  // Serielle Ausgabe starten
  Serial.begin(9600);

  // WiFi-Verbindung herstellen
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Verbindung wird hergestellt...");
  }
  Serial.println("WiFi-Verbindung hergestellt.");

  // Schrittmotor-Pins als Ausgang definieren
  pinMode(IN1_PIN, OUTPUT);
  pinMode(IN2_PIN, OUTPUT);
  pinMode(IN3_PIN, OUTPUT);
  pinMode(IN4_PIN, OUTPUT);

  // Webseite definieren
  server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
    String html = "<html><head><title>Hühnerklappe</title></head><body>";
    html += "<h1>Hühnerklappe</h1>";
    html += "<p>Aktuelle Position: " + String(currentPosition) + " Grad</p>";
    html += "<form method='post' action='/setposition'>";
    html += "<input type='text' name='position' placeholder='Position in Grad'>";
    html += "<input type='submit' value='Position setzen'>";
    html += "</form>";
    html += "<form method='post' action='/open'>";
    html += "<input type='submit' value='Klappe öffnen'>";
    html += "</form>";
    html += "<form method='post' action='/close'>";
    html += "<input type='submit' value='Klappe schließen'>";
    html += "</form>";
    html += "</body></html>";
    request->send(200, "text/html", html);
  });

  // Aktionen definieren
  server.on("/setposition", HTTP_POST, [](AsyncWebServerRequest *request){
    String positionStr = request->getParam("position")->value();
    int position = positionStr.toInt();
    int stepsToMove = abs(position - currentPosition) * stepsPerDegree;
    if (position > currentPosition) {
      moveClockwise(stepsToMove);
    } else {
      moveCounterclockwise(stepsToMove);
    }
    currentPosition = position;
    request->redirect("/");
  });
  
  server.on("/open", HTTP_POST, [](AsyncWebServerRequest *request){
    int stepsToMove = abs(openPosition - currentPosition) * stepsPerDegree;
    moveClockwise(stepsToMove);
    currentPosition = openPosition;
    request->redirect("/");
  });
  
  server.on("/close", HTTP_POST, [](AsyncWebServerRequest *request){
    int stepsToMove = abs(closePosition - currentPosition) * stepsPerDegree;
    moveCounterclockwise(stepsToMove);
    currentPosition = closePosition;
    request->redirect("/");
  });

  // Webserver starten
  server.begin();
}

void loop() {
  // Nichts zu tun
}

void moveClockwise(int steps) {
  for (int i = 0; i < steps; i++) {
    digitalWrite(IN1_PIN, HIGH);
    digitalWrite(IN2_PIN, LOW);
    digitalWrite(IN3_PIN, LOW);
    digitalWrite(IN4_PIN, LOW);
    delayMicroseconds(500);
    digitalWrite(IN1_PIN, LOW);
    digitalWrite(IN2_PIN, HIGH);
    digitalWrite(IN3_PIN, LOW);
    digitalWrite(IN4_PIN, LOW);
    delayMicroseconds(500);
    digitalWrite(IN1_PIN, LOW);
    digitalWrite(IN2_PIN, LOW);
    digitalWrite(IN3_PIN, HIGH);
    digitalWrite(IN4_PIN, LOW);
    delayMicroseconds(500);
    digitalWrite(IN1_PIN, LOW);
    digitalWrite(IN2_PIN, LOW);
    digitalWrite(IN3_PIN, LOW);
    digitalWrite(IN4_PIN, HIGH);
    delayMicroseconds(500);
  }
}

void moveCounterclockwise(int steps) {
  for (int i = 0; i < steps; i++) {
    digitalWrite(IN1_PIN, LOW);
    digitalWrite(IN2_PIN, LOW);
    digitalWrite(IN3_PIN, LOW);
    digitalWrite(IN4_PIN, HIGH);
    delayMicroseconds(500);
    digitalWrite(IN1_PIN, LOW);
    digitalWrite(IN2_PIN, LOW);
    digitalWrite(IN3_PIN, HIGH);
    digitalWrite(IN4_PIN, LOW);
    delayMicroseconds(500);
    digitalWrite(IN1_PIN, LOW);
    digitalWrite(IN2_PIN, HIGH);
    digitalWrite(IN3_PIN, LOW);
    digitalWrite(IN4_PIN, LOW);
    delayMicroseconds(500);
    digitalWrite(IN1_PIN, HIGH);
    digitalWrite(IN2_PIN, LOW);
    digitalWrite(IN3_PIN, LOW);
    digitalWrite(IN4_PIN, LOW);
    delayMicroseconds(500);
  }
}

aber wenn ich in auf meinen Wemos D1 mini laden möchte bekomme ich nur den Exit code1 mit der begründung

In file included from C:\Users\Benutzer\Documents\huenerklappe\huenerklappe.ino:2:
c:\Users\Benutzer\Documents\Arduino\libraries\AsyncTCP\src/AsyncTCP.h:26:10: fatal error: sdkconfig.h: No such file or directory
26 | #include "sdkconfig.h"
| ^~~~~~~~~~~~~
compilation terminated

Ich danke schonmal in Voraus LG Redtiger791

Steht doch alles drin dir fehlt die Librarie Bibliothek sdkconfig.h

Wie bekomme ich die rein weil so einen fall hatte ich noch nie

ESP8266 aktualisiert? normal ist die in ESP8266 versuche mall die 2.0.4


Funktioniert nicht

Sonst Funktioniert der ESP?
Andere Sachen lassen sich hochladen?

JA eigentlich schon

Versuche als erstes reintun #include <Arduino.h>

immernoch der gleiche fehler

Dan muss ich aufgeben, irgend was fehlt im deinem ESP Core.
Such mall im netz.

ok, trotzdem danke

ich habs mal über den editor in der cloud probiert. dann gibt es einen anderen fehler

#include <ESP8266WiFi.h>
#include <ESPAsyncTCP.h>
#include <ESPAsyncWebServer.h>

muss mir noch schnell die bibliothek dazu runterladen aber bis jetzt schaut es gut aus

hat den code angenommen
Danke euch

Thank you very much, but it is enough to mark the post in which it was decided )))

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.