Anda di halaman 1dari 29

Acivty_main.

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;

public class MainActivity extends AppCompatActivity {


public static final String URL = "http://ktpsapi.id/android/";
Toolbar toolbar;
ActionBar actionBar;
EditText txtid, txtstatus;

@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);

toolbar = (Toolbar) findViewById(R.id.toolbar);


setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);

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";
}
}

public void update(){


String id = txtid.getText().toString();
String status= txtstatus.getText().toString();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
Api api = retrofit.create(Api.class);
Call<Value> call = api.update(id, status);
call.enqueue(new Callback<Value>() {
@Override
public void onResponse(Call<Value> call, Response<Value> response) {
String success = response.body().getSuccess();
String message = response.body().getMessage();
if (success.equals("1")) {
Toast.makeText(MainActivity.this, message,
Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this, message,
Toast.LENGTH_SHORT).show();
}
}

@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);

ImageView btnLED = (ImageView) findViewById(R.id.btnLED);


ImageView btnSensor = (ImageView)findViewById(R.id.btnSensor);
btnLED.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
btnLEDClick();
}
});
btnSensor.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
btnSensorClick();
}
});

}
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;

public class HalamanSensor extends AppCompatActivity {

public static final String URL = "http://ktpsapi.id/android/";


Toolbar toolbar;
ActionBar actionBar;
TextView txtsuhu, txtcahaya;
public ArrayList<Sensor> sensorList;
public ArrayList<Sensor> sensorList1;
@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_halaman_sensor);

txtsuhu = (TextView)findViewById(R.id.txtSuhu);
txtcahaya = (TextView)findViewById(R.id.txtCahaya);

toolbar = (Toolbar) findViewById(R.id.toolbar);


setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);

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);

String data1 = sensors.getHasilSensor1();

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());
}
});
}

public void getSensorCahaya() {


Retrofit retrofit = new Retrofit.Builder()
.baseUrl(URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
Api api = retrofit.create(Api.class);
String id = "idSensor";
Call<SensorList> userCall = api.sensorReadChy(id);

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);

String data2 = sensors1.getHasilSensor2();

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 = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);

$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

return $conn;

}catch (PDOException $e){

echo "ERROR CONNECTIONF : " . $e->getMessage();

?>
updateLED.php

<?php

require_once('connect.php');

if($_SERVER['REQUEST_METHOD']=='POST') {

$response = array();

//mendapatkan data

$id = $_POST['id'];

$status = $_POST['status'];

$sql = "UPDATE sensor SET statusSensor = '$status' WHERE idSensor = '$id'";

if(mysqli_query($conn,$sql)) {

$response["seccess"] = 1;

$response["message"] = "Berhasil diperbarui";

echo json_encode($response);

} else {

$response["success"] = 0;

$response["message"] = "oops! Gagal merubah!";

echo json_encode($response);

mysqli_close($con);

Sensorread.php (data Suhu)

<?php

require_once("connect.php");

class DisplayJsonSensor{

function getSensor1(){

$connection = new Connection();


$conn = $connection->getConnection();

$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']));

}catch (PDOException $e){

echo "Error while displaying json : " . $e->getMessage();

if($sqlQuery){

echo json_encode(array("sensor1"=>$jsonSensor,$status=>1,$message=>"Success"));

}else{

echo json_encode(array("Hasil Sensor"=>null,$status=>0, $message=>"Failed while displaying


data food"));

$json = new DisplayJsonSensor();

$json->getSensor1();
Sensorreadd.php (data cahaya)

<?php

require_once("connect.php");

class DisplayJsonSensor{

function getSensor2(){

$connection = new Connection();

$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']));

}catch (PDOException $e){

echo "Error while displaying json : " . $e->getMessage();

if($sqlQuery){

echo json_encode(array("sensor2"=>$jsonSensor,$status=>1,$message=>"Success"));

}else{

echo json_encode(array("Hasil Sensor"=>null,$status=>0, $message=>"Failed while displaying


data food"));
}

$json = new DisplayJsonSensor();

$json->getSensor2();

Kode Arduino

#include <ESP8266HTTPClient.h>

#include <ESP8266WiFi.h>

// Variabel global

const char* ssid = "kos46";

const char* password = "jerapah64";

int led1 = 5;

int led2 = 4;

int led3 = 0;

int led4 = 2;

int pinLDR = A0;

int pinSuhu = A0;

#define ON HIGH

#define OFF LOW

//#define USE_SERIAL Serial

//tambahan

int data, suhu, cahaya;

int dataLDR = 0;

//tambahan
int firstVal, secondVal;

void setup() {

// put your setup code here, to run once:

// Konfigurasi Modul

Serial.begin(115200);

// Deklarasi PIN GPIO 1

pinMode(led1, OUTPUT);

pinMode(led2, OUTPUT);

pinMode(led3, OUTPUT);

pinMode(led4, OUTPUT);

// Connect to WiFi network

Serial.print("Connecting to ");

Serial.println(ssid);

WiFi.begin(ssid, password);

pinMode(pinSuhu, INPUT);

pinMode(pinLDR, INPUT);

for(uint8_t t = 4; t > 0; t--) {

Serial.printf("[SETUP] WAIT %d...\n", t);

Serial.flush();

delay(1000);

Serial.println("");

Serial.println("WiFi connected");

Serial.println(WiFi.localIP());
// --- End of Connect wifi

//tambahan

String getValue(String data, char separator, int index)

int found = 0;

int strIndex[] = {0, -1};

int maxIndex = data.length()-1;

for(int i=0; i<=maxIndex && found<=index; i++){

if(data.charAt(i)==separator || i==maxIndex){

found++;

strIndex[0] = strIndex[1]+1;

strIndex[1] = (i == maxIndex) ? i+1 : i;

String ketemu = found>index ? data.substring(strIndex[0],

strIndex[1]) : "";

return ketemu;

void loop() {

data = analogRead(pinSuhu);

suhu = data * 500 / 1024;

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");

//IP menuju ke server web

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");

int httpCode = http.GET();

int httpCodeSuhu = httpSuhu.GET();

int httpCodeChy = httpChy.GET();

// Serial.print(httpCode);

// Serial.print(httpCodeSuhu);

// Serial.print(httpCodeChy);

if(httpCode > 0){

String status = http.getString();

//Serial.println(status);

//tambahan

Serial.print("LED 1 --> ");

String nilai1 = getValue(status, ',',0);

Serial.println(nilai1);
Serial.print("LED 2 --> ");

String nilai2 = getValue(status, ',',1);

Serial.println(nilai2);

Serial.print("LED 3 --> ");

String nilai3 = getValue(status, ',',2);

Serial.println(nilai3);

Serial.print("LED 4 --> ");

String nilai4 = getValue(status, ',',3);

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);

}else if(httpCodeSuhu > 0){

// HTTP header has been send and Server response header has been handled

Serial.printf("[HTTP] GET... code: %d\n", httpCodeSuhu);

// file found at server

//If(200 == 200)

if(httpCodeSuhu == HTTP_CODE_OK) {

String status = httpSuhu.getString();

Serial.print(", suhu: ");

Serial.print(suhu);

Serial.println();

}else{

Serial.printf("[HTTP] GET... failed, error: %s\n",

http.errorToString(httpCodeSuhu).c_str());

delay(50);

}else if(httpCodeChy > 0){

// HTTP header has been send and Server response header has been handled

Serial.printf("[HTTP] GET... code: %d\n", httpCodeSuhu);


// file found at server

//If(200 == 200)

if(httpCodeChy == HTTP_CODE_OK) {

String status = httpChy.getString();

Serial.print("dataLDR : ");

Serial.print(dataLDR);

}else{

Serial.printf("[HTTP] GET... failed, error: %s\n",

http.errorToString(httpCodeChy).c_str());

delay(50);

http.end();

}else {

Serial.println("Delay boss");

delay(1000);

Anda mungkin juga menyukai