文档章节

LUA初始化

 成长的烦恼007
发布于 2016/09/19 13:39
字数 446
阅读 19
收藏 1
--init.lua
if true then  --change to if true 
    g_mac=nil   
    print("set up wifi mode")
    wifi.setmode(wifi.STATION)
    --please config ssid and password according to settings of your wireless router.
    wifi.sta.config("jszzsj03","stanic2014")          --这里设置你的WIFI名字和密码
    wifi.sta.connect()
    cnt = 0
    tmr.alarm(1, 1000, tmr.ALARM_AUTO, function() 
        if (wifi.sta.getip() == nil) and (cnt < 20) then 
            print("IP unavaiable, Waiting...")
            cnt = cnt + 1 
        else 
            tmr.stop(1)
            if (cnt < 20) then print("IP:"..wifi.sta.getip())
                MAC=wifi.sta.getmac()
                mac=string.gsub(MAC,":","")
                g_mac = mac
                --print("MAC:"..mac)
                dofile("mqtt.lua")    --这里设置自动执行的程序,去掉减号就可以运行了。
                dofile("uart.lua")    --这里设置自动执行的程序,去掉减号就可以运行了。        
            else 
                print("No Wifi Connected.")    
            end
        end 
     end)
else
    print("\n")
    print("Please edit 'init.lua' first:")
    print("Step 1: Modify wifi.sta.config() function in line 5 according settings of your wireless router.")
    print("Step 2: Change the 'if false' statement in line 1 to 'if true'.")
end

--mqtt.lua
topicA = g_mac.."A"     --用于向手机上发送的信息
topicB = g_mac.."B"     --用于订阅手机上发来的信息
print("PUB:"..topicA)
print("SUB:"..topicB)

m = mqtt.Client(g_mac, 180, "tang", "modelsim")      --这里设置你的ClientID、用户名、密码,需要去www.difiot.com上注册获取

m:on("connect", function(client) print ("DiFi MQTT Server Connected1") end)
m:on("offline", function(client) print ("DiFi MQTT Server Offline") end)

m:on("message", function(client, topic, data) 
  if data ~= nil then
	gpio.write(4, gpio.LOW)
    print("receive "..data.." from "..topicB)
	gpio.write(4, gpio.HIGH)
  end
end)

while (m:connect("www.difiot.com", 1883, 0, 1, function(client) print("DiFi MQTT Server Connected") subscribe() end, 
    function(client, reason) print("failed reason: "..reason) end) == false) do 
    print("false")
end

function subscribe()
    m:subscribe(topicB, 0, function(client) print("subscribe "..topicB.." success") end)
end
--uart.lua
uart.alt(0)
uart.setup(0, 115200, 8, uart.PARITY_NONE, uart.STOPBITS_1, 0)

gpio.mode(4,gpio.OUTPUT,gpio.FLOAT)
gpio.write(4, gpio.LOW)

dataUart=nil

uart.on("data","\r",
  function(data)
    dataUart = data
    --print("receive from uart4:"..dataUart)
    sendPublish()
    if data=="\n" then
      uart.on("data") -- unregister callback function
  end
end, 0)

function sendPublish()
    gpio.write(4, gpio.LOW)
    --print("receive from uart5:", dataUart)
    m:publish(topicA, dataUart, 0, 0, function(client) print("sent "..dataUart.." to "..topicA) end)
end

i = 0
function sendPublishTimer()
    gpio.write(4, gpio.LOW)
    m:publish(topicA, i, 1, 0, function(client) print("sent "..i.." to "..topicA) i=i+1 if(i>=90) then i=0 end end)
	gpio.write(4, gpio.HIGH)
end

tmr.register(2, 2000, tmr.ALARM_AUTO, sendPublishTimer)
tmr.start(2)

 

© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 4
码字总数 4267
作品 0
台州
私信 提问
qieangel2013/lua-nginx

#lua-nginx lua-nginx ###use accesscount.lua(分流) accesslimit.lua(防刷) config.json(配置) config.lua(初始化文件) counter.lua(计数器) ###nginx luashareddict config 1m; lu......

qieangel2013
2016/12/13
0
0
使用LuaScriptCore来让Lua与iOS进行交互

可能有一些人对lua并不是太熟悉,它其实跟JavaScript、Ruby、Python等同为脚本语言。但是更加轻量,更加简洁,没有任何多余的功能。这也使得它可以根据自己的需要来进行定制。例如作为应用的...

vimfung
2016/12/13
1K
9
Lua 程序设计 table构造式

构造式是用于创建和初始化table的表达式。是Lua中最通用、最有用的机制之一。 最简单的构造式就是一个空构造式{},用于创建一个空table。构造式还可以用于初始化数组。 days = {"Sunday","Mo...

80后小子
2014/07/12
0
0
openresty通过lua增加随机traceid

在没有引入zipkin(或者阿里的鹰眼,百度的华佗)这种trace系统的时候,排查问题的一般思路都是按照请求链路来寻找问题源。因此如果能在请求链路中有一个唯一的标识就最好了,而在nginx/ope...

宏量
2018/07/16
0
0
OpenResty 执行阶段

简单测试一下 执行结果日志(截取了一下): 这样我们就可以根据我们的需要,在不同的阶段直接完成大部分典型处理了。 setbylua: 流程分支处理判断变量初始化 rewritebylua: 转发、重定向、缓存...

KKiCC
2016/12/23
80
0

没有更多内容

加载失败,请刷新页面

加载更多

监听DOM上某一个元素是否发生变化,利用MutationObserver来监听元素变化

/** * 观察DOM是否发变化的事件 * @type {MutationObserver|*} */var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserv......

lwkai
5分钟前
0
0
遇到的问题

问题1:前两天在Nodepad++写了一个登录页面,但在Chrome中调试一直写不进Cookie。 解决办法:Chrome浏览器不支持本地静态js写Cookie。换用Edge调试即可。 内心:卧槽,浪费我这么多时间。 问...

akane_oimo
7分钟前
0
0
Oracle学习日志-6(聚合查询)

聚合函数 聚合函数可以对数据进行某种操作或者计算。比如几个常用的函数: COUNT:计算表中行数。 SUM:计算表中数据列中数据的合计值。 AVG:计算表中数据列中数据的平均值。 MAX:求出表中...

白话
9分钟前
0
0
Axure原型工具Axure RP9安装及Licensee

http://www.zhanshaoyi.com/9132.html

晚风0623
13分钟前
0
0
如何限制用户仅通过HTTPS方式访问OSS?

一、当前存在的问题 当前OSS支持用户使用HTTPS/HTTP协议访问Bucket。但由于HTTP存在安全漏洞。大型企业客户都要求使用HTTPS方式访问OSS,并且拒绝HTTP访问请求。 目前OSS可以通过RAM policy方...

阿里云官方博客
35分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部