我正在使用raspberry pi 3B+来实现家庭的自动化。
我买的是电子式电能表MEMO4-M-MOD。https:/docs-emea.rs-online.comwebdocs152f0900766b8152f22b.pdf。为了连接到树莓派我买了一个电缆RS485USB。
我有兴趣从电能表中读取一些值(例如在电能表的数据表中说,电压的寄存器地址是在地址2000(hexa)),我写了这个代码。
#!/usr/bin/env python3
import minimalmodbus
import serial
instrument = minimalmodbus.Instrument('/dev/ttyUSB0',0)
instrument.serial.port
instrument.serial.baudrate = 9600
instrument.serial.bytesize = 8
instrument.serial.parity =serial.PARITY_NONE
instrument.serial.stopbits = 1
instrument.serial.timeout = 0.05
instrument.mode = minimalmodbus.MODE_RTU
try:
valeur= instrument.read_register(2000,1,3,False)
print(valeur)
except IOError:
print("no connection")
#!/usr/bin/env python3
import minimalmodbus
import serial
instrument = minimalmodbus.Instrument('/dev/ttyUSB0',1)
instrument.serial.baudrate = 9600
instrument.close_port_after_each_call = True
valeur = instrument.read_float(2000, functioncode=3, number_of_registers=2, byteorder=0)
print(valeur)
将你的RS485 USB设备连接到你的pi,并确保你的pi可以看到它......通过运行 "dmesg /minimalmodbus.readthedocs.ioenstableinternalminimalmodbus.html "来检查。