Bagaimana mengirim data dari Arduino ke web (website)? Tulisan ini sebagai catatan untuk belajar terutama arduini dan IoT. Contoh kasusnya adalah bagaimana secara rutin mengirim informasi (nilai) perubahan suhu dan kelembaban udata ke webserver. Salah satu topologi yang digunakan disini adalah data dari sernsor di arduino di dikirm ke server melalui jaringan (ethernet).
Kebutuhan utama adalah sebagai berikut :
- Client : Arduino Uno (support Ethernet) dan DHT 11 sensor
- Server : Web server Support php dan MySql database
- Progrma di Client
- Program di Server
Contoh code program di Client :
#include <DHT.h>
#include <Ethernet.h>
#include <SPI.h>byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x01 }; // RESERVED MAC ADDRESS
EthernetClient client;#define DHTPIN 2 // SENSOR PIN
#define DHTTYPE DHT11 // SENSOR TYPE – THE ADAFRUIT LIBRARY OFFERS SUPPORT FOR MORE MODELS
DHT dht(DHTPIN, DHTTYPE);long previousMillis = 0;
unsigned long currentMillis = 0;
long interval = 250000; // READING INTERVALint t = 0; // TEMPERATURE VAR
int h = 0; // HUMIDITY VAR
String data;void setup() {
Serial.begin(115200);if (Ethernet.begin(mac) == 0) {
Serial.println(“Failed to configure Ethernet using DHCP”);
}dht.begin();
delay(10000); // GIVE THE SENSOR SOME TIME TO STARTh = (int) dht.readHumidity();
t = (int) dht.readTemperature();data = “”;
}void loop(){
currentMillis = millis();
if(currentMillis – previousMillis > interval) { // READ ONLY ONCE PER INTERVAL
previousMillis = currentMillis;
h = (int) dht.readHumidity();
t = (int) dht.readTemperature();
}data = “temp1=” + t + “&hum1=” + h;
if (client.connect(“www.*****.*************.com”,80)) { // REPLACE WITH YOUR SERVER ADDRESS
client.println(“POST /add.php HTTP/1.1”);
client.println(“Host: *****.*************.com”); // SERVER ADDRESS HERE TOO
client.println(“Content-Type: application/x-www-form-urlencoded”);
client.print(“Content-Length: “);
client.println(data.length());
client.println();
client.print(data);
}if (client.connected()) {
client.stop(); // DISCONNECT FROM THE SERVER
}delay(300000); // WAIT FIVE MINUTES BEFORE SENDING AGAIN
}
Metode pengiriman ke webserver menggunakan metode post ke alamat web (php) yang sudah disiapkan. Seperti posting menggunakan web browser, hanya saja disini yang browsing dan posting adalah mesin arduino dengan mambawa data (suhu dan kelembaban udara). Data kirima kana tersimpan di database MySQL dan ditampilkan dengan menggunakan php.
Untuk kode selengkapnya bisa kunjungi Bahan Bacaan yang dijadikan sebagai rujukan :