I am integrating ThingSpeak and Arduino plus ESP8266, with an intent of making a simple project which contains my Android app to update the ThingSpeak channel and then I want to read the data of that channel via Arduino Uno. The Android parts works fine, but at the Arduino side I got stuck and unable to read the channel data via ESP8266 (attached to my Arduino Uno).
Here is my code:
#include "WiFiEsp.h"
// Emulate Serial1 on pins 2/3 if not present
#ifndef HAVE_HWSERIAL1
#include "SoftwareSerial.h"
SoftwareSerial Serial1(2,3); // RX, TX
#endif
char ssid[] = "M T G"; // your network SSID (name)
char pass[] = "androidGUII"; // your network password
int status = WL_IDLE_STATUS; // the Wifi radio's status
char server[] = "arduino.cc";
// Initialize the Ethernet client object
WiFiEspClient client;
static const char* host = "api.thingspeak.com";
static const char* apiKey = "H359MYV0P0KFG2VS";
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();
}
void loop()
{
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
return;
}
client.println("GET /channels/421932/feeds.json?api_key=H359MYV0P0KFG2VS&results=2 HTTP/1.1");
while (client.available() == 0); // wait till something comes in; you may want to add a timeout here
Serial.println(client.read());
client.stop(); // close socket
delay(10000);
}
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");
}
It shows in serial monitor connecting to thingspeak.com and nothing shows next.