【问题标题】:Raspberry Pi (node.js) and Arduino uno serial communicationRaspberry Pi (node.js) 和 Arduino uno 串行通信
【发布时间】:2016-08-31 03:02:38
【问题描述】:

我正在尝试通过串行通信连接 Raspberry Pi 和 Arduino。我的目的是用户从 Raspberry Pi 控制 Arduino 的 LED。

我找到了一个串行通信的示例代码,它每 2 秒自动向 Arduino 发送一个字符串。但我想做两件事:

  1. 更改发送的值而不是“你好”。
  2. 用户可以随时发送值,而不是自动发送。

你能帮帮我吗?我不擅长 node.js。

var SerialPort = require("serialport")
var serialPort = new SerialPort('/dev/ttyACM0', 
{   baudrate: 9600,
    dataBits: 8,
    parity: 'none',
    stopBits: 1,
    flowControl: false
});

serialPort.on("open", function () {
console.log('open');
serialPort.on('data', function(data) { // 아두이노로부터 전달된 데이터
    console.log('data received: ' + data);
});

serialPort.write("Hello from Raspberry Pi\n", function(err, results) {
    console.log('err ' + err);
    console.log('results ' + results); //전송한 바이트 수
});

setInterval( 
function() { // 2초마다 아두이노에게 문자열을 전송하는 예
   serialPort.write('hello');
}, 2000);
});

【问题讨论】:

    标签: node.js arduino raspberry-pi3


    【解决方案1】:

    这离工作不远了。一些小调整 1. 'baudrate' 应该是混合大写的'baudRate'。 2. 对于运行此代码的任何人,您当然需要 找到设备名称(串行端口构造函数的第一个参数, 在上面的例子中'/dev/ttyACM0')。找到这个的一种方法是 打开 Arduino IDE 并查看“工具”| '端口'一旦你找到 一个与 Arduino 通信的设备。 3. 最后,上面的代码混淆了两处。只写进去 setInterval 函数。这将每 2 秒发送一次“hello”字符串。

    这是对我有用的代码:

    var SerialPort = require("serialport")
    var serialPort = new SerialPort('/dev/cu.usbmodem15',
    {   
      baudRate: 9600,
      dataBits: 8,
      parity: 'none',
      stopBits: 1, 
      flowControl: false
    });
    
    serialPort.on("open", function () {
      console.log('comm open');
      serialPort.on('data', function(data) {
        console.log('data received: ' + data);
      });
    
      setInterval( 
        function() { 
          serialPort.write('hello');
        }, 2000
      );
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-27
      • 2018-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多