Sabtu, 24 April 2021

PO KAOS SAFETY MODBUS COMMUNITY INDONESIA


 

Kaos bisa dipesan melalui link dibawah ini:

PESAN KAOS SAFETY

Turorial cara monitoring temperatur dan kelembapan via blynk dan Node Red MQTT


 

Apa itu Pzem003 / Pzem017 DC?

 


        Pzem003 /  pzem017 adalah modul monitoring arus, tegangan, daya, frequency, dan energy yang mempunyai protocol Modbus RTU dengan interface / port komunikasi RS485.

Berikut Perbedannya antara pzem003 dengan pzem017:
PZEM-003: Range Pengukuran arus sampai 10A (Built-in Shunt) 
PZEM-017: Range Pengukuran arus sampai  50A、100A、200A、300A (tergantung R-shunt )

ini adalah contoh pzem017,  shunt 300A dan usb to rs485
Ini adalah contoh cara wiringnya.


kalo yang dibawah ini adalah contoh wiringnya pzem003 yang sangat simpel
Modul pzem ini jika tegangan yang mau diukur kurang dari 7V maka harus menggunakan supply external yaitu port micro usb dengan tegangan 5v.

untuk default parameter komunikasi modbus rtunya:
Baud rate is 9600, 8 data bits, 2 stop bit, no parity

jadi jangan sampai salah ketika akan mau mengambil data pengukuran via protocol modbus RTU. Berikut dibawah ini adalah register addres pengukurannya. semua data ini ada di function input register.



data diatas perlu di scalling atau kalibrasi. 
contoh : tegangan yang diukur realnya 12,3V . maka yang tampil di modbus yaitu1230. jadi nanti rumus di software scada atau di mirkrokontroller di bagi 100 atau dikalikan 0,01.

untuk memodifikasi slave addres ataupun mengatur batas tegangan, berikut register addresnya dan semua datanya ada di function holding register..



sekian dulu tentang artikel pzem ini. semoga kita selalu diberikan ilmu yang bermanfaat.

Salam

SIMOR







Selasa, 20 April 2021

Membuat Rangkaian Digital Input di Mikrokontroller (arduino, esp32, stm32. esp8266)

 


Assalamu'alaikum,

semoga kita selalu diberikan keselamatan dan kesehatan. di pagi ini saya akan share hasil diskusi di grup whatsapp Modbus Arduino yang penduduknya sekitar 255 kepala. diskusi hari ini membahas tentang bagaimana membuat rangkaian digital input yang aman, handal dan simpel.

arti aman disini yaitu aman terhadap EMI atau EMF. Electromagnetic Interference atau biasa disingkat EMI adalah noise (gangguan) elektrikal yang disebabkan oleh medan elektromagnetik yang dihasilkan oleh sistem elektrikal lain.

Pada umumnya gangguan EMI ini terjadi jika ada 2 rangkaian elektronika yang berdekatan. Bisa salah satu mempengaruhi yang lain, bisa juga saling mempengaruhi. Besarnya gangguan EMI berbanding lurus terhadap arus. Ingat: medan elektromagnetik ditimbulkan oleh aliran arus.

Secara mekanisme, arus yang mengalir pada suatu konduktor menimbulkan medan elektromagnetik, kemudian medan elektromagnetik ini dapat menimbulkan arus pada konduktor lainnya. Arus yang tidak dinginkan inilah yang menjadi gangguan (EMI).

Selain aman dari EMI ada juga harus aman terhadap range tegangan supply input. Disini membuat rangkaian digital input  batasannya tegangan 12-24V.  Jadi optional ketika dikasih input tegangan.

sekarang arti handal adalah handal kinerjanya ketika dikasih input tegangan terbalik. rangkaiannya tidak mudah rusak.

selanjutnya arti simpel. Simpel disini dalam arti tidakmembutuhkan komponen banyak dan gampang merangkainya. seperti SIMOR (simple modbus RTU)

langsung saja kita disiapkan komponennya :

  • opto coupler TLP290
  • resistor 3k3 atau 3k8
  • resistor 4k7
  • resistor 2k2
  • led
  • MCU (mikrokontroller seperti arduino, esp, stm)
rangkai rangkaian seperti di atas. video simulasi menyusul

Wassalam
Founder SIMOR Technology

Rabu, 14 April 2021

CARA MENGETAHUI ADDRESS I2C DENGAN MUDAH DAN SIMPEL

 






terkadang saat beli lcd i2c kita kesulitan addresnya brp....?

berikut triknya .

sambungkan komponen seperti gambar di atas.

lalu upload sketchnya dibawah ini:


  • #include <Wire.h>
  •  void setup()
  • {
  •   Wire.begin();
  •    Serial.begin(9600);
  •   while (!Serial);             
  •   Serial.println("\nI2C Scanner");
  • }
  •  void loop()
  • {
  •   byte error, address;
  •   int nDevices;
  •    Serial.println("Scanning...");
  •    nDevices = 0;
  •   for(address = 1; address < 127; address++ )
  •   {
  •      Wire.beginTransmission(address);
  •     error = Wire.endTransmission();
  •      if (error == 0)
  •     {
  •       Serial.print("I2C device found at address 0x");
  •       if (address<16)
  •         Serial.print("0");
  •       Serial.print(address,HEX);
  •       Serial.println("  !");
  •        nDevices++;
  •     }
  •     else if (error==4)
  •     {
  •       Serial.print("Unknown error at address 0x");
  •       if (address<16)
  •         Serial.print("0");
  •       Serial.println(address,HEX);
  •     }    
  •   }
  •   if (nDevices == 0)
  •     Serial.println("No I2C devices found\n");
  •   else
  •     Serial.println("done\n");
  •    delay(5000);           // wait 5 seconds for next scan
  • }

kemudian cek di serial monitor.


semoga bermanfaat

LOMBA DESAIN HMI VIRTUINO MQTT

 




turorial dan persyaratan ada di video bawah ini:





Senin, 12 April 2021

Cara membuat monitoring tegangan dan Arus DC via Modbus RTU dengan Arduino Uno dan INA219

 



sensor INA 219 adalah sensor untuk mengukur arus dan tegangan  dan media komunikasinya via i2c. dari 2 parameter itu bisa juga memonitor daya dengan rumus:
 daya = tegangan x arus

adapun kemampuan nya itu mengukur tegangan sampai 26VDC dan untuk arus max 3,2A.

berikut ini adalah bagian-bagian dari sensor INA219:




adapun caranya declare koding sensornya di ARDUINO IDE agar bisa multi sensor, sebagai berikut:
Adafruit_INA219 ina219_A; // tanpa jumper
Adafruit_INA219 ina219_B(0x41);//JUMPER A0
Adafruit_INA219 ina219_C(0x44);//JUMPER A1
Adafruit_INA219 ina219_D(0x45);//JUMPER A0 DAN A1


contoh jumper A0:



cara wiring:


test dulu via serial monitor, berikut sketchnya:
#include <Wire.h>
#include <Adafruit_INA219.h>
Adafruit_INA219 ina219;
void setup(void) 
{
  Serial.begin(115200);
  while (!Serial) {
      // will pause Zero, Leonardo, etc until serial console opens
      delay(1);
  }
  uint32_t currentFrequency;
  ina219.begin();
  Serial.println("SIMOR Measuring voltage and current with INA219 ...");
}
void loop(void) 
{
  float shuntvoltage = 0;
  float busvoltage = 0;
  float current_mA = 0;
  float loadvoltage = 0;
  shuntvoltage = ina219.getShuntVoltage_mV();
  busvoltage = ina219.getBusVoltage_V();
  current_mA = ina219.getCurrent_mA();
  loadvoltage = busvoltage + (shuntvoltage / 1000);
  
  Serial.print("Bus Voltage:   "); Serial.print(busvoltage); Serial.println(" V");
  Serial.print("Shunt Voltage: "); Serial.print(shuntvoltage); Serial.println(" mV");
  Serial.print("Load Voltage:  "); Serial.print(loadvoltage); Serial.println(" V");
  Serial.print("Current:       "); Serial.print(current_mA); Serial.println(" mA");
  Serial.println("");
  delay(2000);
}

setelah data sudah muncul, langkah selanjutnya lempar data ke modbus:


#include <ModbusRtu.h>
#define ID   1
Modbus slave(ID, 0, 0); // this is slave ID and RS-232 or USB-FTDI
uint16_t au16data[90];
#include <Wire.h>
#include <Adafruit_INA219.h>
Adafruit_INA219 ina219_A;

void setup() {
  uint32_t currentFrequency;
  ina219_A.begin();  // Initialize first board (default address 0x40)
  ina219_B.begin();  // Initialize second board with the address 0x41
   slave.begin( 19200 );

}

void loop() {
  slave.poll( au16data, 90 );
  io_poll();
}

void io_poll() {
  int Ashuntvoltage = 0;
  float Abusvoltage = 0;
  int Acurrent_mA = 0;
  float Aloadvoltage = 0;
  int Bshuntvoltage = 0;
  float Bbusvoltage = 0;
  int Bcurrent_mA = 0;
  float Bloadvoltage = 0;
  Ashuntvoltage = ina219_A.getShuntVoltage_mV();
  Abusvoltage = ina219_A.getBusVoltage_V();
  Acurrent_mA = ina219_A.getCurrent_mA();
  Aloadvoltage = Abusvoltage + (Ashuntvoltage / 1000);

   // read INA219
  au16data[2] = Ashuntvoltage ;
  au16data[3] = Abusvoltage * 10;
  au16data[4] = Acurrent_mA ;
  au16data[5] = Aloadvoltage * 10;
  au16data[6] = ((Acurrent_mA *0.001) * Abusvoltage) * 10; //daya
  

}





Terima kasih sudah meluangkan waktunya untuk membaca artikel ini.

silahkan tinggalkan komen jika ada masukan untuk artikel selanjutnya


Uji sensor ultrasonic waterproof A01NYUB dengan ESP32

  apa itu sensor ultrasonic ?? Sensor jarak ultrasonik menentukan jarak ke target dengan mengukur selang waktu antara pengiriman dan penerim...