Friday, September 22, 2017

ruwet with sim800l v2



#include <gprs.h>
#include <SoftwareSerial.h>

#define TIMEOUT    5000
#define LED_PIN    13
#define ON HIGH
#define OFF LOW

//tx 2
//rx 4
const int Relay1 = 7;
const int Relay2 = 6;
const int Relay3 = 5;
const int Relay4 = 3;


const int DI1 = A0;                                      
const int DI2 = A1;                          

int buttonState1=0;
int lastButtonState1=0;

int buttonState2=0;
int lastButtonState2=0;                   


int StatRelay1;
int StatRelay2;
int StatRelay3;
int StatRelay4;

GPRS gprs;

void setup() {
  pinMode (Relay1 , OUTPUT); digitalWrite (Relay1, LOW);
  pinMode (Relay2 , OUTPUT); digitalWrite (Relay2, LOW);
  pinMode (Relay3 , OUTPUT); digitalWrite (Relay3, LOW);
  pinMode (Relay4 , OUTPUT); digitalWrite (Relay4, LOW);
 
  pinMode (DI1 , INPUT);
  pinMode (DI2 , INPUT);
 
 
 
  Serial.begin(9600);
  while(!Serial);

  Serial.println("Starting SIM800 Auto Read SMS");
  gprs.preInit();
  delay(1000);

  while(0 != gprs.init()) {
      delay(1000);
      Serial.print("init error\r\n");
  }

  //Set SMS mode to ASCII
  if(0 != gprs.sendCmdAndWaitForResp("AT+CMGF=1\r\n", "OK", TIMEOUT)) {
    ERROR("ERROR:CNMI");
    return;
  }
  
  //Start listening to New SMS Message Indications
  if(0 != gprs.sendCmdAndWaitForResp("AT+CNMI=1,2,0,0,0\r\n", "OK", TIMEOUT)) {
    ERROR("ERROR:CNMI");
    return;
  }

  Serial.println("Init success");
}

//Variable to hold last line of serial output from SIM800
char currentLine[500] = "";
int currentLineIndex = 0;

//Boolean to be set to true if message notificaion was found and next
//line of serial output is the actual SMS message content
bool nextLineIsMessage = false;

void loop() {
   int buttonState1=digitalRead(DI1);
 
  int buttonState2=digitalRead(DI2); 
  int teg =analogRead (A2);
  {
    if (buttonState1!= lastButtonState1)
    {
  if (buttonState1 == HIGH)
  {
    gprs.sendSMS("085853830668", "1 2 1");
    Serial.println("\nDI 1ON");
    }
  else {
   gprs.sendSMS("085853830668", "1 2 0");
    Serial.println("\nDI 1OFF");
  }
    }
    lastButtonState1=buttonState1;
  delay(300);
  }
 
  //Write current status to LED pin
  digitalWrite(Relay1, StatRelay1);
  digitalWrite(Relay2, StatRelay2);
  digitalWrite(Relay3, StatRelay3);
  digitalWrite(Relay4, StatRelay4);
  
  //If there is serial output from SIM800
  if(gprs.serialSIM800.available()){
    char lastCharRead = gprs.serialSIM800.read();
    //Read each character from serial output until \r or \n is reached (which denotes end of line)
    if(lastCharRead == '\r' || lastCharRead == '\n'){
        String lastLine = String(currentLine);
        
        //If last line read +CMT, New SMS Message Indications was received.
        //Hence, next line is the message content.
        if(lastLine.startsWith("+CMT:")){
          
          Serial.println(lastLine);
          nextLineIsMessage = true;
          
        } else if (lastLine.length() > 0) {
          
          if(nextLineIsMessage) {
            Serial.println(lastLine);
            

// ########## MEMBACA KONTEN SMS DAN MENCARI+MENGARTIKAN KONTEN SMS KE PROGRAM #########
            //Kendali Relay
              if(lastLine.indexOf("1 1 1") >= 0){
              StatRelay1 = ON;
              Serial.println("DO1 ON");
              gprs.sendSMS ("085853830668","1 1 1");}
              else if(lastLine.indexOf("1 1 0") >= 0) {
              StatRelay1 = OFF;
              Serial.println("DO1 OFF");
              gprs.sendSMS ("085853830668","1 1 0");}
           
             
              if(lastLine.indexOf("1 5 1") >= 0){
              StatRelay2 = ON;
              Serial.println("Relay2 DINYALAKAN");
              gprs.sendSMS ("085853830668","1 5 1");}
              else if(lastLine.indexOf("1 5 0") >= 0) {
              StatRelay2 = OFF;
              Serial.println("Relay2 DIMATIKAN");
              gprs.sendSMS ("085853830668","1 5 0");}

              if(lastLine.indexOf("Relay3 ON") >= 0){
              StatRelay3 = ON;
              Serial.println("Relay3 DINYALAKAN");
              gprs.sendSMS ("081555305255","Relay3 DINYALAKAN");}
              else if(lastLine.indexOf("Relay3 OFF") >= 0) {
              StatRelay3 = OFF;
              Serial.println("Relay3 DIMATIKAN");
              gprs.sendSMS ("081555305255","Relay3 DIMATIKAN");}

              if(lastLine.indexOf("Relay4 ON") >= 0){
              StatRelay4 = ON;
              Serial.println("Relay4 DINYALAKAN");
              gprs.sendSMS ("081555305255","Relay4 DINYALAKAN");}
              else if(lastLine.indexOf("Relay4 OFF") >= 0) {
              StatRelay4 = OFF;
              Serial.println("Relay4 DIMATIKAN");
              gprs.sendSMS ("081555305255","Relay4 DIMATIKAN");}
           
              if(lastLine.indexOf("update") >= 0){
              Serial.println("update analog");
              gprs.sendSMS ("085853830668", teg);}
             
           
            
            nextLineIsMessage = false;
          }
          
        }
        
        //Clear char array for next line of read
        for( int i = 0; i < sizeof(currentLine);  ++i ) {
         currentLine[i] = (char)0;
        }
        currentLineIndex = 0;
    } else {
      currentLine[currentLineIndex++] = lastCharRead;
    }
  }
}

pengukuran baterai per cell dengan arduino


eksperimen kali ini tentang penguukuran baterai percell. yang dimonitoring dari arduino.
ini rencananya monitoring tegangan baterai rectifier di sebuah substation.

berikut sketchnya:

int BT1 = A5;   
int BT2 = A4;

int Bat1 = 0; 
int Bat2 = 0;
int BatT = 0;

void setup() {
    Serial.begin(9600);
}

void loop() {
   float Bat1 = analogRead(BT1)*0.01437;
   float Bat2 = analogRead(BT2)*0.02517;
   float BatT = analogRead(BT2)*0.05028;
   Serial.print("Baterai 1 = " );
  Serial.print(Bat1);
  Serial.print("     Baterai 2 = ");
  Serial.print(Bat2);
  Serial.print("     Baterai Total  = ");
  Serial.println(BatT);

   delay(1000);
}


komponen yang dibutuhkan
1. resistor 4 buah yang d rangkai voltage divider.
2. dtambah kapasitor2 buah sebagai filter






Wednesday, September 13, 2017

integrasi epm5500 to SIMOR

bagi yang membutuhkan addres modbus power meter epm5500P multilin
bisa download disini




percobaan integrasi power meter multilin epm 5500P to rtu simor.
data yang di ambil tegangan arus dan frekwensi
data yang dikirim sisi primer.
sperti contoh :
saya injek arus 1A,
ratio CT  400/5
tampilan LCD menunjukan 80, akan tetapi yang keluar di data modbus 1000
jadi agar datanya sama tampilan LCD di faktor kalikan 0,8 (sesuai ratio CT.


berikut videonya



thanks

Wednesday, August 23, 2017

try Raspberry for Modbus Master

who Raspberry pi??????
 

Raspberry Pi, sering disingkat dengan nama Raspi, adalah komputer papan tunggal (single-board circuit; SBC) yang seukuran dengan kartu kredit yang dapat digunakan untuk menjalankan program perkantoran, permainan komputer, dan sebagai pemutar media hingga video beresousi tinggi. Raspberry Pi dikembangkan oleh yayasan nirlaba, Rasberry Pi Foundation, yang digawangi sejumlah pengembang dan ahli komputer dari Universitas Cambridge, Inggris.
Ide dibalik Raspberry Pi diawali dari keinginan untuk mencetak pemrogram generasi baru. Seperti disebutkan dalam situs resmi Raspberry Pi Foundation, waktu itu Eben Upton, Rob Mullins, Jack Lang, dan Alan Mycroft, dari Laboratorium Komputer Universitas Cambridge memiliki kekhawatiran melihat kian turunnya keahlian dan jumlah siswa yang hendak belajar ilmu komputer. Mereka lantas mendirikan yayasan Raspberry Pi bersama dengan Pete Lomas dan David Braben pada 2009. Tiga tahun kemudian, Raspberry Pi Model B memasuki produksi massal. Dalam peluncuran pertamanya pada akhir Febuari 2012 dalam beberapa jam saja sudah terjual 100.000 unit. Pada bulan Februari 2016, Raspberry Pi Foundation mengumumkan bahwa mereka telah menjual 8 juta perangkat Raspi, sehingga menjadikannya sebagai perangkat paling laris di Inggris.

 itu tadi sekelumit dari raspi. saya menggunakan raspi sebagai mini PC untuk memonitor RTU SIMOR yang menggunakan protocol Modbus.raspi disini sebagai Modbus masternya. atau pengumpul datanya dari beberapa SIMOR. yang mana data tersebut ditampilkan via web. jadi berbasis webbase.

awal pertama beli raspi sangat bingung sekali. mulai dari cara penguunaannya. terus cara instal aplikasinya. sangat ribet sekali. tergoda sana sini pengen ganti OS. pas dah download OS. micro sd saya format. ehh kok malah tinggal 256MB dari 16GB. ternyata bukan bgitu caranya.

akhirnya raspi saya terbengkalai di sebuah kardus ruang workshop.

selang beberapa bulan kemudian.

mempunyai ide cemerlang. hasil dari chat di grup WA modbus arduino. ada salah satu seorang menggunakan raspi sebagai modbus master mengunakan software Myscada.

https://www.myscada.org/en/

akhirnya saya kepingin raspi saya hidup lagi. kemudian saya minta tolong kedia untuk instalkan OSnya. menggunakan OS jessie.

sperti video dibawah ini









sumber:
https://id.wikipedia.org/wiki/Raspberry_Pi

Thursday, August 10, 2017

Trial RTU SIMOR with MINI HMI SCADA

mencoba trial RTU simor dengan software MINI HMI SCADA
download in here

1. run SIMOR


2. login
username : simor
password : 1234

3. klik CONNECT

4. klik RTU SIMOR

5. untuk kontrol klik Open dan close
6. untuk status dan metering injek terminal DI dan AI dengan tegangan 5V

library mudbus


jika butuh modul belajar modbus seperti diatas
belajar modbus
pm 081555305255/fuad.hasan1987@gmail.com
check this video




tutorial instal


Wednesday, August 9, 2017

SIMOR to RTU SCOUT

integrasikan RTU Simor yang mempunyai protocol modbus TCP ke RTU scout yang sebagai masternya.

oprek kali ini bertujuan:
1. jika port serial yang di RTU scout sudah habis, seiring bertambahnya penyulang ataupun feeder. port serial ini biasanya digunakan untuk komunikasi dengan slave IED. baik power meter maupun relay proteksi.
2. jika port serial yang di RTU mengalami kerusakan.

langkah-langkah :
1. siapkan simor beserta datasheet addres nya
2. buat database di station explore, software ini biasanya dipakai untuk mapping RTU scout. klik menu IED Database -> pilih Editor







3. buat mappingan baru. FIle -> New
pilih line 17

4. isi addres RTU 1
5. isi addres to master






6. Upload To RTU Scout
7. akses via web broser rtu scout, masuk menu configuration->communication port -> network ->com17. setting seperti dibawah ini




hasilnya seperti di video di bawah ini


Thursday, July 27, 2017

monitoring sensor asap menggunakan MQ2

MQ-2 adalah komponen elektronika untuk mendeteksi kadar gas hidrokarbon seperti iso butana (C4H10 / isobutane), propana (C3H8 / propane), metana (CH4 / methane), etanol (ethanol alcohol, CH3CH2OH), hidrogen (H2 / hydrogen), asap (smoke), dan LPG (liquid petroleum gas). Gas sensor ini dapat digunakan untuk mendeteksi kebocoran gas di rumah / pabrik, misalnya untuk membuat rangkaian elektronika pendeteksi kebocoran elpiji.

Dengan menggunakan MQ-2 Hydrocarbon Gas Sensor ini, Anda dapat mendeteksi kadar gas hirdokarbon dalam udara dengan menyambungkan sensor ini ke mikrokontroler / development board semacam Arduino. Dengan demikian Anda bisa membuat perangkat elektronik untuk menentukan aksi berdasarkan data yang terbaca, misalnya membunyikan tanda peringatan bahaya saat kebocoran gas terdeteksi.

sensor ini mempunyai 2 output:

Digital Output
Analog Output


ruwet with sim800l v2

#include <gprs.h> #include <SoftwareSerial.h> #define TIMEOUT    5000 #define LED_PIN    13 #define ON HIGH #define OFF LOW ...