文档章节

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
C/C++调用lua脚本函数

游戏服务端开发也有一段时间了,现在充分体会到脚本的方便与实用。下面简单介绍一下lua有基本用法。 第一步:声明Lua对象指针 lua_State* L; 第二步:初始化lua对象指针与库 L = luaopen();...

长平狐
2012/08/13
4.5K
0
OpenResty 执行阶段

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

KKiCC
2016/12/23
80
0
openresty通过lua增加随机traceid

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

宏量
07/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

TypeScript基础入门之声明合并(二)

转发 TypeScript基础入门之声明合并(二) 声明合并 合并命名空间 与接口类似,同名的命名空间也将合并其成员。 由于名称空间同时创建了名称空间和值,因此我们需要了解它们是如何合并的。 要合...

durban
20分钟前
0
0
centos7系统安装sersync+rsync实现服务器同步功能

centos7系统安装sersync+rsync实现服务器同步功能 MQ_douer0人评论21708人阅读2017-04-08 15:49:03 一、为什么要用sersync+rsync架构? 1、sersync是基于inotify开发的,类似于inotify-tools...

linjin200
21分钟前
1
0
Windows下安装phpRedis扩展

Windows下安装phpRedis扩展 通常在做PHP程序测试时,会用到Redis。而一般测试都是在Windows下进行的,所以需要在Windows环境下安装phpRedis扩展,用以支持php对Redis的访问。 工具/原料 php调...

梦梦阁
26分钟前
1
0
HTTPConnectionPool(host:XX)Max retries exceeded with url 解决方法

HTTPConnectionPool(host:XX)Max retries exceeded with url 解决方法 在做双十一压测时,高并发调用requests时报错.问题解决方法 问题原因 是因为在每次数据传输前客户端要和服务器建立TCP...

_Change_
30分钟前
0
0
iosdfgh

复制 IO流 (***** 了解 *****) 1.1 概述 之前我们学习了 File 类,这个类中有很多操作文件本身的方法, File类它只能操作文件或文件夹,并不能去访问文件中的数据。真正保存数据的是文件,数据...

码农屌丝
32分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部