AZ3166 WiFi Server
The WiFiServer
class is for Arduino Wifi shield.
Assembly
AZ3166WiFiServer.h
Summary
Types |
---|
WiFiClient |
Constructors |
---|
WiFiServer - WiFiServer(unsigned short port) |
Methods |
---|
begin - void begin() |
available - WiFiClient available(byte *status) |
write - size_t write(unsigned char b) |
write - size_t write(const unsigned char *buffer, size_t size) |
close - void close() |
Types
WiFiClient
Arduino Wifi client class.
Constructors
WiFiServer
WiFiServer(uint16_t port)
Parameters
Type Name Description uint16_t port The port to listen on.
Methods
begin
void begin()
Start the server.
Parameters
None.
Return value
void
available
WiFiClient available(byte *status)
Gets a client that is connected to the server and has data available for reading.
Parameters
Type Name Description byte * status Not used. Return value
Type Description WiFiClient A Client object or -1 if no clients available.
write
size_t write(unsigned char b)
Write 1 byte data to all the clients connected to a server.
Parameters
Type Name Description unsigned char b Data to write. Return value
Type Description size_t Size of data written.
write
size_t write(const unsigned char *buffer, size_t size)
Write size bytes of data to all the clients connected to a server.
Parameters
Type Name Description const unsigned char * buffer Data to write. size_t size Size of data to write. Return value
Type Description size_t Size of data written.
close
void close()
Close the server.
Parameters
None.
Return value
void
Sample code
#include <AZ3166WiFi.h>
char ssid[] = "{SSID of your access point}"; // your network SSID (name)
char password[] = "{password}"; // your network password
int keyIndex = 0; // your network key Index number (needed only for WEP)
int status = WL_IDLE_STATUS;
WiFiServer server(80);
void setup() {
//Initialize serial and wait for port to open:
Serial.begin(115200);
// check for the presence of the shield:
if (WiFi.status() == WL_NO_SHIELD) {
Serial.println("WiFi shield not present");
// don't continue:
while (true);
}
const char* fv = WiFi.firmwareVersion();
Serial.printf("Wi-Fi firmware: %s\r\n", fv);
// attempt to connect to Wifi network:
while (status != WL_CONNECTED) {
Serial.print("Attempting to connect to SSID: ");
Serial.println(ssid);
// Connect to WPA/WPA2 network. Change this line if using open or WEP network:
status = WiFi.begin(ssid, password);
// wait 10 seconds for connection:
delay(10000);
}
server.begin();
// you're connected now, so print out the status:
printWifiStatus();
}
void loop() {
Serial.println("list for incoming clients");
// listen for incoming clients
WiFiClient client = server.available();
Serial.println("availabled");
if (client)
{
Serial.println("new client");
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected())
{
if (client.available())
{
char c = client.read();
Serial.write(c);
// if you've gotten to the end of the line (received a newline
// character) and the line is blank, the http request has ended,
// so you can send a reply
if (c == '\n' && currentLineIsBlank) {
client.println("HTTP/1.1 200 OK");
client.println("nontent-Type: text/html");
client.println("Connection: close");
client.println("Refresh: 5");
client.println("");
client.println("<!DOCTYPE HTML>");
client.println("<html>Hello</html>");
break;
}
if (c == '\n') {
// you're starting a new line
currentLineIsBlank = true;
} else if (c != '\r') {
// you've gotten a character on the current line
currentLineIsBlank = false;
}
}
}
// give the web browser time to receive the data
delay(1);
// close the connection:
client.stop();
Serial.println("client disonnected");
}
}
void printWifiStatus() {
// print the SSID of the network you're attached to:
Serial.print("SSID: ");
Serial.println(WiFi.SSID());
// print your WiFi shield's IP address:
IPAddress ip = WiFi.localIP();
Serial.print("IP Address: ");
Serial.println(ip);
// print the received signal strength:
long rssi = WiFi.RSSI();
Serial.print("signal strength (RSSI):");
Serial.print(rssi);
Serial.println(" dBm");
}