从兼容的USB数字温度计接收数据
tc2100的Python项目详细描述
TC2100温度计接口
< Buff行情>从TC2100或其他兼容的数字温度计接收测量值 通过USB。
动机
TC2100是支持
- 两个同时测量通道;和
- 七种标准类型的热电偶。
虽然它可以作为一个独立的仪表使用,但它也包括一个USB接口 用于实时计算机输出。
制造商提供USB接口的软件。不是这样的。 这是不受支持的第三方软件,是通过反向开发的 工程设计。
tc2100
模块是一个python 3.6软件开发工具包,用于接收
实时温度测量。它包括一个控制台脚本,tc2100dump
,
将测量值记录到csv
文件,
支持的设备
目前,此模块仅支持一个设备。
<表><广告>10C4
EA60
其他设备还没有经过测试,不太可能工作。如果你还有一个 工作的设备,打开一个错误报告并要求将其添加到此表中。
精细打印
如果你错过了上面的内容,这个项目就不属于原来的 制造商。据我们所知,遥测格式在任何 [其他]公共文件。它是在没有帮助或 制造商的支持。阅读 许可证 可能会影响你的权利。没有保修。
强烈建议在安全关键应用程序中使用这些程序。
安装
pip3 install tc2100
此模块需要扭曲 pyserial。匹普 软件包将自动安装这些依赖项。
快速启动
使用提供的USB电缆,将TC2100温度计连接到计算机。 按住"PC链接"按钮,直到仪表和"USB"指示灯发出哔哔声 照亮。然后运行:
tc2100dump --out temperatures.csv
如果在Linux上收到"权限被拒绝"错误,则需要授予
使用串行设备的用户帐户权限。在大多数分布中,包括
ubuntu和centos,这可以通过将您自己添加到
拨号中来实现。
组:
sudo usermod -a -G dialout "$USER"
执行上述修改后,您将需要注销并重新登录 再一次。永远不要以根用户身份运行此程序!
当运行tc2100dump
时,您可以省略要写入的--out
参数
测量到标准输出。您也可以将此模块称为可执行文件
用
python3 -m tc2100 --out temperatures.csv
脚本将尝试自动检测温度计的正确端口。 如果自动检测失败,您可以手动指定端口:
tc2100dump --port /dev/ttyUSB0 --out temperatures.csv
开发状态
此模块可能已完成功能。它做了我需要它做的,而且 未计划其他功能。广泛分类的错误报告 因为功能请求可能会被拒绝。我也无法支持 包括其他设备,甚至类似的设备。
如果发现遥测输出不一致或其他问题,以及 可以识别它们,请提交错误报告。如果可以,请包括一个捕获 串行数据流和报告的预期行为。
欢迎在此项目范围内的请求,特别是
修复错误。请确保您的prs包含测试并通过包含的tox
检查. < /P>
技术细节
TC2100集成了一个UART到USB芯片组,它通过
USB。插上电源后,大多数计算机会自动将其检测为串行
端口,如/dev/ttyusb0
或com1
。不需要其他驱动程序。
温度计的USB供应商ID为0x10c4
,产品ID为0xea60
。
仪表的串行适配器使用普通的波特率
数据位、无奇偶校验和一个停止位。
按下"PC链接"按钮后,更新立即开始在
定期。每次更新都是一个以十六进制开头的18字节数据包
字节b"\x65\x14"
并以CRLF(b"\x0d\x0a"
结束)。多字节数量
发送big endian
这是一个示例更新,十六进制:
65 14 00 00 00 00 8D 09 0C 01 81 88 40 00 02 05 0D 0A
字节解码如下:
<表><广告>uint8[2]
uint8[3]
int16
int16
uint8
uint8
uint8
uint8
uint8
uint8
uint8
uint8[2]
- 更新消息不能表示为c结构,因为它缺少适当的 对齐。
- 测量值为
- 以十分之一度表示
- 符号大小格式。符号位是标志字节(11和12)的一部分
- 与温度计的显示单位相同。字节10 表示测量单位。
- 频道标志在一起:
- 有效测量:
0x08
- 无效测量:
0x40
。没有热电偶的通道 connected将具有此标志。 - 负测量:
0x80
- 有效测量:
- 热电偶类型和温度单位存储在 这些字节的重要一部分。上半字节包含其他数据。
以上测量单位为摄氏度。通道1测量值为
-14.1°C
,通道2测量无效。
更多细节包含在python类tc2100.observation中。单位 测试包括更多样本数据。
许可证-麻省理工学院