Hallo,
für unser aktuelles Autopilot Projekt für Modellboote entwickeln wir
gerade eine neue Hardware. Wir wollen Wlan verwenden, da mehrere Boote
und Groundstations(Laptop/Handy/Tablet) in einem Netzwerk arbeiten
sollen und untereinander kommunizieren sollen.
Dafür sind wir jetzt auf der Suche nach Wlan Modulen. Sie sollten Adhoc
Netzwerke erstellen können und ein Ethernet Interface haben, da wir das
Ethernet Interface des Stm32F4 nutzen wollten. Außerdem sollte es über
eine eigene IP angesprochen werden können und der Stm32 soll mit einer
eigenen IP über das Modul ins Netz integriert werden. Der TCP/IP Stack
wird dann auf dem Stm32 gecoded.
Natürlich soll es auch möglichst günstig sein. Habt ihr vielleicht Tipps
oder noch andere Ideen wie man ein Netzwerk aufbauen könnte in dem jeder
Client individuell angesprochen werden kann?
Danke schonmal im voraus,
MfG
Mischterx
Hi,
gegoogelt habe ich schon, aber nichts passendes gefunden.
Rechweite: SO weit wie möglich ;) aber da die Boote sowieso im Adhoc
Modus sind, kann die Verbindung ja auch von Boot zu Boot gehen, wenn das
Ziel zu weit entfernt ist.
Das WiFly GSX wollten wir ursprünglich nehmen. Aber ich steige da nicht
ganz durch. Das GSX hat nen TCP/IP Stack mit drin. Was für Daten kommen
dann über SPI/USART? Nurnoch die Payload oder brauche ich auf dem Stm32
dann trotzdem noch nen TCP/IP Stack? Ich kenne mich in die Richtung noch
nicht so aus.
MfG
Mischterx
Hi,
das GS1011MIE-SMP sieht wirklich sehr interessant aus. Mal ne Frage zum
Verständnis. Das Modul leitet die gesamte Nachricht weiter und ich muss
den TCP/IP Stack selbst übernehmen? Wenn die IP des Stm32 adressiert
wird, leitet das ding weiter, und wenn die Netzwerk-Gateway IP, dann
spricht man direkt das Modul an?
MfG
Philipp
Über AT-Befehle, die über die serielle Schnittstelle an das WLAN Modul
gesendet werden kann das WLAN-Modul konfiguriert werden (IP, Gateway,
DHCP, DNS, infrastructure/ad-hoc/access point mode), dann kann man über
weitere AT-Befehle TCP oder UDP Ports auf dem WLAN Modul öffnen, wenn
jetzt ein anderer PC Daten, z.B. den String "Hello World\n" an einen
bestimmten Port des WLAN Moduls sendet leitet das WLAN Modul diese über
die serielle Schnittstelle an den Mikrocontroller weiter, es fügt aber
noch einen Header hinzu, damit man weiß von welcher IP:Port die Daten
kommen, so das man dann eine Antwort zurückschicken kann.
Das Hello Word kommt dann so beim Mikrocontroller an:
"\x1bS1Hello World\n\x1bE"
"\x1b" markiert dabei den Start eines Datenpakets und "\x1bE" das Ende.
"S1" ist die Connection ID, die angibt
von wo das Datenpaket kam, über einen anderen AT-Befehl kann man sich
alle momentanen Verbindungen mit Port und IP anzeigen lassen.
Wenn man jetzt eine Antwort schicken will sendet man vom Mikrocontroller
über die serielle Schnittstelle einfach:
"\x1bS1Antworttext\x1bE"
Der TCP/IP Stack ist auf dem Modul integriert, diese Daten vom WLAN
Modul muss man dann nur noch verarbeiten.
Wenn man nur Daten an einen Webserver übermitteln/abrufen will oder für
eine einfache Zweiwegekommunikation mit einer Handy App/PC Programm ist
das WLAN Modul ganz praktisch, um einen kleinen Webserver zu betreiben
der dann eine Web-App zum Fernsteuern zur Verfügung stellt würde ich
allerdings das Carambola wählen.
Wegen der Reichweite würde ich mich nicht auf den Ad-Hoc Modus
verlassen, dann lieber irgend so ein XBee das richtiges Mesh-Networking
beherrscht. Außerdem gibt es noch XBee Module mit sehr großer Reichweite
z.B. das XBee-PRO 868. Neuere Handys können sich sowieso standardmäßig
nicht mehr mit Ad-Hoc Netzwerken verbinden.
Ich würde auf jeden Fall drüber nachdenken die Bote mit XBee
auszustatten und in der Groundstation dann einen XBee<->WLAN Umsetzer
betreiben:
https://www.adafruit.com/blog/2012/07/18/xbee-internet-gateway-released-for-macintosh-windows-and-linux/https://www.adafruit.com/blog/2012/09/07/raspberry-pi-as-an-xbee-wireless-sensor-network-gateway-piday-raspberrypi-raspberry_pi/
Noch billiger geht es mit Funkmodulen von eBay, eins dieser Funkmodule
muss dann nur noch mit der Groundstation verbunden werden, die die Daten
per WLAN zur Verfügung stellt.
--
chris
Mischterx schrieb:> Das Modul leitet die gesamte Nachricht weiter und ich muss> den TCP/IP Stack selbst übernehmen?
Das würde ich nicht sagen. Mit den AT Befehlen wird konfiguriert und die
Kommunikation im Boot erfolgt mit den anderen Modulen z.B. seriell.
Der Ganze Netzwerkzugriff telnet, http usw. erfolgt von der
Gengenstation vom Ufer oder den anderen Booten aus. Leider verrät der
Hersteller die komplette Liste der AT Befehle nur nach Registrierung.
Ich denke aber das man auch einen AT Befehl zum senden und abfragen von
Benuterdaten findet.
Diese werden dann (auf Anfrage) einfach zur Gegenstation gesendet.
Hi,
wir wollten ursprünglich dieses nehmen:
http://www.digi.com/products/wireless-wired-embedded-solutions/zigbee-rf-modules/point-multipoint-rfmodules/xbee-wi-fi#overview
Aber da muss man ne feste Destination IP setzen, die man nur über AT
Befehle ändern kann und für eine dynamische Kommunikation zwischen
mehrern Booten und Groundstations geht das gar nicht.
@Christian Jann: Viellen dank. Jetzt ist mir das erst so richtig klar,
wie das läuft. Genau sowas ist perfekt für uns.
Das WiFly-GSX hat seine Sendeleistung von 100mW. Das mit vernünftiger
Antenne(wir hebane jemanden im Team der sich mit Antennen usw auskennt).
Wobei auch das GS1011MIE-SMP ausreichen sollte. Da wir idr. nur auf
Sicht arbeiten und die 200-300Meter auf sicht sollten denke ich mit
guter antenne möglich sein.
XBEE Pro's haben wir in unser alten version verwendet, allerdings wüsste
ich nicht, wie wir damit ein Netzwerk aufbauen könnten in dem sich alle
Module untereinander ansprechen können.
MfG
Mischterx
Achja, Wlan würden wir außerdem bevorzugen, wegen der hohen
Übertragungsrate. Die werden wir brauchen, da in z.B. Zukunft noch
Live-Streaming von Kameras hinzukommen soll.
Die komplette WLAN Übertragungsrate kann aber nicht genutzt werden, da
die USART oder SPI Schnittstelle des Moduls das gar nicht hergeben.
GainSpan hat auch noch ein paar andere WLAN Module im Angebot, mit
Chipantenne oder Antennenkontakt, ich habe damals das GS1011MIC genommen
weil ich sowieso nicht so eine große Übertragungsrate und Reichweite
brauchte, dafür aber den Access Point Modus und wenig Zeit hatte.
GS1011MIC, IEEE 802.11b, http://www.gainspan.com/gs1011mxx
GS1500M, IEEE 802.11b/g/n, http://www.gainspan.com/gs1500m
Mist das GS1500M mit Antennenkontakt ist gar nicht mehr verfügbar, und
bei Farnell steht Produkt abgekündigt, vielleicht kommt ja bald ein
Nachfolger.
Wenn auch Bilder übertragen werden sollen würde ich gleich ein Carambola
und eine USB Webcam oder ein Rapspberry Pi mit USB WLAN Stick und USB
Webcam nehmen oder das neue Kameramodul, das setzt allerdings
grundlegende Linux Kenntnisse voraus und der Stromverbrauch ist auch
höher. Da das Carambola einen WLAN SoC nutzt der sonst in Routern zum
Einsatz kommt und aufgrund der höheren Stromaufnahme würde ich mal
tippen, dass auch die Sendeleistung/Reichweite größer ist und eine
externe Antenne kann auch genutzt werden.
Das OLinuXino gibt es auch noch mit WLAN:
https://www.olimex.com/Products/OLinuXino/iMX233/iMX233-OLinuXino-MINI-WiFi/
Mit XBee Modulen habe ich noch nicht so viel Erfahrung, googeln nach
"xbee pro mesh" brachte allerdings:
XBee® & XBee-PRO® DigiMesh™ 2.4 RF Module:
http://www.digieurope.de/de/products/wireless/zigbee-mesh/xbee-digimesh-2-4
was ziemlich stark nach Kommunikation der Module untereinander klingt.
Wie dem auch sei, viel Erfolg!
--
chris
Wir wollen am Funkmodul nicht mehr groß rumprogrammieren. Also eine
Fertiglösung, die nur noch konfiguriert werden muss.
Spi/USART können zwar nur mit einer niedrigeren Rate als das Wlan, aber
die Wlan Übertragungsrate bezieht sich ja auch das ganze Netz, und wenn
mehrere gleichzeitig senden wollen, macht eine höhere Rate wieder Sinn.
In einem Quadrokopter Projekt hatten die mal ausgerechnet und getestet,
wie viele Datensätze mit einem XBEE Pro mit einer Datenrate von
115600baud pro Zeit übertragen werden können. Die neuern Xbee können
auch nur 200k baud. Das trifft ca. das was wir an Daten verschicken
wollen. Mit einem Boot im Netzwerk geht das, aber sobald mehrere Boote
in einem Xbee Mesh Netzwerk sind, wird es erhebliche Verzögerungen
geben. Deswegen ziehen wir Wlan vor.
Ist es eigentlich auch möglich mehrere GS1011MIE im AP Modus in einem
Netzwerk zu betreiben? Wie müsste man das konfigurieren?
MfG
Mischterx
Mischterx schrieb:> Wir wollen am Funkmodul nicht mehr groß rumprogrammieren. Also eine> Fertiglösung, die nur noch konfiguriert werden muss.
Ob das Routing in einem WLAN Ad-Hoc Netzwerk so gut funktioniert wage
ich zu bezweifeln, es muss ja irgend einen Grund haben warum es so viele
Mesh Networking Lösungen gibt, ich glaube das wird eher die Bastellösung
bei der am meisten programmiert werden muss, bei mehr als 5 Geräten
hätte ich dann schon Bedenken.
Studie: Kein Verlass auf Ad-hoc-Netze
Verlässliche Kommunikation in heutigen Ad-hoc-Netzen nahezu unmöglich
http://www.golem.de/0501/35756.html
"Der AdHoc-Modus benötigt keinen Access Point. Die beteiligten Computer
verbinden sich direkt miteinander. Dabei sind, unabhängig vom
verwendeten Standard, nur 11MBit/s möglich. Die Anzahl der Clients in
einem AdHoc Netzwerk ist auf 8 beschränkt."
http://www.netgear.de/support/faq/faqwireless.aspx
Leider konnte ich keine genauen verlässlichen
Informationen/Spezifikationen zu den gängigen Ad-Hoc Netzwerken finden,
aber für das Carambola gibt es noch eher brauchbare Software für Mesh
Netzwerke:
http://wiki.openwrt.org/inbox/mesh.olsrhttp://wiki.freifunk.net/Meshing> Spi/USART können zwar nur mit einer niedrigeren Rate als das Wlan, aber> die Wlan Übertragungsrate bezieht sich ja auch das ganze Netz, und wenn> mehrere gleichzeitig senden wollen, macht eine höhere Rate wieder Sinn.
Zum Übertragen von Bildern ist das GainSpan Modul aber zu langsam und es
fehlen die passenden Schnittellen für die Kamera, oder ihr braucht noch
eine zweite WLAN Kamera und auf kleinem Raum stören die sich dann
gegenseitig und verbrauchen den doppelten Strom.
> In einem Quadrokopter Projekt hatten die mal ausgerechnet und getestet,> wie viele Datensätze mit einem XBEE Pro mit einer Datenrate von> 115600baud pro Zeit übertragen werden können. Die neuern Xbee können> auch nur 200k baud. Das trifft ca. das was wir an Daten verschicken> wollen. Mit einem Boot im Netzwerk geht das, aber sobald mehrere Boote> in einem Xbee Mesh Netzwerk sind, wird es erhebliche Verzögerungen> geben. Deswegen ziehen wir Wlan vor.
Das Mesh Routing bei einfachen Ad-Hoc Netzwerken ist aber nicht
besonders effektiv implementiert, ihr könntet das mal mit vier Laptops
im gleichen Ad-Hoc Netzwerk testen:
- 2 Laptops solange voneinander entfernen bis sie keine direkte WLAN
Verbindungen mehr haben
- 3. Laptop in die Mitte bringen, funktioniert die Verbindung wieder?
- Einen der Laptops am Rand weiter entfernen und 4. Laptop in die Lücke
Wenn das nicht funktioniert sehe ich nicht viel Aussicht auf Erfolg mit
den WLAN Modulen im Ad-Hoc Modus und ob der WLAN Stack in den GainSpan
Modulen die Daten, die nicht für das jeweilige Modul bestimmt sind,
genauso weiter leitet ist noch eine ganz andere Frage.
> Ist es eigentlich auch möglich mehrere GS1011MIE im AP Modus in einem> Netzwerk zu betreiben? Wie müsste man das konfigurieren?
Das geht nicht.
http://www.carambola.cc/definition/
"Carambola provides extensive network capabilities: wired and the Wi-Fi
wireless interfaces. It can be configured as access point, wireless
client, or WDS mesh node. It can route or bridge interfaces. It can be
VPN Client or server. Using a USB 3G Modem, It can connect to a cellular
network."
Über "WDS mesh" würde ich mich mal informieren.
Das Carambola hat auch den Vorteil, dass die Software, die auf dem Modul
läuft, Open Source ist, somit könnt ihr das Routing noch anpassen, das
GainSpan Modul nutzt intern 2 ARM Prozessoren wobei die Firmware
ziemlich limitiert ist und ich mir oft gewünscht habe sie anpassen zu
können, das SDK ist allerdings ziemlich teuer, proprietär und die
Lizenzen und NDAs sind einfach nur schrecklich.
Wie gesagt mit XBee, ZigBee und den ganzen Artverwandten seit ihr sicher
schneller am Ziel.
--
chris
Mischterx schrieb:> Achja, Wlan würden wir außerdem bevorzugen, wegen der hohen> Übertragungsrate. Die werden wir brauchen, da in z.B. Zukunft noch> Live-Streaming von Kameras hinzukommen soll.
Video und Steuerung solltet Ihr voneinander trennen. Wenn beim Video die
Bandbreite knapp und die Delays groß werden, ist das zwar unschön, aber
nicht weiter kritisch. Wenn aber die Steuerkommandos ebenfalls verzögert
werden oder teilweise sogar verloren gehen, dann kann das kritisch
werden. Daher würde ich eine schmalbandige Steuerverbindung im
Sub-1GHz-Bereich und zusätzlich eine breitbandige Video/Daten-Verbindung
im 2.4 GHz Bereich aufbauen.
fchk
Hi,
wir haben uns jetzt mal die DigiMesh angeguckt. Im Manual haben die
Testdaten aufgelistet.
Configuration Data Throughput
1 hop, Encryption Disabled 27.0 kbps
3 hop, Encryption Disabled 10.9 kbps
6 hop, Encryption Disabled 5.78 kbps
1 hop, Encryption Enabled 20.5 kbps
3 hop, Encryption Enabled 9.81 kbps
6 hop, Encryption Enabled 4.7 kbps
Wenn wir alle 3 in einem Netzwerk unterwegs sind, jeweils Boot + Laptop,
kommen wir auf 6 hops. Das heißt 5,78kbps effektive Datenrate. Das
könnte knapp werden, aber wir wollen jetzt wahrscheinlich die erstmal
probieren. Sollten die doch nicht passen, können wir immer noch das XBee
Wlan Modul verwenden, da die Module Pinkompatibel sind. Sollte das Adhoc
nicht funktionieren, können wir immernoch einen kleinen Router mit ins
Netzwerk einbinden, bzw. Intel Wlan Karten können teilweise mitlerweile
als Router fungieren.
MfG
Philipp