0

私は、Arduino Megaがシリアル通信(UART)を介してNodeMCUにデータを送信できる2つのデバイス(それぞれArduino MegaとNodeMCU)を通信させたいプロジェクトを作成しています。NodeMCU は、Firmata を含むブリッジ (standardFirmataWifi) として機能し、wifi に接続されます。

Mega の RX0 (ピン 0) と TX0 (ピン 1) を NodeMCU の RX (ピン 21) と TX (ピン 22) に接続しました。

NodeMCU経由でArduino Megaに接続されたデバイスを受信/制御できるWebアプリも作成しました。

しかし今のところ、単純にして 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-five を使用して NodeMCU の UART ポートを取得できないため、おそらく johnny-five である必要があります。私は後者を使用します。(ただし、これらのライブラリを使用するのは少し新しいですが、使用する言語は異なります。)

唯一の問題は、シリアル ポートからのデータ読み取り値が表示されないことです。これらのみを表示します。

    READY 
    Connected board...

次のように表示されることを期待しています:

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

問題はシリアル構成自体にあると思いますか???

4

0 に答える 0