查看: 1568|回复: 0

LinkNode R4 试用(3)--NodeMCU的使用

[复制链接]
  • TA的每日心情
    无聊
    2021-7-15 17:25
  • 签到天数: 21 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2016-10-10 09:07:09 | 显示全部楼层 |阅读模式
    分享到:
    在这篇经验里会提到NodeMCU的使用方法。
    上一节试用忘记放资料地址了,这里放一下:https://pan.baidu.com/s/1bpFWOFX
    NodeMCU使用LUA进行编程,提供命令行交互式的运行命令,也提供flash中文件的运行方式,NodeMCU会上电默认运行init.lua文件,所以可以在init.lua文件内编写初始化程序,在执行完初始化之后,可以使用dofile(“”)来执行其他的脚本。
    首先介绍命令行交互模式,我使用LuaLoader这款软件来进行编程,他的界面是贼个样子的:

    软件的使用时比较简单的,只要用串口连接到小板,然后再这里配置好端口和波特率即可:

    下面是我的配置:

    然后就可以使用了,软件右侧提供了一些快捷键,大多数是好用的,如果想知道完全的NodeMCU支持的函数可以到NodeMCU的github的wiki上面查看。
    想把NodeMCU作为主控制器,就不能再使用命令行交互模式了,所以文件执行就很重要了,因为不能直接向esp8266的文件系统中写入文件,所以需要使用NodeMCU的命令行交互模式使用文件函数写入,为了方便,这里也使用LuaLoder的文件上传功能:

    点击打开,即可。
    下面实现一个NodeMCU编写的服务器,使用收件连接NodeMCU的热点后,访问服务器来控制继电器的程序:
    首先需要编写init.lua文件,代码如下:
    -- @Author: Nicot-- @Date:   2016-06-06 21:14:41-- @Last Modified by:   Nicot-- @Last Modified time: 2016-10-07 23:12:44gpio.mode(0, gpio.OUTPUT);gpio.mode(5, gpio.OUTPUT);gpio.mode(6, gpio.OUTPUT);gpio.mode(7, gpio.OUTPUT);if(wifi.ap.getip() ~= nil) then    local ip = wifi.ap.getip()    print("*#IP:"..ip..",s:wificonf,pwd:123456789".."#*")    dofile("server.lua")    returnendwifi.setmode(wifi.SOFTAP);local cfg={}cfg.ssid="wificonf"cfg.pwd="123456789"wifi.ap.config(cfg)if(wifi.ap.getip() ~= nil) then    local ip = wifi.ap.getip()    print("*#IP:"..ip..",s:wificonf,pwd:123456789".."#*")    dofile("server.lua")    returnend
    然后是服务器的程序:
    -- @Author: Nicot-- @Date:   2016-06-07 00:05:58-- @Last Modified by:   Nicot-- @Last Modified time: 2016-10-07 23:13:37sv=net.createServer(net.TCP,30)print("*#SERVER:OK#*")sv:listen(80,function(c)       cn("receive",function(c, pl)         if pl:find("favicon") then            c:close();            return        end        if pl:find("JDQ") then            local setInfoStart = string.find(pl,"JDQ",1)            local setInfoEnd = string.find(pl,"HTTP/1.1",1)            local setInfo = string.sub(pl,setInfoStart + 4,setInfoEnd - 2)            print("*#INFO:"..setInfo.."#*")            local map = {0,5,6,7};            for k,v in pairs({'Ja','Jb','Jc','Jd'}) do                local start = string.find(setInfo,v,1);                print(v.." : "..string.sub(setInfo,start + 3,start + 3));                start = string.sub(setInfo,start + 3,start + 3);                if(start == "0") then                    gpio.write(map[k], gpio.LOW);                else                    gpio.write(map[k], gpio.HIGH);                end            end            return        else            file.open("index.html")            local html = ""            local temp = ""            temp = file.readline()            while(temp ~= nil) do                html = html..temp                temp = file.readline()            end            c:send(html)            file.close()            return        end    end)end)最后是index网页的程序:<!DOCTYPE html><html lang="en">    <head>        <meta charset="utf-8">        <title>继电器控制台</title>    </head>    <body>        <h1>欢迎使用继电器控制台</h1>        <form action="/JDQ" method="get" accept-charset="utf-8">            <p>一号继电器:                <select name="Ja">                    <option value="0">OFF</option>                    <option value="1">ON</option>                </select>            </p>              <p>二号继电器:                <select name="Jb">                    <option value="0">OFF</option>                    <option value="1">ON</option>                </select>            </p>             <p>三号继电器:                <select name="Jc">                    <option value="0">OFF</option>                    <option value="1">ON</option>                </select>            </p>             <p>四号继电器:                <select name="Jd">                    <option value="0">OFF</option>                    <option value="1">ON</option>                </select>            </p>                              <input type="Submit" value="Submit">        </form>    </body></html>下面是运行的状态图,包括控制网页和lualoder的串口打印数据:


    下面是程序和lualoder的连接:https://pan.baidu.com/s/1c2btqUk
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-5-4 13:29 , Processed in 0.124527 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.