LUA 编程 ,ESP8266 NODEMCU 串口通信 [英] LUA Programming ,ESP8266 NODEMCU Serial communication

查看:97
本文介绍了LUA 编程 ,ESP8266 NODEMCU 串口通信的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试通过 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>&nbsp;<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 串口通信的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆