javascript - 使用 zigbee USB CC2531 读取数据
问题描述
我最近购买了 CC2531 Zigbee 接收器来构建一个家庭自动化项目并将小米设备连接到它。我买了一个 Aqara 温度传感器来测试。我试图读取传感器通过 USB 端口发送到 Zigbee 接收器的数据。为此,我在 java 上编写了一个小程序,并在 python 上也尝试了一个来阅读它,但我没有得到我想要的结果。java脚本如下:
const SerialPort = require('serialport')
const port = new SerialPort('/dev/tty.usbmodem14301', {baudRate: 57600, dataBits:8})
const Readline = SerialPort.parsers.Readline
const parser = new Readline()
port.pipe(parser)
parser.on('data', console.log)
port.on('readable', function () {
console.log('Data:', port.read())
})
// Switches the port into "flowing mode"
port.on('data', function (data) {
console.log('Data:', data)
})
我得到一个错误的文本(带有传感器的名称)和十六进制数组。我不确定是否需要进行某种解码才能解决此问题。我应该得到温度、压力、湿度等的值,但结果却是一团糟……
结果:
lumi.weather��i�D����UE
Data: <Buffer fe 1c 44 81 00 00 02 04 99 85 01 01 00 80 00 55 5a 12 00 00 08 18 45 0a 00 00 29 83 07 99 85 1d ad>
Data: <Buffer fe 1c 44 81 00 00 02 04 99 85 01 01 00 80 00 55 5a 12 00 00 08 18 45 0a 00 00 29 83 07 99 85 1d ad>
)�����D���~aF
Data: <Buffer fe 1c 44 81 00 00 05 04 99 85 01 01 00 7e 00 61 5a 12 00 00 08 18 46 0a 00 00 21 a1 19 99 85 1d 57>
Data: <Buffer fe 1c 44 81 00 00 05 04 99 85 01 01 00 7e 00 61 5a 12 00 00 08 18 46 0a 00 00 21 a1 19 99 85 1d 57>
关于如何解决这个问题的想法?谢谢
解决方案
推荐阅读
- vue.js - 如何根据条件将类映射到 Element UI 表中的特定行单元格?
- android - @android:color/transparent 不起作用
- php - 如何从 SimpleXML 访问 @attribute
- java - JTextField 窗口不出现
- r - 条件增量 tidyverse
- hybris - 后台项目类型过滤
- gitlab - 是否可以在 Gitlab 上关注开发人员
- angularjs - 手动销毁 $scope
- android - 在 Android ANR 对话框中按“关闭应用程序”,关闭并立即重新启动应用程序
- java - Android/Node.js - Android 应用程序中的字符串“@”在 Node.js 中变为“%40”