|
上次写了一个帖子,介绍了我家智能家居系统。
https://www.mydigit.cn/forum.php?mod=viewthread&tid=243315
其中自己搭建的服务器使用的是树莓派平台。由于树莓派确实有点贵,而且开发编译环境稍微复杂了一点,有网友提出是否可以用ESP8266或者ESP32作为服务器。我觉得这是一个好主意,于是我就重写了一套基于ESP单片机的服务器,并且将服务器代码和物联网节点端的代码全套开源了。
源代码在此:
https://gitee.com/fryefryefrye/O ... tomation/ESP8266Web
整套物联网系统的原理和架构,还是和上一个帖子里写的一模一样,想了解的同学去看上一篇帖子。唯一的区别就是树莓派被换成了ESP8266。
下面讲一下这次开源的这套代码的系统结构和使用方法。
1:操作面板的界面,是用一个html文件,放在了服务端代码下面的一个data文件夹。ESP8266自身带有文件系统,可以保存平时运行时所需要的文件。data文件夹的中文件,可以通过Arduino开发环境的一个插件上传到单片机的文件系统中。
可以参考下面网址的办法,安装文件上传插件,将html文件上传进ESP8266.
http://www.taichi-maker.com/home ... piffs/upload-files/
2:服务端的web服务。
a)如果请求主页,就把index.html发给客户端。
b)如果请求数据更新,根据节点发来的数据,返回一串用“,”隔开的字符串。
c)如果请求控制灯的开关之类的,就把控制结果发给客户端。
3:服务端的UDP数据处理就简单一点。接收节点发来的数据,存储之后,再发给需要发给这个节点的命令。
4:节点每秒上传一次自己的状态,并接受服务器发来的命令,如果有命令需要执行,就去执行以下。开源代码的节点功能是控制两个灯,只需要在ESP8266上再接一个双路继电器模块,就可以实现了。
5:服务器和节点共用的struct.h文件,这里面定义了两部分代码都需要的数据结构,常量等。
有了自己的物联网服务器,就可以发挥自己的想象力,实现各种各样自己DIY的物联网终端了。
|
打赏
-
查看全部打赏
|