单线协议的python实现
pydigitemp的Python项目详细描述
1-wire协议的python实现。
最初是为了替换我的pet项目中的digitemp实用程序而编写的 直接接入单线设备。它是为读取连接的DS1820温度传感器而创建的 通过DS9097适配器连接到RS232串行端口。
使用的文档
支持的硬件
主人
- DS9097 - COM port adapter which performs RS-232C level conversion.
- Custom 1-wire serial port interface (see below).
从
- DS1820 / DS18S20 / DS1920 - High-Precision Temperature Sensor.
- DS18B20 - Programmable Resolution Temperature Sensor.
- DS1822 - Econo Temperature Sensor.
用法
查找所有连接设备的ROM代码:
from digitemp.master import UART_Adapter from digitemp.device import AddressableDevice print(AddressableDevice(UART_Adapter('/dev/ttyS0')).get_connected_ROMs()) # ['108739A80208006F', '10A75CA80208001A']
获取温度:
from digitemp.master import UART_Adapter from digitemp.device import DS1820 bus = UART_Adapter('/dev/ttyS0') # DS9097 connected to COM1 # only one 1-wire device on the bus: sensor = DS1820(bus) # specify device's ROM code if more than one 1-wire device on the bus: sensor = DS1820(bus, rom='10D67E5B02080037') # display sensor's information sensor.info() # get temperature print(sensor.get_temperature()) # 25.48
设置DS18B20和DS1822的分辨率:
from digitemp.device import DS18B20 sensor = DS18B20(bus) sensor.set_resolution(DS18B20.RES_9_BIT)
digitemp.device模块提供以下类:
- DS18S20 - for DS1820, DS18S20 and DS1920 High-Precision Temperature Sensors (family code: 0x10);
- DS18B20 - for DS18B20 Programmable Resolution Temperature Sensors (family code: 0x28);
- DS1822 - for DS1822 Econo Temperature Sensor (family code: 0x22)
- DS1820, DS1920 - are aliases for DS18S20
示意图
重要免责声明:这里的所有电路都是从互联网上的不同来源收集的,因此 完全按照“现状和无保证”的原则提供。我们不提供任何形式的保证 以任何方式负责。
1线串行端口接口
1线USB/UART适配器
这些都经过测试:
- [ds18b20-uart.svg](docs/ds18b20-uart.svg)
- [ds18b20-uart-par.svg](docs/ds18b20-uart-par.svg)
- [ds18b20-uart-dioda.svg](docs/ds18b20-uart-dioda.svg)
- [ds18b20-uart-diodapar.svg](docs/ds18b20-uart-diodapar.svg)
并非所有的示意图都适用于所有情况,这取决于适配器和电缆长度。
这些尚未测试:
- [ds18b20-uart-mosfet.svg](docs/ds18b20-uart-mosfet.svg)
- [ds18b20-uart-npn.svg](docs/ds18b20-uart-npn.svg)
许可证
python许可证。简而言之,您可以在商业和非商业应用中使用本产品, 修改它,重新分配它。欢迎在使用和/或修改时通知作者。
有关许可证的实际文本,请参见许可证文件。