dan kita uji simpan data via URL Berhasil:
https://api.thingspeak.com/update?api_key=RX25Q5K1OKOXXXXX&field1=34
LANJUT....
misalkan kita ada 8 sensor yang hendak di pantau:
Sensor Wind Direction: 35
Sensor Average Wind Speed (One Hour): 34.56m/s
Sensor Max Wind Speed (Five Minutes): 67.66m/s
Sensor Rain Fall (One Hour): 17.78mm
Sensor Rain Fall (24 Hour): 17.78mm
Sensor Temperature: 33.33C
Sensor Humidity: 61%
Sensor Barometric Pressure: 1510.00hPa
Sehingga jadinya adalah sebagai berikut:
Jika kita Uji menggunakan brower:
https://api.thingspeak.com/update?api_key=ZZ6YIIZXXVIXXXXXX&field1=0&field2=0.00&field3=0.00&field4=17.78&field5=17.78&field6=33.33&field7=61&field8=1510.00&ok=ok
Adapun code Uji Arduinonya adalah sbb:
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
char server[] ="api.thingspeak.com";
IPAddress ip(192,168,1,212);//ip client sesuaikan dengan ip router
EthernetClient client;
void setup() {
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
Ethernet.begin(mac, ip);
}
}
void loop(){
while(true){
if (client.connect(server, 80)) {
Serial.println("connected");
long randNumber = random(10, 75);
long randNumber2 = random(10, 80);
client.print("GET /update?api_key=BDA3EM7DMJFXXXXX&field1="+String(randNumber)+"&field2="+String(randNumber2)+"&ok=ok");
Serial.println("https://api.thingspeak.com/update?api_key=BDA3EM7DMJFXXXXX&field1="+String(randNumber)+"&field2="+String(randNumber2)+"&ok=ok");
//client.print("GET /insertdata.php?data="+String(randNumber)+"X");
client.println("Connection: close");
client.println();
client.stop();
delay(1000);
}
else {
Serial.println("connection failed");
}
}
if (!client.connected()) {
Serial.println("disconnecting.");
client.stop();
while(true);
}
}
+++++++++++++++++++++++++++
Sehingga code + sensornya :
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
char server[] ="api.thingspeak.com";
IPAddress ip(192,168,1,212);
EthernetClient client;
char databuffer[35];
double temp;
void getBuffer() {
int index;
for (index = 0; index < 35; index ++) {
if (Serial.available()) {
databuffer[index] = Serial.read();
if (databuffer[0] != 'c'){
index = -1; } }
else {
index --;
}
}
}
int transCharToInt(char *_buffer, int _start, int _stop) { //char to int?
int _index;
int result = 0;
int num = _stop - _start + 1;
int _temp[num];
for (_index = _start; _index <= _stop; _index ++) {
_temp[_index - _start] = _buffer[_index] - '0';
result = 10 * result + _temp[_index - _start]; }
return result; }
int WindDirection() { //Wind Direction
return transCharToInt(databuffer, 1, 3); }
float WindSpeedAverage() { //air Speed (1 minute)
temp = 0.44704 * transCharToInt(databuffer, 5, 7);
return temp; }
float WindSpeedMax() { //Max air speed (5 minutes)
temp = 0.44704 * transCharToInt(databuffer, 9, 11);
return temp; }
float Temperature() { //Temperature ("C")
temp = (transCharToInt(databuffer, 13, 15) - 32.00) * 5.00 / 9.00;
return temp; }
float RainfallOneHour() { //Rainfall (1 hour)
temp = transCharToInt(databuffer, 17, 19) * 25.40 * 0.01;
return temp; }
float RainfallOneDay() { //Rainfall (24 hours)
temp = transCharToInt(databuffer, 21, 23) * 25.40 * 0.01;
return temp; }
int Humidity() { //Humidity
return transCharToInt(databuffer, 25, 26); }
float BarPressure() { //Barometric Pressure
temp = transCharToInt(databuffer, 28, 32);
return temp / 10.00; }
void setup() {
Serial.begin(9600);
while (!Serial) {
;
}
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
Ethernet.begin(mac, ip);
}
}
void loop() {
while(true){
getBuffer(); //Begin!
Serial.print("Wind Direction: ");
Serial.print(WindDirection());
Serial.println(" ");
Serial.print("Average Wind Speed (One Hour): ");
Serial.print(WindSpeedAverage());
Serial.println("m/s ");
Serial.print("Max Wind Speed (Five Minutes): ");
Serial.print(WindSpeedMax());
Serial.println("m/s");
Serial.print("Rain Fall (One Hour): ");
Serial.print(RainfallOneHour());
Serial.println("mm ");
Serial.print("Rain Fall (24 Hour): ");
Serial.print(RainfallOneDay());
Serial.println("mm");
Serial.print("Temperature: ");
Serial.print(Temperature());
Serial.println("C ");
Serial.print("Humidity: ");
Serial.print(Humidity());
Serial.println("% ");
Serial.print("Barometric Pressure: ");
Serial.print(BarPressure());
Serial.println("hPa");
Serial.println("");
Serial.println("");
if (client.connect(server, 80)) {
Serial.println("connected");
String URL="GET /update?api_key=RX25Q5K1OKOXXXXX&field1="+String(WindDirection())+"&field2="+String(WindSpeedAverage())+"&field3="+String(WindSpeedMax())+"&field4="+String(RainfallOneHour())+"&field5="+String(RainfallOneDay())+"&field6="+String(Temperature())+"&field7="+String(Humidity())+"&field8="+String(BarPressure())+"&ok=ok";
client.print(URL);
Serial.println(URL);
client.println("Connection: close");
client.println();
client.stop();
delay(1000);
}
else {
Serial.println("connection failed");
}
}
if (!client.connected()) {
Serial.println("disconnecting.");
client.stop();
while(true);
}
}
OK teman teman.....mudah yaaaaaaaaaaaaaaaaaaaaaaaa....
Artinya kita bisa juga mengaplikasikan arduino + Ethernet shield tanpa menggunakan ESP8266
Ethernet Shieldnya di sambungkan ke router menggunakan kabel RJ-45.


