Skip to main content
Photo : dvdrqe6rtztjkbesezkv

Membuat Server Untuk IoT

Written on June 21, 2024 by Zulzario Zaeri.

4 min read
––– views

Introduction

Internet of Things (IoT) telah menjadi salah satu teknologi yang paling banyak dibicarakan dalam beberapa tahun terakhir.

Memanfaatkan IoT, Anda dapat mengontrol dan mengawasi berbagai perangkat dari jarak jauh melalui internet.

Dalam blog ini, kita akan membahas cara membuat server IoT sederhana menggunakan PHP Native. Server ini akan berfungsi sebagai perantara antara perangkat IoT dan pengguna melalui web.

Persiapan

Sebelum memulai, pastikan Anda memiliki lingkungan pengembangan yang sudah siap:

  • Web Server: Pastikan Anda memiliki web server lokal (misalnya Apache atau Nginx) dan PHP terinstal di komputer Anda.
  • Database: Anda memerlukan database untuk menyimpan data dari perangkat IoT. Dalam contoh ini, kita akan menggunakan MySQL.

Jika anda menggunakan Windows, cukup install XAMPP pada komputer Anda.

Membuat Database

Langkah pertama adalah membuat database untuk menyimpan data dari perangkat IoT. Anda bisa menggunakan MySQL dengan struktur tabel sederhana seperti berikut:

-- phpMyAdmin SQL Dump
-- version 5.2.1
-- https://www.phpmyadmin.net/
--
-- Host: localhost
-- Generation Time: Jun 21, 2024 at 06:05 AM
-- Server version: 11.3.2-MariaDB
-- PHP Version: 8.3.7
 
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
 
 
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
 
--
-- Database: `test`
--
 
-- --------------------------------------------------------
 
--
-- Table structure for table `data`
--
 
CREATE TABLE `data` (
  `id` int(11) NOT NULL,
  `kelembapan` float NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
 
ALTER TABLE `data`
  ADD PRIMARY KEY (`id`);
 
ALTER TABLE `data`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8;
COMMIT;

Tabel data akan digunakan untuk menyimpan data dari sensor.

--
-- Database: `test`
--

Di bagian test ubah menjadi database kalian, sebagai contoh saya menggunakan database test, lalu import melalui phpmyadmin.

normal-layout-three

Membuat Backend

Selanjutnya, mari kita buat backend PHP untuk menghandle data dari perangkat IoT dan menyimpannya ke dalam database. Buatlah file post.php dengan kode berikut:

<?php
 
// Koneksi ke database
$hostname = "localhost";
$username = "root"; // Ganti dengan username MySQL Anda
$password = null; // Ganti dengan password MySQL Anda
$database = "test";
 
$conn = new mysqli($hostname, $username, $password, $database);
 
if ($conn->connect_error) {
  die("Koneksi database gagal: " . $conn->connect_error);
}
 
// Ambil data dari perangkat IoT
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  $kelembapan = $_POST["kelembapan"];
 
  // Masukkan data ke dalam database
  $sql = "INSERT INTO `data` (`id`, `kelembapan`) VALUES (NULL, '$kelembapan');";
 
  if ($conn->query($sql) === true) {
    echo "Data sensor berhasil disimpan.";
  } else {
    echo "Error: " . $sql . "<br>" . $conn->error;
  }
}
 
$conn->close();

Ganti $username, $password dan database sesuai dengan punya kalian.

Membuat Frontend

Terakhir, kita akan membuat tampilan pengguna sederhana untuk menampilkan data dari perangkat IoT. Buatlah file index.php dengan kode berikut:

<!DOCTYPE html>
<html>
<head>
    <title>IoT Server Dashboard</title>
</head>
<body>
    <h2>Data dari Perangkat IoT</h2>
    <table border="1">
        <tr>
            <th>No.</th>
            <th>Kelembapan</th>
        </tr>
        <?php
        $hostname = "localhost";
        $username = "root"; // Ganti dengan username MySQL Anda
        $password = null; // Ganti dengan password MySQL Anda
        $database = "iot_server";
 
        $conn = new mysqli($hostname, $username, $password, $database);
 
        // Periksa koneksi
        if ($conn->connect_error) {
            die("Koneksi database gagal: " . $conn->connect_error);
        }
 
        // Ambil data dari database
        $sql = "SELECT * FROM sensor_data ORDER BY reading_time DESC";
        $result = $conn->query($sql);
 
        if ($result->num_rows > 0) {
            $counter = 1;
            while($row = $result->fetch_assoc()) {
                echo "<tr>";
                echo "<td>" . $counter . "</td>";
                echo "<td>" . $row["kelembapan"] . "</td>";
                echo "</tr>";
                $counter++;
            }
        } else {
            echo "<tr><td colspan='4'>Tidak ada data tersedia.</td></tr>";
        }
        $conn->close();
        ?>
    </table>
</body>
</html>

Selamat, server sederhana IoT kita sudah jadi dan siap untuk digunakan.

Tweet this article