智居中枢——基于 行空板 M10 的触摸式智能家居终端

2026-10-316

这次分享的是一个基于 UNIHIKER M10 制作的小型智能家居控制终端。

和之前一些以单个传感器为主的小作品不同,这次更想尝试把:

触摸交互、环境监测、设备控制、网络时间和在线天气

整合到同一个设备里。

于是就有了现在这个小型桌面智能家居中控。

我给它起了一个名字:

智居中枢

整个系统以 UNIHIKER M10 为核心,通过自带触摸屏作为主要交互入口,再连接 RGB 灯、温湿度传感器、小风扇等外部设备。

用户不需要连接电脑,也不需要打开手机 APP,直接在屏幕上点击,就可以完成设备控制和信息查看。


一、为什么选择 UNIHIKER M10

之前做 ESP32 项目时,很多交互主要依靠:

  • 按键
  • OLED
  • 串口
  • 手机网页

这些方式都可以实现功能,但如果想做一个更完整的智能家居控制终端,最好还是有一块能够直接运行图形界面、支持触摸操作的设备。

UNIHIKER M10 本身带有彩色触摸屏,同时可以运行 Python,比较适合这种人机交互类项目。

它既可以负责图形界面,又可以直接通过 GPIO 控制传感器和执行器。

这样就不需要再单独增加一块触摸屏和显示驱动板,整个系统会简单很多。


二、主界面设计

系统启动以后,首先进入智能家居主界面。

目前主界面设计了四个主要功能入口:

控制

环境

时间

天气

整个界面采用大按钮方式设计,方便直接使用触摸屏操作。

每个功能页面都可以独立进入,查看完成以后再返回主页。

这样整个操作逻辑和手机 APP 比较接近,也更容易让第一次使用的人快速上手。


三、设备控制页面

“控制”页面主要用于控制家中的一些执行设备。

目前接入了:

  • RGB 灯
  • 小风扇

RGB 灯控制

RGB 灯使用可编程灯珠,可以通过程序单独控制每一颗 LED。

目前设计了多种灯光模式,例如:

  • 关闭
  • 常亮
  • 彩虹
  • 流水
  • 呼吸

点击屏幕上的不同按钮,就可以直接切换灯光效果。

相比传统开关只能控制“开”和“关”,可编程 RGB 灯可以实现更多不同的场景效果。

以后也可以继续增加:

  • 阅读模式
  • 夜灯模式
  • 观影模式
  • 警示模式
  • 自动亮度调节

四、风扇控制

系统中还连接了一个小型风扇。

用户可以直接通过触摸屏控制风扇开关。

虽然目前只是一个简单的小风扇,但它代表的是智能家居中的“执行设备”。

以后如果更换驱动模块,也可以进一步扩展成:

  • 排风扇
  • 电机
  • 水泵
  • 继电器
  • 灯具
  • 其他低压设备

因此整个项目并不局限于目前照片里的几个模块。

核心思路其实是:

通过触摸界面统一控制外部设备。


五、环境监测

“环境”页面主要负责显示房间当前的环境数据。

目前接入了:

DHT11 温湿度传感器

以及 M10 自带的:

光线传感器

通过传感器,可以实时读取:

  • 温度
  • 湿度
  • 环境光线

然后将数据直接显示在触摸屏上。

这样一个页面就可以同时查看当前室内环境状态。


六、温湿度监测

DHT11 负责采集环境温度和湿度。

M10 读取传感器数据以后,再把结果显示到界面中。

例如可以显示:

温度:25.6℃

湿度:52%

虽然 DHT11 属于比较基础的温湿度传感器,但用于教学实验和智能家居功能演示已经足够。

如果后期需要更高精度,也可以更换成:

  • SHT30
  • SHTC3
  • AHT20
  • BME280

程序整体架构并不需要做太大修改。


七、光线检测

系统同时利用了 UNIHIKER M10 自带的光线传感器。

通过读取光照数据,可以判断当前环境是:

  • 明亮
  • 一般
  • 昏暗

这个数据除了可以显示之外,还可以进一步和灯光控制联动。

比如后续可以实现:

环境变暗 → 自动开启灯光

环境变亮 → 自动关闭灯光

这样就从“手动控制”进一步变成真正的“自动控制”。


八、时间功能

“时间”页面用于显示当前日期和时间。

设备联网以后,可以获取网络时间,从而避免每次开机都需要手动校准。

页面可以显示:

  • 年
  • 月
  • 日
  • 星期
  • 时
  • 分
  • 秒

这个功能本身比较简单,但放在一个长期运行的智能家居终端中还是比较实用。

以后也可以进一步增加:

  • 定时开灯
  • 定时关闭设备
  • 闹钟
  • 课程提醒
  • 场景自动执行

这样“时间”就不仅仅用于显示,也可以作为自动化控制条件。


九、在线天气

这个项目中我比较喜欢的一个功能,是“天气”页面。

M10 连接 Wi-Fi 以后,可以通过网络获取实时天气信息。

目前可以显示:

  • 当前天气
  • 最高温度
  • 最低温度
  • 降雨概率
  • 气压
  • 风向
  • 风速

这样设备除了监测室内环境之外,还能够获取室外天气数据。

也就是说,在一个小终端上可以同时看到:

室内环境 + 室外天气

这就比单纯的温湿度显示器完整很多。


十、硬件组成

整个项目目前主要使用以下硬件:

1. UNIHIKER M10

作为整个系统的核心控制器。

主要负责:

  • Python 程序运行
  • 图形界面显示
  • 触摸操作
  • Wi-Fi 联网
  • 传感器读取
  • 外部设备控制

2. DHT11 温湿度传感器

用于测量室内温度和湿度。


3. NeoPixel / WS2812 RGB 灯

用于实现智能灯光以及各种动态灯效。


4. 小型风扇

作为执行机构,用于演示智能家居设备控制。


5. M10 板载光线传感器

用于检测当前环境亮度。


6. 金属结构件

用于固定 M10、传感器、风扇以及其他模块。

采用模块化结构以后,后期更换传感器或者增加新设备会比较方便。


十一、接口连接

目前主要外部硬件连接大致为:

P23 → RGB 灯

P24 → DHT11 温湿度传感器

P22 → 小风扇

另外直接使用 M10 板载的光线传感器进行环境亮度检测。

整个硬件连接比较简单,也比较适合作为学生学习 GPIO 和传感器控制的综合项目。


十二、软件设计

整个系统主要使用 Python 编写。

图形界面部分使用 UNIHIKER 提供的 GUI 功能完成。

硬件控制部分通过 PinPong 库实现。

整个软件大致可以分成几个模块:

  • 主界面
  • 设备控制
  • 环境监测
  • 时间显示
  • 天气获取
  • RGB 灯效
  • 风扇控制

这样做的好处是每个功能相对独立。

以后如果想增加新的页面,只需要继续增加新的功能模块,而不需要把整个程序重新修改一遍。


十三、系统工作流程

整个智能家居系统可以简单理解成:

用户点击触摸屏

↓

M10 判断当前操作

↓

根据不同功能执行相应任务

↓

读取传感器 / 控制设备 / 获取网络数据

↓

将结果重新显示到屏幕

例如:

点击“环境”

↓

读取 DHT11 和光线传感器

↓

显示温度、湿度和光照

或者:

点击“控制”

↓

选择 RGB 灯模式

↓

M10 控制灯光改变

整个交互过程非常直观。


十四、为什么不用手机 APP

最开始其实也考虑过用手机网页或者 APP 来控制。

但后来还是觉得:

对于一个放在桌面上的智能家居演示设备来说,最好能够做到:

拿起来就能用。

如果每次操作还需要:

拿手机 → 找 APP → 连接设备 → 打开控制页面

整个体验会比较繁琐。

所以这次选择把触摸屏直接集成到设备本体上。

设备本身就是控制器,同时也是显示终端。

这个思路其实和现在很多智能家居中控屏比较类似。


十五、这个项目可以学习哪些知识

这个项目比较适合作为一个综合性的 Python + 开源硬件项目。

可以涉及:

Python 编程

包括:

  • 函数
  • 条件判断
  • 数据处理
  • 网络请求
  • GUI 界面

图形界面设计

学习:

  • 页面布局
  • 按钮
  • 文字
  • 状态显示
  • 触摸事件

传感器应用

学习:

  • 温湿度传感器
  • 光线传感器
  • 数据采集

执行机构控制

学习:

  • RGB 灯
  • 风扇
  • GPIO

网络应用

学习:

  • Wi-Fi
  • 网络时间
  • 天气接口
  • 在线数据获取

这样一个项目实际上就把:

软件 + 硬件 + 网络 + UI

几个方向结合到了一起。


十六、后续还能怎么扩展

目前这一版主要还是用于功能验证和教学展示。

后续可以继续增加很多功能,例如:

  • 增加空气质量检测
  • 增加人体感应
  • 增加门窗状态检测
  • 增加继电器控制
  • 增加语音控制
  • 增加 MQTT 通信
  • 增加手机网页控制
  • 增加历史数据记录
  • 增加自动场景模式
  • 增加 Home Assistant 接入

甚至可以让多个 ESP32 作为房间里的传感器节点。

然后通过 Wi-Fi 将数据发送给 M10。

这样 M10 就可以真正作为一个:

家庭物联网中控终端

来使用。


十七、最后

这个项目最开始只是想测试一下:

UNIHIKER M10 能不能做一个独立运行的智能家居控制终端。

实际做下来发现,它确实很适合这种项目。

触摸屏负责交互;

Python 负责程序逻辑;

GPIO 负责控制硬件;

Wi-Fi 负责连接网络。

最后把:

控制、环境、时间、天气

几个功能整合在一起,就形成了现在这台小型智能家居终端。

对于我来说,这个项目比较有意思的地方并不是单独实现了某一个功能。

而是第一次把多个原本独立的小实验:

传感器、RGB灯、风扇、网络时间、天气数据和触摸界面

真正组合成了一个可以连续运行的完整系统。

这也是开源硬件非常有意思的一点:

一个个小模块组合起来,最后就可以变成一个真正能用的小系统。

硬件清单

创作许可协议

本项目采用 CC BY(署名) 进行许可。

所需材料/产品

加载全部

    Gravity: DHT11温湿度传感器(Arduino兼容)

    Gravity: DHT11温湿度传感器(Arduino兼容)

    Gravity: DHT11温湿度传感器(Arduino兼容)

    行空板M10(UNIHIKER)Python教学主控板(含屏幕保护壳) - 蘑菇云科创教育

    行空板M10(UNIHIKER)Python教学主控板(含屏幕保护壳) - 蘑菇云科创教育

    行空板M10(UNIHIKER)Python教学主控板(含屏幕保护壳) - 蘑菇云科创教育

    WS2812 RGB 全彩灯带(7灯珠)-可编程氛围灯

    WS2812 RGB 全彩灯带(7灯珠)-可编程氛围灯

    WS2812 RGB 全彩灯带(7灯珠)-可编程氛围灯

相关推荐

评论(0)
- 没有更多了 -

创作许可协议

本项目采用 CC BY(署名) 进行许可。

相关推荐

所需材料/产品

Gravity: DHT11温湿度传感器(Arduino兼容)

Gravity: DHT11温湿度传感器(Arduino兼容)

Gravity: DHT11温湿度传感器(Arduino兼容)

行空板M10(UNIHIKER)Python教学主控板(含屏幕保护壳) - 蘑菇云科创教育

行空板M10(UNIHIKER)Python教学主控板(含屏幕保护壳) - 蘑菇云科创教育

行空板M10(UNIHIKER)Python教学主控板(含屏幕保护壳) - 蘑菇云科创教育

WS2812 RGB 全彩灯带(7灯珠)-可编程氛围灯

WS2812 RGB 全彩灯带(7灯珠)-可编程氛围灯

WS2812 RGB 全彩灯带(7灯珠)-可编程氛围灯