arduino - 使用 johnny 5 / Firmata js 在 Arduino Mega 和 NodeMCU ESP8266 之间进行串行(UART)通信
问题描述
我正在制作一个项目,其中我想让两个设备进行通信(分别是 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...
我在想问题出在我的串行配置本身???
解决方案
推荐阅读
- android - 具有自定义表面的 Android CameraX
- azure - 使用 Azure 存储模拟器进行 Dapr 本地开发
- python - 无法在python中搜索文件
- datasource - Grafana - 如何使用节点图面板和 influxdb 作为数据源
- android - 应用构建失败!!!无法解决问题。它显示任务':app:kaptDebugKotlin'的执行失败
- python - 使用 AWS EMR 在 mrjob 中传递参数
- kubernetes - Kubernetes operator 中的流量路由是如何发生的 - Journey of Egress traffic
- flutter - 如何在颤动中从 ListView 中删除默认的 ScrollBar?
- vue.js - Vue选项卡更改活动类的文本颜色
- flutter - Flutter中列内的容器之间不需要的间距