Toggle navigation
首页
(current)
问答
文章
话题
商城
登录
注册
自己开发微信小程序控制Air202模块(2)Air202部分开发
微信小程序
本篇主要写一下Air部分的编程和硬件的连接。
1、准备材料 一个LED灯、一个S5开发板、一个USB-TTL模块 ![](/static/editormd/php/../uploads/5_29185.jpg) ![](/static/editormd/php/../uploads/5_20588.jpg) 2、将USB-TTL和S6开发板连接。 接线方式如下图 ![](/static/editormd/php/../uploads/5_98548.png) 3、连接LED和开发板。我用的是IO6这个IO口,所以将LED一端接地一端接在IO6。使用普通的LED灯是建议串联一个1K的电阻,防止LED被烧坏。 4、编写Air202的程序。 main.lua ```lua PROJECT = "ALIYUN" VERSION = "2.0.0" --加载日志功能模块,并且设置日志输出等级 --如果关闭调用log模块接口输出的日志,等级设置为log.LOG_SILENT即可 require "log" LOG_LEVEL = log.LOGLEVEL_TRACE require "sys" require "net" --每1分钟查询一次GSM信号强度 --每1分钟查询一次基站信息 net.startQueryAll(60000, 60000) --加载网络指示灯功能模块 --根据自己的项目需求和硬件配置决定:1、是否加载此功能模块;2、配置指示灯引脚 require "netLed" netLed.setup(true,pio.P1_1) --网络指示灯功能模块中,默认配置了各种工作状态下指示灯的闪烁规律,参考netLed.lua中ledBlinkTime配置的默认值 --如果默认值满足不了需求,此处调用netLed.updateBlinkTime去配置闪烁时长 --加载错误日志管理功能模块【强烈建议打开此功能】 --如下2行代码,只是简单的演示如何使用errDump功能,详情参考errDump的api require "errDump" errDump.request("udp://ota.airm2m.com:9072") --加载阿里云功能测试模块 require "testALiYun" --启动系统框架 sys.init(0, 0) sys.run() ``` testALiYun.lua ```lua module(...,package.seeall) require"aLiYun" require"misc" require"pm" require"pins" local PRODUCT_KEY = "a1sLSgWRLGZ" local function getDeviceName() return "869300031602869" end local function setDeviceSecret(s) misc.setSn(s) end local function getDeviceSecret() return "2wdomNTGLFZCPykcxCUWrEH3c1O8qGs9" end --阿里云客户端是否处于连接状态 local sConnected ---数据接收的处理函数 -- @string topic,UTF8编码的消息主题 -- @number qos,消息质量等级 -- @string payload,原始编码的消息负载 local function rcvCbFnc(topic,qos,payload) log.info("testALiYun.rcvCbFnc:",topic,qos,payload) local tjsondata,result,errinfo = json.decode(payload)---tjsondata数据,result 解析结果 true or false ,errinfo错误信息 key = tjsondata["params"]['LightSwitch'] log.info("key:",key) data(key) end function data(key)--函数在全局中被引用时 不要加local local led1 = pins.setup(pio.P0_6,0) if key == 0 then led1(0) log.info("ledon") else if key == 1 then led1(1) log.info("ledoff") end end end --- 连接结果的处理函数 -- @bool result,连接结果,true表示连接成功,false或者nil表示连接失败 local function connectCbFnc(result) log.info("testALiYun.connectCbFnc",result) sConnected = result if result then --订阅主题,不需要考虑订阅结果,如果订阅失败,aLiYun库中会自动重连 aLiYun.subscribe({["/sys/"..PRODUCT_KEY.."/"..getDeviceName().."/thing/service/property/set"]=0, ["/"..PRODUCT_KEY.."/"..getDeviceName().."/get"]=1}) --注册数据接收的处理函数 aLiYun.on("receive",rcvCbFnc) --PUBLISH消息测试 publishTest() end end -- 认证结果的处理函数 -- @bool result,认证结果,true表示认证成功,false或者nil表示认证失败 local function authCbFnc(result) log.info("testALiYun.authCbFnc",result) end function gpio4IntFnc(msg) local beel = pins.setup(pio.P0_2,0) log.info("testGpioSingle.gpio4IntFnc",msg,getGpio4Fnc()) --上升沿中断 if msg==cpu.INT_GPIO_POSEDGE then --下降沿中断 beel(1) log.info("ladi,miedeng") else beel(0) publishTest(LockCloseData) log.info("liang") end end --GPIO4配置为中断,可通过getGpio4Fnc()获取输入电平,产生中断时,自动执行gpio4IntFnc函数 getGpio4Fnc = pins.setup(pio.P0_4,gpio4IntFnc) --采用一机一密认证方案时: --配置:ProductKey、获取DeviceName的函数、获取DeviceSecret的函数;其中aLiYun.setup中的第二个参数必须传入nil aLiYun.setup(PRODUCT_KEY,nil,getDeviceName,getDeviceSecret) --采用一型一密认证方案时: --配置:ProductKey、ProductSecret、获取DeviceName的函数、获取DeviceSecret的函数、设置DeviceSecret的函数 --aLiYun.setup(PRODUCT_KEY,PRODUCE_SECRET,getDeviceName,getDeviceSecret,setDeviceSecret) --setMqtt接口不是必须的,aLiYun.lua中有这个接口设置的参数默认值,如果默认值满足不了需求,参考下面注释掉的代码,去设置参数 --aLiYun.setMqtt(0) aLiYun.on("auth",authCbFnc) aLiYun.on("connect",connectCbFnc) ``` 以上是两个Air的程序,只需要将里面ProductKey、DeviceName、DeviceSecret修改为自己的即可。 ![](/static/editormd/php/../uploads/5_71363.png) 5、考虑到有刚接触luat的小伙伴,下面我们简单分析一下代码。 ![](/static/editormd/php/../uploads/5_86127.png) 在这一段是我们连接阿里云MQTT后判断返回结果为真的情况下执行的。 连接成功后我们需要订阅阿里云MQTT下发的主题,也就是我们上一篇说到的Topic类。 ![](/static/editormd/php/../uploads/5_87557.png) 然后我们启动数据接收处理函数 ![](/static/editormd/php/../uploads/5_77470.png) 调用IO口控制函数,并根据参数key的值 0或1 来控制IO6口的高低电平。 ![](/static/editormd/php/../uploads/5_53211.png)
发表于 2019-03-06 20:39
阅读 ( 3953 )
分类:
默认分类
4 推荐
收藏
你可能感兴趣的文章
自己开发微信小程序控制Air202模块(3)烧写程序并测试
2898 浏览
自己开发微信小程序控制Air202模块(1)阿里云平台操作
3540 浏览
自己开发微信小程序控制Air202模块(0)开发前准备
4808 浏览
相关问题
0 条评论
请先
登录
后评论
隔壁家的老婆饼
4 篇文章
作家榜
»
技术销售Delectate
43 文章
陈夏
26 文章
国梁
24 文章
miuser
21 文章
晨旭
20 文章
朱天华
19 文章
金艺
19 文章
杨奉武
18 文章
×
发送私信
发给:
内容:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!