项目简介
Yubox框架是一个用于整合基于YUBOX ESP32的物联网项目常见需求的库。它实现了设备通过Web界面配置、设备配置密码保护、配置存储在NVRAM、WiFi网络发现与配置、NTP服务器配置、设备在本地网络的发现、MQTT服务器标准配置以及设备固件OTA更新等功能,同时提供了基于Bootstrap 4的标准化Web界面。
项目的主要特性和功能
- 设备配置管理:通过Web界面实现设备的配置,包括WiFi连接、NTP服务器设置、MQTT服务器配置等,同时支持密码保护,防止未经授权的访问。
- 存储与更新:将配置信息存储在NVRAM中,支持固件的OTA更新,并具备回滚功能。
- 网络发现与连接:利用ESP32的softAP接口实现WiFi网络的发现与配置,同时使用mDNS和DNS - SD实现设备在本地网络的发现,自动维护WiFi连接。
- 异步网络处理:采用AsyncTCP实现网络和Web界面处理的异步操作,减轻主循环负担。
- 模块化设计:支持自定义模块,通过
modules.txt和data - template目录可方便地添加和定制Web界面模块。
安装使用步骤
安装前准备
- 开发环境:
- 安装Arduino IDE 1.8及以上版本(不支持2.0.0版本),可从Arduino官网下载zip或targz文件进行安装。
- 为Arduino IDE添加ESP32支持,在“文件” -> “首选项”的“附加开发板管理器网址”中添加
https://dl.espressif.com/dl/package_esp32_index.json,然后在“工具” -> “开发板” -> “开发板管理器”中安装“esp32”。 - 安装
make命令,不同Linux发行版安装命令不同,如Debian或Ubuntu使用sudo apt - get install make。 - 安装Python 3和
pip3,可根据不同发行版使用相应命令,如sudo apt - get install python3和sudo apt - get install python3 - pip。 - 安装
pystache,可先尝试从系统仓库安装,若不可行则使用pip3 install pystache。
- Arduino依赖库:
- 通过Arduino IDE库管理器安装
ArduinoJSON6.15.2版本。sh chmod +x ~/Arduino/libraries/yubox - framework/yubox - framework - assemble ~/Arduino/libraries/yubox - framework/yubox - framework - assemble
- 通过Arduino IDE库管理器安装
创建新项目
- 项目结构:创建一个新的Arduino项目,包含
NombreProyecto.ino、Fuente1.cpp、Fuente2.cpp、Makefile、modules.txt、data和data - template目录。 - 配置文件:
modules.txt:指定构成Web界面的模块列表,例如+lector wifi ntpconfig mqtt webauth yuboxOTA。Makefile:可使用简单的include $(YF)/Makefile.inc,并在执行make时指定YF路径,如make YF=/ruta/a/yubox - framework/。
- 客户端开发(JavaScript):在
data - template目录下创建模块目录,每个模块包含module.ini、index.htm、yuboxapp.js等文件,通过module.ini配置模块信息。 - 服务器开发(Arduino C++):在Arduino代码中包含必要的库,初始化
AsyncWebServer,在setup()函数中依次调用SPIFFS.begin()、启用认证、挂载文件系统、安装路由和处理程序,最后调用server.begin()。在loop()函数中定期调用YuboxNTPConf.update()(如果使用NTP支持)。
代码上传
- 编译与打包:使用
make YF=...命令构建项目,生成NombreProyecto.tar.gz、data/*和NombreProyecto.ino.nodemcu - 32s.bin文件。 - 上传固件:使用
make YF=... codeupload命令或Arduino IDE的上传按钮上传固件,也可使用make YF=... fullupload命令一次性上传固件和SPIFFS内容。
基本配置(Web界面)
- WiFi配置:连接到设备的softAP网络
YUBOX - XXXXXXXXXXXX,访问192.168.4.1,在Web界面的WiFi模块中选择要连接的网络并输入密码。 - 密码更改:在Web界面的“Cambio de clave”选项中更改登录密码,默认用户名是“admin”,默认密码是“yubox”。
- NTP配置:在“Hora de red”选项中配置NTP服务器和时区。
- 固件更新:在“Firmware”选项中进行固件上传、回滚和设备重启操作。
- MQTT配置:在“Envío de datos”选项中配置MQTT服务器连接信息。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】