Anda di halaman 1dari 30

LAPORAN

PROYEK TUGAS BEBAS


DESAIN KOMUNIKASI WIRELESS
RANCANG BANGUN MONITORING RUANG INKUBATOR PENETASAN TELUR
BERBASIS ANDROID

Disusun untuk memenuhi tugas


Mata kuliah Praktikum Desain Komunikasi Wireless
Dosen Pembimbing :
Ir. AW Purwandi, MT.

Oleh :
JTD 4C
Kelompok 5
Rizal Ardianto 1341160067
Rizyuda Nur Ilman 1341160034
Ryan Charies Mahendra Putra 1341160059
Savira Shanaz Nadia 1341160038

PROGRAM STUDI JARINGAN TELEKOMUNIKASI DIGITAL


JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI MALANG
TAHUN 2016
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Seiring dengan perkembangan zaman kebutuhan akan teknologi semakin meningkat, apalagi
dizaman era digital ini masyarakat menginginkan teknologi bisa dimanfaatkan pada sektor
usaha seperti halnya usaha peternakan khusunya pada proses penetasan telur, pada umunya
alat penetas telur masih menggunakan mikrokontroler sederhana seperti arduino dan atmega
untuk dimonitoring di LCD, dengan cara tersebut peternak harus setiap kali mengecek
melihat secara langsung monitor LCD yang ada di inkubator telur apakah sudah waktu
menetas atau belum sehingga tidak praktis dalam penggunaannya, dalam proyek tugas bebas
ini, kami akan coba mengembangkan alat penetas telur yang dapat di monitoring dang
dikendalikan lewat device Smartphone android, keunggulan dari alat kami yaitu sistem
penetasan bisa dimonitoring lewat android, suhu di incubator bisa dikendalikan lewat
Smartphone, dan peternak tidak perlu susah-susah mengcek incubator telur, dengan
memanfaatkan jaringan wifi semua keadaan di incubator bisa di monitoring lewat android.

1.2Rumusan masalah
1. Bagaimana merancang dan membangun alat incubator telur yang bisa
di monitor
2. Membuat sof

BAB III
PERANCANGAN SISTEM
3.1TAHAPAN PERANCANGAN SISTEM
Tahapan Pengerjaan Proyek Tugas Bebas ini adalah sebagai berikut :

Sesuai dengan Flowchar tahapan pengerjaan proyek tugas bebas dapat dijelaskan
bahwa tahapan pertama adalah Tahap pengumpulan data sperti studi pustaka penelitian
terdahulu, komponen yang diperlukan, program di web dan android, dan cara kerja
sistem. Kemudian tahap kedua yaitu perancangan dan pembuatan mekanik yaitu
membuat prototype ruang incubator telur dan pembuatan hardware seperti rangkaian
dimmer arduino, dan rangkaian LM35. Tahap ketiga yaitu pembuatan program android
dan web kemudian jika program yang dibuat sesuai dengan apa yang diharapkan maka
lanjut ke tahap berikutnya jika tidak maka perbaikan dan kembali di pembuatan program.
Tahap keempat yaitu pengamatan sistem penetasan telur di android apakah sesuai dengan
yang di buat atau tidak , kemudian tahap berikutnya analisa data pengamatan alat. Tahap
terahir adalah pembuatan laporan proyek tugas bebas.
Diagram Blok sistem
Sesuai dengan gambar diagram blok sistem dapat dijelaskan bahwa ruang incubator di
pasang sensor suhu LM35 untuk mengetahui keadaan suhu di dalam ruangan
incubator,keudian dirangkaian tersebut di pasang rangkaian dimmer lampu yang berguna
untuk mengurangi kecerahan dari pancaran sinar lampu. Rangkaian ini dapat digunakan
juga sebagai pengatur lup terbuka dari panas solder ataupun heater tetapi rangkaian ini
tidak dapat diterapkan untuk lampu TL. Kemudian data sensor akan dikirim ke arduino
Uno, terkebih dahulu arduino harus diberi daya dari power bank, kemudian pasang
Ethernet shield untuk menghubungkan ke perangkat AP (Access Point), kemudian
dikendalikan di mobile smartphone.

Sesuai dengan diagram blok sistem dapat di buat flowchart cara kerja sistem, seperti yang
ditunjukkan pada gambar dibawah ini :
Flowchart ALur kerja sistem

Pada flowchart diatas dapat dijelaskan cara kerja sistem nya yaitu :
1. Sensor Suhu (LM35) akan membaca suhu kotak pada ruangan penetas telur
2. Jika suhu < 30 derajat maka arduino akan mengontrol / menaikkan intensitas cahaya
lampu menggunakan dimmer yang dibangkitkan oleh sinyal PWM pada arduino
sampai suhu ruangan 30 derajat
3. Jika suhu > 30 derajat maka arduino akan mengontrol / menurunkan intensitas cahaya
lampu menggunakandimmer yang dibangkitkan oleh sinyal PWM pada arduino
sampai suhu ruangan 30 derajat
4. Jika suhu = 30 derajat maka arduino akan menjaga suhu dalam keadaan konstan

Tahapan tahapan pembuatan yaitu :


a. Membuat Database untuk arduino dan tampilan web.
Buka Software Xampp, aktifkan module Apache dan MySQL dengan
Mengklik Start pada Menu Actions.

Gambar 4.3 Tampilan Xampp untuk memulai Apache dan MySQL


Buka Browser dan ketikan http://localhost/phpmyadmin

Gambar 4.4 Alamat localhost phpMyAdmin

Kemudian akan tampil Interface phpMyAdmin

Gambar 4.4 tampilan interface phpMyAdmin


Buat Database baru dengan nama prototype_inkubator.tbl dan isikan tabel
id, komponen, nilai , kemudian di dalam tabel isikan lampu dan susu
Desain Template web di software notepad++ dengan format :
a) Membuat Tampilan web dan simpan ke dalam index.php dengan
program sebagai berikut :

<!DOCTYPE HTML>
<html>
<head>
<title>Prototype Desain Komunikasi Wireless | Kelompok
5</title>
<meta name="viewport" content="width=device-width,
initial-scale=1">
<meta http-equiv="Content-Type" content="text/html;
charset=utf-8" />
<meta name="keywords" content="Concerted Responsive
web template, Bootstrap Web Templates, Flat Web Templates,
Android Compatible web template,
Smartphone Compatible web template, free webdesigns for
Nokia, Samsung, LG, SonyErricsson, Motorola web design" />
<script type="applijewelleryion/x-javascript">
addEventListener("load", function() { setTimeout(hideURLbar,
0); }, false); function hideURLbar(){ window.scrollTo(0,1); }
</script>
<link href="css/bootstrap.css" rel='stylesheet' type='text/css'
/>
<!-- Custom Theme files -->
<link href='//fonts.googleapis.com/css?family=Viga'
rel='stylesheet' type='text/css'>
<link href='//fonts.googleapis.com/css?
family=Roboto+Condensed' rel='stylesheet' type='text/css'>
<link href='//fonts.googleapis.com/css?
family=Lato:400,700,300' rel='stylesheet' type='text/css'>
<link href="css/style.css" rel='stylesheet' type='text/css' />

<link rel="stylesheet" href="css/flexslider.css"


type="text/css" media="screen" />
<link rel="stylesheet" href="css/bootstrap-toggle.min.css"
type="text/css" media="screen" />
<script src="js/jquery-1.11.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/bootstrap-toggle.min.js"></script>
<script type="text/javascript" src="js/move-top.js"></script>
<script type="text/javascript"
src="js/easing.js"></script>
<script type="text/javascript">
jQuery(document).ready(function($) {
$(".scroll").click(function(event){

event.preventDefault();
$('html,body').animate({scrollTop:$
(this.hash).offset().top},1200);
});
});
</script>
<script type="text/javascript">
$(document).ready(function() {

$().UItoTop({ easingType: 'easeOutQuart' });


});
</script>
<script src="js/jquery.chocolat.js"></script>
<link rel="stylesheet" href="css/chocolat.css"
type="text/css" media="all" />
<!--light-box-files -->
<script type="text/javascript">
$(function() {
$('#example1 a').Chocolat();
});
</script>
<script type="text/javascript">
$(function() {
$('#portfolio a').Chocolat();
});
</script>
<!-- animation-effect -->
<link href="css/animate.min.css" rel="stylesheet">
<script src="js/wow.min.js"></script>
<script>
new WOW().init();

$(function() {

$("#led").load("data.php?data=led");
$("#sw").load("data.php?data=switch");
$("#potensio").load("data.php?data=potensio");

setInterval(function(){
$("#led").load("data.php?data=led", function
(response){
if (response == "OFF"){
$('#ledOn').bootstrapToggle('off');
}else{
$('#ledOn').bootstrapToggle('on');
}
});

$("#sw").load("data.php?data=switch", function
(response){
if (response == "OFF"){
$("span.glyphicon-transfer").css({
"color":"#9A9995",
"transform": "rotateY(360deg)",
"transition": ".5s all",
"-webkit-transition": ".5s all",
"-moz-transition": ".5s all",
"-o-transition": ".5s all",
"-ms-transition": ".5s all"
});
}else{
$("span.glyphicon-transfer").css({
"color":"#ed4f2e",
"transform": "rotateY(360deg)",
"transition": ".5s all",
"-webkit-transition": ".5s all",
"-moz-transition": ".5s all",
"-o-transition": ".5s all",
"-ms-transition": ".5s all"
});
}
});

$("#potensio").load("data.php?data=potensio",
function (){
$("span.glyphicon-compressed").css({
"color":"#ed4f2e",
"transform": "rotateY(360deg)",
"transition": ".5s all",
"-webkit-transition": ".5s all",
"-moz-transition": ".5s all",
"-o-transition": ".5s all",
"-ms-transition": ".5s all"
});
});

}, 1000);

$('#ledOn').change(function() {
if ($("#ledOn:checked").length == 0){

$.post("data.php?data=0");

$("span.glyphicon-lamp").css({
"color":"#9A9995",
"transform": "rotateY(360deg)",
"transition": ".5s all",
"-webkit-transition": ".5s all",
"-moz-transition": ".5s all",
"-o-transition": ".5s all",
"-ms-transition": ".5s all"
});
}else{
$.post("data.php?data=1");

$("span.glyphicon-lamp").css({
"color":"#ed4f2e",
"transform": "rotateY(360deg)",
"transition": ".5s all",
"-webkit-transition": ".5s all",
"-moz-transition": ".5s all",
"-o-transition": ".5s all",
"-ms-transition": ".5s all"
});
}
});
});
</script>
</head>
<body>
<!-- banner -->
<div class="w3l-1">
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header wow fadeInLeft
animated animated" data-wow-delay=".5s" style="visibility:
visible; animation-delay: 0.5s; animation-name: fadeInLeft;">
<h1><a class="navbar-brand"
href="#">Kelompok 5</a></h1>
</div>
</div>
</nav>
</div>
<!-- /banner -->

<!-- services -->


<div class="container">
<div class="services" id="services">
<div class="ser-top wthree-3 wow
fadeInDown" data-wow-duration=".8s" data-wow-
delay=".2s">
<h3>Desain Komunikasi Wireless</h3>
<p>Interface Android</p>
</div>
<div class="col-md-4 ser-left wow fadeInDown"
data-wow-duration=".8s" data-wow-delay=".2s">
<span class="glyphicon glyphicon-lamp"
aria-hidden="true"></span>
<h4>LED</h4>
<p hidden id="led"></p>
<input id="ledOn" type="checkbox"
data-toggle="toggle" data-onstyle="warning">
</div>
<div class="col-md-4 ser-left wow fadeInDown"
data-wow-duration=".8s" data-wow-delay=".2s">
<span class="glyphicon glyphicon-
transfer" aria-hidden="true"></span>
<h4>Button Switch</h4>
<p id="sw"></p>
</div>
<div class="col-md-4 ser-left wow fadeInDown"
data-wow-duration=".8s" data-wow-delay=".2s">
<span class="glyphicon glyphicon-
compressed" aria-hidden="true"></span>
<h4>Tegangan Potensio</h4>
<p id="potensio"></p>
</div>
<div class="clearfix"></div>
</div>
</div>
<!-- /services -->
<div class="footer wow fadeInDown" data-wow-
duration=".8s" data-wow-delay=".2s">
<div class="container">
<p> 2016. All Rights Reserved</p>
</div>
</div>
<a href="#" id="toTop" style="display: block;"><span
id="toTopHover" style="opacity: 0;"></span> <span
id="toTopHover" style="opacity: 0;"> </span></a>
<!--- footer ---->
</body></html>

Membuat koneksi dengan database MySQL kemudian simpan ke dalam


format config.php, Listing Program seperti berikut :

<?php
$host = "localhost";
$user = "root";
$pass = "";
$db = "prototipe_inkubator";

if(mysql_connect($host, $user, $pass)){


//echo "Konek";
mysql_select_db($db);
}else{
echo "Tidak Konek";
}
?>
Membuat Program Update yang berfungsi mengubah data pada database
dalam tbl_komponen sesuai ID masing2, simpan dalam format update.php ,
berikut listing programnya :

<?php
require('config.php');
// menambahkan file koneksi
$data = array();
// membuat variabel array
$query = "SELECT * FROM tbl_monitoring";
// perintah menampilkan semua isi dalam
tbl_komponen
$result = mysql_query($query);
// eksekusi perintah

// jika eksekusi berhasil maka isi tabel dimasukkan


ke array data
if($result){
while($row = mysql_fetch_assoc($result)){
$data[] = $row;
}
}

echo $data[0]['nilai'];

// mengambil data yang dikirimkan oleh arduino


sesuai dengan GET /nama_web/nama_file.php?
switch=xx&potensio=xx
$lampu = $_REQUEST['lampu'];
$suhu = $_REQUEST['suhu'];

// mengubah data pada database dalam


tbl_komponen sesuai ID masing2
$query = "UPDATE tbl_monitoring SET nilai = '".
$lampu."' WHERE ID = 1";
mysql_query($query);

$query = "UPDATE tbl_monitoring SET nilai = '".


$suhu."' WHERE ID = 2";
mysql_query($query);
?>

Membuat program data.php yang berfungsi untuk mengambil data dari


database MySQL (prototype_inkubator) , berikut listing programnya :
<?php
require('config.php');
$data = array();

$query = "SELECT * FROM tbl_monitoring";


$result = mysql_query($query);
if($result){
while($row = mysql_fetch_assoc($result)){
$data[] = $row;
}
}

if(isset($_REQUEST['data'])){
switch($_REQUEST['data']){
case 'lampu':
if($data[0]['nilai'] == 0){
echo "Padam";
}else if($data[0]['nilai'] <= 21){
echo "Redup";
}else if($data[0]['nilai'] > 22){
echo "Terang";
}
break;
case 'suhu':
$sensor = (5.0 * $data[1]['nilai'] *
100.0) / 1024;
echo
number_format($sensor,2)."&deg";
break;
}
}

?>
Membuat Aplikasi android untuk client sebagai pengendali lewat mobile
smartphone, berikut listing program di software android studio :

Buat tampilan Webview di Activity Main.xml di pilihan Design

Gambar 4.6 Tampilan WebView di Android Studio


Edit komponen design di pilihan Text, berikut Programnya :

<?xml version="1.0" encoding="utf-8"?>


<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"

tools:context="com.example.ryancharies.webviewarduino.MainActi
vity">

<WebView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentStart="true"
android:id="@+id/webView1">

</WebView>

<ProgressBar
style="?android:attr/progressBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="173dp"
android:layout_y="211dp"
android:id="@+id/progressBar2"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
Buat Program java di mainActivity.java, berikut listing programnya :

package com.example.ryancharies.webviewarduino;

import android.graphics.Bitmap;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;

public class MainActivity extends AppCompatActivity {

private WebView webView;


private ProgressBar progressBar;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

webView = (WebView) this.findViewById(R.id.webView1);


progressBar = (ProgressBar) this.findViewById(R.id.progressBar2);

webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setSupportZoom(true);
webView.setWebViewClient(new MyWebView());
webView.loadUrl("http://192.168.0.200/workshop/");
progressBar.setVisibility(View.GONE);
}

private class MyWebView extends WebViewClient{


@Override
public void onPageStarted(WebView webView, String url, Bitmap favicon){
super.onPageStarted(webView, url, favicon);
progressBar.setVisibility(View.VISIBLE);
}

@Override
public boolean shouldOverrideUrlLoading(WebView webView, String url){
webView.loadUrl(url);
return true;
}

@Override
public void onPageFinished(WebView webView, String url){
super.onPageFinished(webView, url);
progressBar.setVisibility(View.GONE);
}
}

public boolean onKeyDown(int keyCode, KeyEvent event){


if((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()){
webView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
Buat Program Androidmanifest.xml, berikut programnya :

<?xml version="1.0" encoding="utf-8"?>


<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.ryancharies.webviewarduino">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />


</intent-filter>
</activity>
</application>

</manifest>

Buat program di Software Arduino IDE

#include <SPI.h>
#include <Ethernet.h>

/*
* Dimmer Lampu AC Arduino
* By Kelompok 5
*/

//---------------------------INIT Ethernet-------------------------------------
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // Mac Address Default
byte ip[] = {192, 168, 0, 100}; // Ip untuk Ethernet shield
byte dnsserver[] = {8,8,8,8}; // DNS Server untuk Ethernet shield
byte gateway[] = {192, 168, 0, 1}; // Gateway untuk Ethernet shield
byte subnet[] = {255, 255, 255, 0}; // Subnet untuk Ethernet shield
EthernetClient client;
char server[] = "192.168.0.200";
//-----------------------------------------------------------------------------
const int pwm_output = 9;
const int pwm_input = A0;
const int lm35_input = A1;

int value_potensio = 0;
int value_output_potensio = 0;

float value_lm35;
float value_output_lm35;

unsigned long lastConnectionTime = 0;


const unsigned long postingInterval = 1L * 1000L;

void setup() {
// put your setup code here, to run once:
pinMode(pwm_output, OUTPUT);
pinMode(pwm_input, INPUT);
pinMode(lm35_input, INPUT);

//----Ethernet----//
Ethernet.begin(mac, ip, dnsserver, gateway, subnet);
Serial.begin(9600);
Serial.println("Ethernet Setting :");
Serial.println(Ethernet.localIP());
Serial.println(Ethernet.subnetMask());
Serial.println(Ethernet.gatewayIP());
Serial.println(Ethernet.dnsServerIP());

delay(1000);
Serial.println();
Serial.println("Connecting . . .");
}

void loop() {
// put your main code here, to run repeatedly:
value_potensio = analogRead(pwm_input);
value_output_potensio = map(value_potensio, 0, 1023, 0, 255);
analogWrite(pwm_output, value_output_potensio);

value_lm35 = analogRead(lm35_input);
value_output_lm35 = (5 * value_lm35 * 100) / 1024;

if(client.available()){
char c = client.read();
Serial.print(c);
}

if(millis() - lastConnectionTime > postingInterval){


httpRequest();
}

Serial.print("Nilai Potensio = ");


Serial.print(value_output_potensio);
Serial.println();
Serial.print("Suhu = ");
Serial.print(value_output_lm35);
Serial.println();
Serial.println();
delay(1000);
}

void httpRequest() {
client.stop();
if (client.connect(server, 80)){
Serial.println("Connected, Sending Data ...");
client.print("GET /workshop/update.php?lampu=");
client.print(value_output_potensio);
client.print("&suhu=");
client.print(value_lm35);
client.println("Host: 192.168.0.200");
client.println("Connection: close");
client.println();
// note the time that the connection was made:
lastConnectionTime = millis();
}
else {
// if you couldn't make a connection:
Serial.println("Connection Failed");
}
}

1) Rangkai peralatan seperti yang ditunjukkan pada gambar diagram rangkaian.


2) Hubungkan rankaian arduino dan Ethernet shield ke power bank dan access
point

Gambar 4.7 Rangkaian Hardware

3) Hubungkan rankaian dimmer ke port arduino sesuai pengaturan yang ada di


software arduino IDE
4) Pilih Tools Port pilih COM yang sudah tersambung dengan Arduino

Gambar 4.8 Setting Port Arduino

5) Upload skrip tersebut ke hardware Arduino.

6) Koneksikan HP dengan AP ( Vodafone) yang sama, seperti gambar dibawah ini :


Gambar 4.10 Koneksi ke Access Point Wifi Vodafone

7) Buka aplikasi Android, kemudian akan muncul tampilan web Kelompok 5 seperti
gambar dibawah ini :

Gambar 4.11 Tampilan web di Android

8) Buka web browser pada Laptop kemudian ketik IP 192.168.0.200/webclient pada kolom
search, seperti gambar dibawah ini :
Gambar 4.13 Tampilan di web
BAB IV
HASIL PERCOBAAN

Hardware Smartphone WEB Keterangan


Pada gambar
yang
ditunjukan
bahwa kondisi
incubator telur
sedang
TERANG
dengan suhu
7.81 derajat di
smartphone
maupun di
website
Pada gambar
yang
ditunjukan
bahwa kondisi
incubator telur
sedang REDUP
dengan suhu
0.00 derajat di
smartphone
maupun di
website
Pada gambar
yang
ditunjukan
bahwa kondisi
incubator telur
sedang Mati
dengan suhu
0.00 derajat di
smartphone
maupun di
website

Analisa Data
Analisa hasil rancang bangun incubator telur seperti yang dituliskan dibawah ini :
1. Pada hasil pengambilan data didapat parameter parameter yang diukur yaitu ketika
kondisi terang , redup dan mati . Hasil menunjuukan bahwa ketika kondisi TERANG
suhu berkisar 7.81 derajat dan pada saat itu pula tampilan di android dan web akan
berubah sesuai kondisi yang saat ini terjadi, ketika kondisi REDUP suhu berkisar 4.00
derajat dan pada saat bersamaan tampilan di android dan web akan berbuah sesuai
kondisi yang saat ini terjadi.dan ketika kondisi PADAM maka suhu tersebut adalah 0.00
derajat tampilan di android dan web akan berubah menjadi PADAM.
2. Cara kalibrasi dari komponen LM35 dan potensio seperti dibawah ini :
a. cara kalibrasi lm35
- nilai_suhu = (5000mV x nilai ADC) / 1024
- nilai_suhu = nilai_suhu/10 // karena 1 derajat = 10mV
b. kalibrasi potensio
- nilai pot = ( nilai ADC x 5 ) / 1024
Kesimpulan

Dari hasil percobaan yang telah dilakukan bahwa alat incubator telur ini terdapat 3 kondisi
sebagai parameter acuan yaitu TERANG, REDUP, PADAM sebagai monitoring suhu di dalam
ruang incubator yang telah terintegrasi ke jaringan access point, bisa di monitoring lewat android
dan web ketika suhu di dalam ruang incubator terlalu panas atau terlalu dingin .

Referensi
aruselektronika.blogspot.co.id/2016/06/dimmer-lampu-ac-via-arduino.html?m=1

Anda mungkin juga menyukai