我正在构建一个Android应用程序以充当IOT控制器的接口。我已经有了芯片的代码,并且已将其连接到HC-05蓝牙模块。我尝试使用App Store的蓝牙终端,但我的手机已成功连接到HC-05。 我现在正在构建移动应用程序,以从芯片发送/接收数据。因此,我需要直接从node.js连接到HC-05,这就是我遇到的问题。
我一直在寻找可以帮助我的npm模块,到目前为止,我已经找到了web-bluetooth-terminal,bluetooth-terminal,serialport,bluetooth-serial-port和johnny-five。事实是,我不确定这些之间的区别是什么以及HC-05可以实际使用的区别。 据我了解,johnny-five 5是用于编写控制器本身的代码,而不是连接到蓝牙模块,而且我不确定web-bluetooth-terminal是否可以在9600波特率和不同位置连接到HC-05说不同的话。 我该如何工作?
答案 0 :(得分: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”字符串可能不是一个好习惯,但是可以用于测试。