xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:background="#f4f8f9"
android:padding="5dp"
android:gravity="center"
tools:context="com.example.asus.controller.MainActivity">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:background="#f4f8f9"
android:layout_marginBottom="30dp"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
<TextView
android:padding="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18dp"
android:textColor="#000000"
android:text="LED Controller"
android:layout_gravity="center_horizontal"/>
</android.support.v7.widget.Toolbar>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_horizontal">
<LinearLayout
android:layout_width="140dp"
android:layout_height="140dp"
android:orientation="vertical"
android:padding="5dp"
android:background="@drawable/rounded">
<TextView
android:layout_marginTop="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="LED 1"
android:textColor="#000000"
android:layout_gravity="center"/>
<LinearLayout
android:layout_marginTop="20dp"
android:layout_width="150dp"
android:layout_height="150dp"
android:orientation="horizontal"
android:gravity="center_horizontal">
<ImageView
android:layout_marginTop="10dp"
android:id="@+id/btnSA"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/power"
android:background="@drawable/rounded_hijau"/>
<ImageView
android:layout_margin="10dp"
android:id="@+id/btnSB"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/power"
android:background="@drawable/rounded_merah"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="150dp"
android:layout_height="150dp"
android:paddingLeft="10dp">
<LinearLayout
android:layout_width="140dp"
android:layout_height="140dp"
android:orientation="vertical"
android:padding="5dp"
android:background="@drawable/rounded">
<TextView
android:layout_marginTop="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="LED 2"
android:textColor="#000000"
android:layout_gravity="center"/>
<LinearLayout
android:layout_marginTop="20dp"
android:layout_width="150dp"
android:layout_height="150dp"
android:orientation="horizontal"
android:gravity="center_horizontal">
<ImageView
android:layout_marginTop="10dp"
android:id="@+id/btnDA"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/power"
android:background="@drawable/rounded_hijau"/>
<ImageView
android:layout_margin="10dp"
android:id="@+id/btnDB"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/power"
android:background="@drawable/rounded_merah"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:gravity="center_horizontal">
<LinearLayout
android:layout_width="140dp"
android:layout_height="140dp"
android:orientation="vertical"
android:padding="5dp"
android:background="@drawable/rounded">
<TextView
android:layout_marginTop="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="LED 3"
android:textColor="#000000"
android:layout_gravity="center"/>
<LinearLayout
android:layout_marginTop="20dp"
android:layout_width="150dp"
android:layout_height="150dp"
android:orientation="horizontal"
android:gravity="center_horizontal">
<ImageView
android:layout_marginTop="10dp"
android:id="@+id/btnTA"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/power"
android:background="@drawable/rounded_hijau"/>
<ImageView
android:layout_margin="10dp"
android:id="@+id/btnTB"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/power"
android:background="@drawable/rounded_merah"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="150dp"
android:layout_height="150dp"
android:paddingLeft="10dp">
<LinearLayout
android:layout_width="140dp"
android:layout_height="140dp"
android:orientation="vertical"
android:padding="5dp"
android:background="@drawable/rounded">
<TextView
android:layout_marginTop="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="LED 4"
android:textColor="#000000"
android:layout_gravity="center"/>
<LinearLayout
android:layout_marginTop="20dp"
android:layout_width="150dp"
android:layout_height="150dp"
android:orientation="horizontal"
android:gravity="center_horizontal">
<ImageView
android:layout_marginTop="10dp"
android:id="@+id/btnEA"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/power"
android:background="@drawable/rounded_hijau"/>
<ImageView
android:layout_margin="10dp"
android:id="@+id/btnEB"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/power"
android:background="@drawable/rounded_merah"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<EditText
android:id="@+id/txtid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"/>
<EditText
android:id="@+id/txtstatus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"/>
</LinearLayout>
MainActivity.java
package com.example.asus.controller;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.led);
ImageView sa = (ImageView) findViewById(R.id.btnSA);
ImageView sb = (ImageView) findViewById(R.id.btnSB);
ImageView da = (ImageView)findViewById(R.id.btnDA);
ImageView db = (ImageView)findViewById(R.id.btnDB);
ImageView ta = (ImageView)findViewById(R.id.btnTA);
ImageView tb = (ImageView)findViewById(R.id.btnTB);
ImageView ea = (ImageView)findViewById(R.id.btnEA);
ImageView eb = (ImageView)findViewById(R.id.btnEB);
txtid = (EditText)findViewById(R.id.txtid);
txtstatus = (EditText)findViewById(R.id.txtstatus);
actionBar = getSupportActionBar();
actionBar.setHomeAsUpIndicator(R.drawable.ic_arrow_back_black_24dp);
actionBar.setDisplayHomeAsUpEnabled(true);
if (getSupportActionBar() != null){
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_arrow_back_black_24dp);
}
sa.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
turnON("1", "1");
update();
}
});
sb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
turnON("1", "0");
update();
}
});
da.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
turnON("2", "1");
update();
}
});
db.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
turnON("2", "0");
update();
}
});
ta.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
turnON("3", "1");
update();
}
});
tb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
turnON("3", "0");
update();
}
});
ea.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
turnON("4", "1");
update();
}
});
eb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
turnON("4", "0");
update();
}
});
}
public void turnON(String id, String status) {
txtid.setText(id);
txtstatus.setText(status);
String statusData = "OFF";
if (status == "1"){
statusData = "ON";
} else {
statusData = "OFF";
}
}
@Override
public void onFailure(Call<Value> call, Throwable t) {
t.printStackTrace();
Toast.makeText(MainActivity.this, "Jaringan Error!",
Toast.LENGTH_SHORT).show();
}
});
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId()==android.R.id.home)
finish();
return super.onOptionsItemSelected(item);
}
}
hal_utama..java
package com.example.asus.controller;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.os.Handler;
import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
/**
* An example full-screen activity that shows and hides the system UI (i.e.
* status bar and navigation/system bar) with user interaction.
*/
public class hal_utama extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_hal_utama);
}
public void btnLEDClick(){
Intent i = new Intent(this, MainActivity.class);
startActivity(i);
String message = "Tekan Tombol HIJAU untuk menyalakan LED\n dan Tombol MERAH
untuk mematikan LED";
Toast.makeText(hal_utama.this, message, Toast.LENGTH_LONG).show();
}
public void btnSensorClick(){
Intent i = new Intent(this, HalamanSensor.class);
startActivity(i);
}
}
PISAH
HalamanSensor.java
package com.example.asus.controller;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.MenuItem;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
txtsuhu = (TextView)findViewById(R.id.txtSuhu);
txtcahaya = (TextView)findViewById(R.id.txtCahaya);
actionBar = getSupportActionBar();
actionBar.setHomeAsUpIndicator(R.drawable.ic_arrow_back_black_24dp);
actionBar.setDisplayHomeAsUpEnabled(true);
if (getSupportActionBar() != null){
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_arrow_back_black_24dp);
}
getSensorSuhu();
getSensorCahaya();
}
public void getSensorSuhu() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
Api api = retrofit.create(Api.class);
String id = "idSensor";
Call<SensorList> userCall = api.sensorRead(id);
userCall.enqueue(new Callback<SensorList>() {
@Override
public void onResponse(Call<SensorList> call, Response<SensorList>
response) {
if (response.body() != null) {
sensorList = response.body().getSensors();
Sensor sensors = sensorList.get(0);
txtsuhu.setText(data1);
}
}
@Override
public void onFailure(Call<SensorList> call, Throwable t) {
Toast.makeText(HalamanSensor.this, "Error while retrieving data from
server, Please try again", Toast.LENGTH_SHORT).show();
Log.d("onFailure", t.toString());
}
});
}
userCall.enqueue(new Callback<SensorList>() {
@Override
public void onResponse(Call<SensorList> call, Response<SensorList>
response) {
if (response.body() != null) {
sensorList1 = response.body().getSensorscahaya();
Sensor sensors1 = sensorList1.get(0);
txtcahaya.setText(data2);
}
}
@Override
public void onFailure(Call<SensorList> call, Throwable t) {
Toast.makeText(HalamanSensor.this, "Error while retrieving data from
server, Please try again", Toast.LENGTH_SHORT).show();
Log.d("onFailure", t.toString());
}
});
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId()==android.R.id.home)
finish();
return super.onOptionsItemSelected(item);
}
}
connect.php
<?php
class Connection{
function getConnection(){
$host = "localhost";
$username = "root";
$password = "";
$dbname = "eslolin";
try{
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $conn;
?>
updateLED.php
<?php
require_once('connect.php');
if($_SERVER['REQUEST_METHOD']=='POST') {
$response = array();
//mendapatkan data
$id = $_POST['id'];
$status = $_POST['status'];
if(mysqli_query($conn,$sql)) {
$response["seccess"] = 1;
echo json_encode($response);
} else {
$response["success"] = 0;
echo json_encode($response);
mysqli_close($con);
<?php
require_once("connect.php");
class DisplayJsonSensor{
function getSensor1(){
$jsonSensor = array();
$status="status";
$message = "message";
try{
$sqlQuery = "SELECT * FROM datasensor WHERE idSensor=5 ORDER BY tanggal DESC LIMIT 1";
$getJson = $conn->prepare($sqlQuery);
$getJson->execute();
$result = $getJson->fetchAll(PDO::FETCH_ASSOC);
foreach($result as $data){
array_push($jsonSensor,
array('idSensor'=>$data['idSensor'],
'hasilSensor1'=>$data['hasilSensor']));
if($sqlQuery){
echo json_encode(array("sensor1"=>$jsonSensor,$status=>1,$message=>"Success"));
}else{
$json->getSensor1();
Sensorreadd.php (data cahaya)
<?php
require_once("connect.php");
class DisplayJsonSensor{
function getSensor2(){
$conn = $connection->getConnection();
$jsonSensor = array();
$status="status";
$message = "message";
try{
$sqlQuery = "SELECT * FROM datasensor WHERE idSensor=6 ORDER BY tanggal DESC LIMIT 1";
$getJson = $conn->prepare($sqlQuery);
$getJson->execute();
$result = $getJson->fetchAll(PDO::FETCH_ASSOC);
foreach($result as $data){
array_push($jsonSensor,
array('idSensor'=>$data['idSensor'],
'hasilSensor2'=>$data['hasilSensor']));
if($sqlQuery){
echo json_encode(array("sensor2"=>$jsonSensor,$status=>1,$message=>"Success"));
}else{
$json->getSensor2();
Kode Arduino
#include <ESP8266HTTPClient.h>
#include <ESP8266WiFi.h>
// Variabel global
int led1 = 5;
int led2 = 4;
int led3 = 0;
int led4 = 2;
#define ON HIGH
//tambahan
int dataLDR = 0;
//tambahan
int firstVal, secondVal;
void setup() {
// Konfigurasi Modul
Serial.begin(115200);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
pinMode(pinSuhu, INPUT);
pinMode(pinLDR, INPUT);
Serial.flush();
delay(1000);
Serial.println("");
Serial.println("WiFi connected");
Serial.println(WiFi.localIP());
// --- End of Connect wifi
//tambahan
int found = 0;
if(data.charAt(i)==separator || i==maxIndex){
found++;
strIndex[0] = strIndex[1]+1;
strIndex[1]) : "";
return ketemu;
void loop() {
data = analogRead(pinSuhu);
dataLDR = analogRead(pinLDR);
cahaya = dataLDR ;
// put your main code here, to run repeatedly:
if(WiFi.status() == WL_CONNECTED){
HTTPClient http;
HTTPClient httpSuhu;
HTTPClient httpChy;
Serial.print("[HTTP] begin...\n");
http.begin("http://192.168.1.21:8080/eslolin/sensormulti.php");
httpSuhu.begin("http://192.168.1.21:8080/eslolin/datachy.php?suhu="+String(suhu));
httpChy.begin("http://192.168.1.21:8080/eslolin/datachy.php?chy="+String(cahaya));
Serial.print("[HTTP] GET...\n");
// Serial.print(httpCode);
// Serial.print(httpCodeSuhu);
// Serial.print(httpCodeChy);
//Serial.println(status);
//tambahan
Serial.println(nilai1);
Serial.print("LED 2 --> ");
Serial.println(nilai2);
Serial.println(nilai3);
Serial.println(nilai4);
Serial.println("------------------------");
if(nilai1 == "0"){
//relay = OFF;
digitalWrite(led1, OFF);
}else {
digitalWrite(led1, ON);
if(nilai2 == "0"){
//relay = OFF;
digitalWrite(led2, OFF);
}else {
digitalWrite(led2, ON);
if(nilai3 == "0"){
//relay = OFF;
digitalWrite(led3, OFF);
}else {
digitalWrite(led3, ON);
}
if(nilai4 == "0"){
//relay = OFF;
digitalWrite(led4, OFF);
}else {
digitalWrite(led4, ON);
// HTTP header has been send and Server response header has been handled
//If(200 == 200)
if(httpCodeSuhu == HTTP_CODE_OK) {
Serial.print(suhu);
Serial.println();
}else{
http.errorToString(httpCodeSuhu).c_str());
delay(50);
// HTTP header has been send and Server response header has been handled
//If(200 == 200)
if(httpCodeChy == HTTP_CODE_OK) {
Serial.print("dataLDR : ");
Serial.print(dataLDR);
}else{
http.errorToString(httpCodeChy).c_str());
delay(50);
http.end();
}else {
Serial.println("Delay boss");
delay(1000);