Kontrol Lampu LED Menggunakan PHP dan Arduino

Kali ini saya akan share tutorial mengontrol hidup mati nya lampu led menggunakan PHP Script yang dihubungkan dengan Arduino. Kebetulan project ini adalah tugas UAS saya yang baru saja selesai.

Yang kita butuhkan disini adalah :
  • Arduino MEGA 2560
  • Software Arduino Sketch ( https://www.arduino.cc/en/Main/Software )
  • Software Processing ( https://processing.org/download/ )
  • Arduino Library for Processing ( http://playground.arduino.cc/Interfacing/Processing )
  • XAMPP / Apache2 Webserver
Dan juga codingan PHP, Processing, dan Ardino Sketch nya.

Disini saya akan menjelaskan bagian program programnya.
Dimulai dari Arduino Sketch nya.

Disini saya menggunakan 3 buah LED. Pin 8, 9, dan 10 sebagai Output nya.
if (incomingByte == 'A') {
    digitalWrite(ledPin1, HIGH);
    }
Disini jika inputan A maka Lampu 1 ( ledPin1 ) akan hidup ( HIGH )
else if (incomingByte == 'D') {
      digitalWrite(ledPin1, LOW);
    }
Dan jika inputan D, maka Lampu 1 akan mati ( LOW ). Begitu juga untuk Lampu 2 dan 3.
Untuk test awal, silahkan memasukkan nilai input A, B, C, dst melalui serial monitor.

Jika lampu 1, 2, 3 bisa dikontrol hidup mati nya sesuai dengan program, lanjut ke penjelasan coding bagian PHP.
function save($nmr) {
$cetak = fopen("result.txt", "w");
fwrite($cetak, $nmr);
fclose($cetak);
Kita menggunakan fungsi fopen untuk menghasilkan file result.txt yang akan menyimpan hasil dari variabel $nmr.
if($_GET["lampu1"] == "1") {
echo "Lampu 1 Nyala<br>";
save("1");
Jika kita melakukan GET pada variabel lampu1 dengan inputan " 1 " , maka di result.txt juga akan menyimpan angka " 1 " .
Begitu juga untuk Lampu 2 dan Lampu 3. Silahkan lihat sendiri di kodingannya.
Selanjutnya di bagian Processing.

void setup()  {
    port = new Serial(this, "/dev/ttyACM0", 9600);
Pastikan port nya sesuai dengan yang ada di Arduino Sketch.
String onoroff[] = loadStrings("http://localhost/skb/result.txt");
Ini untuk mengambil nilai dari result.txt atau anga yang tercetak disana. Silahkan sesuaikan sendiri direktori dimana file tersebut berada.
if (onoroff[0].equals("1") == true) {
    println(" - MENGHIDUPKAN LAMPU 1");
    port.write('A');
Jika file result.txt tadi bernilai " 1 ",  maka Processing akan memerintah Arduino untuk menghidupkan Lampu 1 dengan mengeksekusi parameter " A " . Perhatikan kembali diatas dimana nilai A berarti ledPin1 bernilai HIGH (hidup).
Jika port yang kalian set di Processing sudah sesuai dengan yang di Arduino, seharus nya saat di klik "Run" tidak akan ada error.

Oke lanjut ke bagian terakhir yaitu Menghidupkan LED Menggunakan PHP.
Saat kalian klik tombol " LAMPU 1 ON " seharusnya result.txt akan bernilai " 1 ", dan saat itu dibaca oleh Processing maka Processing akan memerintah Arduino untuk mengeksekusi parameter " A " sehingga lampu 1 akan hidup. Begitu juga dengan tombol lain.
Oke sekian artikel kali ini semoga bermanfaat.
Jika ada yang tidak paham atau ingin ditanyakan silahkan komentar.