Dringend, Servo über Alexa steuern

Hallo ihr Lieben,

Ich bin ganz neu dabei

Ich wollte meinen Schwager da er gerne Stronghold oä spielt einen Ritter auf einen steine mittels Servo steuern bzw das er sich 90grad Rechts und links bewegt.

Dass habe ich auch schon getestet und klappt auch, ich habe auch mit fauxmo oä probiert was mit alexa ebenfalls ging, aber jetzt ? Wie bekomme ich dass beide unter einen Hut 🤮

Wie gesagt bin neu und eigentlich will ich auch alles selber machen aber bis zum 24 muss dass Ding stehen.

Der Servo kann wohl nur 90grad nach Rechts und nach links ? Naja zusammen wären es ja die 180grad obwohl ich etwas anderes darunter verstanden habe?. Nun für mein Zweck aber ok

Dann habe ich noch eine Kamin Led dazwischen was auch klappt wenn der Servo angeht ist auch Spannung auf dem Led was schonmal gut ist, es soll so etwas wie Blitze Simulieren.

Ich wollte eigentlich noch dass eine Memo dazu also bei Aktivierung mit läuft, also sowas wie eine Audio Datei die ich vorher herstellt habe bei der alexa Routine angesagt wird aber dass scheint wohl so nicht zu gehen, Alex selber konnte etwas sagen und paar Geräusche Eine machen wie Wolf usw.

Aber wie gesagt zumindest sollte er wenn ich alexa, wer ist der Herr oä sage der servo seine 90grad Rechts und Links ausführen.

Ich hoffe jemand kann mir helfen sonst stehe ich ja ziemlich blöd da :woozy_face:

Was hast du den bis jetzt?

Hallo,

Ich habe alles was ich benötige

Mini Servo
Note MCU 3,3v
Kabel und Kabels
Eine Alexa
Arduino IDE
Kleine LEDs mit Chip für Flammen effekt

Denn Ritter und der Stein wird Heute hergestellt mit knetmasse zum Backen, mit alufolie grob formen Masse drüber Backen dann ausarbeitung fürs innen Leben und anmalen

Es muss jetzt noch iergentwie klappen dass ich alexa eine routine verpasse dass,. Sie auf dass wort einmal für x Sekunden denn Servo bewegt

Ich brauch da iergentwie sowas wie Fauxmo nur eben für Servo halt :man_shrugging:

Aus dieser Aussage kann man mutmaßen, dass du bisher recht wenig Ahnung vom Programmieren hast.

Fauxmo ist eine sogenannte library die die Verbindung zu Alexa herstellt.
Man kann dann Fausxmo dafür benutzen X-beliebige Programmteile ausführen zu lassen also auch Servos.

Es ist aber extrem unwahrscheinlich dass du ein fertiges Programm findest, dass genau das macht was du willst.

Das kannste dir vorstellen wie ein Badezimmer fliesen.
Fliesen gibt es ganz viele verschiedene. Um einen ganz bestimmtes Badezimmer zu fliesen musste schon vor Ort den Untergrund vorbereiten.
Und dann angepasst auf Länge und Breite dieses Badezimmers Stück für Stück die Fliesen verlegen und an manchen Stellen auch die Fliesen anpassen.

Poste den vollständigen Sketch

Poste den vollständigen Sketch

Nicht Ernst gemeint: Dann nimm schon mal Urlaub und besorge dir ausreichend Aufputschmittel sonst reicht die Zeit nicht.
Nein nicht ernst gemeint. Ganz normal arbeiten gehen den Chef zufrieden stellen und ausreichend schlafen.

Wenn es trotzdem fertig werden soll.
Gaaaanz dringend die vollständigen Sketche die du schon getestet hast posten.
vgs

Da Dein Sketch zum Steuern des Servo nicht von Dir gepostet wurde, bleiben nur allgemeine Tipps und "Raten" ...

Schau Dir das Beispiel https://github.com/vintlabs/fauxmoESP/blob/master/examples/fauxmoESP_Basic/fauxmoESP_Basic.ino an und kombiniere es mit Deinem Sketch zum Ansteuern des Servos.

Hier eine Anpassung, die compiliert und (sehr) vielleicht bereits funktioniert, wenn der Sketch an Deine Konfiguration angepasst wird. Zumindest sollte er in die richtige Richtung führen. (da ich selbst weder Alexa noch ähnliches in meiner Nähe habe und auch nicht haben möchte, kann ich es nicht weiter testen...).

#include <Arduino.h>
#include <WiFi.h>
#include "fauxmoESP.h"

// edit it according to your router configuration
#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PASS ""

fauxmoESP fauxmo;

#include <ESP32Servo.h>
constexpr byte servoPin = 32;
constexpr int  servoPosLinks  = 0;
constexpr int  servoPosRechts = 90;

Servo servo;

// -----------------------------------------------------------------------------

#define SERIAL_BAUDRATE     115200

#define ID_RITTER_RECHTS         "Ritter rechts"
#define ID_RITTER_LINKS          "Ritter links"

// -----------------------------------------------------------------------------

// -----------------------------------------------------------------------------
// Wifi
// -----------------------------------------------------------------------------

void wifiSetup() {

  // Set WIFI module to STA mode
  WiFi.mode(WIFI_STA);

  // Connect
  Serial.printf("[WIFI] Connecting to %s ", WIFI_SSID);
  WiFi.begin(WIFI_SSID, WIFI_PASS);

  // Wait
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(100);
  }
  Serial.println();

  // Connected!
  Serial.printf("[WIFI] STATION Mode, SSID: %s, IP address: %s\n", WiFi.SSID().c_str(), WiFi.localIP().toString().c_str());

}

void setup() {

  // Init serial port and clean garbage
  Serial.begin(SERIAL_BAUDRATE);
  Serial.println();
  Serial.println();

  // Hier den Servo einbinden
  servo.attach(servoPin);

  // Wifi
  wifiSetup();

  // By default, fauxmoESP creates it's own webserver on the defined port
  // The TCP port must be 80 for gen3 devices (default is 1901)
  // This has to be done before the call to enable()
  fauxmo.createServer(true); // not needed, this is the default value
  fauxmo.setPort(80); // This is required for gen3 devices

  // You have to call enable(true) once you have a WiFi connection
  // You can enable or disable the library at any moment
  // Disabling it will prevent the devices from being discovered and switched
  fauxmo.enable(true);

  // You can use different ways to invoke alexa to modify the devices state:
  // "Alexa, Ritter rechts"
  // "Alexa, Ritter links"

  // Add virtual devices
  fauxmo.addDevice(ID_RITTER_RECHTS);
  fauxmo.addDevice(ID_RITTER_LINKS);

  fauxmo.onSetState([](unsigned char device_id, const char * device_name, bool state, unsigned char value) {

    // Callback when a command from Alexa is received.
    // You can use device_id or device_name to choose the element to perform an action onto (relay, LED,...)
    // State is a boolean (ON/OFF) and value a number from 0 to 255 (if you say "set kitchen light to 50%" you will receive a 128 here).
    // Just remember not to delay too much here, this is a callback, exit as soon as possible.
    // If you have to do something more involved here set a flag and process it in your main loop.

    Serial.printf("[MAIN] Device #%d (%s) state: %s value: %d\n", device_id, device_name, state ? "ON" : "OFF", value);

    // Checking for device_id is simpler if you are certain about the order they are loaded and it does not change.
    // Otherwise comparing the device_name is safer.

    if (strcmp(device_name, ID_RITTER_RECHTS) == 0) {
      servo.write(servoPosRechts);
    }
    if (strcmp(device_name, ID_RITTER_LINKS) == 0) {
      servo.write(servoPosLinks);
    }
  });

}

void loop() {
  fauxmo.handle();
}

Kannst du das besser erklären?
Willst du Alexa ein Wort sagen und der Servo x Sekunden in der einen Richtung und danach wieder zurück? Oder wie meinst du das.

Hallo,

Nein er soll wie ein irrer hin und her Wackeln aber dass habe ich schon gelöst da bei 180grad der Servo nur 90grad Rechts und links fährt, warum auch immer

Dass geht dann so

ich brauch allerdings jetzt eine Möglichkeit wie ich denn Servo Sketch mit einen weiteren Sketch für Alex zusammen bekomme.

Ich meine eine Sketch der ein gerät für Alexa ausgibt und meinen Servo Sketch beinhaltet besser gesagt.

Danke dir

ich werde ihn ausprobieren wenn ich es noch schaffe

Ich habe leider nur wenig bis garkeine Zeit :woozy_face:

Zeige mal dein Sketch.

Dann empfehle ich dir sicherheitshalber schon mal den Kauf eines Gutscheins vorzubereiten. Das hört sich nach Randbedingungen an mit denen du wohl nicht bis zum 24.12.23 fertig wirst. Wenig Programmierwissen und mittelkomplexe Aufgabenstellung = viel Zeitaufwand bis es läuft.

vgs

Scheint wohl doch nicht so dringend zu sein. Oder wo bleib dein Servo Sketch.

:rofl: ist was dran

Danke für denn Tipp :woozy_face:

Ich bin aber Draufgänger Riskieren oder Verlieren :laughing:

es ist der Sketch der in Standard IDE Bibliothek ist also nichts Spezielles

Zeige doch einfach was du rein haben möchtest.
Das raten macht so kein Spaß.

und jetzt sollen andere für dich die Arbeit machen?
NEEE! Mich haste schon mal verloren
Gibt jetzt wahrscheinlich einfach wieder ein :laughing: und das wars
Den Weihnachstbonus haste bei mir schon verbraucht

So richtig Lust habe ich auch nicht mehr, weil richtige Antworten bekommt man nicht.
Erst:

das hatte ich fertig und dann:

Ja gelöst aber zeigt nix.
Keine Ahnung wann der Servo wieder ausgehen soll...

Alles nicht so schlimm, nächstes Jahr ist ja wieder ein Weihnachtsfest ... :wink:

#include <WiFi.h> wo bekomme ich dass her ? ist dass in Bibliothek

Welches Board hast Du denn genau?

Wenn es ein ESP32-Abkömmling ist und Du im Boardverwalter (IDE 2.x.x) dies installiert hast:

image

sollte alles vorhanden sein.

Ist Dein "Note MCU 3.3V" vielleicht ein ESP8266 NodeMCU V3 ?

Dann brauchst Du u.U. eine dazu passende Lib, z.B.

Arduino/libraries/ESP8266WiFi at master · esp8266/Arduino · GitHub

Anleitungen dafür:
Arduino Wifi mit dem ESP8266 als Arduino – Kostengünstig und Einfach (starthardware.org)