Anda di halaman 1dari 6

AKUISISI DATA BERBASIS WEB SERVER

1. Tujuan
Praktikum ini bertujuan untuk:
a. Praktikan mengenal perangkat komunikasi wireless NodeMCU untuk akusisi data
b. Praktikan mampu membuat rangkaian akusisi data nodemcu dan computer sebagai
web server
c. Praktikan dapat membuat program pengiriman data akuisisi secara wireless, serta
menyimpan data ke database mysql dan server side scripting dengan PHP.

2. Dasar Teori

TCP/IP merupakan protokol komunikasi antar perangkat yang telah banyak digunakan
dalam komunikasi dan sistem akuisisi data. Salah satu jenis standar komunikasi yang
menggunakan TCP/IP adalah teknologi Ethernet. Ethernet banyak diaplikasikan untuk
komunikasi antarmuka pada sistem akuisisi data maupun komunikasi data. Contoh penggunaan
antarmuka dengan Ethernet adalah antara komputer dengan mikrokontroler yang terhubung
melalui jaringan. Jenis komunikasi antara kedua perangkat ini menggunakan komunikasi
client-server.
Server merupakan perangkat yang berfungsi melayani perangkat lain sebagai client
nya. Server akan menerima masukan atau permintaan, kemudian melakukan operasi atau
proses, dan menghasilkan data keluaran yang diberikan kepada client. Server dapat
menjalankan berbagai jenis layanan atau service sesuai kemampuan dari mesin atau perangkat
server tersebut. Sedangkan client merupakan perangkat yang melakukan permintaan atau
memberikan inputan dan menerima hasil atau keluaran dari proses/operasi yang dijalankan oleh
server.
Dalam berkomunikasi, perangkat client-server menggunakan aturan socket, yaitu suatu
protokol dimana suatu aplikasi atau layanan dapat berjalan menggunakan kombinasi antara IP
ADDRESS dengan PORT. IP address merupakan identitas jaringan dari suatu perangkat,
sedangkan port merupakan identitas aplikasi atau layanan yang berjalan di suatu perangkat
(server). Selanjutnya komunikasi dilakukan dengan protokol TCP atau UDP.
Dalam komunikasi client-server harus ditentukan terlebih dahulu fungsi dari masing-
masing perangkat, apakah akan bekerja sebagai server atau sebagai client. Pendefinisian ini
penting karena prosedur atau protokol komunikasi yang dilakukan oleh server dan client tidak
sama persis.
Perangkat keras yang digunakan sebagai antarmuka wireless pada arduino dapat
menggunakan nodemcu. Nodemcu merupakan salah satu perangkat atau chip wireless yang
dapat digunakan untuk komunikasi berbasis Ethernet menggunakan protokol TCP maupun
UDP. Modul nodemcu telah banyak diaplikasikan pada system akuisis data berbasis wireless.
Modul sebagiamana pada Gambar 1 ini mampu mengirimkan data secara wireless serta
melakukan pengolahan data akusisi, sehingga sangat sesuai untuk mengembangkan perangkat
aplikasi IoT.
Gambar 1. Wireless modul nodemcu
Nodemcu dapat difungsikan dengan mikrokontroler/arduino sebagai penyedia servis atau
server data. Sehingga aplikasi pada sistem akuisisi data dapat dikembangkan menjadi sensor
network.

3. Pelaksanaan praktikum

Pada praktikum ini Praktikan akan membuat suatu aplikasi akuisisi data berbasis wireless dan
web server secara sederhana. Mekanismenya adalaha nodemcu sebagai perangkat akuisisi data
dapat memanfaatkan pin I/O atau menghasilkan data random, kemudian mengirimkan data
tersebut melalui jaringan wireless pada suatu akses poin menuju computer sebagai server
database dan webserver serta data akan disimpan pada database mysql. Komputer juga akan
menampilkan data hasil pengiriman nodemcu yang telah tersimpan pada database.

4. Bahan dan Alat praktikum


1. Alat
a. Modul nodemcu
b.Komputer dengan browser dan XAMPP
c. Jaringan wireless, memiliki SSID dan password
2. Bahan
a. Kabel micro usb
b.Akses point

5. Langkah Kerja
Praktikum ini dilaksanakan dengan tata-laksana sebagai berikut:
1. Pembuatan database.
a. Aktifkan XAMPP control panel, dan aktifkan PHP dan MySQL server.
b. Akses database mysql pada XAMPP menggunakan phpMyAdmin di browser
localhost/phpmyadmin.
c. Klik menu New database, lalu buat database baru dengan nama db_nodemcu
d. Buat table baru dengan nama tabel tb_daq kemudian buat kolom id,
datasensor, dan waktu sebagai berikut:
 Id: type data INT 13, PRIMARY dan bersifat AUTO INCREMENT
(A.I)
 Datasensor: type VARCHAR 13
 Waktu: type Timestamp 6.

Hasil pembuatan ditunjukkan seperti Gambar 2 berikut

Gambar 2. Hasil pembuatan databsase

2. Pembuatan program PHP, terdiri dari program koneksi database dan program
penyimpanan ke database. Buat direktori baru di XAMPP/htdocs dengan nama
nodemcudaq.
3. Program koneksi database. Simpan program berikut dengan nama koneksi.php
pada direktori nodemcudaq
<?php
try {
$host = "localhost";
$username = "root";
$password = "";
$dbname = "db_nodemcu";
$PDO = new PDO("mysql:host=" . $host . ";dbname=" . $dbname .
";charset=utf8", $username, $password);
} catch (PDOException $erro) {
echo "Gagal Terhubung ke database : " . $erro->getMessage();
}
?>

4. Program menyimpan data yang diterima dari nodemcu dengan metode GET ke
database. Simpan program ini dengan nama tambah.php
<?php
include('koneksi.php');
$sensor = $_GET['hasilsensor'];
$sql = "INSERT INTO tb_daq (datasensor) VALUES
(:datasensor)";
$stmt = $PDO->prepare($sql);
$stmt->bindParam(':hasilsensor’, $sensor);
if($stmt->execute()) {
echo "sukses";
}else{
echo "gagal";
}
?>

5. Hubungkan nodemcu dengan computer menggunakan kabel usb micro, lalu buat
program berikut serta upload ke nodemcu. Ganti nama wifi, password, serta IP host
computer sesuai dengan yang digunakan.
#include <ESP8266WiFi.h>
const char* ssid = "Constantinople"; //nama wifi
const char* password = "14Mei1453"; //password
const char* host = "192.168.8.1"; //IP PC
#define pinSensor A0
int nilaibawah = 0;
int nilaiatas = 1023;
float Vref = 2.5;
void setup() {
Serial.begin(115200);
delay(10);
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
void loop() {
sensorValue = random(nilaibawah, nilaiatas);
hasilsensor = sensorValue * Vref / 1024;
Serial.print("connecting to ");
Serial.println(host);
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
return;
}

// Membuat URI (Universal Request Identifier) untuk suatu


request
String url = "/nodemcu_daq/tambah.php?"; // nodemcu_daq adalah
direktori webserver, tambah.php adalah file dalam webserver
url += "hasilsensor="; //menambah var url dengan string
"hasilsensor="
url += hasilsensor; //menambah variabel url dg string
hasilsensor

Serial.print("Requesting URL: ");


Serial.println(url);

// Perintah dibawah akan mengirimkan request ke server


client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
unsigned long timeout = millis();
while (client.available() == 0) {
if (millis() - timeout > 5000) {
Serial.println(">>> Client Timeout !");
client.stop();
return;
}
}
// Menyimpan/membaca karakter balasan dari server dan
ditampilkan pada Serial (jika perlu)
while (client.available()) {
String line = client.readStringUntil('\r');
//Serial.print(line);
if (line.indexOf("sukses") != -1) {
Serial.println();
Serial.println("data berhasil disimpan");
} else if (line.indexOf("gagal") != -1) {
Serial.println();
Serial.println("data gagal disimpan");
//digitalWrite(alarmPin, HIGH);
}
}
Serial.println();
Serial.println("closing connection");
delay(10000);
}

6. Buat program penampil data pada webserver. Simpan program berikut dengan
nama index.php pada direktori nodemcudaq.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>NODEMCU DAQ Data Sensor</title>
</head>
<body>
<form action="" method="post">
<input type="date" name="data">
<input type="submit" name="submit" value="Cari Data">
</form>

<?php
include('koneksi.php');

if($_SERVER['REQUEST_METHOD'] == "POST") {
$dataWaktu = $_POST['data'];
$sql = "SELECT * FROM tb_daq WHERE waktu LIKE '%" .
$dataWaktu . "%'";
}else{
$dataActual = date('Y-m');
$sql = "SELECT * FROM tb_daq WHERE waktu LIKE '%" .
$dataActual . "%'";
}
$stmt = $PDO->prepare($sql);
$stmt->execute();
echo "<br>";
echo "<table border=\"1\">";
echo "<tr> <th>Hasil sensor</th>
<th>Waktu</th> </tr>";
while ($tampil = $stmt->fetch(PDO::FETCH_OBJ)){
$timestamp = strtotime($tampil->waktu);
$dateTabel = date('d/m/Y H:i:s', $timestamp);
echo "<tr>";
echo "<td>" . $tampil->datasensor . "</td>";
echo "<td>" . $dateTabel . "</td>";
echo "</tr>";
}
echo "</table>";
?>
</body>
</html>

7. Jalankan web browser dan akses file webserver localhost/nodemcudaq/index.php.


Maka jika program benar akan menampilkan sebagaimana Gambar 3
Gambar 3. Akses data web server pada browser

Anda mungkin juga menyukai