Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WiFi: improve WiFiClient(Basic) examples #5197

Merged
merged 4 commits into from
Oct 11, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 21 additions & 35 deletions libraries/ESP8266WiFi/examples/WiFiClient/WiFiClient.ino
Original file line number Diff line number Diff line change
@@ -1,19 +1,15 @@
/*
This sketch sends data via HTTP GET requests to data.sparkfun.com service.

You need to get streamId and privateKey at data.sparkfun.com and paste them
below. Or just customize this script to talk to other HTTP servers.

This sketch establishes a TCP connection to a "quote of the day" service.
It sends a "hello" message, and then prints received data.
*/

#include <ESP8266WiFi.h>

const char* ssid = "your-ssid";
const char* password = "your-password";

const char* host = "data.sparkfun.com";
const char* streamId = "....................";
const char* privateKey = "....................";
const char* host = "djxmmx.net";
const uint16_t port = 17;

void setup() {
Serial.begin(115200);
Expand Down Expand Up @@ -43,54 +39,44 @@ void setup() {
Serial.println(WiFi.localIP());
}

int value = 0;

void loop() {
delay(5000);
++value;

Serial.print("connecting to ");
Serial.println(host);
Serial.print(host);
Serial.print(':');
Serial.println(port);

// Use WiFiClient class to create TCP connections
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
if (!client.connect(host, port)) {
Serial.println("connection failed");
delay(5000);
return;
}

// We now create a URI for the request
String url = "/input/";
url += streamId;
url += "?private_key=";
url += privateKey;
url += "&value=";
url += value;

Serial.print("Requesting URL: ");
Serial.println(url);

// This will send the request to the server
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
// This will send a string to the server
Serial.println("sending data to server");
client.println("hello from ESP8266");
unsigned long timeout = millis();
while (client.available() == 0) {
if (millis() - timeout > 5000) {
Serial.println(">>> Client Timeout !");
client.stop();
delay(60000);
return;
}
}

// Read all the lines of the reply from server and print them to Serial
while (client.available() || client.connected()) {
String line = client.readStringUntil('\r');
Serial.print(line);
Serial.println("receiving from remote server");
while (client.available()) {
char ch = static_cast<char>(client.read());
Serial.print(ch);
}

// Close the connection
Serial.println();
Serial.println("closing connection");
}
client.stop();

delay(300000); // execute once every 5 minutes, don't flood remote service
}
25 changes: 15 additions & 10 deletions libraries/ESP8266WiFi/examples/WiFiClientBasic/WiFiClientBasic.ino
Original file line number Diff line number Diff line change
@@ -1,11 +1,18 @@
/*
This sketch sends a message to a TCP server

This sketch sends a string to a TCP server, and prints a one-line response.
You must run a TCP server in your local network.
For example, on Linux you can use this command: nc -v -l 3000
*/

#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>

const char* ssid = "your-ssid";
const char* password = "your-password";

const char* host = "192.168.1.1";
const uint16_t port = 3000;

ESP8266WiFiMulti WiFiMulti;

void setup() {
Expand All @@ -14,7 +21,7 @@ void setup() {

// We start by connecting to a WiFi network
WiFi.mode(WIFI_STA);
WiFiMulti.addAP("SSID", "passpasspass");
WiFiMulti.addAP(ssid, password);

Serial.println();
Serial.println();
Expand All @@ -35,13 +42,10 @@ void setup() {


void loop() {
const uint16_t port = 80;
const char * host = "192.168.1.1"; // ip or dns



Serial.print("connecting to ");
Serial.println(host);
Serial.print(host);
Serial.print(':');
Serial.println(port);

// Use WiFiClient class to create TCP connections
WiFiClient client;
Expand All @@ -54,9 +58,10 @@ void loop() {
}

// This will send the request to the server
client.println("Send this data to server");
client.println("hello from ESP8266");

//read back one line from server
Serial.println("receiving from remote server");
String line = client.readStringUntil('\r');
Serial.println(line);

Expand Down