我有一个12美元的USB棒,记录温度(在设备本身)。
有关详细信息,请参阅http://www.pcsensor.com/usb-thermometers/gold-temper.html
我下载了它的软件,and -它在Windows中运行良好-目前Win-10内部预览17945或任何最新的“快速”Win-10是.(现在,我现在在Linux中)
当我启动Ubuntu17.10并编译所提供的软件(makefile、C-程序等)时,我得到
$ temper232
/dev/ttyUSB0: No such file or directory
lsusb
显示
Bus 002 Device 004: ID 0c45:7401 Microdia TEMPer Temperature Sensor
C程序有一行:
#define MODEMDEVICE "/dev/ttyUSB0"
$ 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!),还有一个叫做“模仿”的东西,我以前从未听说过!一定要把它读出来!
我只想要基本的设备反应温度,至少在一个终端!
更多的信息可以提供!问问就行了!
发布于 2018-05-14 11:05:26
这在CentOS上适用于我,但在Ubuntu上应该是一样的。
首先使用pip install temperusb
安装(如果失败,请尝试pip2 install temperusb
显式请求使用python2 pip)
然后您只需运行temper-poll
,它就会打印当前的读数。
发布于 2018-01-02 07:44:16
鉴于设备声明:“(注意:我们的软件只支持windows OS。)”,我不是百分之百肯定这会工作,但应该值得一试。
试试这里的脚本:命令来确定设备的端口。 -为您的温度传感器找到正确的设备路径。
然后再次组合C程序,但是在编译时将脚本中的MODEMDEVICE=/path/to/device/
添加到命令行中。根据GNU制造,这应该覆盖程序源中的标志。
发布于 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“模式时)并将击键转换为温度值:
#!/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
你的里程可能会不同。
https://askubuntu.com/questions/991426
复制相似问题