Arsip untuk Agustus, 2017


Assalamu’alaikum Wr. Wb.

Oke saya lanjutkan. remind lagi ini adalah seri berantai dari posting berikut ya

  1. https://tarecha.wordpress.com/2015/10/26/project-raspberry-pi/
  2. https://tarecha.wordpress.com/2017/06/05/project-weather-logger-part-1/
  3. https://tarecha.wordpress.com/2017/06/26/project-weather-logger-part-2-tambahan-sensor-tekanan-udara/
  4. https://tarecha.wordpress.com/2017/07/01/project-weather-logger-part-3-komunikasi-udp/
  5. https://tarecha.wordpress.com/2017/07/15/project-weather-logger-part-4-simpan-di-server-mysql/
  6. https://tarecha.wordpress.com/2017/07/24/project-weather-logger-part-5-view-data-dan-export/
  7. https://tarecha.wordpress.com/2017/07/25/project-weather-logger-part-6-plot-graphic/
  8. https://tarecha.wordpress.com/2017/07/29/project-weather-logger-part-7-ngrok-http-tunneling/

2017-08-27 11_34_15-untitled - Paint

setelah beberapa saat humidity dari sensor DHT drop menjadi 1.4 %. lalu saya perbaiki dengan di solder lagi, mungkin karena sensornya kena panas jadi dia kembali normal lagi. setelah beberapa saat drop lagi. saya yakin ini bukan soal softwarenya, dan setelah cari-cari memang sensor DHT22 ini sensor murah, jadi ya gak bisa perform lama.salah satu keterangan di forum berikut . https://arduino.stackexchange.com/questions/17237/humidity-values-returned-by-dht22-sensors-failing-after-some-time

jadi saya beli lagi sensor BME280 dan node mcu 1 unit lagi. dan mengganti seluruh codingnya jadi 3 data saja, humidity, temperature, dan pressure. tinggal edit2 sedikit sih.

bme 280

kurang lebih mirip sensor bmp 280, alamatnya juga diganti, dibrary dari adafruit librarynya bisa didownload dari sini https://learn.adafruit.com/adafruit-bme280-humidity-barometric-pressure-temperature-sensor-breakout/wiring-and-test 2017-08-27 11_42_50-D__arduino-1.8.2-windows_arduino-1.8.2-windows_arduino-1.8.2_libraries_Adafruit_

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>

Adafruit_BME280 bme; // I2C

WiFiUDP Udp;
byte localUdpPort = 80;  // local port to listen on
char incomingPacket[255];  // buffer for incoming packets
char  replyPacket[255];

//untuk server
const char* ssid = "tarecha";
const byte buzzerPin = D8;
const char* password = "12345678a";
const String aHostname = "N1";
String dataSensor;
String infoNode;
unsigned long delayKirimDataSensor = 0;

void setup()
{
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(buzzerPin, OUTPUT);
  Serial.begin(9600);

  Wire.begin(D2, D1); //Sensor bme
  WiFi.begin(ssid, password);
  if (!bme.begin()) {
    Serial.println(F("Could not find a valid bme280 sensor, check wiring!"));
    while (1);
  }
  //bagian setup wifi
  Serial.printf("Connecting to %s ", ssid);
  WiFi.mode(WIFI_STA);
  WiFi.hostname(aHostname);
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");

  }
  Serial.println(" connected");
  Udp.begin(localUdpPort);
  infoNode = (String)"Restart reason : " + ESP.getResetReason().c_str() + "\n MAC : " + WiFi.macAddress().c_str() + "\n Hostname : " + WiFi.hostname().c_str() + "\n Signal Stringth : " + WiFi.RSSI() +
             "\n Local IP : " + WiFi.localIP().toString().c_str() + "\n Port : " + localUdpPort + "\n CPU Freq : " + String(ESP.getCpuFreqMHz()) + " MHz\n Sketch Size : " + ESP.getSketchSize()
             + "\n Free Space Sketch Size : " + ESP.getFreeSketchSpace();

  Serial.println(infoNode);

  buzzerlampu();
}

void buzzerlampu()
{
  digitalWrite(LED_BUILTIN, LOW);
  digitalWrite(buzzerPin, HIGH);
  delay(500);
  digitalWrite(LED_BUILTIN, HIGH);
  digitalWrite(buzzerPin, LOW);
  delay(500);
  digitalWrite(LED_BUILTIN, LOW);
  digitalWrite(buzzerPin, HIGH);
  delay(500);
  digitalWrite(LED_BUILTIN, HIGH);
  digitalWrite(buzzerPin, LOW);
  delay(500);

}

void lampu()
{
   digitalWrite(LED_BUILTIN, LOW);
   delay(500);
   digitalWrite(LED_BUILTIN, HIGH);
   delay(5); 

}

void loop()
{

  if (delayKirimDataSensor > 200000)
  {
    UpdateSensor();
    Serial.println(dataSensor);
    delayKirimDataSensor = 0;
  }
  delayKirimDataSensor++;
  requestHandler();

}

void UpdateSensor()
{

  dataSensor = (String)aHostname + "," + bme.readHumidity()+ "," + bme.readTemperature() + "," + bme.readPressure()/100.0F;
}

void requestHandler()
{
  int packetSize = Udp.parsePacket();

  if (packetSize)
  {
    // receive incoming UDP packets
    Serial.printf("Received %d bytes from %s, port %d\n", packetSize, Udp.remoteIP().toString().c_str(), Udp.remotePort());
    int len = Udp.read(incomingPacket, 255);
    if (len > 0)
    {
       incomingPacket[len] = 0;
    }
    Serial.printf("UDP packet contents: %s\n", incomingPacket);
    if (incomingPacket[0] == 'd') //get data
    {
      dataSensor.toCharArray(replyPacket, 255);
    }
    else if (incomingPacket[0] == 'i') //get info sensor
    {
      infoNode.toCharArray(replyPacket, 255);
    }
    else if (incomingPacket[0] == 'r') //perintah restart
    {
      String perintah = (String)"Terima udp perintah restart dari "+ Udp.remoteIP().toString().c_str();
      perintah.toCharArray(replyPacket, 255);
      Serial.println(perintah);
      Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
      Udp.write(replyPacket);
      Udp.endPacket();
      digitalWrite(buzzerPin, HIGH);
      digitalWrite(LED_BUILTIN, LOW);
      delay(10000);
      ESP.restart();
    }
    else
    {
      String lain = "masuk else";
      lain.toCharArray(replyPacket, 255);
    }

    Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
    Udp.write(replyPacket);
    Udp.endPacket();
    Serial.printf("isi reply packet %s\n", replyPacket);
    lampu(); //nyalakan lampu biru setiap kirim data

  }

}

kode lainnya tinggal penyesuaian saja dihilangkan temperature dht nya karena gk pakai sensor tersebut.

hasilnya sebagai berikut. nanti code terakhirnya saya svn kan saja, saya gk bisa pakai git he he.

dan jadinya seperti ini jadi 3 data saja. schematiknya tetap sama. saya gk jadi pakai yang baru. yang node sudah jadi lama saya upload ulang dan ganti sensor bme 280 saja. sedangkan node satunya mau saya pakai remote reboot saja untuk ikut kompetisi di hackster.io

2017-08-27 11_48_51-VNC Viewer

 

oh ya soal sync data ke slave server saya belum bisa. masih gagal ketika koneksi putus dan ada lagi langsung  lanjutkan sync data. jadi nanti saja saya posting kalau sudah berhasil. tinggal sync data doank sih. klo udah ya selesai. klo mau ya bisa ditambahkan perbandingan suhu di kota A dan di kota B dalam bentuk grafik. biar tahu perbandingannya.

oke udah ya

Wassabamu’alaikum Wr. Wb.

Iklan

SOP Emergency Action Data Center

Posted: 1 Agustus 2017 in Pengalaman

AC pendingin server

AC pendingin server

Assalamu’alaikum Wr. Wb.

Saya mau share mengenai EMERGENCY ACTION DATACENTER.

yang penting dalam keadaan emergency adalah “TETAP TENANG dan JANGAN PANIK”

yang saya tulis bedasarkan pengalaman ya, bukan dari klausul-klausul seperti ISO  atau standarisasi lainnya. Foto yang saya share tidak mengandung rahasia perusahan, hal ini adalah foto umum dari sebuah data center. maksudnya tidak ada data yang bersifat merugikan perusahaan jika ditulis. tenang saya sudah dapat pelatihan soal ini 🙂

Saya menulis pengalaman pribadi ya. semoga bisa bermanfaat bagi rekan-rekan yang juga berprofesi sebagai IT Infrastructure seperti saya.

1. Case : Belt Precission Air Conditioner putus

2. Akibat : Suhu Datacenter naik

3. Risiko : Server bisa down karena overheat

4. Preventive Action :

Kita sudah melakukan kontrak maintenance dengan Vendor untuk perawatan PAC, dan yang menjadi penting adalah jangan menunggu rusak untuk maintenance. Pastikan selalu ada budget maintenance karena kita tidak tahu sewaktu2 rusak. Ketika tiba2 PAC rusak dengan belt putus maka tinggal telpon vendor akan segera datang untuk proses perbaikan. Selalu lakukan Maintenance berkala. sebisa mungkin punya sparepart seperti belt nya. kalau2 putus bisa diganti sendiri.

hal yang penting adalah punya AC backup dan jangan sampai rusak backupnya, kita punya AC SPlit ( AC ruangan pada umumnya) untuk membackup. namun memang peformanya tidak sebaik PAC. yang penting bisa menahan suhu agar tidak melonjak drastis

5. Smart Action :

hal yang perlu dipikirkan adalah vendor tidak bisa datang detik itu juga, dari surabaya ke pasuruan butuh sekitar 2 jam, tapi jangan diam saja. lakukan langkah2 untuk mendinginkan server. seperti gambar dibawah saya ambil AC portabel dan hot air nya kita kasi belalai agar panasnya keluar, arahkan langsung ke server karena server the most critical. tambah blower. blower akan membantu proses sirkulasi udara.

6. Corrective

langkah pertama adalah ketika PAC nya alarm dan mati. Matikan MCB / catu daya utama. lalu buka tutup untuk melihat apa kerusakannya. jangan sekali2 buka sebelum listriknya benar2 mati. Selalu periksa suhu server. kalau mentok ya shutdown server lebih baik daripada autoshutdown karena overheat.

 

Sekian . mungkin kurang sistematis tulisan saya . kira2 seperti itu lah. dan setelah berselang 2 jam suhu berangsur2 turun. masih kita monitor

semoga bermanfaat bagi rekan2.

Wassalamu’alaikum Wr. Wb.

 

Belt Putus

Belt Putus