问题
I am trying to send data over the serial port of the ESP8266 12E NODE MCU dev kit to an arduino serial port.
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.
Any help is appreciated
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
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)
回答1:
Please read the NodeMCU documentation:
https://nodemcu.readthedocs.io/en/master/
especially
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.
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.
来源:https://stackoverflow.com/questions/39966706/lua-programming-esp8266-nodemcu-serial-communication