问题描述
我正在尝试通过 ESP8266 12E NODE MCU 开发套件的串口将数据发送到 arduino 串口.
I am trying to send data over the serial port of the ESP8266 12E NODE MCU dev kit to an arduino serial port.
我很难找到所用语法的示例,我尝试通过 arduino 使用 serial.print() 发送数据并且它可以工作,但我不确定如何在 Lua 中完成此操作.
I've having a hard time trying to find an example of the syntax used and I tried using serial.print() via the arduino to send data and it works but I'm unsure how to accomplish this in Lua.
感谢任何帮助
我可以从 arduino 中获取 SSID 和密码
I can get the SSID and Password form arduino
INIT.lua
SSID = "XXXX"
Password = "XXXX"
wifi.setmode(wifi.STATION)
wifi.sta.config(SSID,Password) -- Replace with your AP Name and security key.
wifi.sta.connect()
tmr.alarm(1, 1000, 1, function()
if wifi.sta.getip()== nil then
print("Obtaining IP...")
else
tmr.stop(1)
print("Got IP. "..wifi.sta.getip())
dofile("LED_on_off.lua")
end
end)
LED_ON_OFF LUA
LED_ON_OFF LUA
print(wifi.sta.getip())
led2 = 4
gpio.mode(led1, gpio.OUTPUT)
gpio.mode(led2, gpio.OUTPUT)
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
conn:on("receive", function(client,request)
local buf = "";
local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP");
if(method == nil)then
_, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP");
end
local _GET = {}
if (vars ~= nil)then
for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do
_GET[k] = v
end
end
buf = buf.."<h1> ESP8266 Web Server</h1>";
buf = buf.."<p>GPIO2 <a href=\"?pin=ON2\"><button>ON</button></a> <a href=\"?pin=OFF2\"><button>OFF</button></a></p>";
local _on,_off = "",""
if(_GET.pin == "OFF2")then
gpio.write(led2, gpio.HIGH);
elseif(_GET.pin == "ON2")then
**********Here i would like to send data ot arduini that pin is swithced oN ************
gpio.write(led2, gpio.LOW);
end
client:send(buf);
client:close();
collectgarbage();
end)
end)
推荐答案
请阅读 NodeMCU 文档:
Please read the NodeMCU documentation:
https://nodemcu.readthedocs.io/en/master/
尤其
https://nodemcu.readthedocs.io/en/master/en/modules/uart/
一切都在那里.您不必查找示例.你必须学会阅读和理解文档.不阅读文档就没有正确的编程.
It's all there. You don't have to find examples. You have to learn to read and understand documentations. There is no proper programming without reading documentations.
如果您只想告诉 arduino 发生了一件事情,尽管您最好使用数字输出并将其连接到 arduino 输入.保持简单和愚蠢.
If you only want to tell the arduino that one single thing happened though you might as well just use a digital output and hook it up to an arduino input. Keep it simple and stupid.
这篇关于LUA 编程 ,ESP8266 NODEMCU 串口通信的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!