IP Configuration
This commit is contained in:
94
lib/WiFiEsp/examples/ConnectWPA/ConnectWPA.ino
Normal file
94
lib/WiFiEsp/examples/ConnectWPA/ConnectWPA.ino
Normal file
@@ -0,0 +1,94 @@
|
||||
/*
|
||||
WiFiEsp example: ConnectWPA
|
||||
|
||||
This example connects to an encrypted WiFi network using an ESP8266 module.
|
||||
Then it prints the MAC address of the WiFi shield, the IP address obtained
|
||||
and other network details.
|
||||
|
||||
For more details see: http://yaab-arduino.blogspot.com/p/wifiesp-example-connect.html
|
||||
*/
|
||||
|
||||
#include "WiFiEsp.h"
|
||||
|
||||
// Emulate Serial1 on pins 6/7 if not present
|
||||
#ifndef HAVE_HWSERIAL1
|
||||
#include "SoftwareSerial.h"
|
||||
SoftwareSerial Serial1(6, 7); // RX, TX
|
||||
#endif
|
||||
|
||||
char ssid[] = "Twim"; // your network SSID (name)
|
||||
char pass[] = "12345678"; // your network password
|
||||
int status = WL_IDLE_STATUS; // the Wifi radio's status
|
||||
|
||||
void setup()
|
||||
{
|
||||
// initialize serial for debugging
|
||||
Serial.begin(115200);
|
||||
// initialize serial for ESP module
|
||||
Serial1.begin(9600);
|
||||
// initialize ESP module
|
||||
WiFi.init(&Serial1);
|
||||
|
||||
// check for the presence of the shield
|
||||
if (WiFi.status() == WL_NO_SHIELD) {
|
||||
Serial.println("WiFi shield not present");
|
||||
// don't continue
|
||||
while (true);
|
||||
}
|
||||
|
||||
// attempt to connect to WiFi network
|
||||
while ( status != WL_CONNECTED) {
|
||||
Serial.print("Attempting to connect to WPA SSID: ");
|
||||
Serial.println(ssid);
|
||||
// Connect to WPA/WPA2 network
|
||||
status = WiFi.begin(ssid, pass);
|
||||
}
|
||||
|
||||
Serial.println("You're connected to the network");
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
// print the network connection information every 10 seconds
|
||||
Serial.println();
|
||||
printCurrentNet();
|
||||
printWifiData();
|
||||
|
||||
delay(10000);
|
||||
}
|
||||
|
||||
void printWifiData()
|
||||
{
|
||||
// print your WiFi shield's IP address
|
||||
IPAddress ip = WiFi.localIP();
|
||||
Serial.print("IP Address: ");
|
||||
Serial.println(ip);
|
||||
|
||||
// print your MAC address
|
||||
byte mac[6];
|
||||
WiFi.macAddress(mac);
|
||||
char buf[20];
|
||||
sprintf(buf, "%02X:%02X:%02X:%02X:%02X:%02X", mac[5], mac[4], mac[3], mac[2], mac[1], mac[0]);
|
||||
Serial.print("MAC address: ");
|
||||
Serial.println(buf);
|
||||
}
|
||||
|
||||
void printCurrentNet()
|
||||
{
|
||||
// print the SSID of the network you're attached to
|
||||
Serial.print("SSID: ");
|
||||
Serial.println(WiFi.SSID());
|
||||
|
||||
// print the MAC address of the router you're attached to
|
||||
byte bssid[6];
|
||||
WiFi.BSSID(bssid);
|
||||
char buf[20];
|
||||
sprintf(buf, "%02X:%02X:%02X:%02X:%02X:%02X", bssid[5], bssid[4], bssid[3], bssid[2], bssid[1], bssid[0]);
|
||||
Serial.print("BSSID: ");
|
||||
Serial.println(buf);
|
||||
|
||||
// print the received signal strength
|
||||
long rssi = WiFi.RSSI();
|
||||
Serial.print("Signal strength (RSSI): ");
|
||||
Serial.println(rssi);
|
||||
}
|
||||
109
lib/WiFiEsp/examples/ScanNetworks/ScanNetworks.ino
Normal file
109
lib/WiFiEsp/examples/ScanNetworks/ScanNetworks.ino
Normal file
@@ -0,0 +1,109 @@
|
||||
/*
|
||||
WiFiEsp example: ScanNetworks
|
||||
|
||||
This example prints the Wifi shield's MAC address, and
|
||||
scans for available Wifi networks using the Wifi shield.
|
||||
Every ten seconds, it scans again. It doesn't actually
|
||||
connect to any network, so no encryption scheme is specified.
|
||||
|
||||
For more details see: http://yaab-arduino.blogspot.com/p/wifiesp.html
|
||||
*/
|
||||
|
||||
#include "WiFiEsp.h"
|
||||
|
||||
// Emulate Serial1 on pins 6/7 if not present
|
||||
#ifndef HAVE_HWSERIAL1
|
||||
#include "SoftwareSerial.h"
|
||||
SoftwareSerial Serial1(6, 7); // RX, TX
|
||||
#endif
|
||||
|
||||
void setup() {
|
||||
// initialize serial for debugging
|
||||
Serial.begin(115200);
|
||||
// initialize serial for ESP module
|
||||
Serial1.begin(9600);
|
||||
// initialize ESP module
|
||||
WiFi.init(&Serial1);
|
||||
|
||||
// check for the presence of the shield
|
||||
if (WiFi.status() == WL_NO_SHIELD) {
|
||||
Serial.println("WiFi shield not present");
|
||||
// don't continue
|
||||
while (true);
|
||||
}
|
||||
|
||||
// Print WiFi MAC address
|
||||
printMacAddress();
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
// scan for existing networks
|
||||
Serial.println();
|
||||
Serial.println("Scanning available networks...");
|
||||
listNetworks();
|
||||
delay(10000);
|
||||
}
|
||||
|
||||
|
||||
void printMacAddress()
|
||||
{
|
||||
// get your MAC address
|
||||
byte mac[6];
|
||||
WiFi.macAddress(mac);
|
||||
|
||||
// print MAC address
|
||||
char buf[20];
|
||||
sprintf(buf, "%02X:%02X:%02X:%02X:%02X:%02X", mac[5], mac[4], mac[3], mac[2], mac[1], mac[0]);
|
||||
Serial.print("MAC address: ");
|
||||
Serial.println(buf);
|
||||
}
|
||||
|
||||
void listNetworks()
|
||||
{
|
||||
// scan for nearby networks
|
||||
int numSsid = WiFi.scanNetworks();
|
||||
if (numSsid == -1) {
|
||||
Serial.println("Couldn't get a wifi connection");
|
||||
while (true);
|
||||
}
|
||||
|
||||
// print the list of networks seen
|
||||
Serial.print("Number of available networks:");
|
||||
Serial.println(numSsid);
|
||||
|
||||
// print the network number and name for each network found
|
||||
for (int thisNet = 0; thisNet < numSsid; thisNet++) {
|
||||
Serial.print(thisNet);
|
||||
Serial.print(") ");
|
||||
Serial.print(WiFi.SSID(thisNet));
|
||||
Serial.print("\tSignal: ");
|
||||
Serial.print(WiFi.RSSI(thisNet));
|
||||
Serial.print(" dBm");
|
||||
Serial.print("\tEncryption: ");
|
||||
printEncryptionType(WiFi.encryptionType(thisNet));
|
||||
}
|
||||
}
|
||||
|
||||
void printEncryptionType(int thisType) {
|
||||
// read the encryption type and print out the name
|
||||
switch (thisType) {
|
||||
case ENC_TYPE_WEP:
|
||||
Serial.print("WEP");
|
||||
break;
|
||||
case ENC_TYPE_WPA_PSK:
|
||||
Serial.print("WPA_PSK");
|
||||
break;
|
||||
case ENC_TYPE_WPA2_PSK:
|
||||
Serial.print("WPA2_PSK");
|
||||
break;
|
||||
case ENC_TYPE_WPA_WPA2_PSK:
|
||||
Serial.print("WPA_WPA2_PSK");
|
||||
break;
|
||||
case ENC_TYPE_NONE:
|
||||
Serial.print("None");
|
||||
break;
|
||||
}
|
||||
Serial.println();
|
||||
}
|
||||
|
||||
154
lib/WiFiEsp/examples/UdpNTPClient/UdpNTPClient.ino
Normal file
154
lib/WiFiEsp/examples/UdpNTPClient/UdpNTPClient.ino
Normal file
@@ -0,0 +1,154 @@
|
||||
/*
|
||||
WiFiEsp example: UdpNTPClient
|
||||
|
||||
Get the time from a Network Time Protocol (NTP) time server.
|
||||
Demonstrates use of UDP to send and receive data packets
|
||||
For more on NTP time servers and the messages needed to communicate with them,
|
||||
see http://en.wikipedia.org/wiki/Network_Time_Protocol
|
||||
|
||||
NOTE: The serial buffer size must be larger than 36 + packet size
|
||||
In this example we use an UDP packet of 48 bytes so the buffer must be
|
||||
at least 36+48=84 bytes that exceeds the default buffer size (64).
|
||||
You must modify the serial buffer size to 128
|
||||
For HardwareSerial modify _SS_MAX_RX_BUFF in
|
||||
Arduino\hardware\arduino\avr\cores\arduino\SoftwareSerial.h
|
||||
For SoftwareSerial modify _SS_MAX_RX_BUFF in
|
||||
Arduino\hardware\arduino\avr\libraries\SoftwareSerial\SoftwareSerial.h
|
||||
*/
|
||||
|
||||
#include "WiFiEsp.h"
|
||||
#include "WiFiEspUdp.h"
|
||||
|
||||
// Emulate Serial1 on pins 6/7 if not present
|
||||
#ifndef HAVE_HWSERIAL1
|
||||
#include "SoftwareSerial.h"
|
||||
SoftwareSerial Serial1(6, 7); // RX, TX
|
||||
#endif
|
||||
|
||||
char ssid[] = "Twim"; // your network SSID (name)
|
||||
char pass[] = "12345678"; // your network password
|
||||
int status = WL_IDLE_STATUS; // the Wifi radio's status
|
||||
|
||||
char timeServer[] = "time.nist.gov"; // NTP server
|
||||
unsigned int localPort = 2390; // local port to listen for UDP packets
|
||||
|
||||
const int NTP_PACKET_SIZE = 48; // NTP timestamp is in the first 48 bytes of the message
|
||||
const int UDP_TIMEOUT = 2000; // timeout in miliseconds to wait for an UDP packet to arrive
|
||||
|
||||
byte packetBuffer[NTP_PACKET_SIZE]; // buffer to hold incoming and outgoing packets
|
||||
|
||||
// A UDP instance to let us send and receive packets over UDP
|
||||
WiFiEspUDP Udp;
|
||||
|
||||
void setup()
|
||||
{
|
||||
// initialize serial for debugging
|
||||
Serial.begin(115200);
|
||||
// initialize serial for ESP module
|
||||
Serial1.begin(9600);
|
||||
// initialize ESP module
|
||||
WiFi.init(&Serial1);
|
||||
|
||||
// check for the presence of the shield
|
||||
if (WiFi.status() == WL_NO_SHIELD) {
|
||||
Serial.println("WiFi shield not present");
|
||||
// don't continue
|
||||
while (true);
|
||||
}
|
||||
|
||||
// attempt to connect to WiFi network
|
||||
while ( status != WL_CONNECTED) {
|
||||
Serial.print("Attempting to connect to WPA SSID: ");
|
||||
Serial.println(ssid);
|
||||
// Connect to WPA/WPA2 network
|
||||
status = WiFi.begin(ssid, pass);
|
||||
}
|
||||
|
||||
// you're connected now, so print out the data
|
||||
Serial.println("You're connected to the network");
|
||||
|
||||
Udp.begin(localPort);
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
sendNTPpacket(timeServer); // send an NTP packet to a time server
|
||||
|
||||
// wait for a reply for UDP_TIMEOUT miliseconds
|
||||
unsigned long startMs = millis();
|
||||
while (!Udp.available() && (millis() - startMs) < UDP_TIMEOUT) {}
|
||||
|
||||
Serial.println(Udp.parsePacket());
|
||||
if (Udp.parsePacket()) {
|
||||
Serial.println("packet received");
|
||||
// We've received a packet, read the data from it into the buffer
|
||||
Udp.read(packetBuffer, NTP_PACKET_SIZE);
|
||||
|
||||
// the timestamp starts at byte 40 of the received packet and is four bytes,
|
||||
// or two words, long. First, esxtract the two words:
|
||||
|
||||
unsigned long highWord = word(packetBuffer[40], packetBuffer[41]);
|
||||
unsigned long lowWord = word(packetBuffer[42], packetBuffer[43]);
|
||||
// combine the four bytes (two words) into a long integer
|
||||
// this is NTP time (seconds since Jan 1 1900):
|
||||
unsigned long secsSince1900 = highWord << 16 | lowWord;
|
||||
Serial.print("Seconds since Jan 1 1900 = ");
|
||||
Serial.println(secsSince1900);
|
||||
|
||||
// now convert NTP time into everyday time:
|
||||
Serial.print("Unix time = ");
|
||||
// Unix time starts on Jan 1 1970. In seconds, that's 2208988800:
|
||||
const unsigned long seventyYears = 2208988800UL;
|
||||
// subtract seventy years:
|
||||
unsigned long epoch = secsSince1900 - seventyYears;
|
||||
// print Unix time:
|
||||
Serial.println(epoch);
|
||||
|
||||
|
||||
// print the hour, minute and second:
|
||||
Serial.print("The UTC time is "); // UTC is the time at Greenwich Meridian (GMT)
|
||||
Serial.print((epoch % 86400L) / 3600); // print the hour (86400 equals secs per day)
|
||||
Serial.print(':');
|
||||
if (((epoch % 3600) / 60) < 10) {
|
||||
// In the first 10 minutes of each hour, we'll want a leading '0'
|
||||
Serial.print('0');
|
||||
}
|
||||
Serial.print((epoch % 3600) / 60); // print the minute (3600 equals secs per minute)
|
||||
Serial.print(':');
|
||||
if ((epoch % 60) < 10) {
|
||||
// In the first 10 seconds of each minute, we'll want a leading '0'
|
||||
Serial.print('0');
|
||||
}
|
||||
Serial.println(epoch % 60); // print the second
|
||||
}
|
||||
// wait ten seconds before asking for the time again
|
||||
delay(10000);
|
||||
}
|
||||
|
||||
// send an NTP request to the time server at the given address
|
||||
void sendNTPpacket(char *ntpSrv)
|
||||
{
|
||||
// set all bytes in the buffer to 0
|
||||
memset(packetBuffer, 0, NTP_PACKET_SIZE);
|
||||
// Initialize values needed to form NTP request
|
||||
// (see URL above for details on the packets)
|
||||
|
||||
packetBuffer[0] = 0b11100011; // LI, Version, Mode
|
||||
packetBuffer[1] = 0; // Stratum, or type of clock
|
||||
packetBuffer[2] = 6; // Polling Interval
|
||||
packetBuffer[3] = 0xEC; // Peer Clock Precision
|
||||
// 8 bytes of zero for Root Delay & Root Dispersion
|
||||
packetBuffer[12] = 49;
|
||||
packetBuffer[13] = 0x4E;
|
||||
packetBuffer[14] = 49;
|
||||
packetBuffer[15] = 52;
|
||||
|
||||
// all NTP fields have been given values, now
|
||||
// you can send a packet requesting a timestamp:
|
||||
Udp.beginPacket(ntpSrv, 123); //NTP requests are to port 123
|
||||
|
||||
Udp.write(packetBuffer, NTP_PACKET_SIZE);
|
||||
|
||||
Udp.endPacket();
|
||||
}
|
||||
|
||||
109
lib/WiFiEsp/examples/UdpSendReceive/UdpSendReceive.ino
Normal file
109
lib/WiFiEsp/examples/UdpSendReceive/UdpSendReceive.ino
Normal file
@@ -0,0 +1,109 @@
|
||||
/*
|
||||
WiFiEsp example: WiFi UDP Send and Receive String
|
||||
|
||||
This sketch wait an UDP packet on localPort using a WiFi shield.
|
||||
When a packet is received an 'ACK' packet is sent to the client on port remotePort.
|
||||
|
||||
For more details see: http://yaab-arduino.blogspot.com/p/wifiesp-example-client.html
|
||||
*/
|
||||
|
||||
|
||||
#include <WiFiEsp.h>
|
||||
#include <WiFiEspUdp.h>
|
||||
|
||||
// Emulate Serial1 on pins 6/7 if not present
|
||||
#ifndef HAVE_HWSERIAL1
|
||||
#include "SoftwareSerial.h"
|
||||
SoftwareSerial Serial1(6, 7); // RX, TX
|
||||
#endif
|
||||
|
||||
char ssid[] = "Twim"; // your network SSID (name)
|
||||
char pass[] = "12345678"; // your network password
|
||||
int status = WL_IDLE_STATUS; // the Wifi radio's status
|
||||
|
||||
unsigned int localPort = 10002; // local port to listen on
|
||||
|
||||
char packetBuffer[255]; // buffer to hold incoming packet
|
||||
char ReplyBuffer[] = "ACK"; // a string to send back
|
||||
|
||||
WiFiEspUDP Udp;
|
||||
|
||||
void setup() {
|
||||
// initialize serial for debugging
|
||||
Serial.begin(115200);
|
||||
// initialize serial for ESP module
|
||||
Serial1.begin(9600);
|
||||
// initialize ESP module
|
||||
WiFi.init(&Serial1);
|
||||
|
||||
// check for the presence of the shield:
|
||||
if (WiFi.status() == WL_NO_SHIELD) {
|
||||
Serial.println("WiFi shield not present");
|
||||
// don't continue:
|
||||
while (true);
|
||||
}
|
||||
|
||||
// attempt to connect to WiFi network
|
||||
while ( status != WL_CONNECTED) {
|
||||
Serial.print("Attempting to connect to WPA SSID: ");
|
||||
Serial.println(ssid);
|
||||
// Connect to WPA/WPA2 network
|
||||
status = WiFi.begin(ssid, pass);
|
||||
}
|
||||
|
||||
Serial.println("Connected to wifi");
|
||||
printWifiStatus();
|
||||
|
||||
Serial.println("\nStarting connection to server...");
|
||||
// if you get a connection, report back via serial:
|
||||
Udp.begin(localPort);
|
||||
|
||||
Serial.print("Listening on port ");
|
||||
Serial.println(localPort);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
|
||||
// if there's data available, read a packet
|
||||
int packetSize = Udp.parsePacket();
|
||||
if (packetSize) {
|
||||
Serial.print("Received packet of size ");
|
||||
Serial.println(packetSize);
|
||||
Serial.print("From ");
|
||||
IPAddress remoteIp = Udp.remoteIP();
|
||||
Serial.print(remoteIp);
|
||||
Serial.print(", port ");
|
||||
Serial.println(Udp.remotePort());
|
||||
|
||||
// read the packet into packetBufffer
|
||||
int len = Udp.read(packetBuffer, 255);
|
||||
if (len > 0) {
|
||||
packetBuffer[len] = 0;
|
||||
}
|
||||
Serial.println("Contents:");
|
||||
Serial.println(packetBuffer);
|
||||
|
||||
// send a reply, to the IP address and port that sent us the packet we received
|
||||
Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
|
||||
Udp.write(ReplyBuffer);
|
||||
Udp.endPacket();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
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");
|
||||
}
|
||||
106
lib/WiFiEsp/examples/WebClient/WebClient.ino
Normal file
106
lib/WiFiEsp/examples/WebClient/WebClient.ino
Normal file
@@ -0,0 +1,106 @@
|
||||
/*
|
||||
WiFiEsp example: WebClient
|
||||
|
||||
This sketch connects to google website using an ESP8266 module to
|
||||
perform a simple web search.
|
||||
|
||||
For more details see: http://yaab-arduino.blogspot.com/p/wifiesp-example-client.html
|
||||
*/
|
||||
|
||||
#include "WiFiEsp.h"
|
||||
|
||||
// Emulate Serial1 on pins 6/7 if not present
|
||||
#ifndef HAVE_HWSERIAL1
|
||||
#include "SoftwareSerial.h"
|
||||
SoftwareSerial Serial1(6, 7); // RX, TX
|
||||
#endif
|
||||
|
||||
char ssid[] = "Twim"; // your network SSID (name)
|
||||
char pass[] = "12345678"; // your network password
|
||||
int status = WL_IDLE_STATUS; // the Wifi radio's status
|
||||
|
||||
char server[] = "arduino.cc";
|
||||
|
||||
// Initialize the Ethernet client object
|
||||
WiFiEspClient client;
|
||||
|
||||
void setup()
|
||||
{
|
||||
// initialize serial for debugging
|
||||
Serial.begin(115200);
|
||||
// initialize serial for ESP module
|
||||
Serial1.begin(9600);
|
||||
// initialize ESP module
|
||||
WiFi.init(&Serial1);
|
||||
|
||||
// check for the presence of the shield
|
||||
if (WiFi.status() == WL_NO_SHIELD) {
|
||||
Serial.println("WiFi shield not present");
|
||||
// don't continue
|
||||
while (true);
|
||||
}
|
||||
|
||||
// attempt to connect to WiFi network
|
||||
while ( status != WL_CONNECTED) {
|
||||
Serial.print("Attempting to connect to WPA SSID: ");
|
||||
Serial.println(ssid);
|
||||
// Connect to WPA/WPA2 network
|
||||
status = WiFi.begin(ssid, pass);
|
||||
}
|
||||
|
||||
// you're connected now, so print out the data
|
||||
Serial.println("You're connected to the network");
|
||||
|
||||
printWifiStatus();
|
||||
|
||||
Serial.println();
|
||||
Serial.println("Starting connection to server...");
|
||||
// if you get a connection, report back via serial
|
||||
if (client.connect(server, 80)) {
|
||||
Serial.println("Connected to server");
|
||||
// Make a HTTP request
|
||||
client.println("GET /asciilogo.txt HTTP/1.1");
|
||||
client.println("Host: arduino.cc");
|
||||
client.println("Connection: close");
|
||||
client.println();
|
||||
}
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
// if there are incoming bytes available
|
||||
// from the server, read them and print them
|
||||
while (client.available()) {
|
||||
char c = client.read();
|
||||
Serial.write(c);
|
||||
}
|
||||
|
||||
// if the server's disconnected, stop the client
|
||||
if (!client.connected()) {
|
||||
Serial.println();
|
||||
Serial.println("Disconnecting from server...");
|
||||
client.stop();
|
||||
|
||||
// do nothing forevermore
|
||||
while (true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
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");
|
||||
}
|
||||
121
lib/WiFiEsp/examples/WebClientRepeating/WebClientRepeating.ino
Normal file
121
lib/WiFiEsp/examples/WebClientRepeating/WebClientRepeating.ino
Normal file
@@ -0,0 +1,121 @@
|
||||
/*
|
||||
WiFiEsp example: WebClientRepeating
|
||||
|
||||
This sketch connects to a web server and makes an HTTP request
|
||||
using an Arduino ESP8266 module.
|
||||
It repeats the HTTP call each 10 seconds.
|
||||
|
||||
For more details see: http://yaab-arduino.blogspot.com/p/wifiesp.html
|
||||
*/
|
||||
|
||||
#include "WiFiEsp.h"
|
||||
|
||||
// Emulate Serial1 on pins 6/7 if not present
|
||||
#ifndef HAVE_HWSERIAL1
|
||||
#include "SoftwareSerial.h"
|
||||
SoftwareSerial Serial1(6, 7); // RX, TX
|
||||
#endif
|
||||
|
||||
char ssid[] = "Twim"; // your network SSID (name)
|
||||
char pass[] = "12345678"; // your network password
|
||||
int status = WL_IDLE_STATUS; // the Wifi radio's status
|
||||
|
||||
char server[] = "arduino.cc";
|
||||
|
||||
unsigned long lastConnectionTime = 0; // last time you connected to the server, in milliseconds
|
||||
const unsigned long postingInterval = 10000L; // delay between updates, in milliseconds
|
||||
|
||||
// Initialize the Ethernet client object
|
||||
WiFiEspClient client;
|
||||
|
||||
void setup()
|
||||
{
|
||||
// initialize serial for debugging
|
||||
Serial.begin(115200);
|
||||
// initialize serial for ESP module
|
||||
Serial1.begin(9600);
|
||||
// initialize ESP module
|
||||
WiFi.init(&Serial1);
|
||||
|
||||
// check for the presence of the shield
|
||||
if (WiFi.status() == WL_NO_SHIELD) {
|
||||
Serial.println("WiFi shield not present");
|
||||
// don't continue
|
||||
while (true);
|
||||
}
|
||||
|
||||
// attempt to connect to WiFi network
|
||||
while ( status != WL_CONNECTED) {
|
||||
Serial.print("Attempting to connect to WPA SSID: ");
|
||||
Serial.println(ssid);
|
||||
// Connect to WPA/WPA2 network
|
||||
status = WiFi.begin(ssid, pass);
|
||||
}
|
||||
|
||||
Serial.println("You're connected to the network");
|
||||
|
||||
printWifiStatus();
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
// if there's incoming data from the net connection send it out the serial port
|
||||
// this is for debugging purposes only
|
||||
while (client.available()) {
|
||||
char c = client.read();
|
||||
Serial.write(c);
|
||||
}
|
||||
|
||||
// if 10 seconds have passed since your last connection,
|
||||
// then connect again and send data
|
||||
if (millis() - lastConnectionTime > postingInterval) {
|
||||
httpRequest();
|
||||
}
|
||||
}
|
||||
|
||||
// this method makes a HTTP connection to the server
|
||||
void httpRequest()
|
||||
{
|
||||
Serial.println();
|
||||
|
||||
// close any connection before send a new request
|
||||
// this will free the socket on the WiFi shield
|
||||
client.stop();
|
||||
|
||||
// if there's a successful connection
|
||||
if (client.connect(server, 80)) {
|
||||
Serial.println("Connecting...");
|
||||
|
||||
// send the HTTP PUT request
|
||||
client.println(F("GET /asciilogo.txt HTTP/1.1"));
|
||||
client.println(F("Host: arduino.cc"));
|
||||
client.println("Connection: close");
|
||||
client.println();
|
||||
|
||||
// note the time that the connection was made
|
||||
lastConnectionTime = millis();
|
||||
}
|
||||
else {
|
||||
// if you couldn't make a connection
|
||||
Serial.println("Connection failed");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
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");
|
||||
}
|
||||
106
lib/WiFiEsp/examples/WebClientSSL/WebClientSSL.ino
Normal file
106
lib/WiFiEsp/examples/WebClientSSL/WebClientSSL.ino
Normal file
@@ -0,0 +1,106 @@
|
||||
/*
|
||||
WiFiEsp example: WebClient
|
||||
|
||||
This sketch connects to google website using an ESP8266 module to
|
||||
perform a simple web search.
|
||||
|
||||
For more details see: http://yaab-arduino.blogspot.com/p/wifiesp-example-client.html
|
||||
*/
|
||||
|
||||
#include "WiFiEsp.h"
|
||||
|
||||
// Emulate Serial1 on pins 6/7 if not present
|
||||
#ifndef HAVE_HWSERIAL1
|
||||
#include "SoftwareSerial.h"
|
||||
SoftwareSerial Serial1(6, 7); // RX, TX
|
||||
#endif
|
||||
|
||||
char ssid[] = "Twim"; // your network SSID (name)
|
||||
char pass[] = "12345678"; // your network password
|
||||
int status = WL_IDLE_STATUS; // the Wifi radio's status
|
||||
|
||||
char server[] = "www.google.com";
|
||||
|
||||
// Initialize the Ethernet client object
|
||||
WiFiEspClient client;
|
||||
|
||||
void setup()
|
||||
{
|
||||
// initialize serial for debugging
|
||||
Serial.begin(115200);
|
||||
// initialize serial for ESP module
|
||||
Serial1.begin(9600);
|
||||
// initialize ESP module
|
||||
WiFi.init(&Serial1);
|
||||
|
||||
// check for the presence of the shield
|
||||
if (WiFi.status() == WL_NO_SHIELD) {
|
||||
Serial.println("WiFi shield not present");
|
||||
// don't continue
|
||||
while (true);
|
||||
}
|
||||
|
||||
// attempt to connect to WiFi network
|
||||
while ( status != WL_CONNECTED) {
|
||||
Serial.print("Attempting to connect to WPA SSID: ");
|
||||
Serial.println(ssid);
|
||||
// Connect to WPA/WPA2 network
|
||||
status = WiFi.begin(ssid, pass);
|
||||
}
|
||||
|
||||
// you're connected now, so print out the data
|
||||
Serial.println("You're connected to the network");
|
||||
|
||||
printWifiStatus();
|
||||
|
||||
Serial.println();
|
||||
Serial.println("Starting connection to server...");
|
||||
// if you get a connection, report back via serial
|
||||
if (client.connectSSL(server, 443)) {
|
||||
Serial.println("Connected to server");
|
||||
// Make a HTTP request
|
||||
client.println("GET / HTTP/1.1");
|
||||
client.println("Host: www.google.com");
|
||||
client.println("Connection: close");
|
||||
client.println();
|
||||
}
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
// if there are incoming bytes available
|
||||
// from the server, read them and print them
|
||||
while (client.available()) {
|
||||
char c = client.read();
|
||||
Serial.write(c);
|
||||
}
|
||||
|
||||
// if the server's disconnected, stop the client
|
||||
if (!client.connected()) {
|
||||
Serial.println();
|
||||
Serial.println("Disconnecting from server...");
|
||||
client.stop();
|
||||
|
||||
// do nothing forevermore
|
||||
while (true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
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");
|
||||
}
|
||||
136
lib/WiFiEsp/examples/WebServer/WebServer.ino
Normal file
136
lib/WiFiEsp/examples/WebServer/WebServer.ino
Normal file
@@ -0,0 +1,136 @@
|
||||
/*
|
||||
WiFiEsp example: WebServer
|
||||
|
||||
A simple web server that shows the value of the analog input
|
||||
pins via a web page using an ESP8266 module.
|
||||
This sketch will print the IP address of your ESP8266 module (once connected)
|
||||
to the Serial monitor. From there, you can open that address in a web browser
|
||||
to display the web page.
|
||||
The web page will be automatically refreshed each 20 seconds.
|
||||
|
||||
For more details see: http://yaab-arduino.blogspot.com/p/wifiesp.html
|
||||
*/
|
||||
|
||||
#include "WiFiEsp.h"
|
||||
|
||||
// Emulate Serial1 on pins 6/7 if not present
|
||||
#ifndef HAVE_HWSERIAL1
|
||||
#include "SoftwareSerial.h"
|
||||
SoftwareSerial Serial1(6, 7); // RX, TX
|
||||
#endif
|
||||
|
||||
char ssid[] = "Twim"; // your network SSID (name)
|
||||
char pass[] = "12345678"; // your network password
|
||||
int status = WL_IDLE_STATUS; // the Wifi radio's status
|
||||
int reqCount = 0; // number of requests received
|
||||
|
||||
WiFiEspServer server(80);
|
||||
|
||||
|
||||
void setup()
|
||||
{
|
||||
// initialize serial for debugging
|
||||
Serial.begin(115200);
|
||||
// initialize serial for ESP module
|
||||
Serial1.begin(9600);
|
||||
// initialize ESP module
|
||||
WiFi.init(&Serial1);
|
||||
|
||||
// check for the presence of the shield
|
||||
if (WiFi.status() == WL_NO_SHIELD) {
|
||||
Serial.println("WiFi shield not present");
|
||||
// don't continue
|
||||
while (true);
|
||||
}
|
||||
|
||||
// attempt to connect to WiFi network
|
||||
while ( status != WL_CONNECTED) {
|
||||
Serial.print("Attempting to connect to WPA SSID: ");
|
||||
Serial.println(ssid);
|
||||
// Connect to WPA/WPA2 network
|
||||
status = WiFi.begin(ssid, pass);
|
||||
}
|
||||
|
||||
Serial.println("You're connected to the network");
|
||||
printWifiStatus();
|
||||
|
||||
// start the web server on port 80
|
||||
server.begin();
|
||||
}
|
||||
|
||||
|
||||
void loop()
|
||||
{
|
||||
// listen for incoming clients
|
||||
WiFiEspClient client = server.available();
|
||||
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) {
|
||||
Serial.println("Sending response");
|
||||
|
||||
// send a standard http response header
|
||||
// use \r\n instead of many println statements to speedup data send
|
||||
client.print(
|
||||
"HTTP/1.1 200 OK\r\n"
|
||||
"Content-Type: text/html\r\n"
|
||||
"Connection: close\r\n" // the connection will be closed after completion of the response
|
||||
"Refresh: 20\r\n" // refresh the page automatically every 20 sec
|
||||
"\r\n");
|
||||
client.print("<!DOCTYPE HTML>\r\n");
|
||||
client.print("<html>\r\n");
|
||||
client.print("<h1>Hello World!</h1>\r\n");
|
||||
client.print("Requests received: ");
|
||||
client.print(++reqCount);
|
||||
client.print("<br>\r\n");
|
||||
client.print("Analog input A0: ");
|
||||
client.print(analogRead(0));
|
||||
client.print("<br>\r\n");
|
||||
client.print("</html>\r\n");
|
||||
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(10);
|
||||
|
||||
// close the connection:
|
||||
client.stop();
|
||||
Serial.println("Client disconnected");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
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 where to go in the browser
|
||||
Serial.println();
|
||||
Serial.print("To see this page in action, open a browser to http://");
|
||||
Serial.println(ip);
|
||||
Serial.println();
|
||||
}
|
||||
128
lib/WiFiEsp/examples/WebServerAP/WebServerAP.ino
Normal file
128
lib/WiFiEsp/examples/WebServerAP/WebServerAP.ino
Normal file
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
WiFiEsp example: WebServerAP
|
||||
|
||||
A simple web server that shows the value of the analog input
|
||||
pins via a web page using an ESP8266 module.
|
||||
This sketch will start an access point and print the IP address of your
|
||||
ESP8266 module to the Serial monitor. From there, you can open
|
||||
that address in a web browser to display the web page.
|
||||
The web page will be automatically refreshed each 20 seconds.
|
||||
|
||||
For more details see: http://yaab-arduino.blogspot.com/p/wifiesp.html
|
||||
*/
|
||||
|
||||
#include "WiFiEsp.h"
|
||||
|
||||
// Emulate Serial1 on pins 6/7 if not present
|
||||
#ifndef HAVE_HWSERIAL1
|
||||
#include "SoftwareSerial.h"
|
||||
SoftwareSerial Serial1(6, 7); // RX, TX
|
||||
#endif
|
||||
|
||||
char ssid[] = "TwimEsp"; // your network SSID (name)
|
||||
char pass[] = "12345678"; // your network password
|
||||
int status = WL_IDLE_STATUS; // the Wifi radio's status
|
||||
int reqCount = 0; // number of requests received
|
||||
|
||||
WiFiEspServer server(80);
|
||||
|
||||
// use a ring buffer to increase speed and reduce memory allocation
|
||||
RingBuffer buf(8);
|
||||
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(115200); // initialize serial for debugging
|
||||
Serial1.begin(9600); // initialize serial for ESP module
|
||||
WiFi.init(&Serial1); // initialize ESP module
|
||||
|
||||
// check for the presence of the shield
|
||||
if (WiFi.status() == WL_NO_SHIELD) {
|
||||
Serial.println("WiFi shield not present");
|
||||
while (true); // don't continue
|
||||
}
|
||||
|
||||
Serial.print("Attempting to start AP ");
|
||||
Serial.println(ssid);
|
||||
|
||||
// uncomment these two lines if you want to set the IP address of the AP
|
||||
//IPAddress localIp(192, 168, 111, 111);
|
||||
//WiFi.configAP(localIp);
|
||||
|
||||
// start access point
|
||||
status = WiFi.beginAP(ssid, 10, pass, ENC_TYPE_WPA2_PSK);
|
||||
|
||||
Serial.println("Access point started");
|
||||
printWifiStatus();
|
||||
|
||||
// start the web server on port 80
|
||||
server.begin();
|
||||
Serial.println("Server started");
|
||||
}
|
||||
|
||||
|
||||
void loop()
|
||||
{
|
||||
WiFiEspClient client = server.available(); // listen for incoming clients
|
||||
|
||||
if (client) { // if you get a client,
|
||||
Serial.println("New client"); // print a message out the serial port
|
||||
buf.init(); // initialize the circular buffer
|
||||
while (client.connected()) { // loop while the client's connected
|
||||
if (client.available()) { // if there's bytes to read from the client,
|
||||
char c = client.read(); // read a byte, then
|
||||
buf.push(c); // push it to the ring buffer
|
||||
|
||||
// you got two newline characters in a row
|
||||
// that's the end of the HTTP request, so send a response
|
||||
if (buf.endsWith("\r\n\r\n")) {
|
||||
sendHttpResponse(client);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// give the web browser time to receive the data
|
||||
delay(10);
|
||||
|
||||
// close the connection
|
||||
client.stop();
|
||||
Serial.println("Client disconnected");
|
||||
}
|
||||
}
|
||||
|
||||
void sendHttpResponse(WiFiEspClient client)
|
||||
{
|
||||
client.print(
|
||||
"HTTP/1.1 200 OK\r\n"
|
||||
"Content-Type: text/html\r\n"
|
||||
"Connection: close\r\n" // the connection will be closed after completion of the response
|
||||
"Refresh: 20\r\n" // refresh the page automatically every 20 sec
|
||||
"\r\n");
|
||||
client.print("<!DOCTYPE HTML>\r\n");
|
||||
client.print("<html>\r\n");
|
||||
client.print("<h1>Hello World!</h1>\r\n");
|
||||
client.print("Requests received: ");
|
||||
client.print(++reqCount);
|
||||
client.print("<br>\r\n");
|
||||
client.print("Analog input A0: ");
|
||||
client.print(analogRead(0));
|
||||
client.print("<br>\r\n");
|
||||
client.print("</html>\r\n");
|
||||
}
|
||||
|
||||
void printWifiStatus()
|
||||
{
|
||||
// print your WiFi shield's IP address
|
||||
IPAddress ip = WiFi.localIP();
|
||||
Serial.print("IP Address: ");
|
||||
Serial.println(ip);
|
||||
|
||||
// print where to go in the browser
|
||||
Serial.println();
|
||||
Serial.print("To see this page in action, connect to ");
|
||||
Serial.print(ssid);
|
||||
Serial.print(" and open a browser to http://");
|
||||
Serial.println(ip);
|
||||
Serial.println();
|
||||
}
|
||||
|
||||
142
lib/WiFiEsp/examples/WebServerLed/WebServerLed.ino
Normal file
142
lib/WiFiEsp/examples/WebServerLed/WebServerLed.ino
Normal file
@@ -0,0 +1,142 @@
|
||||
/*
|
||||
WiFiEsp example: WebServerLed
|
||||
|
||||
A simple web server that lets you turn on and of an LED via a web page.
|
||||
This sketch will print the IP address of your ESP8266 module (once connected)
|
||||
to the Serial monitor. From there, you can open that address in a web browser
|
||||
to turn on and off the LED on pin 13.
|
||||
|
||||
For more details see: http://yaab-arduino.blogspot.com/p/wifiesp.html
|
||||
*/
|
||||
|
||||
#include "WiFiEsp.h"
|
||||
|
||||
// Emulate Serial1 on pins 6/7 if not present
|
||||
#ifndef HAVE_HWSERIAL1
|
||||
#include "SoftwareSerial.h"
|
||||
SoftwareSerial Serial1(6, 7); // RX, TX
|
||||
#endif
|
||||
|
||||
char ssid[] = "Twim"; // your network SSID (name)
|
||||
char pass[] = "12345678"; // your network password
|
||||
int status = WL_IDLE_STATUS;
|
||||
|
||||
int ledStatus = LOW;
|
||||
|
||||
WiFiEspServer server(80);
|
||||
|
||||
// use a ring buffer to increase speed and reduce memory allocation
|
||||
RingBuffer buf(8);
|
||||
|
||||
void setup()
|
||||
{
|
||||
pinMode(LED_BUILTIN, OUTPUT); // initialize digital pin LED_BUILTIN as an output.
|
||||
Serial.begin(115200); // initialize serial for debugging
|
||||
Serial1.begin(9600); // initialize serial for ESP module
|
||||
WiFi.init(&Serial1); // initialize ESP module
|
||||
|
||||
// check for the presence of the shield
|
||||
if (WiFi.status() == WL_NO_SHIELD) {
|
||||
Serial.println("WiFi shield not present");
|
||||
// don't continue
|
||||
while (true);
|
||||
}
|
||||
|
||||
// attempt to connect to WiFi network
|
||||
while (status != WL_CONNECTED) {
|
||||
Serial.print("Attempting to connect to WPA SSID: ");
|
||||
Serial.println(ssid);
|
||||
// Connect to WPA/WPA2 network
|
||||
status = WiFi.begin(ssid, pass);
|
||||
}
|
||||
|
||||
Serial.println("You're connected to the network");
|
||||
printWifiStatus();
|
||||
|
||||
// start the web server on port 80
|
||||
server.begin();
|
||||
}
|
||||
|
||||
|
||||
void loop()
|
||||
{
|
||||
WiFiEspClient client = server.available(); // listen for incoming clients
|
||||
|
||||
if (client) { // if you get a client,
|
||||
Serial.println("New client"); // print a message out the serial port
|
||||
buf.init(); // initialize the circular buffer
|
||||
while (client.connected()) { // loop while the client's connected
|
||||
if (client.available()) { // if there's bytes to read from the client,
|
||||
char c = client.read(); // read a byte, then
|
||||
buf.push(c); // push it to the ring buffer
|
||||
|
||||
// printing the stream to the serial monitor will slow down
|
||||
// the receiving of data from the ESP filling the serial buffer
|
||||
//Serial.write(c);
|
||||
|
||||
// you got two newline characters in a row
|
||||
// that's the end of the HTTP request, so send a response
|
||||
if (buf.endsWith("\r\n\r\n")) {
|
||||
sendHttpResponse(client);
|
||||
break;
|
||||
}
|
||||
|
||||
// Check to see if the client request was "GET /H" or "GET /L":
|
||||
if (buf.endsWith("GET /H")) {
|
||||
Serial.println("Turn led ON");
|
||||
ledStatus = HIGH;
|
||||
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
|
||||
}
|
||||
else if (buf.endsWith("GET /L")) {
|
||||
Serial.println("Turn led OFF");
|
||||
ledStatus = LOW;
|
||||
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// close the connection
|
||||
client.stop();
|
||||
Serial.println("Client disconnected");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void sendHttpResponse(WiFiEspClient client)
|
||||
{
|
||||
// HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK)
|
||||
// and a content-type so the client knows what's coming, then a blank line:
|
||||
client.println("HTTP/1.1 200 OK");
|
||||
client.println("Content-type:text/html");
|
||||
client.println();
|
||||
|
||||
// the content of the HTTP response follows the header:
|
||||
client.print("The LED is ");
|
||||
client.print(ledStatus);
|
||||
client.println("<br>");
|
||||
client.println("<br>");
|
||||
|
||||
client.println("Click <a href=\"/H\">here</a> turn the LED on<br>");
|
||||
client.println("Click <a href=\"/L\">here</a> turn the LED off<br>");
|
||||
|
||||
// The HTTP response ends with another blank line:
|
||||
client.println();
|
||||
}
|
||||
|
||||
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 where to go in the browser
|
||||
Serial.println();
|
||||
Serial.print("To see this page in action, open a browser to http://");
|
||||
Serial.println(ip);
|
||||
Serial.println();
|
||||
}
|
||||
Reference in New Issue
Block a user