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
#include
#includebyte 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 :
- //www.instructables.com/id/PART-1-Send-Arduino-data-to-the-Web-PHP-MySQL-D3js/
- //store.arduino.cc/usa/arduino-ethernet-shield-2
- Arduino Web Client
Post Views: 4,048
untuk percobaan yg harus disiapkan
-software : xampp [ webserver dan mysql server]
-hardware : arduino + ethernet shield + kabel data utp + komputer
-sedikit pengetahuan dasar script php.
Kita akan menyimpan data arduino melalui webserver [script php]. disini arduino berlaku sebagai web client spt chrome atau ie
Langkah langkah
- upload sketch arduino sbb
Arduino -webserver [script php] -> mysql
#include
#include
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress server[192,168,1,10]; //
alamat IP komputer yg terinstall webserver + mysql
//char server[] = “www.websiteku.com”; // name address for websiteku.com [using DNS]
// Set the static IP address to use if the DHCP fails to assign
IPAddress ip[192, 168, 1, 177];
// Initialize the Ethernet client library
EthernetClient client;
void setup[] {
// Open serial communications
Serial.begin[115200];
// start the Ethernet connection:
if [Ethernet.begin[mac] == 0] {
Ethernet.begin[mac, ip];
}
// give the Ethernet shield a second to initialize:
delay[1000];
Serial.println[“connecting…”];
// if you get a connection, report back via serial:
if [client.connect[server, 80]]
{
Serial.println[“connected”];
// Make a HTTP request:
client.println[“GET /latihan1/update_data.php?temperature=99 HTTP/1.1”];
client.println[“Host: //www.google.com”];
client.println[“Connection: close”];
client.println[];
} else
{
// if you didn’t get a connection to the server:
Serial.println[“connection failed”];
}
}
void loop[]
{
// if there are incoming bytes available
// from the server, read them and print them:
if [client.available[]]
{
char c = client.read[];
Serial.print[c];
}
// if the server’s disconnected, stop the client:
if [!client.connected[]]
{
Serial.println[];
Serial.println[“disconnecting.”];
client.stop[];
// do nothing forevermore:
while [true];
}
}
2. tulis script PHP berikut dan simpan dgn nama : update_data.php , tempat menyimpan di folder latihan1 di dldm folder httdoc
3. jalankan xampp , start webserver apache dan mysql server.
4. buat tabel temperature di database test . buat menggunakan phpMyadmin
5. restart arduino
6. buka localhost/phpmyadmin lihat database test dan tabel temperatur apakah data sdh tersimpan/terupdate.