littlebot
Published on 2025-04-11 / 0 Visits
0

【源码】基于Arduino和C++的Yubox物联网开发框架

项目简介

Yubox框架是一个用于整合基于YUBOX ESP32的物联网项目常见需求的库。它实现了设备通过Web界面配置、设备配置密码保护、配置存储在NVRAM、WiFi网络发现与配置、NTP服务器配置、设备在本地网络的发现、MQTT服务器标准配置以及设备固件OTA更新等功能,同时提供了基于Bootstrap 4的标准化Web界面。

项目的主要特性和功能

  1. 设备配置管理:通过Web界面实现设备的配置,包括WiFi连接、NTP服务器设置、MQTT服务器配置等,同时支持密码保护,防止未经授权的访问。
  2. 存储与更新:将配置信息存储在NVRAM中,支持固件的OTA更新,并具备回滚功能。
  3. 网络发现与连接:利用ESP32的softAP接口实现WiFi网络的发现与配置,同时使用mDNS和DNS - SD实现设备在本地网络的发现,自动维护WiFi连接。
  4. 异步网络处理:采用AsyncTCP实现网络和Web界面处理的异步操作,减轻主循环负担。
  5. 模块化设计:支持自定义模块,通过modules.txtdata - template目录可方便地添加和定制Web界面模块。

安装使用步骤

安装前准备

  1. 开发环境:
    • 安装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 python3sudo apt - get install python3 - pip
    • 安装pystache,可先尝试从系统仓库安装,若不可行则使用pip3 install pystache
  2. Arduino依赖库:
    • 通过Arduino IDE库管理器安装ArduinoJSON 6.15.2版本。 sh chmod +x ~/Arduino/libraries/yubox - framework/yubox - framework - assemble ~/Arduino/libraries/yubox - framework/yubox - framework - assemble

创建新项目

  1. 项目结构:创建一个新的Arduino项目,包含NombreProyecto.inoFuente1.cppFuente2.cppMakefilemodules.txtdatadata - template目录。
  2. 配置文件:
    • modules.txt:指定构成Web界面的模块列表,例如+lector wifi ntpconfig mqtt webauth yuboxOTA
    • Makefile:可使用简单的include $(YF)/Makefile.inc,并在执行make时指定YF路径,如make YF=/ruta/a/yubox - framework/
  3. 客户端开发(JavaScript):在data - template目录下创建模块目录,每个模块包含module.iniindex.htmyuboxapp.js等文件,通过module.ini配置模块信息。
  4. 服务器开发(Arduino C++):在Arduino代码中包含必要的库,初始化AsyncWebServer,在setup()函数中依次调用SPIFFS.begin()、启用认证、挂载文件系统、安装路由和处理程序,最后调用server.begin()。在loop()函数中定期调用YuboxNTPConf.update()(如果使用NTP支持)。

代码上传

  1. 编译与打包:使用make YF=...命令构建项目,生成NombreProyecto.tar.gzdata/*NombreProyecto.ino.nodemcu - 32s.bin文件。
  2. 上传固件:使用make YF=... codeupload命令或Arduino IDE的上传按钮上传固件,也可使用make YF=... fullupload命令一次性上传固件和SPIFFS内容。

基本配置(Web界面)

  1. WiFi配置:连接到设备的softAP网络YUBOX - XXXXXXXXXXXX,访问192.168.4.1,在Web界面的WiFi模块中选择要连接的网络并输入密码。
  2. 密码更改:在Web界面的“Cambio de clave”选项中更改登录密码,默认用户名是“admin”,默认密码是“yubox”。
  3. NTP配置:在“Hora de red”选项中配置NTP服务器和时区。
  4. 固件更新:在“Firmware”选项中进行固件上传、回滚和设备重启操作。
  5. MQTT配置:在“Envío de datos”选项中配置MQTT服务器连接信息。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】