项目简介
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库管理器安装
ArduinoJSON
6.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】