Wednesday, March 06, 2024

Hotel Process Monitoring

/*
program ini dibuat Mei 2023 dan direvisi Februari 2024
untuk 6 inputan:
-PT1 : Gross Hotel              = IN 34 = range 0-500 psig
-PT2 : OGOL Juliet              = IN 35 = range 0-500 psig
-PT3 : OGGL Juliet              = IN 32 = range 0-500 psig
-PT4 : Instrument Air Pressure  = IN 33 = range 0-300 psig
-PT5 : ESD Loop Pressure        = IN 25 = range 0-300 psig
-PT6 : G/L Incoming             = IN 26 = range 0-1450 psig
percobaan dengan ESP32 DEV KIT
LCD 20x4 i2c diconnect ke D22=SCL, D21=SDA
program dirangkum gedeasetiawan@gmail.com
*/
#include <WiFi.h>

//lcd
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);

//channel: 2413899
//#define WIFI_SSID "RANACITTA"
//#define WIFI_PASSWORD "Pandakgede999"
#define WIFI_SSID "Tselhome-5D61"
#define WIFI_PASSWORD "60699303"
#define API_KEY "K1UO1A5BGCO2PKAE"

// definisi variabel
//PT1 Gross hotel -------------------------------------------------------------------------------
float rumus1; 
float zero1 = 260; //(kalo kekecilan hasil psi-nya, ini naikkan) cek saat pressure zero
float maxi1 = 3500; //cek saat pressure max range, cek saat pressure di range maximal psi
float range1 = 500; //range pressure transmitter dalam hal ini 500 psig
float inputpressure1 = 34; //baca data dari Ai
float bacapressure1; //baca data dari inputpressure
//-----------------------------------------------------------------------------------------------
//PT2 OGOL Juliet -------------------------------------------------------------------------------
float rumus2; 
float zero2 = 240; //(kalo kekecilan hasil psi-nya, ini naikkan) cek saat pressure zero
float maxi2 = 3500; //cek saat pressure max range, cek saat pressure di range maximal psi.
float range2 = 500; //range pressure transmitter dalam hal ini 500 psig
float inputpressure2 = 35; //baca data dari Ai
float bacapressure2; //baca data dari inputpressure
//-----------------------------------------------------------------------------------------------
//PT3 OGGL Juliet -------------------------------------------------------------------------------
float rumus3; 
float zero3 = 245; //(kalo kekecilan hasil psi-nya, ini naikkan) cek saat pressure zero
float maxi3 = 3500; //cek saat pressure max range, cek saat pressure di range maximal psi
float range3 = 500; //range pressure transmitter dalam hal ini 500 psig
float inputpressure3 = 32; //baca data dari ANALOG INPUT
float bacapressure3; //baca data dari inputpressure
//-----------------------------------------------------------------------------------------------
//PT4 Instrument Air Pressure--------------------------------------------------------------------
float rumus4; 
float zero4 = 245; //(kalo kekecilan hasil psi-nya, ini naikkan) cek saat pressure zero
float maxi4 = 3400; //cek saat pressure max range, cek saat pressure di range maximal psi. kalo kurang, nilai ini dikurangi
float range4 = 300; //range pressure transmitter dalam hal ini 300 psig
float inputpressure4 = 33; //baca data dari ANALOG INPUT
float bacapressure4; //baca data dari inputpressure
//-----------------------------------------------------------------------------------------------
//PT5 ESD Loop Pressure--------------------------------------------------------------------------
float rumus5; 
float zero5 = 270; //(kalo kekecilan hasil psi-nya, ini naikkan) cek saat pressure zero
float maxi5 = 3400; //cek saat pressure max range, cek saat pressure di range maximal psi
float range5 = 300; //range pressure transmitter dalam hal ini 300 psig
float inputpressure5 = 25; //baca data dari ANALOG INPUT
float bacapressure5; //baca data dari inputpressure
//-----------------------------------------------------------------------------------------------
//PT6 Gas Lift Pressure Incoming-----------------------------------------------------------------
float rumus6; 
float zero6 = 305; //(kalo kekecilan hasil psi-nya, ini naikkan) cek saat pressure zero
float maxi6 = 3460; //cek saat pressure max range, cek saat pressure di range maximal psi
float range6 = 1450; //range pressure transmitter dalam hal ini 1450 psig
float inputpressure6 = 26; //baca data dari ANALOG INPUT
float bacapressure6; //baca data dari inputpressure
//-----------------------------------------------------------------------------------------------

void setup() {
  Serial.begin(9600);
  lcd.begin(); //lcd inisiasi

//PIN MODE---------------------------------------------------------------------------------------
  pinMode(inputpressure1, INPUT);
  pinMode(inputpressure2, INPUT);
  pinMode(inputpressure3, INPUT);
  pinMode(inputpressure4, INPUT);
  pinMode(inputpressure5, INPUT);
  pinMode(inputpressure6, INPUT);

//-----------------------------------------------------------------------------------------------
///*===============tambahan
  // Connect to WiFi network
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...  ");
  }
Serial.println("Connected to WiFi");
Serial.println("Hotel Platform Monitoring");
//*/ //===============tambahan
}

void loop() {
  // Wait a few seconds between measurements
  delay(1000);
//rumus menghitung pressure

//GROSS H===============================================================================================
  bacapressure1 = analogRead(inputpressure1);
  rumus1 = ((bacapressure1-zero1)*(range1/(maxi1-zero1))); //rumus kalkulasi pressure dlm satuan psig
  if (rumus1 < 0) rumus1 = 0;
//OGOL JULIET ==========================================================================================
  bacapressure2 = analogRead(inputpressure2);
  rumus2 = ((bacapressure2-zero2)*(range2/(maxi2-zero2))); //rumus kalkulasi pressure dlm satuan psig
  if (rumus2 < 0) rumus2 = 0;
//OGGL JULIET =========================================================================================
  bacapressure3 = analogRead(inputpressure3);
  rumus3 = ((bacapressure3-zero3)*(range3/(maxi3-zero3))); //rumus kalkulasi pressure dlm satuan psig
  if (rumus3 < 0) rumus3 = 0;
//Instrument Air Pressure==============================================================================
  bacapressure4 = analogRead(inputpressure4);
  rumus4 = ((bacapressure4-zero4)*(range4/(maxi4-zero4))); //rumus kalkulasi pressure dlm satuan psig
  if (rumus4 < 0) rumus4 = 0;
//ESD Loop Pressure====================================================================================
  bacapressure5 = analogRead(inputpressure5);
  rumus5 = ((bacapressure5-zero5)*(range5/(maxi5-zero5))); //rumus kalkulasi pressure dlm satuan psig
  if (rumus5 < 0) rumus5 = 0;
//ESD Loop Pressure====================================================================================
  bacapressure6 = analogRead(inputpressure6);
  rumus6 = ((bacapressure6-zero6)*(range6/(maxi6-zero6))); //rumus kalkulasi pressure dlm satuan psig
  if (rumus6 < 0) rumus6 = 0;
//=====================================================================================================

  if (isnan(bacapressure1) || isnan(inputpressure1)) {
    Serial.println("Failed to read from pressure transmitter");
    return;
  }
///*===============tambahan

  // Connect to ThingSpeak server
  WiFiClient client;
  const int httpPort = 80;
  if (!client.connect("api.thingspeak.com", httpPort)) {
    Serial.println("Connection to ThingSpeak failed");
    return;
  }

// Send data to ThingSpeak
  String url = "/update?key=" + String(API_KEY) +
               "&field1=" + String(rumus1) +
               "&field2=" + String(rumus2) +
               "&field3=" + String(rumus3) +
               "&field4=" + String(rumus4) +
               "&field5=" + String(rumus5) +
               "&field6=" + String(rumus6) +
               "&field7=" + String(0.0);
  client.print(String("GET ") + url + " HTTP/1.1\r\n" +
               "Host: api.thingspeak.com\r\n" +
               "Connection: close\r\n\r\n");
//*/ //===============tambahan

//print serial
    Serial.println(" --------------------------- ");
    Serial.print(" Gross H Pressure  : ");
    Serial.print(bacapressure1); Serial.println(" psig");
    Serial.print(" OGOL J Pressure   : ");
    Serial.print(bacapressure2); Serial.println(" psig");
    Serial.print(" OGGL J Pressure   : ");
    Serial.print(bacapressure3); Serial.println(" psig");
    Serial.print(" Inst Air Pressure : ");
    Serial.print(bacapressure4); Serial.println(" psig");
    Serial.print(" ESD Loop Pressure : ");
    Serial.print(bacapressure5); Serial.println(" psig");
    Serial.print(" Gas Lift Pressure : ");
    Serial.print(bacapressure6); Serial.println(" psig");

//display to LCD 20x4
  lcd.setCursor(0,0);
  lcd.print("Gross :");
  lcd.print(rumus1, 1);

  lcd.setCursor(0,1);
  lcd.print("OGOL J:");
  lcd.print(rumus2, 1); //lcd.print("  ");

  lcd.setCursor(0,2);
  lcd.print("OGGL J:");
  lcd.print(rumus3, 1);

  lcd.setCursor(0,3);
  lcd.print("Instr :");
  lcd.print(rumus4, 1);

  lcd.setCursor(14,0);
  lcd.print("ESD:");
  lcd.setCursor(14,1);
  lcd.print(rumus5, 1);

  lcd.setCursor(14,2);
  lcd.print("G/L H:");
  lcd.setCursor(14,3);
  lcd.print(rumus6, 1);

  delay(20000);

  Serial.println(" Data sent to ThingSpeak");
}




Diet Nggak Ngoyo Biar Nggak Loyo

Diet saya gak aneh2. Gak perlu pake tambahan2 nutrisi. Cukup hilangkan makan carbo di menu makan malam. Jadi makan malamnya lauk, sayur dan buah saja buat mengenyangkan, tanpa nasi. Syukurnya punya istri yg dgn sabar mau memasakkan sayur tiap sore. Kalo malem terasa lapar, makan saja sebutir pisang, makanya, sekarang, di bawah tudung saji selalu tersedia pisang. Setelah sebulan menjalani diet ini, perut rasanya plong tiap bangun pagi. Rasa perut kosong-plong di pagi hari itu bikin ketagihan. 

Selain ngilangin carbo di menu makan malam, bulan kedua mulai stop kopi, teh, atau minuman manis apapun. Di awal memang terasa hambar. Nguranginnya pun jangan drastis, pelan-pelan saja. Dulu sebelum diet, bikin teh/kopi di pagi dan sore hari, triknya adalah di minggu pertama hilangin teh pagi dahulu, minggu kedua hilangin teh sore. Minggu ketiga udah terlatih perutnya. Kalo pengen yg manis-manis, bolehlah sesekali bikin teh/kopi tapi gulanya separuh dari biasanya, lama2 akan terbiasa. Kalopun pengen beli boba jangan dihabiskan sendiri, beli 1 gelas bagi berdua sama anak atau istri. Bukan pelit, tapi ini demi wkwkwk.

Bulan ketiga saya hilangkan snack. Kalau awalnya saya punya kebiasaan setiap coffee time pagi selalu bikin teh dan makan snack, cofee time sore juga sama. Nah di bulan kedua ini saya hilangkan snacknya. Diganti dengan buah potong saja. Awalnya memang terasa ada yg hilang. Tapi coba aja latih kendalikan 2 atau 3 hari udah terbiasa kok. Pak dokter menyebutnya metabolic training, perut kita dilatih pelan-pelan. 

Bulan keempat dan seterusnya sudah terbiasa dengan pola kebiasaan di atas. Malah perut kita akan menolak kalo makannya kebanyakan, perut rasanya kembung dan begah. 

Olahraga? Nggak ngoyo2 bgt. Masih sama seperti sebelumnya. Paling jogging dan gowes 3x seminggu masing2 selama 1/2 jam. Jadi tahun ini fokus diet aja. 

Jadi selama setahun ini sudah bisa turun 8 kg dan lingkar perut turun dari 109 ke 97. 

Tuesday, March 05, 2024

REVOLUSI MENTAL ORANG BALI

Kalo tiap hari bergumul dgn macet akan hilang rasa sabar
Upacara membuat ngutang, sakit mental, bahkan sakit fisik. People pleasure. Perlu dibuat standar biar tdk saling jor2an
Jika serati mata duitan hancur sudah orang bali, wanaprasta harusnya buat beramal malah berbisnis, niatkan membantu orang
Perlu memberikan gaji pemangku di bali, biar mereka fokus kepada spiritualitas
Jadikan pasraman sbg tmpt belajar agama bukan tmpt jualan banten saja
Cowok2nya juga mustinya ikut ke pura
Pas sembahyang musti sepi tdk ada yg ribut
Sampah kwangen atau bunga dibersihkan sendiri2 sehabis sembahyang
Jika karma lah penentu atman akan pergi kmn, terus buat apa upacara ngaben yg mewah itu?


Monday, March 04, 2024

Makna Kain kotak-kotak di Bali

Kain kotak-kotak di Bali bermakna rwa bhinneda. Kehidupan hanyalah dualisme, gelap terang adalah sebuah kesatuan, tidak saling bertentangan. Dimana siang berdampingan dengan malam, orang ganteng ada karena ada yg tidak ganteng, orang kaya ada karena si miskin. 
Kehidupan menjadi menderita tatkala kita hanya menyayang yg terang, sementara yg gelap ditendang. 
Menyayang istri cantik lengkap dengan kentutnya yang bau, menyayang anak pintar lengkap dengan segala kenakalannya, mertua kaya lengkap dengan kecerewetannya, memandang sebagai sebuah keutuhan. 
Jika kita bisa memeluk kegelapan, maka cahaya akan bersinar lebih terang. Jika kita bisa memeluk yg serem2, maka yang baik2 akan mudah ditaklukkan. 
Jika kita bisa memeluk masalah, musibah, rasa khawatir, rasa takut, orang yg nyebelin, orang yg dianggap jahat, dll sebagai sebuah penghias kehidupan, maka kehidupan akan berjalan lebih ringan. 

Sunday, March 03, 2024

Masih Layakkah Kita Mengeluh?

Di saat kita jalan kaki untuk olahraga, di saat yg sama ada orang2 yg harus berjalan jauh untuk memenuhi kebutuhan hidup. Di saat kita nge-gym angkat beban demi bentuk badan yg ideal, di saat yg sama ada yg angkat2 batu bata biar anak istrinya bisa makan di rumah dengan ceria. Di saat kita bersepeda untuk hidup lebih sehat, di saat yg sama ada tukang becak mengayuh sepeda demi sesuap nasi bungkus. Di saat kita bergelantungan di pull up bar di fitness center, di saat yg sama ada orang bergelantungan di tiang2 listrik, di tiang2 penyedia jasa internet kabel demi makan keluarga. Di saat kita berkendara jauh2 untuk menghibur diri atau healing, disisi lain ada yg berkendara ribuan kilo demi makan sehari2. 
Di saat kita menginap di glamping mewah untuk liburan, di saat yg sama ada keluarga yg tidur di bawah tenda2 kusam di bawah jembatan. 
Di satu sisi orang2 menyisihkan waktu untuk hidup lebih sehat, di sisi lain aktivitasnya sehari2 mereka sudah membuat badan mereka sehat. Jadi mana yg lebih beruntung?

Lalu masih layakkah kita mengeluh dengan rezeki kita hingga hari ini?