从兼容的USB数字温度计接收数据

tc2100的Python项目详细描述


TC2100温度计接口

< Buff行情>

从TC2100或其他兼容的数字温度计接收测量值 通过USB。

动机

TC2100是支持

  • 两个同时测量通道;和
  • 七种标准类型的热电偶。

虽然它可以作为一个独立的仪表使用,但它也包括一个USB接口 用于实时计算机输出。

制造商提供USB接口的软件。不是这样的。 这是不受支持的第三方软件,是通过反向开发的 工程设计。

tc2100模块是一个python 3.6软件开发工具包,用于接收 实时温度测量。它包括一个控制台脚本,tc2100dump, 将测量值记录到csv 文件,

支持的设备

目前,此模块仅支持一个设备。

<表><广告>名称供应商ID(十六进制)产品ID(十六进制)< /广告><正文>TC210010C4EA60

其他设备还没有经过测试,不太可能工作。如果你还有一个 工作的设备,打开一个错误报告并要求将其添加到此表中。

精细打印

如果你错过了上面的内容,这个项目就不属于原来的 制造商。据我们所知,遥测格式在任何 [其他]公共文件。它是在没有帮助或 制造商的支持。阅读 许可证 可能会影响你的权利。没有保修。

强烈建议在安全关键应用程序中使用这些程序。

安装

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/ttyusb0com1。不需要其他驱动程序。

温度计的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

字节解码如下:

<表><广告>偏移量(dec)c类型 说明 < /广告><正文>uint8[2]标题uint8[3]未知始终为零int16通道1测量int16通道2测量uint8热电偶类型,其他数据uint8显示单元,其他数据uint8频道1标志uint8频道2标志uint8小时uint8分钟uint8uint8[2]CRLF
  • 更新消息不能表示为c结构,因为它缺少适当的 对齐。
  • 测量值为
    • 以十分之一度表示
    • 符号大小格式。符号位是标志字节(11和12)的一部分
    • 与温度计的显示单位相同。字节10 表示测量单位。
  • 频道标志在一起:
    • 有效测量:0x08
    • 无效测量:0x40。没有热电偶的通道 connected将具有此标志。
    • 负测量:0x80
  • 热电偶类型和温度单位存储在 这些字节的重要一部分。上半字节包含其他数据。

以上测量单位为摄氏度。通道1测量值为 -14.1°C,通道2测量无效。

更多细节包含在python类tc2100.observation中。单位 测试包括更多样本数据。


许可证-麻省理工学院

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
交换数组中重复值的位置(Java)   java搜索使用百分比匹配Elasticsearch SpringBoot中的文本   java Spring JPA和按输入字段排序   java我在输入CSV时出错了   java如何在RecyclerView中精确显示5项   使用java安全吗。util。servlet中的计时器?   使用Cp1252编码的java比较字符串   javafx打包java桌面应用程序,并引用开源许可证   java Spring和Camel CXF在战争中表现出色   java当EJB客户端失去与应用服务器的连接时,是否存在可以捕获的异常?   更改字符串值的java注释   java如何在sharedperfernce中保存自定义数组列表   RequestResponseLink:当使用java客户端读取队列时,Azure服务总线上RequestResponseLink到“$cbs”的内部发送链接因错误而关闭