随着物联网产业的普及,众多低成本的以太网类产品面世,大多数的产品基本使用中等资源的单片机平台,如国产的沁恒的带以太网类功能的单片机,此类单片机最大的特点是资源少、功能全,基于此类芯片开发的产品,产品使用时的配置往往采用资源占用较少的AT指令,或者私有配置协议来实现,本文主要介绍在此类平台上实现网页配置的一种方法。
实现网页配置首先在flash资源上至少要有10-15k的空间,设备功能复杂度不可太高,拿NA111举例,产品实现了基本的TCP/UDP/HTTP/MQTT网络通讯功能,串口透传以及注册包心跳包等功能,参数总量较少,可以在网页上实现所有参数的配置。
1.网页设计
网页实现的方法上,使用静态网页的方式,由于存储容量有限,不可能实现太多的美化功能,也不能调用外部库(考虑离线配置情况),且静态网页可以直接使用浏览器打开,除了ajax的请求外,界面渲染按钮操作等均可直接在本地调试完成。
网页的源码结构上可以按照以下方式:
-->index.html
-->style.css
-->dat1.json
-->dat2.json
html文件为主页面,css文件为样式表,a.js,b.js主要用于界面控制参数处理等,这几种文件内容固定。.json文件则为参数,属于标准的json文件,内容由设备即时生成。
在资源较少的平台上,以上文件如果按照字符串数组存储的话,其占用空间可能超过50k,所以在单片机上存储时需要考虑压缩文件形式。且HTTP支持GZIP的压缩格式传输文件,利用此方法,可以将内容固定的部分文件通过专用的软件将内容进行压缩,生成数组,在单片机内部进行存储即可。传输时,在HTTP的返回头上增加“content-type:gzip"字段,后直接将数组发出即可,浏览器可自动识别解压文件。
2.服务器设计
同样由于资源问题,设备上的服务器不可能做到移植网页服务器框架,因此只能执行设计,需要完成的工作如下:
(1)HTTP协议解析库:实现基本的post/get解析请求即可,文件请求类型需要支持:html/css/js/json,几种类型,关于http报文的定义及解析可以参考博文:https://blog.csdn.net/yutiab69/article/details/82869239
(2)网络收发支持,服务器主体框架:服务器端主体框架主要实现数据收发部分、请求判定部分,流程如下:
通过以上方式即可实现网页操作。
最终实现效果如下:
领取专属 10元无门槛券
私享最新 技术干货