从兼容的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 Spring异步任务返回未来   java如何显示数据库中的下一条记录   java这些读取用户输入的方法有什么不同?   java Spring+Spring安全请求只接受contenttype xwwwformurlencoded   checkName()和将用户输入存储到ArrayList和boolean[]的java问题   java如何使用JPA和Facade?   java Neo4j类型不匹配   java如何依赖Maven的系统包?   通过FileChooser保存pdf格式会提示在java中出现第二个对话框   java如何将通量链接到另一个通量/单声道并应用另一个背压?   java如何修复安卓 studio中的权限错误?   尝试清除JavaFX ObservableMap时出现java ConcurrentException   java编辑文本。GetText,返回关于null引用的异常,但已声明该异常   mysql组织。乔达。时间LocalDate在Redhat(Linux)java上显示少一天   在java中通过序列化获取多个对象   有人有java注释“java.lang.Synthetic”的背景吗?