ESP8266 - Updated examples
This commit is contained in:
parent
b8f93c5077
commit
342091b018
4 changed files with 200 additions and 18 deletions
68
examples/ESP8266_HTTP_Get/ESP8266_HTTP_Get.ino
Normal file
68
examples/ESP8266_HTTP_Get/ESP8266_HTTP_Get.ino
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
/*
|
||||||
|
* KiteLib ESP8266 HTTP GET Example
|
||||||
|
*
|
||||||
|
* This example sends HTTP GET request using ESP8266 WiFi module.
|
||||||
|
*
|
||||||
|
* Please note that the response will be saved including header. HTTP header size
|
||||||
|
* can easily exceed Arduino resources and cause the program to behave erratically.
|
||||||
|
*
|
||||||
|
* IMPORTANT: Before uploading this example, make sure that the ESP8266 module is running
|
||||||
|
* AT firmware (can be found in the /extras folder of the library)!
|
||||||
|
*/
|
||||||
|
|
||||||
|
// include the library
|
||||||
|
#include <KiteLib.h>
|
||||||
|
|
||||||
|
// ESP8266 module is in slot A on the shield
|
||||||
|
ESP8266 wifi = Kite.ModuleA;
|
||||||
|
|
||||||
|
// create HTTP client instance using the wifi module
|
||||||
|
HTTPClient http(&wifi);
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
Serial.begin(9600);
|
||||||
|
|
||||||
|
// initialize ESP8266 with baudrate 9600
|
||||||
|
Serial.print(F("[ESP8266] Initializing ... "));
|
||||||
|
byte state = wifi.begin(9600);
|
||||||
|
if(state == ERR_NONE) {
|
||||||
|
Serial.println(F("success!"));
|
||||||
|
} else {
|
||||||
|
Serial.print(F("failed, code 0x"));
|
||||||
|
Serial.println(state, HEX);
|
||||||
|
while(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// join AP named "SSID" using the password "password"
|
||||||
|
Serial.print(F("[ESP8266] Joining AP ... "));
|
||||||
|
state = wifi.join("Tenda", "Student20-X13");
|
||||||
|
if(state == ERR_NONE) {
|
||||||
|
Serial.println(F("success!"));
|
||||||
|
} else {
|
||||||
|
Serial.print(F("failed, code 0x"));
|
||||||
|
Serial.println(state, HEX);
|
||||||
|
while(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
// send HTTP GET request to www.httpbin.org/ip
|
||||||
|
// the response will contain origin IP address of the request
|
||||||
|
String response;
|
||||||
|
Serial.print(F("[ESP8266] Sending HTTP GET request ... "));
|
||||||
|
int http_code = http.get("www.httpbin.org/ip", response);
|
||||||
|
if(http_code == 200) {
|
||||||
|
Serial.println(F("success!"));
|
||||||
|
Serial.print(F("[ESP8266] Response is "));
|
||||||
|
Serial.print(response.length());
|
||||||
|
Serial.println(F(" bytes long."));
|
||||||
|
Serial.println(response);
|
||||||
|
} else {
|
||||||
|
Serial.print(F("failed, HTTP code "));
|
||||||
|
Serial.println(http_code);
|
||||||
|
}
|
||||||
|
|
||||||
|
// wait for a second before sending new request
|
||||||
|
delay(1000);
|
||||||
|
}
|
71
examples/ESP8266_HTTP_Post/ESP8266_HTTP_Post.ino
Normal file
71
examples/ESP8266_HTTP_Post/ESP8266_HTTP_Post.ino
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
/*
|
||||||
|
* KiteLib ESP8266 HTTP POST Example
|
||||||
|
*
|
||||||
|
* This example sends HTTP POST request using ESP8266 WiFi module.
|
||||||
|
*
|
||||||
|
* Please note that the response will be saved including header. HTTP header size
|
||||||
|
* can easily exceed Arduino resources and cause the program to behave erratically.
|
||||||
|
*
|
||||||
|
* IMPORTANT: Before uploading this example, make sure that the ESP8266 module is running
|
||||||
|
* AT firmware (can be found in the /extras folder of the library)!
|
||||||
|
*/
|
||||||
|
|
||||||
|
// include the library
|
||||||
|
#include <KiteLib.h>
|
||||||
|
|
||||||
|
// ESP8266 module is in slot A on the shield
|
||||||
|
ESP8266 wifi = Kite.ModuleA;
|
||||||
|
|
||||||
|
// create HTTP client instance using the wifi module
|
||||||
|
HTTPClient http(&wifi);
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
Serial.begin(9600);
|
||||||
|
|
||||||
|
// initialize ESP8266 with baudrate 9600
|
||||||
|
Serial.print(F("[ESP8266] Initializing ... "));
|
||||||
|
byte state = wifi.begin(9600);
|
||||||
|
if(state == ERR_NONE) {
|
||||||
|
Serial.println(F("success!"));
|
||||||
|
} else {
|
||||||
|
Serial.print(F("failed, code 0x"));
|
||||||
|
Serial.println(state, HEX);
|
||||||
|
while(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// join AP named "SSID" using the password "password"
|
||||||
|
Serial.print(F("[ESP8266] Joining AP ... "));
|
||||||
|
state = wifi.join("Tenda", "Student20-X13");
|
||||||
|
if(state == ERR_NONE) {
|
||||||
|
Serial.println(F("success!"));
|
||||||
|
} else {
|
||||||
|
Serial.print(F("failed, code 0x"));
|
||||||
|
Serial.println(state, HEX);
|
||||||
|
while(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
// send HTTP POST request to www.httpbin.org/status/200
|
||||||
|
// Content: str
|
||||||
|
// Content-Type: text/plain
|
||||||
|
String response;
|
||||||
|
Serial.print(F("[ESP8266] Sending HTTP POST request ... "));
|
||||||
|
int http_code = http.post("www.httpbin.org/status/404", "str", response);
|
||||||
|
if(http_code >= 100) {
|
||||||
|
Serial.print(F("HTTP code "));
|
||||||
|
Serial.println(http_code);
|
||||||
|
Serial.print(F("[ESP8266] Response is "));
|
||||||
|
Serial.print(response.length());
|
||||||
|
Serial.println(F(" bytes long."));
|
||||||
|
Serial.println(response);
|
||||||
|
} else {
|
||||||
|
Serial.print(F("failed, code 0x"));
|
||||||
|
Serial.println(http_code, HEX);
|
||||||
|
}
|
||||||
|
|
||||||
|
// wait for a second before sending new request
|
||||||
|
delay(1000);
|
||||||
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
* The messages are published to https://shiftr.io/try. You can use this namespace
|
* The messages are published to https://shiftr.io/try. You can use this namespace
|
||||||
* for testing purposes, but remember that it is publicly accessible!
|
* for testing purposes, but remember that it is publicly accessible!
|
||||||
*
|
*
|
||||||
* IMPORTANT: Before upolading this example, make sure that the ESP8266 module is running
|
* IMPORTANT: Before uploading this example, make sure that the ESP8266 module is running
|
||||||
* AT firmware (can be found in the /extras folder of the library)!
|
* AT firmware (can be found in the /extras folder of the library)!
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -16,6 +16,9 @@
|
||||||
// ESP8266 module is in slot A on the shield
|
// ESP8266 module is in slot A on the shield
|
||||||
ESP8266 wifi = Kite.ModuleA;
|
ESP8266 wifi = Kite.ModuleA;
|
||||||
|
|
||||||
|
// create MQTT client instance using the wifi module
|
||||||
|
MQTTClient mqtt(&wifi);
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
Serial.begin(9600);
|
Serial.begin(9600);
|
||||||
|
|
||||||
|
@ -41,9 +44,9 @@ void setup() {
|
||||||
while(true);
|
while(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// connect to MQTT broker using client ID "arduino", username "try" and password "try"
|
// connect to MQTT server using client ID "arduino", username "try" and password "try"
|
||||||
Serial.print(F("[ESP8266] Connecting to MQTT broker ... "));
|
Serial.print(F("[ESP8266] Connecting to MQTT server ... "));
|
||||||
state = wifi.MqttConnect("broker.shiftr.io", "arduino", "try", "try");
|
state = mqtt.connect("broker.shiftr.io", "arduino", "try", "try");
|
||||||
if(state == ERR_NONE) {
|
if(state == ERR_NONE) {
|
||||||
Serial.println(F("success!"));
|
Serial.println(F("success!"));
|
||||||
} else {
|
} else {
|
||||||
|
@ -56,7 +59,7 @@ void setup() {
|
||||||
void loop() {
|
void loop() {
|
||||||
// publish MQTT message to the topic "hello" with content "world"
|
// publish MQTT message to the topic "hello" with content "world"
|
||||||
Serial.print(F("[ESP8266] Publishing MQTT message ... "));
|
Serial.print(F("[ESP8266] Publishing MQTT message ... "));
|
||||||
byte state = wifi.MqttPublish("hello", "world");
|
byte state = mqtt.publish("hello", "world");
|
||||||
if(state == ERR_NONE) {
|
if(state == ERR_NONE) {
|
||||||
Serial.println(F("success!"));
|
Serial.println(F("success!"));
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
/*
|
/*
|
||||||
* KiteLib ESP8266 MQTT Publish Example
|
* KiteLib ESP8266 MQTT Subscribe Example
|
||||||
*
|
*
|
||||||
* This example publishes MQTT messages using ESP8266 WiFi module.
|
* This example subscribes to MQTT topic using ESP8266 WiFi module.
|
||||||
*
|
*
|
||||||
* The messages are published to https://shiftr.io/try. You can use this namespace
|
* The messages are pulled from https://shiftr.io/try. You can use this namespace
|
||||||
* for testing purposes, but remember that it is publicly accessible!
|
* for testing purposes, but remember that it is publicly accessible!
|
||||||
*
|
*
|
||||||
* IMPORTANT: Before upolading this example, make sure that the ESP8266 module is running
|
* IMPORTANT: Before uploading this example, make sure that the ESP8266 module is running
|
||||||
* AT firmware (can be found in the /extras folder of the library)!
|
* AT firmware (can be found in the /extras folder of the library)!
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -16,6 +16,9 @@
|
||||||
// ESP8266 module is in slot A on the shield
|
// ESP8266 module is in slot A on the shield
|
||||||
ESP8266 wifi = Kite.ModuleA;
|
ESP8266 wifi = Kite.ModuleA;
|
||||||
|
|
||||||
|
// create MQTT client instance using the wifi module
|
||||||
|
MQTTClient mqtt(&wifi);
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
Serial.begin(9600);
|
Serial.begin(9600);
|
||||||
|
|
||||||
|
@ -43,7 +46,7 @@ void setup() {
|
||||||
|
|
||||||
// connect to MQTT broker using client ID "arduino", username "try" and password "try"
|
// connect to MQTT broker using client ID "arduino", username "try" and password "try"
|
||||||
Serial.print(F("[ESP8266] Connecting to MQTT broker ... "));
|
Serial.print(F("[ESP8266] Connecting to MQTT broker ... "));
|
||||||
state = wifi.MqttConnect("broker.shiftr.io", "arduino", "try", "try");
|
state = mqtt.connect("broker.shiftr.io", "arduino", "try", "try");
|
||||||
if(state == ERR_NONE) {
|
if(state == ERR_NONE) {
|
||||||
Serial.println(F("success!"));
|
Serial.println(F("success!"));
|
||||||
} else {
|
} else {
|
||||||
|
@ -51,12 +54,12 @@ void setup() {
|
||||||
Serial.println(state, HEX);
|
Serial.println(state, HEX);
|
||||||
while(true);
|
while(true);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
// subscribe to the topic "hello"
|
||||||
// publish MQTT message to the topic "hello" with content "world"
|
// after calling this method, server will send PUBLISH packets
|
||||||
Serial.print(F("[ESP8266] Publishing MQTT message ... "));
|
// to this client each time a new message was published at the topic
|
||||||
byte state = wifi.MqttPublish("hello", "world");
|
Serial.print(F("[ESP8266] Subscribing to MQTT topic ... "));
|
||||||
|
state = wifi.subscribe("hello");
|
||||||
if(state == ERR_NONE) {
|
if(state == ERR_NONE) {
|
||||||
Serial.println(F("success!"));
|
Serial.println(F("success!"));
|
||||||
} else {
|
} else {
|
||||||
|
@ -64,7 +67,44 @@ void loop() {
|
||||||
Serial.println(state, HEX);
|
Serial.println(state, HEX);
|
||||||
}
|
}
|
||||||
|
|
||||||
// wait for a second before publishing again
|
// unsubscribe from topic "hello"
|
||||||
delay(1000);
|
// after calling this method, server will stop sending PUBLISH packets
|
||||||
|
Serial.print(F("[ESP8266] Unsubscribing from MQTT topic ... "));
|
||||||
|
state = wifi.unsubscribe("hello");
|
||||||
|
if(state == ERR_NONE) {
|
||||||
|
Serial.println(F("success!"));
|
||||||
|
} else {
|
||||||
|
Serial.print(F("failed, code 0x"));
|
||||||
|
Serial.println(state, HEX);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// create a function that will be called when a new PUBLISH packet
|
||||||
|
// arrives from the server
|
||||||
|
//
|
||||||
|
// IMPORTANT: This function MUST have two C-strings as arguments!
|
||||||
|
void onPublish(const char* topic, const char* message) {
|
||||||
|
Serial.println("[ESP8266] Received packet from MQTT server: ");
|
||||||
|
Serial.print("[ESP8266] Topic:\t");
|
||||||
|
Serial.println(topic);
|
||||||
|
Serial.print("[ESP8266] Message:\t");
|
||||||
|
Serial.println(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
// check for new MQTT packets from server each time the loop() runs
|
||||||
|
// this will also send a PING packet, restarting the keep alive timer
|
||||||
|
byte state = wifi.check(onPublish);
|
||||||
|
Serial.print("[ESP8266] MQTT check ");
|
||||||
|
if(state == ERR_NONE) {
|
||||||
|
Serial.println(F("success!"));
|
||||||
|
} else {
|
||||||
|
Serial.print(F("failed, code 0x"));
|
||||||
|
Serial.println(state, HEX);
|
||||||
|
}
|
||||||
|
|
||||||
|
// the rest of your loop() code goes here
|
||||||
|
// make sure that the maximum time the loop() runs is less than 1.5x keep alive,
|
||||||
|
// otherwise the server will close the network connection
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue