Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

techniken:wifly:hardwareinstallation

Ein WiFly-Modul am Arduino betreiben

Hardware anschließen

Die WiFlys haben ein etwas unglückliches Format und laufen mit 3.3V, so dass man eine Adapterplatine braucht, um sie an irgendetwas anszuschließen. Wir haben dazu die Motomama Module und zwei Adapterplatinen von SEED.

Die Adapterplatinen haben Anschlüsse für Masse (GND), +5V, Seriell Daten senden (TX, transmit) und Seriell Daten Empfangen (RX, receive). Die „senden“ Seite des Arduino muss dabei mit der „empfangen“ Seite des WLAN-Moduls verbunden werden und umgekehrt. Um zusätzliche Verwirrung zu stiften, schreiben manche Hersteller von Adapterplatinen an die Pins, welche Funktion sie haben (so beim SEED-Adapter), während andere Hersteller draufschreiben, mit was man sie verbinden muss (MotoMama).

Welche Serielle Schnittstelle ?

Die primäre Serielle Schnittstelle an Pin 0 und 1 des Arduinos wird oft schon für Testausgaben benutzt. Wenn Ihr das WLAN-Modul an diese Pins hängt, darf euer Programm keine anderen Ausgaben auf der Seriellen Schnittstelle machen, weil diese sonst auch beim WLAN-Modul landen würden…

In der Praxis gibt es zwei Alternativen:

Alternative 1: Software-Serial (Mit dem Arduino Nano)

Falls Ihr auf Testausgaben auf der seriellen Schnittstelle nicht verzichten wollt, könnt Ihr zwei beliebige andere Pins des Arduinos verwenden. Die bereits vorinstallierte Arduino-Bibliothek SoftwareSerial schaltet diese Pins dann im richtigen Takt an- und aus-, um die Daten zu übertragen. Eines der Beispiele der ArduPar Library zeigt die Verwendung der Software-Serial. Die Software-Serial verbraucht im Gegensatz zur Hardware-Serial CPU-Leistung und funktioniert in einigen wenigen Situationen nicht besonders zuverlässig. So ist z.B. die Baudrate für die Kommunikation zwischen Arduino und Wifly bei Verwendung der SoftwareSerial Library auf 19200Baud beschränkt und die die automatische Baudratenerkennung des Setup-Skripts funktioniert manchmal nicht.

Alternative 2: Zusätzliche Hardware-Serials des Arduino MEGA

Die etwas größeren Arduino MEGA Boards haben mehrere Serielle Schnittstellen eingebaut. Sie sind mit RX1/TX1 RX2/TX2 und RX3/TX3 gekennzeichnet und machen mit Hardwareunterstützung genau das gleiche Wie die Schnittstelle an Pin 0 und 1.

Konfiguration der WiFly / Software für den Arduino

Damit die WiFly das tut, was ihr wollt, muss sie zuerst konfiguriert werden (also z.B. das richtige WLAN und Passwort eingestellt werden). Dazu muss die Wifly zuerst in einen Konfigurationsmodus versetzt werden, in dem sie auf in der Anleitung beschriebene Befehle (z.B. „set wlan ssid WLAN-Name“) reagiert. Das ist alles keine Zauberei, aber doch ein bisschen Arbeit, um alle nötigen die Befehle rauszusuchen. Deshalb hat Felix eine Arduino-Library geschrieben, die den Prozess für eine „standard“ Konfiguration übernimmt:

Diese müsst Ihr zuerst herunterladen: Link „Download .zip“ auf der rechten Seite von https://github.com/Zapalot/MinimalWiflyConfig

Dann Entpacken

Danach Umbenennen:
Die der Ordner aus den .zip Dateien, die Ihr von GitHub bekommt, haben immer noch ein -master im Dateinamen, den ihr duch Umbenennen entfernen müsst. Also den Ordner MinimalWiflyConfig-master in MinimalWiflyConfig umbenennen.

Und schließlich ins Arduino library Verzeichnis verschieben: (das liegt bei den meisten unter Dokumente/Arduino/libraries)

Ein erster Test

Schließt nun alle offenen Arduino Programme (Arduino erkennt neu installierte Libraries sonst nicht) und öffnet das Beispiel MinimalWiflyConfig/WiflySetup.

Je nachdem, ob ihr das Modul an einem Arduino Nano mit einer Sodtware-Serial oder einem MEGA an einer Hardware-Serial betreibt, müsst ihr noch die entsprechend Zeilen im Programm anpassen (ist alles in den Kommentaren beschrieben). Der Code in der Library versucht selbstständig, die Wifly auf die gewünschte Baudrate einzustellen, wenn keine Kommunikation zu stande kommt.

Lest euch danach die Kommentare im Programm aufmerksam durch und passt an, was offensichtlich noch geändert werden muss. Ladet das Programm hoch und schaut euch Ausgaben im Serial Monitor an, an denen ihr erkennen könnt, ob die Kommunikation mit dem Modul funktioniert, ob das WLAN gefunden wurde und welche IP das Modul vom Accesspoint zugewiesen bekommen hat.

Und jetzt die Gute Nachricht: Die Wifly merkt sich die vorgenommenen Einstellungen, so dass ihr sie in Zukunft auch ohne dieses Programm verwenden könnt!

Wenn's nicht funktioniert...

Wenn keine Kommunikation zwischen Wifly und Arduino zustande kommt, liegt das häufig daran, dass TX und RX Pins vertauscht bzw. falsch angeschlossen sind. Dreht die einfach mal um…

techniken/wifly/hardwareinstallation.txt · Zuletzt geändert: 2017/12/04 18:35 von d.golovko