Forum: Mikrocontroller und Digitale Elektronik Atmega von PC über ESP-12-F (ESP8622) seriell ansteuern


von DAC (Gast)


Angehängte Dateien:

Lesenswert?

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?

von Brain 2.0 (Gast)


Lesenswert?

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.

von DAC (Gast)


Lesenswert?

Der ESP8266 fliegt hier noch in der Bastelkiste rum und wie ich es 
verstanden habe, kann er von Werk aus (also ohne extra Programm) Daten 
seriell ausgeben.

Bei der Bucht wird er auch als "WiFi-to-UART"-Modul angeboten:
https://www.ebay.de/itm/ESP8266-UART-to-WIFI-STA-AP-STA-AP-Wireless-Module-STM32-Driver-for-Arduino-U/192129973333?hash=item2cbbd6bc55:g:uxwAAOSwWxNYyBsH
https://www.ebay.de/itm/ESP8266-WIFI-Remote-Wireless-Module-WIFI-to-UART-Module-Precise-R1Q1/303631241081?epid=0&hash=item46b1d50f79:g:n2AAAOSwZNhfGVzW
https://www.ebay.de/itm/5PCS-ESP-WROOM-02-ESP8266-Remote-Wireless-Module-WIFI-to-UART/141694458282?hash=item20fda5d9aa:g:ZhUAAOSwNSxVf8Vt

Das soll jetzt keine Werbung sein, die Auswahl ist beispielhaft.


Brain 2.0 schrieb:
> Da gibt es fertige, die genau dafür gedacht sind.

Was würdest du denn hier verwenden?

von DAC (Gast)


Lesenswert?

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.

von Brain 2.0 (Gast)


Lesenswert?

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.

von c-hater (Gast)


Lesenswert?

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...

von Wolfgang (Gast)


Lesenswert?

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.

von c-hater (Gast)


Lesenswert?

Wolfgang schrieb:

> Du beliebst mal wieder, kompliziert zu denken.

Ich? Wenn überhaupt wer, dann der TO...

Lies einfach mal den Text des Topic...

von Chris K. (kathe)


Lesenswert?


von c-hater (Gast)


Lesenswert?

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.

von batman (Gast)


Lesenswert?

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.

von STK500-Besitzer (Gast)


Lesenswert?

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.

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
Noch kein Account? Hier anmelden.