在编译和运行本项目之前,请确保您的开发环境满足以下要求
1. 硬件要求
- 主控:任何能够运行C代码并驱动显示屏的微控制器或开发板(如 ESP32、STM32、Raspberry Pi 等)。本项目基于 GEC6818 开发板
- 显示屏:带触摸功能的 LCD 显示屏,并已正确配置 LVGL 驱动
- 网络模块:具备网络连接能力(Wi-Fi 或以太网),用于连接 MQTT 服务器
- 可选传感器/执行器:LED 灯、蜂鸣器、温湿度传感器、继电器模块等,用于与物理世界交互
2. 嵌入式端软件要求
在开发主机(如 Linux PC)上安装以下软件:
Git:用于克隆仓库和子模块。
CMake (>= 3.16):用于构建项目。
GCC 或交叉编译工具链:C 编译器。
- 在 Linux PC 上模拟运行:
gcc - 嵌入式目标编译:
arm-none-eabi-gcc等交叉编译器
- 在 Linux PC 上模拟运行:
Make(或其他构建工具):执行 CMake 生成的构建指令
SDL2(可选):在 PC 上模拟嵌入式程序运行时需要
1 | # Debian/Ubuntu 安装示例 |
配置好环境后,即可编译并运行。
3. Web端软件要求
- Node.js (LTS版本):JavaScript 运行环境
- npm 或 yarn:包管理器
4. MQTT服务器
本项目通过 MQTT 协议进行设备间的通信,因此您需要一个正在运行的 MQTT 服务器。您可以根据需求选择以下任意一种方式进行部署
步骤 1:选择并部署 MQTT 服务器
您可以选择使用公共云服务,也可以在本地或服务器上自行部署
选项 A:使用公共云服务 (推荐新手)
对于快速开发和测试,可以直接使用成熟的云服务,无需自己维护服务器
服务商:阿里云、EMQX Cloud、OneNet 等都提供公共 MQTT 服务
优点:开箱即用,稳定可靠。
教程参考:您可以参考这篇详细教程来学习如何连接到公共云服务:
选项 B:本地自行部署 (推荐局域网开发)
在本地(如PC、虚拟机或树莓派)部署 MQTT 服务器,适合在局域网内进行开发和调试。这里我们推荐使用 Mosquitto,它轻量、开源且稳定
下面以在 Ubuntu/Debian 系统上安装并配置 Mosquitto 为例:
安装 Mosquitto
1
2sudo apt-get update
sudo apt-get install -y mosquitto mosquitto-clients配置密码验证 (推荐)
为了安全,我们启用密码验证。创建或编辑配置文件/etc/mosquitto/conf.d/local.conf:1
2
3
4
5
6
7
8
9
10
11
12# MQTT 默认端口
listener 1883
protocol mqtt
# WebSocket 端口 (如果需要)
listener 8083
protocol websockets
# 禁止匿名访问
allow_anonymous false
# 指定密码文件路径
password_file /etc/mosquitto/passwd创建用户和密码
使用mosquitto_passwd工具创建一个用户(例如test)。-c参数表示创建新文件,仅在首次添加用户时使用。1
2
3
4
5# 首次创建密码文件时使用 -c
sudo mosquitto_passwd -c /etc/mosquitto/passwd test
# 之后再添加新用户,请不要带 -c 参数
# sudo mosquitto_passwd /etc/mosquitto/passwd new_user执行后,根据提示输入两次密码(例如
123456)。修改权限并重启服务
1
2
3
4
5
6# 确保密码文件归 mosquitto 用户所有
sudo chown mosquitto:mosquitto /etc/mosquitto/passwd
sudo chmod 640 /etc/mosquitto/passwd
# 重启 Mosquitto 服务使配置生效
sudo systemctl restart mosquitto
步骤 2:在项目中配置 MQTT 连接信息
无论您选择哪种方式部署服务器,都需要将服务器的地址、端口和凭据信息配置到项目中。
编辑 obj/Include/config.h 文件,修改以下宏定义:
1 |
提示:如果您的服务器部署在运行代码的同一台机器上,地址可以是
"127.0.0.1"。如果是局域网内的另一台设备,请填写其局域网IP地址。
步骤 3:测试服务器连通性
在运行主项目前,您可以使用命令行工具 mosquitto_sub 和 mosquitto_pub 来验证服务器是否正常工作。
打开一个终端,订阅主题
该命令会监听多个主题,等待消息。1
2mosquitto_sub -h 127.0.0.1 -p 1883 -u test -P 123456 \
-t "smart_home/#" -q 1 -v-h: 主机地址-p: 端口-u,-P: 用户名和密码-t "smart_home/#": 订阅smart_home/下的所有主题-v: 打印主题和消息内容
打开另一个终端,发布消息
向smart_home/light主题发送一条消息。1
2mosquitto_pub -h 127.0.0.1 -p 1883 -u test -P 123456 \
-t "smart_home/light" -m "turn on"
如果在第一个终端(订阅端)能看到成功打印出 smart_home/light turn on,说明您的 MQTT 服务器已配置成功并正常工作:
5. 天气API
这个项目使用了心知天气API ,可以点击进入官网注册,免费使用
注册并申请了免费版产品后,获得自己的私钥,配置到项目的obj\Include\config.h里面:
1 |
6. AI API
这个项目使用的DeepseekAPI,需要付费使用,但已经是所有平台当中最便宜的了
DeepseekAPI申请地址:https://platform.deepseek.com/api_keys
实测演示一次效果花费不超过两分钱,往里面充一块钱就可以使用
获取到APIkey后,将APIkey配置到项目的obj\Include\config.h里面:
1 |
如果需要用其它平台的ai,可以:
- 在
obj\AI\src\chat.c文件的第43行左右调整api接口地址 - 在
obj\screen\screen_ai_chat.c文件的第126行左右调整模型类型

