A library for the Roving Networks WiFly RN-XV.
The library provides functions for setting up and managing the WiFly module, sending UDP packets, opening TCP connections and sending and receiving data over the TCP connection.
Doxygen documentation for WiFlyHQ
Example code to setup and use the hardware serial interface:
Serial.begin(9600);
wifly.begin(&Serial, NULL);
Setup and use a software serial interface:
#include <SoftwareSerial.h>
SoftwareSerial wifiSerial(8,9);
wifiSerial.begin(9600);
wifly.begin(&wifiSerial);
Join a WiFi network:
wifly.setSSID("mySSID");
wifly.setPassphrase("myWPApassword");
wifly.enableDHCP();
wifly.join();
Create an Ad Hoc WiFi network on channel 10:
wifly.createAdhocNetwork("myssid", 10);
Send a UDP packet:
wifly.setIpProtocol(WIFLY_PROTOCOL_UDP);
wifly.sendto("Hello, world", "192.168.1.100", 2042);
Open a TCP connection and send some data, and close the connection:
wifly.setIpProtocol(WIFLY_PROTOCOL_TCP);
wifly.open("192.168.1.100",8042);
wifly.println("Hello, world!");
wifly.close();
Receive UDP or TCP data (assumes software serial interface):
if (wifly.available() > 0) {
Serial.write(wifly.read());
}
Easy handling of multiple receive options with multiMatch_P():
if (wifly.available() > 0) {
int match = wifly.multiMatch_P(100, 3,
F("button"), F("slider="), F("switch="));
switch (match) {
case 0: /* button */
Serial.print(F("button: pressed"));
break;
case 1: /* slider */
int slider = wifly.parseInt();
Serial.print(F("slider: "));
Serial.println(slider);
break;
case 2: /* switch */
char ch = wifly.read();
Serial.print(F("switch: "));
Serial.println(ch);
break;
default: /* timeout */
break;
}
}
Limitations with WiFly RN-XV rev 2.32 firmware