Hallo Ich würde gerne einen Motor mittels PWM von einem ESP ansteuern lassen. Der PWM-Wert soll von einem Poti kommen. Soweit wahrscheinlich kein Problem. Motor und Poti sollen aber an zwei verschiedenen ESPs hängen. Meine bisherige Überlegung ist, den Motor-ESP als AP-Server laufen zu lassen und den Poti-ESP sich als Client dort anzumelden. Der Wert des Potis wird in die URL eingebunden, die der Client auf dem Server aufruft. Der Server wandelt die GET-Variable in das PWM-Signal um. Ist das ein gangbarer Weg? Oder wie sähe eine Alternative aus? Es ist zwar keine kritische Anwendung, aber es wäre schon notwendig, dass es keine (oder kaum) Verzögerung zwischen dem Drehen des Potis und der Bewegung des Motors gibt.
Kurt schrieb: > Hallo > > Ich würde gerne einen Motor mittels PWM von einem ESP ansteuern lassen. > Der PWM-Wert soll von einem Poti kommen. > Soweit wahrscheinlich kein Problem. ok > Motor und Poti sollen aber an zwei verschiedenen ESPs hängen. ok > Meine bisherige Überlegung ist, den Motor-ESP als AP-Server laufen zu > lassen > und den Poti-ESP sich als Client dort anzumelden. Kannst auch beide an einem anderen AP anmelden > Der Wert des Potis wird in die URL eingebunden, die der Client auf dem > Server aufruft. > Der Server wandelt die GET-Variable in das PWM-Signal um. > > Ist das ein gangbarer Weg? zusammen mit dem unten - Nein! > Oder wie sähe eine Alternative aus? > > Es ist zwar keine kritische Anwendung, aber es wäre schon notwendig, > dass es keine (oder kaum) Verzögerung zwischen dem Drehen des Potis und > der Bewegung des Motors gibt. Dafür ist ein HTTP-Request durch den Overhead viel zu langsam. Für verzögerungsfreie/arme Verbindungen kann du Websocket nehmen. Allerdings macht das nur Sinn wenn du sowieso was mit dem Browser machen willst. Für deinen Zweck reicht es aus wenn auf dem Motortreiber ein Programm auf einem UDP-Port lauscht und dein Poti-ESP bei Veränderungen einfach ein UDP-Paket mit dem neuen Wert sendet. Sascha
Sascha W. schrieb: > Kannst auch beide an einem anderen AP anmelden Das möchte ich nicht, da ich dann ja immer noch einen Router, Handy oder sonstwas benötige. Sascha W. schrieb: > Dafür ist ein HTTP-Request durch den Overhead viel zu langsam. War meine Befürchtung UDP sagt mir noch gar nichts, wenn du ein Beispiel kennst, würde ich mich freuen, wenn du es verlinken würdest. Ansonsten ist das Internet ja groß und enthält alles :-) Vielen Dank für deine Hilfe
Kurt schrieb: > Der PWM-Wert soll von einem Poti kommen. > Soweit wahrscheinlich kein Problem. Ich kenne nur die, wo ein einziger Pin als ADC bis 1V !!! benutzt werden kann. Hat jeder ESP ADCs?
Ja, Einen (A0). Bei den nackten ESP Modulen (1 bis 12e) darf nur 1V rein, bei den NodeMCUs können bis zu 3.3V gemessen werden. (Spannungsteiler auf dem Board) Aus Erfahrung kann ich berichten, mit 8V am A0 ist der ESP kaputt.
Kurt schrieb: > UDP sagt mir noch gar nichts, wenn du ein Beispiel kennst, > würde ich mich freuen, wenn du es verlinken würdest. > Ansonsten ist das Internet ja groß und enthält alles :-) http baut auf einer TCP-Verbindung auf. Client muss sich mit dem Server verbinden, die Datenverbindung ist dann vom TCP-Stack gegen Übertragungsfehler gesichert. UDP arbeitet "verbindungslos", ein Client sendet einfach ein Paket an einen Server, wenns ankommt kanns verarbeitet werden. Da vom Server keine Rückmeldung erfolgt ist jedoch nicht feststellbar ob das Paket auch angekommen ist. Für deinen Zweck eine Stellgröße zu übertragen ist das jedoch völlig ausreichend, da ja sowieso bei jeder Änderung des ADC-Werts ein neues Paket gesendet werden muss. Ein Beispiel für den ESP? -kann ich dir nicht liefern. Im Netz findest du aber jede Menge Beispiele für "UDP SOCKET". Sascha
Moin, wie gross darf deine Latenz sein? Kannst du damit leben, dass ab und an mal ein Kommando nicht ankommt? Das Problem der ESP-Plattformen ist oft die HW, die mies/null konform zu irgendwas (CE, FCC) designt ist, so dass die harten Radiopakete oft nicht ankommen, aber zudem auch die Software und das grottigste Callback-Gefrickel das ich bisher gesehen habe. Zuverlässigen Betrieb mit vernünftiger Latenz (50-100ms möglich) ist nur mit den FreeRTOS-Varianten hinzukriegen, aber auch da nicht sonderlich robust. Mein Rat: Gib ein paar Euro mehr aus, und probier das Ganze auf einem Linkit Duo. Das Linux-Frontend läuft im Dauerbetrieb und der AVR macht im Hintergrund das Realtime-Zeug. Ist deutlich robuster und läuft bei mir in einigen IoT-Projekten ordentlich 24/7 und v.a. debugbar. Für Motorensteuerung kannst du z.B. eine einfache modbus-Implementierung wie libmodbus verwenden (das macht die Industrie auch so). Grüsse, - Strubi
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.