我这边用的是Air202的2G模块,利用socket通信给GPIO发送指令,给到外接的继电器控制蜂鸣器:
之前看了很多网上的例子,这次我把Socket通信和GPIO控制继电器集合到一起,下面创建两个.lua文件,第一个main.lua,其中存放一些需要导入的包,根据需要导入自己要用的,代码如下:
PROJECT = "SOCKET-TEST"
VERSION = "1.0.0"
require "log"
LOG_LEVEL = log.LOGLEVEL_TRACE
require "sys"
--每1分钟查询一次GSM信号强度,每1分钟查询一次基站信息
require "net"
net.startQueryAll(60000, 60000)
--加载硬件看门狗功能模块
require "wdt"
wdt.setup(pio.P0_30, pio.P0_31)
--加载网络指示灯功能模块
require "netLed"
netLed.setup(true, moduleType == 2 and pio.P1_1 or pio.P2_0, moduleType == 2 and nil or pio.P2_1)
require "socketGpio"
require "ntp"
require "errDump"
errDump.request("udp://ota.airm2m.com:9072")
--require "ledtest" --led
ntp.timeSync()
--启动系统框架
sys.init(0, 0)
sys.run()
第二个文件为socketGpio.lua,里面存放方法及处理操作,代码如下:
module(..., package.seeall)
require "pins" --用到了pin库,该库为luatask专用库,需要进行引用
-- if moduleType == 2 then
-- pmd.ldoset(5, pmd.LDO_VMMC)--使用某些GPIO时,必须在脚本中写代码打开GPIO所属的电压域,配置电压输出输入等级,这些GPIO才能正常工作
-- end
--设置继电器的GPIO口
local gpio1 = pins.setup(7,