www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik I/Os steuern per WLAN-Router


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: M. G. (looking)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Ich würde gerne per WLAN I/Os steuern, z.B. mit einem Android Smartphone 
oder Tablet. Es gibt einen preisgünstigen (ca. 30€) kleinen WLAN-Router 
TL-MR3020, der von OpenWrt unterstützt wird. Der Router hat einen 
USB-Host-Anschluss sowie intern eine Uart-Schnittstelle.

Die Idee ist, an die USB-Buchse dieses Routers eine Arduino Nano 
Hardware (mit integriertem FTDI USB-Seriell-Chip) anzuschließen.
Vorteile: Der Router muss nicht geöffnet werden, der Arduino Nano ist 
klein und preiswert erhältlich, die I/O-Steuerung wird per AVR auf dem 
Nano übernommen.

Auf dem Router müsste dann eine Art WLAN-Seriell-Bridge laufen.
WLAN <=> TL-MR3020 <=> USB <=> Arduino Nano <=> I/Os

Leider habe ich keinerlei Erfahrung mit Embedded Linux, ich stelle mir 
das in etwa so vor:

1) OpenWrt-Firmware auf dem Router installieren 
http://wiki.openwrt.org/toh/tp-link/tl-mr3020
2) WLAN-Parameter konfigurieren
3) per OPKG Package Manager die FTDI-Unterstützung installieren
opkg update
opkg install kmod-usb-serial-ftdi
4) Serverapplikation auf dem Router installieren, die Daten zwischen 
WLAN und USB-FTDI austauscht

Die Punkte 1-3 würde ich mir mit etwas googeln und ausprobieren 
zutrauen.
Aber wie sieht es mit Punkt 4 aus?

Kann man mit C ein Programm schreiben und ein Package erzeugen, sodass 
es mit opkg installiert werden kann, ohne dass der Linux-Kernel neu 
kompiliert werden muss?
Wenn ja, wie ist die genaue Vorgehensweise?

Benötigt man zwingend eine Linux-Entwicklungsumgebung oder könnte man 
sowas auch unter Windows erstellen?

Autor: Sascha Weber (sascha-w)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hallo,

die Frage ist wie du die Steuerung vom Smartphone machen willst?
Selbst eine App schreiben, dann könnte Punkt 4 recht einfach ausfallen.
Es gibt fertige Software, die dir die serielle Schnittstelle über IP 
weiterreicht (Telnet). Die App müsste dann einen kleinen Telnetclient 
enthalten der die entspechenden Daten sendet, oder auch empfängt wenn du 
das brauchst.
Willst du keine App schreiben, sondern die Bedienung per Browser machen 
müsste auf dem Router erst mal ein HTTP-Server laufen (dürfte schon der 
Fall sein - für die Konfiguration) der dann per Script auf die Hardware 
zugreifen kann und entsprechenden Daten an die serielle (USB) 
weiterleitet.

Sascha

Autor: M. G. (looking)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Wie würde die Telnet-Lösung auf dem Router aussehen?
Standardmäßig wird Telnet vermutlich auf die "echte" interne serielle 
Schnittstelle des Routers gehen, wie können die Daten auf dem USB (FTDI) 
weitergegeben werden?
Müsste dann auf dem Arduino Nano das Telnet-Protokoll implementiert 
werden?

Autor: Dr. G. Reed (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Recht einfach lässt sich sowas mit dem Flyport-Modul machen, siehe h
http://www.openpicus.com.

Das hat genau diese Funktionalität praktisch schon eingebaut, 
entsprechende Beispielprogramme gibt es auch...

Autor: Mick M. (highlow)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
M. G. schrieb:
> Kann man mit C ein Programm schreiben und ein Package erzeugen, sodass
> es mit opkg installiert werden kann, ohne dass der Linux-Kernel neu
> kompiliert werden muss?
> Wenn ja, wie ist die genaue Vorgehensweise?
>
> Benötigt man zwingend eine Linux-Entwicklungsumgebung oder könnte man
> sowas auch unter Windows erstellen?

Besorg dir das OpenWrt-SDK für deine Architektur und du kannst 
problemlos eigene Packages bauen. Dies sollte auch mittels cygwin unter 
Windows funktionieren.
Wenn du nicht wirklich exotische Dinge 'treibst' muss der Kernel nicht 
neu kompiliert werden.

Autor: Basti (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Du brauchst nur lighttpd und microperl. Mit Perl kannst du problemlos 
die Serielle Schnittstelle ansprechen. Auch über USB.

Du erstellst z.b. eine html Seite mit einem Button der beim klicken ein 
Perl Script ausführt.

Autor: Klaus De lisson (kolisson)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
.. und ein Pollin Net-IO an einem beliebigen Wlan Router
ist zu einfach ?

k.

Autor: M. G. (looking)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Klaus De lisson schrieb:
> .. und ein Pollin Net-IO an einem beliebigen Wlan Router
> ist zu einfach ?
>
> k.

Ist halt im Vergleich zum Arduino Nano größer, teurer und braucht mehr 
Strom.

Autor: Sascha Weber (sascha-w)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
M. G. schrieb:
> Wie würde die Telnet-Lösung auf dem Router aussehen?
> Standardmäßig wird Telnet vermutlich auf die "echte" interne serielle
> Schnittstelle des Routers gehen, wie können die Daten auf dem USB (FTDI)
> weitergegeben werden?
Schau mal nach "remserial" das scheint das passende zu sein um eine 
serielle oder bei dir eben virtuelle serielle Schnittstelle über TCP zu 
leiten.
Das Port auf dem remserial den Dienst zur Verfügung stellt kannst du 
sicherlich einstellen um mit dem normalen Telnet nicht in die Quere zu 
kommen

> Müsste dann auf dem Arduino Nano das Telnet-Protokoll implementiert
> werden?
nein auf dem Arduino hast du ja nach dem FTDI die serielle Schnittstelle

µC <-> FTDI <-USB-> Virtuelle COM <-> remserial <-WLAN-> Telnetclient
RS232   RS232 over USB           RS232      RS232 over telnet
+-- ARDUINO --+ +--------- WLAN-ROUTER -----------+ +--- SMARTPHONE

Sascha

Autor: M. G. (looking)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Sascha Weber schrieb:
> Schau mal nach "remserial" das scheint das passende zu sein um eine
> serielle oder bei dir eben virtuelle serielle Schnittstelle über TCP zu
> leiten.

Das hört sich gut an.
Jetzt stellt sich mir noch die Frage, ob man remserial unter OpenWrt auf 
TL-MR3020 zum Laufen kriegt, möglichst im schon vorhandenen Flash?

Autor: was? (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
M. G. schrieb:
> Jetzt stellt sich mir noch die Frage, ob man remserial unter OpenWrt auf
> TL-MR3020 zum Laufen kriegt, möglichst im schon vorhandenen Flash?

Alternativ schau dir mal socat an, gibt es garantiert auch ein Paket für 
OpenWrt:
http://www.dest-unreach.org/socat/

Autor: Sascha Weber (sascha-w)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
M. G. schrieb:
> Sascha Weber schrieb:
>> Schau mal nach "remserial" das scheint das passende zu sein um eine
>> serielle oder bei dir eben virtuelle serielle Schnittstelle über TCP zu
>> leiten.
>
> Das hört sich gut an.
> Jetzt stellt sich mir noch die Frage, ob man remserial unter OpenWrt auf
> TL-MR3020 zum Laufen kriegt, möglichst im schon vorhandenen Flash?

such einfach mal bei G.., so wie ich es auch gemacht habe, unter OpenWrt 
läufts auf alle Fälle.

Sascha

Autor: Klaus De lisson (kolisson)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
M. G. schrieb:
>> .. und ein Pollin Net-IO an einem beliebigen Wlan Router
>> ist zu einfach ?
>>
>> k.
>
> Ist halt im Vergleich zum Arduino Nano größer, teurer und braucht mehr
> Strom.

Da hast du wohl recht. Das Teil von Pollin zieht einiges an Saft.
Meines habe ich zwar mit Hilfe von Schaltreglern etwas ruhiger machen
können aber der Stromsparfuchs ist es nicht geworden.

Gruss k.

Autor: Fabi (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
... gibt es denn nicht auch irgend welche W-Lan Router, die direkt ein 
paar Pins frei haben? Da könnte man sich doch den ganzen Aufwand ausen 
rum sparen und die direkt schalten.

Falls es sowas gibt --> suche ich auch. Ich selbst brauch das für ein 
simples Projekt, habe aber eigentlich wenig Lust an mehreren Stellen 
anzufangen zu programmieren.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net