Sedikit Pengenalan

Internet of Things Wifi ESP8266 merupakan project elektronika arduino, dimana pada project ini saya akan memberikan tutorial untuk mengendalikan semua LED melalui jaringan internet. Kok bisa? Bisa sekarang sudah dikembangkan dan sedang ramai dibicarakan tentang konsep IoT, yang merupakan sebuah konsep yang bertujuan untuk memanfaatkan konektivitas internet yang tersambung secara terus-menerus dengan server. Adapun manfaat dari kemampuan seperti berbagi data, remote control, dan sebagainya, termasuk juga pada benda di dunia nyata. Contohnya bahan pangan, elektronik, koleksi, peralatan apa saja, termasuk benda hidup yang semuanya tersambung ke jaringan lokal dan global melalui sensor yang tertanam dan selalu aktif.

Pada project ini saya akan membagikan project IoT ini dengan contoh pemrograman server dengan menggunakan bahasa pemrograman website PHP dan MySQL. Serta dengan pemrograman hardware dengan menggunakan Module wifi ESP8266 nodeMCU dengan bahasa pemrograman Arduino.

Cara Kerja IoT

Dari gambar diatas dapat dijelaskan bagaimana sistem IoT bekerja. IoT dibagi menjadi 3 bagian Things, Server, dan platform. Things merupakan alat yang sensor ataupun pengendali. Server merupakan tempat menyimpanan data Global maupun Local. Dan Platform merupakan perangkat komunikasi dengan manusia, dimana dapat berupa hardware, website, aplication, dll.

Instalasi Xampp Local Server

xampp control panel

Untuk tutorial installasinya dapat dilihat di video berikut:

Selanjutnya kita masuk tahap pemrograman, dimana teman-teman akan membuat sebuah program website sederhana dengan tampilan tombol dan koneksi dengan MySQL. OK langsung saja lanjut ke halaman selanjutnya.

Pemrograman Website (PHP, MySQL)

Selanjutnya temen-temen dapat membuat file PHP dengan menggunakan text editor, seperti notepad, notepad++, sublime, dan simpan dengan ekstensi .php. Simpan hasil file dapam folder htdocs  di XAMPP. Berikut ini beberapa file yang wajib di buat:

config.php

<?php
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "demo_iot";

$mysqli = mysqli_connect($dbhost,$dbuser,$dbpass,$dbname);

?>

index.php

 
<?php 
include 'config.php';
?>
<!DOCTYPE html>
<html>
<head>
<title>Fans Electronics IOT</title>
</head>
<body>
<button onclick="window.location.href='control.php?id=1&nilai=1'">ON</button>
<button onclick="window.location.href='control.php?id=1&nilai=0'">OFF</button>
<?php 
$data = mysqli_query($mysqli, "SELECT nilai FROM led WHERE id='1'");
if($val=mysqli_fetch_array($data)){
$hasil = $val['nilai'];
if($hasil == 1){
$status = "ON";
}
else {
$status = "OFF";
}
echo "LED1 ";
echo $status;
} 
?>
</body>
</html>

baca-data.php

<?php
include 'config.php';
$id = $_GET['id'];
$nilai_sensor=mysqli_query($mysqli,"SELECT nilai FROM led WHERE id='$id'");

if($val=mysqli_fetch_array($nilai_sensor)){
echo "#";
echo $val['nilai'];
echo "#@";
}
?>

control.php

<?php 
include 'config.php';
$id = $_GET['id'];
$nilai = $_GET['nilai'];
mysqli_query($mysqli,"UPDATE led SET nilai='$nilai' WHERE id='$id'");
header("location:index.php");
?>

Setelah pembuatan file lengkapnya selesai, lanjut proses pembuatan program arduino ESP8266. Baca di halaman selanjutnya.

Pemrograman ESP8266 (nodeMCU)

Bagi teman-temen yang belum tau cara install library ESP8266 di Arduino, bisa lihat divideo dibawah.

Program Control LED Arduino nodeMCU

#include <ESP8266WiFi.h>

#define LED D2

const char* ssid = "FansElectronics"; // Nama WIFI kamu
const char* password = "PasswordKamuApa?"; // Password Wifi
const char* host = "192.168.1.5"; // Link website / Ip Server

bool Parsing = false;
String dataPHP, data[8];
void setup()
{
Serial.begin(115200);
Serial.println();

Serial.printf("Connecting to %s ", ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println(" connected");

pinMode(LED, OUTPUT);
digitalWrite(LED, HIGH);
}

void loop()
{
WiFiClient client;

Serial.printf("\n[Connecting to %s ... ", host);
if (client.connect(host, 80)) {
Serial.println("connected]");
Serial.println("[Sending a request]");

String url = "tutorial-iot/baca-data.php?id=1"; // Lokasi File Baca Data
client.print(String("GET /") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n" +
"\r\n"
);

Serial.println("[Response:]");
while (client.connected())
{
if (client.available())
{
dataPHP = client.readStringUntil('\n');
int q = 0;
Serial.print("Data Masuk : ");
Serial.print(dataPHP);
Serial.println();

data[q] = "";
for (int i = 0; i < dataPHP.length(); i++) {
if (dataPHP[i] == '#') {
q++;
data[q] = "";
}
else {
data[q] = data[q] + dataPHP[i];
}
}
Serial.println(data[1].toInt());
digitalWrite(LED, data[1].toInt());
Parsing = false;
dataPHP = "";
}
}
client.stop();
Serial.println("\n[Disconnected]");
}
else
{
Serial.println("connection failed!]");
client.stop();
}
delay(5000); // Jeda pembacaan setiap 5 detik
}

Ok sekian dulu artikel rangkuman dari project IOT dengan menggunakan program PHP, MySQL dan Arduino. Jika ada pertanyaan bisa tinggalkan pesan pada kotak komentar dibawah. Semoga Bermanfaat.