Подключение контроллера к смартфону через HC-05 и node.js - PullRequest
0 голосов
/ 10 февраля 2019

Я создаю приложение для Android в качестве интерфейса для контроллера IOT.У меня уже есть код для чипа, и он подключен к модулю Bluetooth HC-05.Я попытался использовать терминал Bluetooth из магазина приложений, и мой телефон успешно подключился к HC-05.Сейчас я создаю мобильное приложение для отправки / получения данных с чипа.Поэтому мне нужно подключиться к HC-05 напрямую из node.js, и вот где я застрял.

Я искал модули npm, которые могут мне помочь, и до сих пор я нашел веб-Bluetooth-терминал, Bluetooth-терминал, последовательный порт, Bluetooth-последовательный порт и Джонни-пять.Дело в том, что я не уверен, в чем разница между ними и какой из них будет работать с HC-05.Насколько я понимаю, johnny-Five предназначен для написания кода для самого контроллера, а не для подключения к модулю Bluetooth, и я не уверен, может ли web-bluetooth-терминал подключаться к HC-05 со скоростью 9600 бод и на разных сайтах.говорите разные вещи.Как я могу сделать эту работу?

1 Ответ

0 голосов
/ 10 апреля 2019

Возможно, я немного опоздал с ответом, но я работаю над подключением arduino с модулем HC-05 к приложению NodeJS, и я наткнулся на библиотеку Node-bluetooth .Используя это, я могу соединиться с 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", вероятно, не очень хорошая практика, но она работает для целей тестирования.

...