项目简介
本项目是以STM32F103RCT6微控制器为核心构建的智能家居控制系统。借助ESP8266模块与MQTT服务器通信,能够对家中的LED灯、DHT11温湿度传感器、BH1750光照度传感器等智能设备进行控制。用户可通过微信小程序远程操作,达成智能家居的自动化与智能化。
项目的主要特性和功能
硬件部分
- 以STM32F103RCT6微控制器为主控。
- 利用ESP8266模块连接MQTT服务器,实现远程控制与数据上传。
- 采用DHT11温湿度传感器检测环境温湿度。
- 运用BH1750光照度传感器检测环境光照度。
- 配备OLED屏幕显示系统状态与实时数据。
软件部分
- 运用C语言编程,借助CMSIS标准接口进行硬件访问。
- 实现STM32F10x系列微控制器的系统时钟配置与初始化。
- 完成各种外设(如GPIO、SPI、I2C等)的驱动与配置。
- 使用cJSON库处理JSON数据,实现与MQTT服务器的通信。
- 设计微信小程序界面,用于远程控制智能家居设备。
通信协议
- 采用MQTT协议进行设备间的数据交换与远程控制。
- 利用HTTP协议与云服务器通信,实现数据的上传和下载。
功能实现
- 系统启动后,初始化各模块并连接MQTT服务器。
- 通过MQTT服务器接收用户控制指令,控制智能设备。
- 采集DHT11和BH1750的数据,并在OLED屏幕显示。
- 将环境数据上传到MQTT服务器,供用户查询和参考。
安装使用步骤
硬件准备
- 准备STM32F103RCT6微控制器开发板。
- 准备ESP8266模块。
- 准备DHT11温湿度传感器和BH1750光照度传感器。
- 准备OLED屏幕。
软件准备
- 安装STM32CubeMX工具,用于配置STM32微控制器的时钟和外设。
- 安装Keil MDK或STM32CubeIDE等开发环境,用于编写和编译代码。
- 准备cJSON库和MQTT客户端库。
代码编译和烧录
- 使用Keil MDK或STM32CubeIDE等工具打开项目文件。
- 编译代码并生成hex文件。
- 使用ST-Link或J-Link等工具将hex文件烧录到STM32微控制器中。
硬件连接和调试
- 连接STM32微控制器与ESP8266模块、DHT11、BH1750和OLED屏幕。
- 上电后,通过串口调试工具查看初始化信息。
- 检查硬件连接是否正确,并测试各个模块功能。
运行和测试
- 运行程序,查看OLED屏幕显示内容。
- 通过微信小程序发送控制指令,测试设备响应。
- 采集环境数据,通过MQTT服务器查看和下载。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】