1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-08-07 00:04:36 +03:00

Changes on WiFi API after review. Add driver utility implementation

This commit is contained in:
mlafauci
2011-03-08 22:13:54 +01:00
parent 9d60bbb0dc
commit 765e848fdb
22 changed files with 1904 additions and 350 deletions

View File

@@ -0,0 +1,157 @@
/*
WiFi Server example
A simple connection with WiFi AP with Wireless Security
information try to access with WPA or WEP security keys
A simple server is setup to exchange data.
created 13 July 2010
by Domenico La Fauci
*/
#include <WiFi.h>
#include <IPAddress.h>
byte mac[6] = { 0 };
IPAddress ip;
IPAddress gateway;
IPAddress subnet;
byte dataBuf[80] = { 0 };
char ssid[32] = { 0 };
int status = WL_IDLE_STATUS;
Server server(23);
void printIpData()
{
ip = WiFi.localIp();
Serial.print("IP: ");
Serial.print(ip[3],10);Serial.print(".");
Serial.print(ip[2],10);Serial.print(".");
Serial.print(ip[1],10);Serial.print(".");
Serial.println(ip[0],10);
subnet = WiFi.subnetMask();
Serial.print("NETMASK: ");
Serial.print(subnet[3],10);Serial.print(".");
Serial.print(subnet[2],10);Serial.print(".");
Serial.print(subnet[1],10);Serial.print(".");
Serial.println(subnet[0],10);
gateway = WiFi.gatewayIP();
Serial.print("GATEWAY: ");
Serial.print(gateway[3],10);Serial.print(".");
Serial.print(gateway[2],10);Serial.print(".");
Serial.print(gateway[1],10);Serial.print(".");
Serial.println(gateway[0],10);
WiFi.macAddress(mac);
Serial.print("MAC: ");
Serial.print(mac[5],16);Serial.print(":");
Serial.print(mac[4],16);Serial.print(":");
Serial.print(mac[3],16);Serial.print(":");
Serial.print(mac[2],16);Serial.print(":");
Serial.print(mac[1],16);Serial.print(":");
Serial.println(mac[0],16);
}
void printCurrNet()
{
//WiFi.getCurrSSID(&ssid[0]);
//Serial.print("SSID:");
//Serial.println(ssid);
byte bssid[6];
WiFi.BSSID(bssid);
//delay(200);
Serial.print("BSSID:");
Serial.print(bssid[5],16);Serial.print(":");
Serial.print(bssid[4],16);Serial.print(":");
Serial.print(bssid[3],16);Serial.print(":");
Serial.print(bssid[2],16);Serial.print(":");
Serial.print(bssid[1],16);Serial.print(":");
Serial.println(bssid[0],16);
int32_t rssi = WiFi.RSSI();
Serial.print("RSSI:");
Serial.println(rssi,10);
uint8_t enct = WiFi.encryptionType();
Serial.print("Encryption Type:");
Serial.println(enct,16);
char ssid[20][32] = { {0} };
byte numSsid = WiFi.scanNetworks();
Serial.print("SSID List:");
Serial.println(numSsid, 10);
for (int i = 0; i<numSsid; ++i)
{
Serial.println(WiFi.SSID(i));
}
}
void setup()
{
Serial.begin(9600);
Serial.println("Setup WiFi...");
char ssid[] = "Cariddi";
Serial.println(ssid);
int status = WiFi.begin(ssid);
if ( status != WL_CONNECTED)
{
// Using WPA
Serial.println("Trying with Passphrase...");
const char *pass = "12345678";
status = WiFi.begin(ssid, pass);
if ( status != WL_CONNECTED)
{
// using WEP
Serial.println("Trying with Key...");
uint8_t key_idx = 0;
const char *key = "12345678";
status = WiFi.begin(ssid,key_idx, key);
if ( status != WL_CONNECTED)
{
Serial.println("Wifi Connection failed!");
return;
}
}
}
Serial.println("Wifi Connected!");
printIpData();
printCurrNet();
Serial.println("Starting server...");
server.begin();
delay(1000);
}
void loop()
{
static uint8_t count = 0;
if (status == WL_CONNECTED)
{
byte status = 0;
Client client = server.available(&status);
if (client) {
//Serial.print("Status: ");
//Serial.println(status, 16);
byte idx = 0;
while (client.available())
{
dataBuf[idx++] = client.read();
}
if (idx>0)
{
dataBuf[idx]=0;
//Serial.println((char*)&dataBuf[0]);
server.write((char*)&dataBuf[0]);
}
return;
}
}
}

View File

@@ -1,26 +1,81 @@
/*
WiFi example
A simple connection with WiFi AP with Wireless Security
information loaded in EEPROM
A simple connection with WiFi AP with Wireless Security
information try to access with WPA or WEP security keys
created 13 July 2010
by Domenico La Fauci
*/
#include <WiFi.h>
#include <EEPROM.h>
#include <IPAddress.h>
byte mac[6] = { 0 };
IPAddress ip;
IPAddress gateway;
IPAddress subnet;
void setup()
{
Serial.begin(9600);
WiFi.begin();
if (WiFi.get_status() == WL_NO_SSID_AVAIL)
{
Serial.begin(9600);
Serial.println("Setup WiFi...");
char ssid[] = "Cariddi";
Serial.println(ssid);
int status = WiFi.begin(ssid);
if ( status != WL_CONNECTED)
{
// SSID not present in EEPROM
char ssid[] = "Cariddi";
WiFi.begin(ssid, strlen(ssid));
// Using WPA
Serial.println("Trying with Passphrase...");
const char *pass = "12345678";
status = WiFi.begin(ssid, pass);
if ( status != WL_CONNECTED)
{
// using WEP
Serial.println("Trying with Key...");
uint8_t key_idx = 0;
const char *key = "12345678";
status = WiFi.begin(ssid,key_idx, key);
if ( status != WL_CONNECTED)
{
Serial.println("Wifi Connection failed!");
return;
}
}
}
Serial.println("Wifi Connected!");
ip = WiFi.localIp();
Serial.print("IP: ");
Serial.print(ip[3],10);Serial.print(".");
Serial.print(ip[2],10);Serial.print(".");
Serial.print(ip[1],10);Serial.print(".");
Serial.println(ip[0],10);
subnet = WiFi.subnetMask();
Serial.print("NETMASK: ");
Serial.print(subnet[3],10);Serial.print(".");
Serial.print(subnet[2],10);Serial.print(".");
Serial.print(subnet[1],10);Serial.print(".");
Serial.println(subnet[0],10);
gateway = WiFi.gatewayIP();
Serial.print("GATEWAY: ");
Serial.print(gateway[3],10);Serial.print(".");
Serial.print(gateway[2],10);Serial.print(".");
Serial.print(gateway[1],10);Serial.print(".");
Serial.println(gateway[0],10);
WiFi.macAddress(mac);
Serial.print("MAC: ");
Serial.print(mac[5],16);Serial.print(":");
Serial.print(mac[4],16);Serial.print(":");
Serial.print(mac[3],16);Serial.print(":");
Serial.print(mac[2],16);Serial.print(":");
Serial.print(mac[1],16);Serial.print(":");
Serial.println(mac[0],16);
}
void loop()

View File

@@ -1,107 +0,0 @@
/*
WiFi example
A simple connection with WiFi AP with Wireless Security
information loaded in EEPROM, if not available
try to access with WPA or WEP security keys
created 13 July 2010
by Domenico La Fauci
*/
#include <EEPROM.h>
#include <WiFi.h>
#include <utility/wl_types.h>
// network configuration. gateway and subnet are optional.
byte mac[6] = { 0 };
byte ip[4] = { 0 };
byte gateway[4] = { 0 };
byte subnet[4] = { 0 };
void setup()
{
Serial.begin(9600);
Serial.println("Setup WiFi...");
WiFi.begin();
if (WiFi.get_status() == WL_NO_SSID_AVAIL)
{
//uint8_t result = WiFi.get_result();
//Serial.println(result,16);
// SSID not present in EEPROM
char ssid[] = "Cariddi";
Serial.println(ssid);
delay(2000);
// Using WPA
WiFi.begin(ssid, strlen(ssid));
delay(10000);
if (WiFi.get_result() == WL_CONNECT_FAILED)
{
Serial.println("Trying with Passphrase...");
uint8_t key_idx = 0;
const char *pass = "12345678";
uint8_t pass_len = strlen(pass);
WiFi.beginp(ssid, strlen(ssid), pass, pass_len);
}
// wait to trying connection...
delay(5000);
// using WEP
if (WiFi.get_result() == WL_CONNECT_FAILED)
{
Serial.println("Trying with Key...");
uint8_t key_idx = 0;
const char *key = "12345678";
uint8_t key_len = strlen(key);
WiFi.begink(ssid, strlen(ssid),key_idx, key, key_len);
}
// wait to trying connection...
delay(5000);
{
WiFi.getIpAddr(ip,subnet,gateway);
Serial.print("IP: ");
Serial.print(ip[3],10);Serial.print(".");
Serial.print(ip[2],10);Serial.print(".");
Serial.print(ip[1],10);Serial.print(".");
Serial.println(ip[0],10);
Serial.print("NETMASK: ");
Serial.print(subnet[3],10);Serial.print(".");
Serial.print(subnet[2],10);Serial.print(".");
Serial.print(subnet[1],10);Serial.print(".");
Serial.println(subnet[0],10);
Serial.print("GATEWAY: ");
Serial.print(gateway[3],10);Serial.print(".");
Serial.print(gateway[2],10);Serial.print(".");
Serial.print(gateway[1],10);Serial.print(".");
Serial.println(gateway[0],10);
WiFi.getMacAddr(mac);
Serial.print("MAC: ");
Serial.print(mac[5],16);Serial.print(":");
Serial.print(mac[4],16);Serial.print(":");
Serial.print(mac[3],16);Serial.print(":");
Serial.print(mac[2],16);Serial.print(":");
Serial.print(mac[1],16);Serial.print(":");
Serial.println(mac[0],16);
}
}
}
void loop()
{
static uint8_t count = 0;
while (WiFi.get_status() != WL_CONNECTED)
{
uint8_t result = WiFi.get_result(count++);
Serial.println(result);
delay(3000);
}
}