• 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

Jika anda berhasil masuk (login) dengan menggunakan user dan password yang sudah ditentukan di atas, berarti Database Server , Service PHP dan sekaligus

Modul “ Keanekaragaman Tumbuhan Bawah pada Tegakan Hutan Wanagama Kabupaten Gunungkidul ” ini merupakan modul pengayaan yang digunakan sebagai alternatif bahan

Untuk partikel yang bergerak melingkar secara berubah beraturan dengan percepatan sudut  dalam waktu t, maka perubahan kecepatan sudut yang di alami oleh

n a  x Nilai sekarang aktuaria dari anuitas awal jiwa seumur hidup dengan pembayaran di awal periode bagi seseorang yang berusia x tahun dan ditunda selama

[r]

Modul Ajar Prakarya Rekayasa Kelas 7 SMP/MTs Fase D Unit 2 - 4, 5, 6 Kurikulum Merdeka -

[r]

KEMENTERIAN R1SET, TEKNOLOGI, DAN PENDIDIKAN TINGGI UNIVERSITAS MALIKUSSALEH Cot Teungku Nie - Reuleut Kecamatan Muara Batu - Aceh Utara Laman : littp://www.unimaLac.id email