Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

techniken:wifly:hardwareinstallation

Dies ist eine alte Version des Dokuments!




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

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.

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…

Baudrate einstellen ohne Arduino Mega

Falls ihr eine Software-Serial habt, und es damit nicht klappt, kann es daran liegen, dass die Wifly auf eine höhere Baudrate eingestellt ist, als sie von der Software-Serial unterstützt wird.

Um die Wifly wieder auf eine niedrigere Baudrate einzustellen, müsst ihr:

  1. Im Programm die Status- und Debugausgaben abschalten (Kommentare lesen…)
  2. Im Programm die Verwendung der Hardware-Serial „Serial“ aktivieren (im Code gibt es eine auskommentierte Zeile…)
  3. Das Programm hochladen
  4. Erst jetzt die Wifly über jeweils einen 250Ohm-Widerstand pro Leitung an der Hardware-Serial (Pins 0+1 (RX/TX)) eures Arduinos anschließen. Weil jetzt drei Chips (Arduino, Wifly, USB/Seriell-Wandler) an zwei Leitungen hängen, arbeiten diese „gegeneinander“ und stören sich u.U. gegenseitig. Der Widerstand verringert dabei den maximal fließenden Strom und damit das Risiko, einen der Chips zu beschädigen.
  5. Die Ausgaben im Serial Monitor (auf die Zielbaudrate eingestellt) anschauen (hier sind jetzt nur die Antworten der Wifly zu sehen, keine Statuskommentare)

Wenn's geklappt hat, könnt merkt sich die Wifly die neue Baudrate und ihr könnt alles wieder „zurückbauen“. Wenn es nicht klappt, vertauscht nochmal TX und RX.

techniken/wifly/hardwareinstallation.1423740821.txt.gz · Zuletzt geändert: 2016/01/21 12:45 (Externe Bearbeitung)