ThingSpeak adalah platform Internet of Things yang dapat digunakan secara gratis untuk menampilkan chart suatu peralatan IoT. Pada percobaan kali ini saya tidak menggunakan sensor. Saya hanya mengirimkan data secara random ke server ThingSpeak.
ESP8266 terhubung pada pin 10 dan 11 pada Arduino, dan berkomunikasi dengan menggunakan library SoftwareSerial. Port Serial pada Arduino digunakan untuk berkomunikasi dengan Serial Monitor, untuk memudahkan debugging.
![Rangkaian Arduino + ESP8266.](https://triyan.wordpress.com/wp-content/uploads/2015/11/rangkaian-arduino-esp82661.jpg?w=700)
Berikut sketch yang saya gunakan.
#include SoftwareSerial ESP8266(10, 11); //RX,TX #define IP "184.106.153.149" // thingspeak.com IP address String GET = "GET /update?api_key=D6CWT4BXXXXXXXXX&field"; // API key void setup() { Serial.begin(9600); // Hardware serial (serial monitor) ESP8266.begin(9600); // Software serial (komunikasi dengan ESP8266) ESP8266.println("AT+RST"); // Reset ESP8266 delay(2000); ESP8266.println("AT"); delay(5000); if (ESP8266.find("OK")) { Serial.println("Connected to ESP8266"); } else { Serial.println("Not connected to ESP8266"); } } void loop() { delay(2000); ESP8266.println("AT+RST"); // Reset setiap akan mengirim data delay(7000); String cmd = "AT+CIPSTART=\"TCP\",\""; cmd += IP; cmd += "\",80"; ESP8266.println(cmd); delay(5000); if (ESP8266.find("Error")) { Serial.println("AT+CIPSTART Error"); return; } else { Serial.println("AT+CIPSTART Success"); } cmd = GET; cmd += "1="; cmd += random(300); cmd += "&2="; cmd += random(300); cmd += "\r\n\r\n"; ESP8266.print("AT+CIPSEND="); ESP8266.println(cmd.length()); delay(10000); if (ESP8266.find(">")) { // Perintah AT+CIPSEND akan menampilkan prompt ">" ESP8266.print(cmd); Serial.println("Data sent"); } else { Serial.println("AT+CIPSEND error"); } }
Berikut hasil akuisisi data pada server ThingSpeak.
![Hasil akuisisi data di ThingSpeak.](https://triyan.wordpress.com/wp-content/uploads/2015/11/akuisisi-data-thingspeak2.png?w=700)