• Tidak ada hasil yang ditemukan

LAMPIRAN A SCRIPT SERVER. LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7); // 0x27 = alamat I2C modul DynamicJsonBuffer jsonbuffer;

N/A
N/A
Protected

Academic year: 2021

Membagikan "LAMPIRAN A SCRIPT SERVER. LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7); // 0x27 = alamat I2C modul DynamicJsonBuffer jsonbuffer;"

Copied!
18
0
0

Teks penuh

(1)

LAMPIRAN A SCRIPT SERVER #include <ESP8266WiFi.h> #include <DNSServer.h> #include <ESP8266WebServer.h> #include <WiFiManager.h> #include <ArduinoJson.h> #include <Wire.h> #include <LCD.h> #include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7); // 0x27 = alamat I2C modul DynamicJsonBuffer jsonBuffer;

//=====================inisialisai sensor

tegangan============================================ float sensitivitas = 0.00164; //diatur sendiri untuk kalibrasi

float banyakdata = 0.00; float nilaiadc = 0.00; float zero = 0.00; //======================================================= ================================= String data1 = "0.00"; String data2 = "0.00"; String data3 = "0.00"; String data4 = "0.00";

const char* sensor1 = "ON"; const char* sensor2 = "ON"; const char* sensor3 = "ON"; const char* sensor4 = "ON"; String r1;

String r2; String r3; String r4;

unsigned long waktu0 = 0; unsigned long waktu1 = 0; unsigned long waktu2 = 0; unsigned long waktu3 = 0; unsigned long waktu4 = 0; float daya1 = 0.00;

float daya2 = 0.00; float daya3 = 0.00;

(2)

float daya4 = 0.00; String line;

String id_alat ="pemos01";

const char* APssid = "amirshodiq"; const char* APpassword = "amirshodiq"; const char* ssid = "amirshodiq1"; const char* password = "amirshodiq1";

const char* host = "pemos013.000webhostapp.com"; WiFiClient client;

const int httpPort = 80; String url;

unsigned long timeout;

ESP8266WebServer server(80); void setup() {

Serial.begin(9600); delay(10);

pinMode(D0, OUTPUT); //LED 1 pinMode(D5, OUTPUT);//LED 2 lcd.begin (20, 4); // LCD 16x2 lcd.setBacklightPin(3, POSITIVE); lcd.setBacklight(HIGH); // Mengatur WiFi --- Serial.println(); Serial.println("Mencari WiFi...."); lcd.setCursor (0,0); lcd.print("Menyiapkan Server"); lcd.setCursor (0,1);

lcd.print("Mencoba Koneksi Wifi"); delay(100);

WiFi.begin(ssid, password);

timeout = millis();

while (WiFi.status() != WL_CONNECTED) { if (millis() - timeout > 30000) {

lcd.setCursor (0,0);

lcd.print("Wifi Manager Hidup");

digitalWrite(D0,HIGH); //maka lampu D3 akan hidup

WiFiManager wifiManager; //dan mengakses library wifimanager

wifiManager.resetSettings(); //serta mereset pengaturan wifi, disini nodeMCU berlaku sebagai access point

(3)

wifiManager.autoConnect("pemos013", "123456789"); //nodeMCU berlaku sebagai access point dengan SSID 'WiFi Manager Testing' dan password '12345678'

Serial.println("connected :)");

}

digitalWrite(D0, HIGH);//LED Merah Indikasi tidak connect delay(500); digitalWrite(D0, LOW); delay(200); Serial.print("."); } Serial.println("Menyiapkan Server..."); WiFi.mode(WIFI_AP_STA); WiFi.softAP(APssid, APpassword); Serial.println(""); lcd.clear(); Serial.println("WiFi Terkoneksi"); lcd.setCursor (0,1); lcd.print("WiFi connected"); delay(100); digitalWrite(D0, LOW);

digitalWrite(D5, HIGH);//LED Hijau menyala Indikasi connect wifi // Start the server --- server.begin(); Serial.println("Server dijalankan"); lcd.setCursor (0,2); lcd.print("Server dijalankan"); lcd.clear();

// Print the IP address --- Serial.println(WiFi.localIP());

Serial.println(WiFi.softAPIP());

server.on("/", handleroot);//Perintah Menjalankan server server.on("/feed", HTTP_GET, feed);

server.begin(); //kalibrasi

for (int i = 0; i < 1000; i++) { nilaiadc = analogRead(A0);

banyakdata = banyakdata + nilaiadc; delay(10);

}

(4)

zero = banyakdata; }

//=====================================handle root

page================================================ void handleroot() {

server.send(200, "text/plain", "Hallo"); }

//===================================handle door sensor

page=========================================== void feed() {

// server.send(200, "text/plain", line); Serial.print("Received from: "); for (int i = 0; i <= server.args(); i++) { if (server.argName(i) == "arus1") { Serial.print("arus1 = ");

waktu0 = millis();

float waktu = waktu0-waktu1; data1 = server.arg(i);

Serial.println(data1);

Serial.println(waktu/1000, 2); waktu1 = millis();

url = "/arduino/simpan/input1?id_alat="+id_alat+"&arus=" + data1 + "&tegangan=" + String(tegangan())+"&waktu=" + String(waktu)+"&dayasebelum="+String(daya1);

daya1 = data1.toFloat()*tegangan(); kirim();

server.send(200, "text/plain", sensor1);

}

if (server.argName(i) == "arus2") { Serial.print("arus2 = ");

waktu0 = millis();

float waktu = waktu0-waktu2; data2 = server.arg(i);

Serial.println(data2);

Serial.println(waktu/1000, 2); waktu2 = millis();

url = "/arduino/simpan/input2?id_alat="+id_alat+"&arus=" + data2 + "&tegangan=" + String(tegangan())+"&waktu=" + String(waktu)+"&dayasebelum="+String(daya2);

daya2 = data2.toFloat()*tegangan(); kirim();

server.send(200, "text/plain", sensor2);

(5)

}

if (server.argName(i) == "arus3") { Serial.print("arus3 = ");

waktu0 = millis();

float waktu = waktu0-waktu3; data3 = server.arg(i);

Serial.println(data3);

Serial.println(waktu/1000, 2); waktu3 = millis();

url = "/arduino/simpan/input3?id_alat="+id_alat+"&arus=" + data3 + "&tegangan=" + String(tegangan())+"&waktu=" + String(waktu)+"&dayasebelum="+String(daya3);

daya3 = data3.toFloat()*tegangan(); kirim();

server.send(200, "text/plain", sensor3);

}

if (server.argName(i) == "arus4") { Serial.print("arus4 = ");

waktu0 = millis();

float waktu = waktu0-waktu4; data4 = server.arg(i);

Serial.println(data4);

Serial.println(waktu/1000, 2); waktu4 = millis();

url = "/arduino/simpan/input4?id_alat="+id_alat+"&arus=" + data4 + "&tegangan=" + String(tegangan())+"&waktu=" + String(waktu)+"&dayasebelum="+String(daya4);

daya4 = data4.toFloat()*tegangan(); kirim();

server.send(200, "text/plain", sensor4); } } } void loop(){ cek(); server.handleClient(); lcd.clear(); tampilan(); delay(500); }

(6)

void tampilan(){

float V = tegangan();

if(String (sensor1) == "ON"){ r1 = "I";

}

if(String (sensor1) == "OFF"){ r1 = "O";

}

if(String (sensor2) == "ON"){ r2 = "I";

}

if(String (sensor2) == "OFF"){ r2 = "O";

}

if(String (sensor3) == "ON"){ r3 = "I";

}

if(String (sensor3) == "OFF"){ r3 = "O";

}

if(String (sensor4) == "ON"){ r4 = "I";

}

if(String (sensor4) == "OFF"){ r4 = "O"; } Serial.println("Kontrol Client :"); Serial.print("Client 1 :"); Serial.println(r1); Serial.print("Client 2 :"); Serial.println(r2); Serial.print("Client 3 :"); Serial.println(r3); Serial.print("Client 4 :"); Serial.println(r4); //tampilan pada lcd lcd.setCursor (0,0); lcd.print("I1="); lcd.print(data1); lcd.setCursor (8,0); lcd.print("V1="); lcd.print(V); lcd.setCursor (19,0); lcd.print(r1); lcd.setCursor (0,1); lcd.print("I2="); lcd.print(data2);

(7)

lcd.setCursor (8,1); lcd.print("V2="); lcd.print(V); lcd.setCursor (19,1); lcd.print(r2); lcd.setCursor (0,2); lcd.print("I3="); lcd.print(data3); lcd.setCursor (8,2); lcd.print("V3="); lcd.print(V); lcd.setCursor (19,2); lcd.print(r3); lcd.setCursor (0,3); lcd.print("I4="); lcd.print(data4); lcd.setCursor (8,3); lcd.print("V4="); lcd.print(V); lcd.setCursor (19,3); lcd.print(r4); Serial.println(); } void cek(){ Serial.print("connecting to "); Serial.println(host); if (!client.connect(host, httpPort)) { Serial.println("connection failed"); digitalWrite(D0, HIGH); delay(100); digitalWrite(D0, LOW); digitalWrite(D5, LOW); return; } } void control(){ Serial.print("connecting to "); Serial.println(host); if (!client.connect(host, httpPort)) { Serial.println("connection failed"); digitalWrite(D0, HIGH); delay(100); digitalWrite(D0, LOW); digitalWrite(D5, LOW);

(8)

return; }

// We now create a URI for the request url = "/arduino/simpan/control"; Serial.print("Requesting URL: "); Serial.println(url);

// This will send the request to the server

client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: close\r\n\r\n"); timeout = millis(); while (client.available() == 0) { if (millis() - timeout > 5000) {

Serial.println(">>> Client Timeout !"); digitalWrite(D0, LOW); delay(100); digitalWrite(D0, HIGH); digitalWrite(D5, LOW); client.stop(); return; } }

// Read all the lines of the reply from server and print them to Serial for (int i = 0; i <= client.available(); i++) {

line = client.readStringUntil('\r'); }

digitalWrite(D5, LOW); delay(100);

digitalWrite(D5, HIGH);

JsonObject& root = jsonBuffer.parseObject(line); sensor1 = root["sensor1"]; sensor2 = root["sensor2"]; sensor3 = root["sensor3"]; sensor4 = root["sensor4"]; Serial.println(sensor1); Serial.println(sensor2); Serial.println(sensor3); Serial.println(sensor4);

(9)

client.stop(); } void kirim(){ Serial.println("connecting to "); Serial.println(host); if (!client.connect(host, httpPort)) { Serial.println("connection failed"); sensor1 = "ON"; sensor2 = "ON"; sensor3 = "ON"; sensor4 = "ON"; digitalWrite(D0, HIGH); delay(100); digitalWrite(D0, LOW); digitalWrite(D5, LOW); return; }

// We now create a URI for the request

// url = "/arduino/simpan/input?arus="+arus()+"&tegangan="+tegangan(); Serial.print("Requesting URL: ");

Serial.println(url);

// This will send the request to the server

client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: close\r\n\r\n"); timeout = millis(); while (client.available() == 0) { if (millis() - timeout > 5000) {

Serial.println(">>> Client Timeout !"); digitalWrite(D0, LOW); delay(100); digitalWrite(D0, HIGH); digitalWrite(D5, LOW); client.stop(); return; } }

for (int i = 0; i <= client.available(); i++) { line = client.readStringUntil('\r');

(10)

digitalWrite(D5, LOW); delay(100);

digitalWrite(D5, HIGH);

JsonObject& root = jsonBuffer.parseObject(line); sensor1 = root["sensor1"]; sensor2 = root["sensor2"]; sensor3 = root["sensor3"]; sensor4 = root["sensor4"]; Serial.println(sensor1); Serial.println(sensor2); Serial.println(sensor3); Serial.println(sensor4); client.stop(); Serial.println(); } float tegangan() { uint32_t period = 1000000 / 50; uint32_t t_start = micros();

uint32_t Vsum = 0, measurements_count = 0; int32_t Vnow;

while (micros() - t_start < period) { Vnow = zero - analogRead(A0); Vsum += Vnow*Vnow;

measurements_count++; }

float Vrms = sqrt(Vsum / measurements_count) / 1023.0 * 3.229 / sensitivitas; if (Vrms < 20){ Vrms = 0.00; } Serial.print("Tegangan : "); Serial.println(Vrms,2); return (Vrms); }

(11)

LAMPIRAN B SCRIPT CLIENT #include <ESP8266WiFi.h> #include <ESP8266WebServer.h> #include <ArduinoJson.h> #define ON HIGH #define OFF LOW

const char *ssid = "pemos013"; const char *password = "123456789";

DynamicJsonBuffer jsonBuffer;

//=====================inisialisai sensor

arus============================================

float sensitivitas = 0.106; //tegantung sensor arus yang digunakan, yang ini 5A float banyakdata = 0.00; float nilaiadc = 0.00; float zero = 0.00; //======================================================= ================================= int sensor1 = 1; int sensor2 = 1; int sensor3 = 1; int sensor4 = 1; String line;

int RELAY1 = 5; //D1 on ESP Board /LED 1 void setup() { Serial.begin(9600); delay(10); pinMode(D2, OUTPUT);//LED 2 pinMode(D3, OUTPUT);//LED 3 //set relay pinMode(RELAY1, OUTPUT); digitalWrite(RELAY1, LOW); // set the ESP8266 to be a WiFi-client WiFi.mode(WIFI_STA);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) { delay(500);

(12)

digitalWrite(D2, HIGH);//LED Merah Indikasi tidak connect wifi }

Serial.println("");

Serial.println("WiFi connected"); digitalWrite(D2, LOW);

digitalWrite(D3, HIGH);//LED Hijau menyala Indikasi connect wifi Serial.print("IP address: ");

Serial.println(WiFi.localIP()); //kalibrasi

for (int i = 0; i < 1000; i++) { nilaiadc = analogRead(A0);

banyakdata = banyakdata + nilaiadc; delay(10); } banyakdata /= 1000; zero = banyakdata; digitalWrite(RELAY1, HIGH); } void loop() {

// Use WiFiClient class to create TCP connections WiFiClient client;

const char * host = "192.168.4.1"; //default IP address const int httpPort = 80;

if (!client.connect(host, httpPort)) { Serial.println("connection failed"); digitalWrite(D2, HIGH); delay(100); digitalWrite(D2, LOW); digitalWrite(D3, LOW); return; }

// We now create a URI for the request. Something like /data/?sensor_reading=123

String url = "/feed?arus4="+arus();

// This will send the request to the server

client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" +

"Connection: close\r\n\r\n"); unsigned long timeout = millis(); while (client.available() == 0) { if (millis() - timeout > 30000) {

(13)

Serial.println(">>> Client Timeout !"); digitalWrite(D2, HIGH); delay(100); digitalWrite(D2, LOW); digitalWrite(D3, LOW); client.stop(); return; } } while(client.available()){

// String line = client.readStringUntil('\r'); // Serial.print(line);

if(client.find("ON")){

digitalWrite(RELAY1, ON); //lampu on Serial.println("ON");

}else{

digitalWrite(RELAY1, OFF); //lampu off Serial.println("OFF"); } } digitalWrite(D3, LOW); delay(100); digitalWrite(D3, HIGH); Serial.println(); //kontrol(); } String arus() { uint32_t period = 1000000 / 50; uint32_t t_start = micros();

uint32_t Isum = 0, measurements_count = 0; int32_t Inow;

while (micros() - t_start < period) { Inow = zero - analogRead(A0); Isum += Inow*Inow;

measurements_count++; }

float Irms = sqrt(Isum / measurements_count) / 1023.0 * 3.229 / sensitivitas;

Serial.println(Irms); delay(50);

return String(Irms); }

(14)

LAMPIRAN C

SCRIPT PENGIRIMAN DATA <?php

defined('BASEPATH') OR exit('No direct script access allowed'); class Simpan extends CI_Controller {

public function index(){

date_default_timezone_set("Asia/Jakarta"); $this->load->model('m_belajar');

$data['sensor'] = $this->m_belajar->ambildata(); $this->load->view('view_belajar', $data);

}

public function grafik() { date_default_timezone_set("Asia/Jakarta"); $this->load->model('m_belajar'); $dataa['sensor'] = $this->m_belajar->ambildata(); $this->load->view('chart', $dataa); }

public function harian() { date_default_timezone_set("Asia/Jakarta"); $this->load->model('m_belajar'); $dataa['sensor'] = $this->m_belajar->ambildata(); $this->load->view('harian', $dataa); }

public function control() {

$this->load->model('m_belajar');

$dataa['kontrol'] = $this->m_belajar->code(); $this->load->view('control', $dataa);

}

public function coba() {

$this->load->model('m_belajar');

(15)

$this->load->view('coba', $dataa); }

public function input(){

$this->load->model('m_belajar'); if (isset($_GET['arus'])){ $id_alat = $this->input->get('id_alat'); $arus = $this->input->get('arus'); $tegangan = $this->input->get('tegangan'); $waktu = $this->input->get('waktu'); $dayasebelum = $this->input->get('dayasebelum'); $daya = $arus*$tegangan; $dayasebelum_kw=$dayasebelum/1000; $daya_kw=$daya/1000; $daya_kwh= (($daya_kw+$dayasebelum_kw)*($waktu/3600))/2;

$datasensor = array('id_alat' => $id_alat, 'arus' => $arus, 'tegangan' => $tegangan, 'daya' => $daya, 'daya_kw' => $daya_kw, 'daya_kwh' => $daya_kwh, 'waktu' => time());

if($this->m_belajar->save($datasensor)){ $this->load->model('m_belajar'); $dataa['kontrol'] = $this->m_belajar->code(); $this->load->view('control', $dataa); } else{ echo "ERROR"; } } else{

echo "variabel data tidak terdefinisi"; }

}

public function input1(){

$this->load->model('m_belajar'); if (isset($_GET['arus'])){ $id_alat = $this->input->get('id_alat'); $arus = $this->input->get('arus'); $tegangan = $this->input->get('tegangan'); $waktu = $this->input->get('waktu'); $dayasebelum = $this->input->get('dayasebelum'); $daya = $arus*$tegangan;

(16)

$dayasebelum_kw=$dayasebelum/1000; $daya_kw=$daya/1000;

$daya_kwh=

(($daya_kw+$dayasebelum_kw)*($waktu/3600))/2;

$datasensor = array('id_alat' => $id_alat, 'arus' => $arus, 'tegangan' => $tegangan, 'daya' => $daya, 'daya_kw' => $daya_kw, 'daya_kwh' => $daya_kwh, 'waktu' => time());

if($this->m_belajar->save1($datasensor)&&$this->m_belajar->save($datasensor)){ $this->load->model('m_belajar'); $dataa['kontrol'] = $this->m_belajar->code(); $this->load->view('control', $dataa); } else{ echo "ERROR"; } } else{

echo "variabel data tidak terdefinisi"; }

}

public function input2(){

$this->load->model('m_belajar'); if (isset($_GET['arus'])){ $id_alat = $this->input->get('id_alat'); $arus = $this->input->get('arus'); $tegangan = $this->input->get('tegangan'); $waktu = $this->input->get('waktu'); $dayasebelum = $this->input->get('dayasebelum'); $daya = $arus*$tegangan; $dayasebelum_kw=$dayasebelum/1000; $daya_kw=$daya/1000; $daya_kwh= (($daya_kw+$dayasebelum_kw)*($waktu/3600))/2;

$datasensor = array('id_alat' => $id_alat, 'arus' => $arus, 'tegangan' => $tegangan, 'daya' => $daya, 'daya_kw' => $daya_kw, 'daya_kwh' => $daya_kwh, 'waktu' => time());

if($this->m_belajar->save2($datasensor)&&$this->m_belajar->save($datasensor)){

(17)

$dataa['kontrol'] = $this->m_belajar->code(); $this->load->view('control', $dataa); } else{ echo "ERROR"; } } else{

echo "variabel data tidak terdefinisi"; }

}

public function input3(){

$this->load->model('m_belajar'); if (isset($_GET['arus'])){ $id_alat = $this->input->get('id_alat'); $arus = $this->input->get('arus'); $tegangan = $this->input->get('tegangan'); $waktu = $this->input->get('waktu'); $dayasebelum = $this->input->get('dayasebelum'); $daya = $arus*$tegangan; $dayasebelum_kw=$dayasebelum/1000; $daya_kw=$daya/1000; $daya_kwh= (($daya_kw+$dayasebelum_kw)*($waktu/3600))/2;

$datasensor = array('id_alat' => $id_alat, 'arus' => $arus, 'tegangan' => $tegangan, 'daya' => $daya, 'daya_kw' => $daya_kw, 'daya_kwh' => $daya_kwh, 'waktu' => time());

if($this->m_belajar->save3($datasensor)&&$this->m_belajar->save($datasensor)){ $this->load->model('m_belajar'); $dataa['kontrol'] = $this->m_belajar->code(); $this->load->view('control', $dataa); } else{ echo "ERROR"; } } else{

echo "variabel data tidak terdefinisi"; }

(18)

public function input4(){ $this->load->model('m_belajar'); if (isset($_GET['arus'])){ $id_alat = $this->input->get('id_alat'); $arus = $this->input->get('arus'); $tegangan = $this->input->get('tegangan'); $waktu = $this->input->get('waktu'); $dayasebelum = $this->input->get('dayasebelum'); $daya = $arus*$tegangan; $dayasebelum_kw=$dayasebelum/1000; $daya_kw=$daya/1000; $daya_kwh= (($daya_kw+$dayasebelum_kw)*($waktu/3600))/2;

$datasensor = array('id_alat' => $id_alat, 'arus' => $arus, 'tegangan' => $tegangan, 'daya' => $daya, 'daya_kw' => $daya_kw, 'daya_kwh' => $daya_kwh, 'waktu' => time());

if($this->m_belajar->save4($datasensor)&&$this->m_belajar->save($datasensor)){ $this->load->model('m_belajar'); $dataa['kontrol'] = $this->m_belajar->code(); $this->load->view('control', $dataa); } else{ echo "ERROR"; } } else{

echo "variabel data tidak terdefinisi"; }

} }

Referensi

Dokumen terkait

Pada uji Dissolved Oxygen (DO) dan uji Biological Oxygen Demand (BOD) perlakuan awal yang dilakukan ialah memasukkan sampel ke dalam botol winkler yang bertutup dengan cara

5 Histogram kepadatan spora pada 50 jenis tumbuhan bawah di tegakan sengon hasil kultur spora setiap 50 gram contoh tanah 16 6 Kekayaan genus spora fungi mikoriza

Karakterisasi kompleks DDI-NKT dan DDI-ARG meliputi, analisis dengan mikroskop polarisasi, difraksi sinar-X serbuk, uji kelarutan, dan stabilitas kimia pada larutan dapar pH 1,2;

Proses komunikasi untuk menyebarluaskan gagasan, ide, dan karya, sebagai suatu produk inovasi pendidikan, maka aspek komunikasi menjadi sangat penting dalam

2 Wakil Dekan Bidang I SALINAN TERKENDALI 02 3 Wakil Dekan Bidang II SALINAN TERKENDALI 03 4 Manajer Pendidikan SALINAN TERKENDALI 04 5 Manajer Riset dan Pengabdian

Pengawasan kualitas merupakan alat bagi manajemen untuk memperbaiki kualitas produk bila dipergunakan, mempertahankan kualitas produk yang sudah tinggi dan

Guru mempersiapkan berbagai kegiatan dan media yang dapat menstimulus peserta didik dalam mengumpulkan informasi tentang materi pembelajaran binatang ikan Guru

Kemandirian merupakan suatu sikap individu yang diperoleh secara kumulatif selama perkembangan dimana individu akan terus belajar untuk bersikap mandiri dalam