Sub*_*der 2 lua arduino nodemcu
____________
| |
| N |
| O Rx2|<------Tx EnergyMeter(Returns value based on command)
| D Tx2|------>Rx EnergyMeter(Receive command)
| E |
| |
| M Rx1|<------Tx Gsm(For MQTT)
| C Tx1|------>Rx Gsm(For MQTT)
| U |
| |
-----------
Run Code Online (Sandbox Code Playgroud)
我正在尝试将 Gsm 模块和电表与我的 Nodemcu 连接起来,如图所示。虽然可以通过 Arduino 编码实现,但我只想使用 lua 来实现。
在lua脚本的情况下,如果我使用“uart.alt()”这个函数,然后单击“保存到Esp”,那么在“uart.alt()”行,保存过程会跳转到不同的usart,并且代码不会完全保存到ESP中。
那么在nodemcu中使用多个usart的有效方法是什么(类似于arduino中的软件串行)?
I am using
Nodemcu model : ESP8266
Nodemcu Version : 3
& NodeMCU custom build by frightanic.com branch: 1.5.4.1-fina
Run Code Online (Sandbox Code Playgroud)
我没有得到任何符合我的要求的完美例子。因此,请给我关于这个问题的完美文档或示例。
谢谢。
您没有给出 NodeMCU 的品牌,但由于 ESP32 上没有 uart.alt,我猜是 8266
因此,如果您的 NodeMCU 是 ESP8266,则您的设置存在问题:
来自ESP8266 文档:
虽然有两个 UART(0 和1) 可供 NodeMCU 使用,UART 1 无法接收数据,因此只能发送。我不是 LUA 专家,但我想这就是编译器想告诉你的。
是的,有一个ESP32 版本的 NodeMCU, OP 只是声明他使用 NodeMCU,但没有提供更多信息。
uart.alt() Change UART pin assignment.
Run Code Online (Sandbox Code Playgroud)
-表示您可以分配UART 0的引脚
uart.alt(on)
Parameters
on
0 for standard pins
1 to use alternate pins GPIO13 and GPIO15
Run Code Online (Sandbox Code Playgroud)
因此,这只适用于 NodeMCU ESP8266 上的一个 uart (UART 0)。
如果您使用基于 ESP32 的 NodeMCU
启用 UART 1 会导致 ESP32 崩溃!原因是默认情况下,UART 1 使用与 ESP32 闪存相同的引脚。 请参阅NodeMCU ESP32 开发板的
官方文档。因此,在提问时请务必提供 NodeMCU 的版本和板类型。