Cara menghubungkan arduino dengan php

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 :

  1. Client : Arduino Uno [support Ethernet] dan DHT 11 sensor
  2. Server : Web server Support php dan MySql database
  3. Progrma di Client
  4. Program di Server

Contoh code program di Client :

#include
#include
#include

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 INTERVAL

int 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 START

h = [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

  1.  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.

Bài mới nhất

Chủ Đề