首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Ubuntu的TEMPer USB温度计

使用Ubuntu的TEMPer USB温度计
EN

Ask Ubuntu用户
提问于 2018-01-02 07:22:07
回答 3查看 4.4K关注 0票数 4

我有一个12美元的USB棒,记录温度(在设备本身)。

有关详细信息,请参阅http://www.pcsensor.com/usb-thermometers/gold-temper.html

我下载了它的软件,and -它在Windows中运行良好-目前Win-10内部预览17945或任何最新的“快速”Win-10是.(现在,我现在在Linux中)

当我启动Ubuntu17.10并编译所提供的软件(makefile、C-程序等)时,我得到

代码语言:javascript
运行
复制
$ temper232    
/dev/ttyUSB0: No such file or directory

lsusb显示

代码语言:javascript
运行
复制
Bus 002 Device 004: ID 0c45:7401 Microdia TEMPer Temperature Sensor     

C程序有一行:

代码语言:javascript
运行
复制
#define MODEMDEVICE "/dev/ttyUSB0"     
代码语言:javascript
运行
复制
$ dmesg | grep -i temper    shows     
[    2.490091] usb 2-5.4: Product: TEMPerV1.4
[    2.493187] input: RDing TEMPerV1.4 as /devices/pci0000:00/0000:00:13.2/usb2/2-5/2-5.4/2-5.4:1.0/0003:0C45:7401.0003/input/input5     
[    2.553603] hid-generic 0003:0C45:7401.0003: input,hidraw2: USB HID v1.10 Keyboard [RDing TEMPerV1.4] on usb-0000:00:13.2-5.4/input0     
[    2.555527] hid-generic 0003:0C45:7401.0004: hiddev1,hidraw3: USB HID v1.10 Device [RDing TEMPerV1.4] on usb-0000:00:13.2-5.4/input1  

那我能从这里去哪里?它似乎是一些USB /串口的东西。从Win 3.1上的软盘开始,我就没有使用过串行端口了!

这个设备上有很多信息,但大多数信息都涉及Python,Github,Raspberry-PI灯(我也有),PERL (gads!),还有一个叫做“模仿”的东西,我以前从未听说过!一定要把它读出来!

我只想要基本的设备反应温度,至少在一个终端!

更多的信息可以提供!问问就行了!

EN

回答 3

Ask Ubuntu用户

发布于 2018-05-14 11:05:26

这在CentOS上适用于我,但在Ubuntu上应该是一样的。

首先使用pip install temperusb安装(如果失败,请尝试pip2 install temperusb显式请求使用python2 pip)

然后您只需运行temper-poll,它就会打印当前的读数。

票数 2
EN

Ask Ubuntu用户

发布于 2018-01-02 07:44:16

鉴于设备声明:“(注意:我们的软件只支持windows OS。)”,我不是百分之百肯定这会工作,但应该值得一试。

试试这里的脚本:命令来确定设备的端口。 -为您的温度传感器找到正确的设备路径。

然后再次组合C程序,但是在编译时将脚本中的MODEMDEVICE=/path/to/device/添加到命令行中。根据GNU制造,这应该覆盖程序源中的标志。

票数 0
EN

Ask Ubuntu用户

发布于 2021-12-31 04:49:50

有一个python库支持一些设备:

https://github.com/urwen/temper

我有一个USB温度计,没有那个库的支持。

我试图反向设计基于HID的协议,但自从上次尝试这个(2012年?)计算机现在有更多的USB设备,我甚至无法隔离它来进行可靠的数据包捕获。

相反,我的模型上有一个"TXT“按钮,可以将设备切换为键盘,并定期输入温度。

在"TXT“模式下,它将自己注册为/dev/input/by-id/usb-413d_2107-event-kbd,因此我能够使用sudo evtest --grab /dev/input/by-id/usb-413d_2107-event-kbd捕获它的输入,然后进行一些按摩,将击键转换为一系列的摄氏温度值。

下面是我的脚本,它抓取USB设备(当它处于"TXT“模式时)并将击键转换为温度值:

代码语言:javascript
运行
复制
#!/bin/sh

device_path='/dev/input/by-id/usb-413d_2107-event-kbd'

sed_script='s/^Event:.*(EV_KEY), code \([0-9]\+\)\s.*\(KEY_\w\+\).*, value 1$/\2/p'


sudo evtest --grab "$device_path" | \
        sed --unbuffered --silent "$sed_script" | \
        while read key; do
                case "$key" in
                        KEY_[0-9]) printf '%s' "${key#KEY_}" ;;
                        KEY_DOT) printf '.' ;;
                        KEY_ENTER) printf '\n' ;;
                        *) printf 'X'
                esac
        done | \
        sed --unbuffered 's/X.*//; /^$/d' | \
        while read temp; do echo "$temp"; echo "$(date +%s) $temp" >>celsius.log; done

你的里程可能会不同。

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/991426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档