0

我正在制作一个项目,其中我想让两个设备进行通信(分别是 Arduino Mega 和 NodeMCU),Arduino Mega 可以通过串行通信(UART)将数据发送到 NodeMCU。NodeMCU 充当桥接器,其中包含 Firmata(标准FirmataWifi),并连接到 wifi。

我已将 Mega 的 RX0(引脚 0)和 TX0(引脚 1)连接到我的 NodeMCU 的 RX(引脚 21)和 TX(引脚 22)。

我还制作了一个网络应用程序,它可以通过 NodeMCU 接收/控制连接在 Arduino Mega 上的设备。

但现在我只是让它变得简单并接收一些来自 Arduino Mega 的数据。

这是我的代码:

var EtherPortClient = require("etherport-client").EtherPortClient;
var board = new Firmata(new EtherPortClient({
  host: "ip_hostname",
  port: 3030
}));
    board.on("ready", () => {
      console.log("READY");

      const HW_SERIAL0 = board.SERIAL_PORT_IDs.HW_SERIAL0;


      board.serialConfig({
        portId: HW_SERIAL0,
        baud: 115200
      });

      board.serialRead(HW_SERIAL0, (data) => {
        console.log(Buffer.from(data).toString('ascii'));
    console.log('Serial port reading');
      });
      board.on('string', (message) => { console.log(message) });
      console.log('Connected board...');
    }); 

我在这里使用 Firmata.js 库。假设它应该是 johnny-5,因为我无法使用 johnny-5 获得 NodeMCU 的 UART 端口,我使用后者。(虽然我有点新使用这些库,但不是使用的语言。)

唯一的问题是它不显示来自串行端口的数据读数。它只显示这些。

    READY 
    Connected board...

我期望它应该像这样显示:

   READY
   Serial port reading
   *message from the serial reading*
   Connecting board...

我在想问题出在我的串行配置本身???

4

0 回答 0