0

我正在构建一个 android 应用程序来充当 IOT 控制器的接口。我已经有了芯片的代码,它连接到一个 HC-05 蓝牙模块。我已经尝试使用应用商店的蓝牙终端,我的手机成功连接到 HC-05。我现在正在构建移动应用程序以从芯片发送/接收数据。所以我需要直接从 node.js 连接到 HC-05,这就是我卡住的地方。

我一直在寻找可以帮助我的 npm 模块,到目前为止,我已经找到了 web-bluetooth-terminal、bluetooth-terminal、serialport、bluetooth-serial-port 和 johnny-5。问题是,我不确定它们之间的区别是什么,以及哪一个实际上可以与 HC-05 一起使用。据我了解,johnny-5 是为控制器本身编写代码,不连接蓝牙模块,我不确定 web-bluetooth-terminal 是否可以以 9600 波特率和不同站点连接到 HC-05说不同的话。我怎样才能使这项工作?

4

1 回答 1

0

我可能回答得有点晚了,但我正在努力将带有 HC-05 模块的 arduino 连接到 NodeJS 应用程序,并且我偶然发现了Node-bluetooth library。通过使用它,我可以通过执行以下操作与 HC-05 连接:

router.post('/connect', function (req, res) {
    res.render('connect');

    const bluetooth = require('node-bluetooth');
    const device = new bluetooth.DeviceINQ();

    // Find devices
    device
        .on('finished', console.log.bind(console, 'finished'))
        .on('found', function found(address, name) {
            console.log('Found: ' + address + ' with name ' + name);

            // We know our Arduino bluetooth module is called 'HC-05', so we only want to connect to that.
            if (name === 'HC-05') {

                // find serial port channel
                device.findSerialPortChannel(address, function (channel) {
                    console.log('Found channel for serial port on %s: ', name, channel);

                    // make bluetooth connect to remote device
                    bluetooth.connect(address, channel, function (err, connection) {
                        if (err) return console.error(err);

                        // This is some example code from the library for writing, customize as you wish.
                        connection.delimiter = Buffer.from('/n', 'utf-8');
                        connection.on('data', (buffer) => {
                            console.log('received message: ', buffer.toString());
                        });

                        // This is some example code from the library for writing, customize as you wish.
                        connection.write(new Buffer('hello', 'utf-8'), () => {
                            console.log('wrote');
                        });
                    });
                });
            }
        });
    device.scan();
});

我知道检查“HC-05”字符串可能不是很好的做法,但它可以用于测试目的。

于 2019-04-10T08:01:30.597 回答