«

»

Şub 23

Herhangi bir saldırı, anomaly ve hardware’in fazla akım çektiği durumları kontrol etmek için Raspberry Pi ile PZEM-004T (100A) akım sensörü testi:

Herhangi bir saldırı, anomaly ve hardware’in fazla akım çektiği durumları kontrol etmek için Raspberry Pi ile PZEM-004T (100A) akım sensörü testi:
Windows’ta direk app var:
https://lnkd.in/dSWARySJ

Arm tabanlı Raspberry Pi 4’te ise:
sudo raspi-config ile interface seçeneklerinden serial portu aktif etmek lazım.
dmesg | grep tty ile hangi USB interface’ine sensörü taktık bakmak lazım.
sudo pip3 install modbus-tk Rpi ile sensör modbus haberleşeceği için paketin yüklenmesi gerekiyor.

Temel haberleşme python kodu:
import time
import json
import serial
import modbus_tk.defines as cst
from modbus_tk import modbus_rtu

if __name__ == “__main__”:
try:
# Connect to the slave
serial = serial.Serial(
port=’/dev/ttyUSB0′,
baudrate=9600,
bytesize=8,
parity=’N’,
stopbits=1,
xonxoff=0
)

master = modbus_rtu.RtuMaster(serial)
master.set_timeout(2.0)
master.set_verbose(True)
# Changing power alarm value to 100 W
# master.execute(1, cst.WRITE_SINGLE_REGISTER, 1, output_value=100)
dict_payload = dict()

while True:
data = master.execute(1, cst.READ_INPUT_REGISTERS, 0, 10)

dict_payload[“voltage”]= data[0] / 10.0
dict_payload[“current_A”] = (data[1] + (data[2] << 16)) / 1000.0 # [A]
dict_payload["power_W"] = (data[3] + (data[4] << 16)) / 10.0 # [W]
dict_payload["energy_Wh"] = data[5] + (data[6] << 16) # [Wh]
dict_payload["frequency_Hz"] = data[7] / 10.0 # [Hz]
dict_payload["power_factor"] = data[8] / 100.0
dict_payload["alarm"] = data[9] # 0 = no alarm
str_payload = json.dumps(dict_payload, indent=2)
print(str_payload)

time.sleep(1)

except KeyboardInterrupt:
print('exiting pzem script')
except Exception as e:
print(e)
finally:
master.close()

ESP 32 ile Rpi maliyetinden uyguna ayni çözüme ulasilabilir 😉

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

AlphaOmega Captcha Classica  –  Enter Security Code
     
 

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>