Thursday, May 25, 2023

Bedugul, Four Points, Off 3 Minggu

4-23 Mei 2024

Mulai rajin olga, jogging tiap pagi dan/atau sore gym di rumah atau dangin carik

4 off via surabaya, odalan pura ciwa sama tiwik n anak2 aja, ibu gak bisa ikut lagi dapet. 
5 odalan jumah bedangin, dan yang putus di pura, ganti pipa bocor, cuci nmax
6 ke jero, paktut mekman melali bedauh. Olga pagi. 
7 lebar odalan pura ciwa, anak2 ikut semua. Lepas wastra jumah bedauh. 
8 jogging pagi. jual nmax 29.500k yg beli dr kerambitan, ke dusun bedugul asri resto dan villa baru, pesen scoopy inden seminggu di astra grokgak
9 di rumah aja, anter nana aja sekolah bersih2. Olga sore.  
10 gowes, oton citta natab pagi, siang ke Vilo Gelato di umalas, mampir ke atlas canggu tapi sepi bgt. 
11 ke kos isi pulsa pln utama 100k, cek air gentong 2 hari air tidak bisa naik gentong. Suruh wayan pasang selang dr kran depan ke toko kiri. 
12 anter nana, pasang cek valve agar air ke kamar2 langsung dr pdam. Motor scoopy datang warna putih sudah sandi kala. Langsung beli pertamax 2 liter sore itu. 
13 nginep di Four Point by Sheraton Ungasan, makan malam di Padang depan GWK. Anak2 renang, aku bikin desain logo Attaka n Serang TA
14 deba ultah 7 tahun di hotel. Renang di hotel. 
15 potong jepun di sanggah, berhasil connect ENC28J60 modul ethernet untuk monitor pressure hotel platform 4 analog input. 
16 ke dokter daru, dikasi obat kolesterol Truvaz 10mg, karena LDL naik dan ada riwayat tensi. Beli alat2 pipa dan cek valve tambahan utk di kos. Jemput nana ulangan pulang jam 11. Sore rakit pressure gauge digital arduino. 
17 pasang check valve utk outlet gentong di kos, makan siang di warung asri jambe, anter ibu beli gelang di gajah mada, beli reducer di toko sampurna, wehh toko ini lengkap euyyy... 
18 gowes pagi, beli kompor tanam RB 772 ROG 2.1jt di bumimas. ke jero ada aruna, beli nasi angin dajan wisma prasanti, mampir nadhi mart
19 Beli kran utk kos, Ke pura tilem, Clean AC, Sore dokter gizi siloam macet. Disuruh makan 1200 kkal per hari, intermiten fasting 15 jam, 3 pagi, 3 siang, 9 malem. Dikasi omega 3 Cormega soft cap 2x minum sehari. 
20 Bayar pdam di indomaret, pesen bungut paon di pejaten. 
21 nengok anak agus meliling. bikin duplikat kunci dauh pala 20rb sebiji. Cuci rush di bypass. Di rumah aja anak2 mau ulangan. Mbah dona melali curhat soal kadek. Kadek infokan kalo payudara kanan ada benjolan sejak 2 minggu terakhir. Convert instrumentalica 1 jadi WAV, mau diupload ke spotify. 
22 berdua ke jatiluwih snacking di Gong. Beli timbangan makanan. Beli cormega resep dr dokter gizi. Packing pertama kali pake tas polo hadiah training di jogja. 
23 antigen pagi. ke balikpapan naik lion direct. Nginep di esai with
24 on duty ke attaka

08.00-10.30 sepinggan-robinson
11.30-14.15 robinson-santan
16.00-16.30 santan-propane
16.40-17.15 propane attaka






Wednesday, May 17, 2023

Masuk Majalah Energia

Ini adalah kali kedua masuk majalah Energia




Monday, May 15, 2023

Monitoring Level Tangki Air dengan Sensor Pressure Berbasis ESP 8266

#include <ThingSpeak.h>
#include <ESP8266WiFi.h>
int inputpressure = A0;

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

// defenisi variabel
float bacapressure;
float pressure;
float rumus; 
float konstan = 0.13158; 
float maxi = 935;
float zero = 175; //(kalo kekecilan hasil psi-nya, ini naikkan) paling 168
float range = 100;


// Hostpot
const char *ssid =  "ATKNet_MeetingRoom";
const char *pass =  "";

//const char *ssid =  "P_Guest";
//const char *pass =  "Phktjaya";

//const char *ssid =  "RANACITTA";
//const char *pass =  "Pandakgede999";

WiFiClient client;

//thingspeak settings
unsigned long channel = 1995294; //your channel ID number
const char *apiKey = "X1VWYOYR7WD8G3SI"; //your channel write API Key

void setup() {
  lcd.begin(); //lcd inisiasi
  pinMode(inputpressure, INPUT);
  Serial.begin(115200);
  delay(10);

  //connect to WiFi
  Serial.print("Connecting to: "); Serial.println(ssid);
  WiFi.begin(ssid, pass);
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("\nWiFi connected\n");
  ThingSpeak.begin(client); //initialize ThingSpeak
}

void loop() {
bacapressure = analogRead(inputpressure);

//rumus = ((bacapressure*5)/1024);
//rumus = ((bacapressure * 100)/1024); //dikurangin 29, karena saat nol, ada nilai 29
//rumus = ((bacapressure-175)*konstan);
rumus = ((bacapressure-zero)*(range/(maxi-zero)));
pressure = map(rumus, 0, 6.2, 0, 100 ); 
//pressure = map(rumus, 0, 6, 0, 100 ); //dimapping agar pressure 0-6 psi mewakili 0-100%

  Serial.print("Pressure: ");
  Serial.println(rumus);
  delay(200);

  int x = ThingSpeak.writeField(channel, 1, pressure, apiKey);
  if (x == 200) {
    Serial.println("Data " + String(pressure));
    Serial.print("pressure: "); Serial.println(pressure);
    Serial.println("Update to ThingSpeak Successful.");
  }
  else {
    Serial.println("Data " + String(pressure));
    Serial.println("Problem updating data. HTTP error code " + String(x));
  }

  Serial.println("Waiting...\n");

  lcd.setCursor(0,0);
  lcd.print("TANK LEVEL LQ");
  lcd.setCursor(0,1);
  lcd.print(pressure, 1);
  lcd.print(" %");
  //lcd.print(bacapressure);
  //lcd.print(" bit");

  delay(20000);


}

Pressure Gauge Digital Range 1450 PSIG

/*
// definisi variabel
float bacapressure;
float pressure;
float rumus; 
float konstan = 0.13158; 
float maxi = 935;
float zero = 175; //(kalo kekecilan hasil psi-nya, ini naikkan) paling 168
float range = 100;

rumus = ((bacapressure-zero)*(range/(maxi-zero)));

*/
//-----------------------------------------------------------
/*
//14 Mei 2023
Code by: Gede A Setiawan
gedeasetiawan@yahoo.com
KETERANGAN
LCD:
SCL: D1
SDA: D2
VCC: 5V (kalo 3v gak bisa hidup lcd nya)
GND: GND

PRESSURE SENSOR:
Red: 5v --> output byte 175 (ubah 175 di konstanta zero)
Red: 3v --> output byte 120 (ubah 120 di konstanta zero)
Black: Gnd: Ground
Yellow: data --> A0

offset: 9.48 - 11.37 = 1.89 atau setara 0.13%
*/
//-----------------------------------------------------------
float inputpressure = A0;

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

// defenisi variabel
float bacapressure;
float rumus; 
float konstan = 0.13158; //??
float maxi = 935; //output byte saat dikasi pressure pada range maximal 
float zero = 176; //(kalo kekecilan hasil psi-nya, ini naikkan) paling 168
float range = 1450; //range maximal sensor 


void setup() {
  lcd.begin(); //lcd inisiasi
  pinMode(inputpressure, INPUT);
  Serial.begin(9600);
  delay(10);
}
void loop() {
bacapressure = analogRead(inputpressure);
//rumus = (bacapressure*5/1024); 
//rumus = (((bacapressure)*5/1024)-4.23); 
//rumus = ((((bacapressure)/1024*5))-4.7)*1450; 
rumus = ((bacapressure-zero)*(range/(maxi-zero)));

if (rumus < 0) rumus = 0;

Serial.print("Data asli: ");
Serial.print(bacapressure);
Serial.print(" Pressure: ");
Serial.println(rumus);
Serial.println("-------------");
delay(200);

  lcd.setCursor(0,0);
  lcd.print("Pressure Gauge");
  lcd.setCursor(0,1);
  lcd.print(rumus);
  lcd.print(" psig ");
  delay(200);
}

Monitoring Temperatur dan Kelembaban DHT11 via Thingspeak

//program ini berhasil connect ke thingspeak
//untuk 4 inputan/data random

#include <ESP8266WiFi.h>
#include <DHT.h>

#define WIFI_SSID "RANACITTA"
#define WIFI_PASSWORD "Pandakgede999"
#define API_KEY "N3JG5CU3O8TA9B86"
int bilanganacak;
int bilanganacak2;

#define DHTPIN D5
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(115200);
  // 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");

  // Start the DHT sensor
  dht.begin();
}

void loop() {
  // Wait a few seconds between measurements
  delay(5000);

  // Read temperature and humidity from the DHT sensor
  float temperature = dht.readTemperature();
  float humidity = dht.readHumidity();
  bilanganacak = random(0,1000);
  bilanganacak2 = random(1000,5000);

  if (isnan(temperature) || isnan(humidity)) {
    Serial.println("Failed to read from DHT sensor");
    return;
  }

  // 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(temperature) +
               "&field2=" + String(humidity) +
               "&field3=" + String(bilanganacak) +
               "&field4=" + String(bilanganacak2);
               "&field5=" + 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");

    Serial.print(" Temperature: ");
    Serial.print(temperature);
    Serial.print(" Celcius Humidity: ");
    Serial.print(humidity);
    Serial.print(" Bilangan Acak: ");
    Serial.print(bilanganacak);
    Serial.print(" Bilangan Acak 2: ");
    Serial.print(bilanganacak2);

  delay(20000);

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

Hotel Platform Monitoring with Arduino

//program ini sudah dimodifikasi dengan 4 data yang dikirim ke thingspeak
//saat percobaan hanya digunakan sensor pressure di A0
//field1 dan 2 pakai data dari sensor pressure
//field3 dan 4 pakai bilangan acak utk trial koneksi to thingspeak
//modified by gedeasetiawan@yahoo.com 15 Mei 2023
//
// Simple demo for feeding some random data to Pachube.
// 2011-07-08 <jc@wippler.nl>

// License: GPLv2

// Handle returning code and reset ethernet module if needed
// 2013-10-22 hneiraf@gmail.com

// Modifing so that it works on my setup for www.thingspeak.com.
// Arduino pro-mini 5V/16MHz, ETH modul on SPI with CS on pin 10.
// Also added a few changes found on various forums. Do not know what the
// res variable is for, tweaked it so it works faster for my application
// 2015-11-09 dani.lomajhenic@gmail.com

#include <EtherCard.h>

// change these settings to match your own setup
//#define FEED "000"
#define APIKEY "N3JG5CU3O8TA9B86" // put your key here

// ethernet interface mac address, must be unique on the LAN
static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };
const char website[] PROGMEM = "api.thingspeak.com";
byte Ethernet::buffer[700];
uint32_t timer;
Stash stash;
byte session;

//timing variable
int res = 100; // was 0


//------------------------------------pressure-----------------------
float inputpressure = A0;

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

// defenisi variabel
float bacapressure;
float rumus; 
float konstan = 0.13158; //??
float maxi = 935; //output byte saat dikasi pressure pada range maximal 
float zero = 1; //(kalo kekecilan hasil psi-nya, ini naikkan) paling 168
float range = 15; //range maximal sensor 
//-----------------------------------------------------------

void initialize_ethernet(void){
  for(;;){ // keep trying until you succeed
    //Reinitialize ethernet module
    //pinMode(5, OUTPUT);  // do notknow what this is for, i ve got something elso on pin5
    //Serial.println("Reseting Ethernet...");
    //digitalWrite(5, LOW);
    //delay(1000);
    //digitalWrite(5, HIGH);
    //delay(500);

    // Change 'SS' to your Slave Select pin, if you arn't using the default pin
    if (ether.begin(sizeof Ethernet::buffer, mymac, SS) == 0){
      Serial.println( "Failed to access Ethernet controller");
      continue;
    }

    if (!ether.dhcpSetup()){
      Serial.println("DHCP failed");
      continue;
    }

    ether.printIp("IP:  ", ether.myip);
    ether.printIp("GW:  ", ether.gwip);
    ether.printIp("DNS: ", ether.dnsip);

    if (!ether.dnsLookup(website))
      Serial.println("DNS failed");

    ether.printIp("SRV: ", ether.hisip);

    //reset init value
    res = 180;
    break;
  }
}

void setup () {
  Serial.begin(9600);
  Serial.println("\n[Hotel Platform Process Monitoring]");

  //Initialize Ethernet
  initialize_ethernet();

  lcd.begin(); //lcd inisiasi
  pinMode(inputpressure, INPUT); //untuk pressure sensor ------------------------------------------


}

void loop () {
  //if correct answer is not received then re-initialize ethernet module
  if (res > 220){
    initialize_ethernet();

//------------------------------------pressure-----------------------
bacapressure = analogRead(inputpressure);
rumus = ((bacapressure-zero)*(range/(maxi-zero))); //rumus kalkulasi pressure dlm satuan psig

//if (rumus < 0) rumus = 0;

//Serial.print("Data asli: ");
//Serial.print(bacapressure);
//Serial.print(" Pressure: ");
//Serial.println(rumus);
//Serial.println("-------------"); 

  lcd.setCursor(0,0);
  lcd.print("Pressure Gauge");
  lcd.setCursor(0,1);
  lcd.print(rumus);
  lcd.print(" psig ");
  delay(200);

//------------------------------------pressure-----------------------


  }

  res = res + 1;

  ether.packetLoop(ether.packetReceive());

  //200 res = 10 seconds (50ms each res)
  if (res == 200) {

    // Generate random info
    float demo = random(0,500);
    word one = random(500,1000);
    String msje;

    if (demo < 250){
      msje = "low";
    }
    else{
      msje = "high";
    }

    // generate two fake values as payload - by using a separate stash,
    // we can determine the size of the generated message ahead of time
    // field1=(Field 1 Data)&field2=(Field 2 Data)&field3=(Field 3 Data)&field4=(Field 4 Data)&field5=(Field 5 Data)&field6=(Field 6 Data)&field7=(Field 7 Data)&field8=(Field 8 Data)&lat=(Latitude in Decimal Degrees)&long=(Longitude in Decimal Degrees)&elevation=(Elevation in meters)&status=(140 Character Message)
    byte sd = stash.create();
    stash.print("field1=");
    stash.print(bacapressure);
    stash.print("&field2=");
    stash.print(rumus);
    stash.print("&field3=");
    stash.print(demo);
    stash.print("&field4=");
    stash.print(one);
    stash.save();

    //Display data to be sent
    Serial.println();
    Serial.print("Pressure Gas Lift: ");
    Serial.println(bacapressure);
    Serial.print("Pressure Gross: ");
    Serial.println(rumus);
    Serial.print("Pressure OGOL Juliet: ");
    Serial.println(demo);
    Serial.print("Pressure OGGL Juliet: ");
    Serial.println(one);

    // generate the header with payload - note that the stash size is used,
    // and that a "stash descriptor" is passed in as argument using "$H"
    Stash::prepare(PSTR("POST /update HTTP/1.0" "\r\n"
      "Host: $F" "\r\n"
      "Connection: close" "\r\n"
      "X-THINGSPEAKAPIKEY: $F" "\r\n"
      "Content-Type: application/x-www-form-urlencoded" "\r\n"
      "Content-Length: $D" "\r\n"
      "\r\n"
      "$H"),
    website, PSTR(APIKEY), stash.size(), sd);

    // send the packet - this also releases all stash buffers once done
    session = ether.tcpSend();

 // added from: http://jeelabs.net/boards/7/topics/2241
 int freeCount = stash.freeCount();
    if (freeCount <= 3) {   Stash::initMap(56); }
  }

   const char* reply = ether.tcpReply(session);

   if (reply != 0) {
     res = 0;
     Serial.println(F(" >>>REPLY recieved...."));
 //    Serial.println(reply);
   }
   delay(300);
}






Saturday, May 06, 2023

LEBARAN, ACTING, PLC BRAVO

On 19 April - 3 Mei 2023

Setelah off kemaren hanya seminggu, on kali ini 15 hari untuk back up teman2 cuti lebaran. Seminggu pertama aku masih sendiri dan acting 4 hari setelah mas Sigit off hari Senin sore. Selama on duty hampir tiap sore menyempatkan olahraga sekitar 1/2 jam di Attaka. Jalan cepat di topdeck, sepeda statis atau ngegym di bawah. Pokoknya harus ada perubahan gaya agar kolesterol LDL turun. On kali ini juga melepas mas Mahe dan Pak Yamani memasuki pensiun. 

19 otw to santan via propane
20 ganti pilot water regulator, ganti Temp transmitter 8014 karna error, over range
21 di lq aja, repair water regulator prod n pilot
22 lebaran, mas sigit beli makanan 1 4jt. Sholat di bawah helidec. Saya dan mas Mahe dokumentasi. Ganz nyiapin kursi di samping crane tp gak jadi karena hujan deres. Nonton film dono
23 lebaran, repair water regulator ex production
24 di LQ aja, prepare positioner LCV melahin
25 acting1, acara perpisahan mas mahe purnakarya
26 acting2, meeting with pak wawan
27 acting3, KC1 mati dan BDV tdk bisa closed. Closed out meeting. 
28 acting4, meeting pak wawan. ngurus vaksin VGR, trakindo yang datang 3 lagi. 
29 project plc bravo, install tubing dan kabel utk PT
30 bravo plc, install kabel shipping pump
1 ke foxtrot telemetri gross to PI. Ditemukan parallel gas meter ke oscar. Dilepas mau connect. 
2 teman2 vaksin VGR ke santan. Edit PI HMI di production. Sama Kadri n yudith
3 repair auto drain P dan CP
4 off naik citilink via sby with lukman naik mobil ke apt pranoto. 400rb. Jam 8.30 sampe di bandara

Trip ON:
07.00-09.30 bpn-robinson
10.10-13.00 robinson-santan
14.00-15.45 santan-attaka

Trip OFF:
atk-stn 5.30-7.00 peacock+KCL
stn-pranoto 7.15-8.50 (bis)
stn-pranoto 7.10-8.30 (mobil)
pranoto-robinson 8.50-9.30
robinson-sepinggan 10.00-12.15