UART zwieschen microcontroler und pc

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
sauterle
User
Beiträge: 81
Registriert: Mittwoch 27. Juli 2022, 21:33

Hallo
ich würde gerne strings von meinem einem python programm auf meinem laptop auf einen microcontroler senden
mir selbst kam die idee meinen Computer per Uart (durch den USB ausgang) mit dem Micro controler zu verbinfden, aber ich weiss nicht ob das geht und wenn ja wie ,Vileicht get es ja auch viel geschickter anders
LG sauterle
Benutzeravatar
Dennis89
User
Beiträge: 1156
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

hat der Mikrokontroller W-lan? Darüber die Daten zu senden würde ich geschickter finden.

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
__deets__
User
Beiträge: 14541
Registriert: Mittwoch 14. Oktober 2015, 14:29

Es scheint ein ESP32 zu sein, sockets wären also eine Option. Bzw ich würde einen HTTP Server auf dem ESP betreiben.

Ansonsten geht auch UART. Wegen micropython leider nur ein extra UART, statt den schon eingebauten mit USB2Serial converter zu nutzen.
sauterle
User
Beiträge: 81
Registriert: Mittwoch 27. Juli 2022, 21:33

hallo,danke für die anworten
es ist ein esp 32 , aber leider gibt es an dessen bestimmungsort kein wlan.
wie genau würde das mit dem "extra UART" funktionieren und welche Bibliotheken bräuchte ich auf dem programm auf meinem pc
LG sauterle
__deets__
User
Beiträge: 14541
Registriert: Mittwoch 14. Oktober 2015, 14:29

Der ESP kann selbst Access-Point sein, dann kann man sich mit dem Notebook damit verbinden & problemlos mit ihm kommunizieren. Also einfacher und schneller als UART.

Für eine UART-Lösung braucht es py serial auf dem PC. Und natürlich einen FTDI USB 2 Serial Adapter.
sauterle
User
Beiträge: 81
Registriert: Mittwoch 27. Juli 2022, 21:33

beim googlen bin ich auf folgendes bauteil gestossen aa.:https://www.amazon.de/Yizhet-Adapter-FT ... r=1-4&th=1 wäre das ein funktionaler adapter fur die "UART lösung"

LG sauterle
__deets__
User
Beiträge: 14541
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ja, die gehen. Ich würde immer noch WLAN empfehlen, warum muss es UART sein?
sauterle
User
Beiträge: 81
Registriert: Mittwoch 27. Juli 2022, 21:33

weil es eine sehr fehlerrresistente verbindung sein muss und es kein internet an dessen einsatzort gibt
Benutzeravatar
Dennis89
User
Beiträge: 1156
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

wie gesagt, brauchst du keine Internetverbindung. Du willst gar nichts mit dem Internet machen. Der ESP stellt ein Netzwerk bereit, mit dem sich dein Laptop/PC verbindet und dann können Daten geschickt werden. Was von beidem robuster ist, kann ich mangels Erfahrung nicht sagen.

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
__deets__
User
Beiträge: 14541
Registriert: Mittwoch 14. Oktober 2015, 14:29

sauterle hat geschrieben: Montag 16. Januar 2023, 14:51 weil es eine sehr fehlerrresistente verbindung sein muss und es kein internet an dessen einsatzort gibt
WIFI hat mit Internet nichts zu tun. Und solange du nicht in ein entsprechend robustes Protokoll mit Prüfsummen und Handshakes auf deinem UART-Kanal implementierst, ist das auch nicht robuster als Wifi. Außer du hast am Einsatzort starke EMI im 2.4GHz Band.
sauterle
User
Beiträge: 81
Registriert: Mittwoch 27. Juli 2022, 21:33

Hallo
welche Art der datenübertragung über Wlan würdet ihr an meiner stelle Nutzen?
LG sautrerle
__deets__
User
Beiträge: 14541
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wie ich schon schrieb, ich wuerde einen simplen HTTP-Server bauen. Siehe zB https://randomnerdtutorials.com/esp32-e ... eb-server/. ACHTUNG: die benutzen da den STATION-Modus, das ist natuerlich durch den AP-Modus zu ersetzen. Gibt es andere Tutorials fuer.

Oder https://github.com/jczic/MicroWebSrv/bl ... oWebSrv.py , der sollte etwas robuster sein, weil er readline verwendet. Oder ein einfaches zeilen-basiertes Protokoll, wie es in dem micoWebSrv.py gezeigt wird.
__deets__
User
Beiträge: 14541
Registriert: Mittwoch 14. Oktober 2015, 14:29

Nachtrag: ich war etwas ungeschickt mit meiner Formulierung. Im microWebSrv.py wird gezeigt, wie man einen Socket mit readline Unterstuetzung aufbaut. Siehe https://github.com/jczic/MicroWebSrv/bl ... rv.py#L324

Damit kann man dann natuerlich auch relativ einfach arbeiten, aehnlich, wie man es mit UART machen wuerde. Alternativ kann man, wenn man sich das blockieren oder den Thread nicht leisten kann/will natuerlich auch uselect benutzen, ebenfalls analog wie man das mit UART machen wuerde.
Antworten