首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

单片机平台的简易webserver服务器设计

随着物联网产业的普及,众多低成本的以太网类产品面世,大多数的产品基本使用中等资源的单片机平台,如国产的沁恒的带以太网类功能的单片机,此类单片机最大的特点是资源少、功能全,基于此类芯片开发的产品,产品使用时的配置往往采用资源占用较少的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)网络收发支持,服务器主体框架:服务器端主体框架主要实现数据收发部分、请求判定部分,流程如下:

通过以上方式即可实现网页操作。

最终实现效果如下:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230606A03FMW00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券