Hallo,
ich will vom PC aus einen Atmega über ein WiFi-Modul (ESP-12-F/ ESP8622)
seriell ansteuern.
Meine Idee:
Programm auf Windows10-PC --wireless-> ESP8622-Modul --seriell->
Atmega
(WLAN-Hotspot)
Ist das prinzipiell so möglich und sinvoll und und wie kann man so ein
Programm einfach realisieren? Python, C(++), C#?
Im Grunde soll der Atmega erst mal nur irgendwelche Pins ein- und
ausschalten, wenn man an der PC-Tastatur tasten drückt.
Gibt es dafür eventuell schon fertige Programme, die das können?
Und warum verwendest du da nicht einen USB-Serial-Wandler ?
Da gibt es fertige, die genau dafür gedacht sind.
Nur der ESP8266 ist nicht dafür geeignet.
Brain 2.0 schrieb:> Und warum verwendest du da nicht einen USB-Serial-Wandler ?
Oder reden wir aneinander vorbei? Der PC hat WLAN (Hotspot).
Der ESP8266 soll mit dem Atmega verbunden werden.
DAC schrieb:> Brain 2.0 schrieb:> Und warum verwendest du da nicht einen USB-Serial-Wandler ?>> Oder reden wir aneinander vorbei? Der PC hat WLAN (Hotspot).> Der ESP8266 soll mit dem Atmega verbunden werden.
Ok, das hatte ich tatsächlich falsch verstanden.
Du kannst den ESP tatsächlich mit dem Atmega per serial verbinden.
Allerdings kannst du doch die Leds auch direkt vom ESP8266 schalten.
DAC schrieb:> Ist das prinzipiell so möglich
Ja, klar.
> und wie kann man so ein> Programm einfach realisieren?
Einfach? Garnicht. Auf Windows-Seite benötigst du einen Treiber, der
einen virtuellen COM-Port bereitstellt.
Denn kannst du sehr wahrscheinlich nicht selber schreiben. Wobei das
Schreiben garnicht mal so schwer ist, das Problem ist, dass du den
Treiber heutzutage von Microsoft signieren lassen musst, damit er
wirklich praktisch brauchbar wird.
Es gibt aber einen Ausweg aus diesem Dilemma: Man verwendet den Treiber
eines fremden "COM-Server". Das ist zwar urheberrechtlich gesehen
möglicherweise illegal, aber technisch u.U. möglich.
Was schwierig ist: der gefakete Server muss sich dann auch in jedem
Detail so verhalten wie das Original, welches der Treiber kennt. Sprich:
hier wird reverse engineering an einem Original nötig. Wenn man aber das
Original bereits hat, gibt es keinen Grund mehr, irgendwas zu faken...
> Python, C(++), C#?
Das ist keine Frage der Sprache, sondern einzig der Kompetenz des
Programmierers. Kompetente Programmierer brauchen die Frage nach der
Sprache nicht zu stellen, die wissen bereits, welche sie an welcher
Stelle verwenden müssen...
c-hater schrieb:> Einfach? Garnicht. Auf Windows-Seite benötigst du einen Treiber, der> einen virtuellen COM-Port bereitstellt.>> Denn kannst du sehr wahrscheinlich nicht selber schreiben. Wobei das> Schreiben garnicht mal so schwer ist, das Problem ist, dass du den> Treiber heutzutage von Microsoft signieren lassen musst, damit er> wirklich praktisch brauchbar wird.
Du beliebst mal wieder, kompliziert zu denken.
Die ganze SmartHome-Szene macht nichts anderes, als über MQTT oder
andere Protokolle irgendwelche Aktionen/Messdaten/... z.B. per WLAN
zwischen PC/Server und irgendwelchen Knoten auszutauschen - auch mit dem
ESP8266. Keinen einzigen Treiber muss man dafür selber schreiben.
Und mit dem Tablett/SmartPhone kann man dann auch gleich mitspielen.
Chris K. schrieb:> https://www.letscontrolit.com/wiki/index.php/Ser2Net
Das stellt nicht auf der Client-Seite einen seriellen Anschluß her,
sondern im Prinzip nur eine einfache TCP-Verbindung (wohl mit
Telnet-Protokoll oben drauf).
Das ist easy. Dafür braucht man nämlich keinen Treiber.
DAC schrieb:> Im Grunde soll der Atmega erst mal nur irgendwelche Pins ein- und> ausschalten, wenn man an der PC-Tastatur tasten drückt.> Gibt es dafür eventuell schon fertige Programme, die das können?
Das geht ja, wie gesagt, per MQTT-Nachrichten (IoT-Zeuch) oder einfach
von einem Klick im Webbrowser im WLAN/Hotspot über ein Webinterface auf
dem ESP, das dann die LED-Kommandos über TxD an den AVR weitergibt. Das
macht der Webserver auf dem ESP.
c-hater schrieb:> Wolfgang schrieb:>>> Du beliebst mal wieder, kompliziert zu denken.>> Ich? Wenn überhaupt wer, dann der TO...>> Lies einfach mal den Text des Topic...
Ja, genau: Einfach mal lesen.
DAC schrieb:> Programm auf Windows10-PC --wireless-> ESP8622-Modul --seriell->> Atmega> (WLAN-Hotspot)>> Ist das prinzipiell so möglich und sinvoll und und wie kann man so ein> Programm einfach realisieren? Python, C(++), C#?> Im Grunde soll der Atmega erst mal nur irgendwelche Pins ein- und> ausschalten, wenn man an der PC-Tastatur tasten drückt.> Gibt es dafür eventuell schon fertige Programme, die das können?
Prinzipiell kann man auf dem ESP einen Webserver implementieren, dessen
Website durch einen Browser aufgerufen wurd.
Auf der Website befinden sich dann Buttons, die beim Webserver eine
Aktion auslösen, die Daten über die serielle Schnittstelle an den AVR
schickt.
Den Browser kann man dann durch ein Programm in einer beliebigen Sprache
emulieren.
Für jemanden mit Erfahrung und/oder dem Willen, sich in entsprechende
Thematik einzuarbeiten, ist das möglich.
Um es schnell hinzubekommen, bietet sich wohl Python an, da es dafür
einen Haufen fertiger Funktionen / Bibliotheken gibt.
Möglich ist es, einfach nicht unbedingt.