文档章节

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
Lua 程序设计 table构造式

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

80后小子
2014/07/12
0
0
使用LuaScriptCore来让Lua与iOS进行交互

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

vimfung
2016/12/13
1K
9
openresty通过lua增加随机traceid

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

宏量
07/16
0
0
C/C++调用lua脚本函数

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

长平狐
2012/08/13
4.5K
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

1、Vue解决安卓4.4不兼容的问题

1.npm安装 npm install babel-polyfill--save-devnpm install es6-promise--save-dev package.json中会出现 "babel-polyfill": "^6.26.0","es6-promise": "^4.1.1", 2.main.js引入 impo......

阿K1225
6分钟前
0
0
mybatis generator 属性详解

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis......

太黑_thj
10分钟前
0
0
windows nvm 安装 node

nvm 是 node 的版本控制管理 下面是下载 nvm 的地址,选择 nvm-setup.zip 下载 https://github.com/coreybutler/nvm-windows/releases 就是下一步下一步,一键安装 基本命令有: nvm arch [32...

U_I_A_N
12分钟前
0
0
js判断字符串中是否包含某个字符串

indexOf() indexof()方法可以返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回-1。 var str = "123";console.log(str.indexOf("3") != -1);...

小星星_cjx
25分钟前
0
0
函数式组件完整例子

之前创建的组件是比较简单,没有管理或者监听任何传递给他的状态,也没有生命周期方法。它只是一个接收参数的函数。 在下面这个例子中,我们标记组件为 functional,这意味它是无状态 (没有响...

tianyawhl
27分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部