下载可直接编译文件:https://download.csdn.net/download/wzhmax/10951460
上述文件,解压放在openwrt/package/目录下即可。
make menuconfig -> Utilities ->iiot_luci 打上* 即可自动编译进内核加载。如下图:
效果图:
LuCI基于Lua的MVC架构,本文基于OpenWRT 且已经编译进LuCi做开发讲解。
1. 添加导航条
如果想在添加导航条,在/usr/lib/lua/luci/controller/admin需要添加相应的lua文件
module ("luci.controller.admin.iiot", package.seeall)
function index()
entry({"admin", "new_tab"}, firstchild(), "IIOT", 30).dependent=false
entry({"admin", "new_tab", "ModBus"}, cbi("iiot/modbus"), "ModBus", 1)
entry({"admin", "new_tab", "MQTT"}, cbi("iiot/mqtt"), "MQTT", 2)
end
很明显,我们添加了一个叫做iiot的导航条,并且添加了ModBus / MQTT 两个选项条,格式都为cbi
2. 现在让我们来做modbus / mqtt两个选项,根据上文创建/usr/lib/lua/luci/model/cbi/iiot选项,再分别创建mqtt.lua 和modbus.lua两个文件
modbus.lua:
m = Map("modbus", translate("ModBus Package Set"), translate("Please fill out the form below for the set of paraments setting"))
d = m:section(TypedSection, "info", "ModBus")
a = d:option(Value, "name", "Name"); a.optional=false; a.rmempty=false;
b = d:option(Value, "SlaveID", "SlaveID"); b.optional=false; b.rmempty=false;
c = d:option(Value, "FunctionID", "FunctionID"); c.optional=false; c.rmempty=false;
e = d:option(Value, "Quantity", "Quantity"); e.optional=false; e.rmempty=false;
d2 = m:section(TypedSection, "serial_info", "ModBus")
f = d2:option(Value, "BaudRate", "BaudRate"); f.optional=false; f.rmempty=false;
g = d2:option(ListValue, "Parity", "Parity"); g.optional=false; g.rmempty=false;
g:value("1", translate("Y"))
g:value("0", translate("N"))
h = d2:option(Value, "StopBit", "StopBit"); h.optional=false; h.rmempty=false;
i = d2:option(Value, "DataBit", "DataBit"); i.optional=false; i.rmempty=false;
j = d2:option(Value, "Device", "Device"); j.optional=falw; j.rmempty=false;
return m
mqtt.lua:
m = Map("mqtt", translate("MQTT Set"), translate("Please fill out the form below for the set of paraments setting"))
d = m:section(TypedSection, "info", "MQTT")
a = d:option(Value, "ClientID", "ClientID"); a.optional=false; a.rmempty=false;
b = d:option(Value, "IP", "IP"); b.optional=false; b.rmempty=false;
c = d:option(Value, "Interval", "Interval"); c.optional=false; c.rmempty=false;
e = d:option(Value, "Topic", "Topic"); e.optional=false; e.rmempty=false;
f = d:option(Flag, "Enable", "Enable"); f.optional=true; f.rmempty=false;
return m
3. 添加配置文件,在OpenWRT LuCI中都是通过/etc/config下文件来配置,所以在/etc/config需创建mqtt 和 modbus两个配置文件
config info 'ModBus'
option name 'OpenWRT'
option SlaveID '03'
option FunctionID '03'
option BaudRate '9600'
option Quantity '10'
config serial_info 'Serial'
option BaudRate '9600'
option DataBit '8'
option Device '/dev/ttyS1'
option Parity '1'
option StopBit '0'
config info 'MQTT'
option ClientID 'GateWay'
option IP '192.168.1.1'
option Interval '1'
option Topic 'DemoTest2'
option Enable '1'
4. 这是基本前端通过LuCi添加界面并更改config 就完成
5.当然可以通过Makfefile编译进内核,烧写成固件,具体请见:
https://download.csdn.net/download/wzhmax/10951460
--------------------------------------------------------------------------------------------------------
2019.02.09 初稿,没有贴图,资料已经上传还未通过审核
2019.02.10 资料通过审核已经可以下载,修改了标题和下划线,前面添加了下载地址; 暂未上图片说明
2019.02.12 添加图片,和使用方法,伸手党福利。 哪个大哥下载一发,我也要点c币下载资料又不想买会员... 江湖救急啊