智能家居项目(基于HAL库开发附源码)

文章目录

  • 前言
    • 需求分析
  • 开发板:STM32F103_MIN
    • 实物图
    • 原理图
  • CubeMX环境搭建
    • GPIO设置
    • 中断设置
  • 代码分析
    • 系统时钟配置
    • GPIO引脚初始化
    • USART1初始化
    • USART2初始化
    • NVIC初始化
  • 功能代码编写
    • 按键功能的完善
    • USART1串口打印功能
      • 重构printf函数
      • 添加输入wifi账号和密码功能
    • USART2串口的数据发送和接收
    • USART2向ESP8266进行数据的发送和接收
    • 获取ESP8266的IP
      • 优化IP显示函数
    • 发送UDP数据
    • 优化,串口输入wifi的账号和密码
  • 主函数的编写
  • 运行结果
  • 源码网址


前言

感谢百问网老师的授课,非常推荐各位伙伴学习嵌入式上百问网。
有明星老师韦东山老师的亲自授课!!!

需求分析

通过微信小程序:百问网嵌入式物联网,来控制STM32F103_MIN开发板上的LED,同时通过控制开发板上的按键Key来控制微信小程序的按钮状态(局域网内)

智能家居项目(基于HAL库开发附源码)_第1张图片

开发板:STM32F103_MIN

实物图

智能家居项目(基于HAL库开发附源码)_第2张图片

原理图

智能家居项目(基于HAL库开发附源码)_第3张图片

CubeMX环境搭建

GPIO设置

智能家居项目(基于HAL库开发附源码)_第4张图片
智能家居项目(基于HAL库开发附源码)_第5张图片
智能家居项目(基于HAL库开发附源码)_第6张图片
智能家居项目(基于HAL库开发附源码)_第7张图片

中断设置

智能家居项目(基于HAL库开发附源码)_第8张图片
智能家居项目(基于HAL库开发附源码)_第9张图片

智能家居项目(基于HAL库开发附源码)_第10张图片最后生成代码,使用Keil打开就行。

代码分析

系统时钟配置

智能家居项目(基于HAL库开发附源码)_第11张图片

GPIO引脚初始化

智能家居项目(基于HAL库开发附源码)_第12张图片

USART1初始化

智能家居项目(基于HAL库开发附源码)_第13张图片

USART2初始化

智能家居项目(基于HAL库开发附源码)_第14张图片

NVIC初始化

在这里插入图片描述

功能代码编写

按键功能的完善

这里我们需要实现的是当按键按下,我们就通过esp8266发送消息给微信小程序,小程序收到消息以后在控制界面的门铃改变背景颜色。
首先第一步,我们实现用户按键KEY的中断功能。
智能家居项目(基于HAL库开发附源码)_第15张图片

主函数中我们调用get_keyValue()函数来获取flag的状态值,当按键按下,就产生一次中断,我们就发送数据。

USART1串口打印功能

重构printf函数

智能家居项目(基于HAL库开发附源码)_第16张图片添加即可,注意修改串口的参数是huart1

添加输入wifi账号和密码功能

这里,大家可以放在后面优化的时候再来添加

USART2串口的数据发送和接收

智能家居项目(基于HAL库开发附源码)_第17张图片

USART2向ESP8266进行数据的发送和接收

智能家居项目(基于HAL库开发附源码)_第18张图片

获取ESP8266的IP

智能家居项目(基于HAL库开发附源码)_第19张图片

优化IP显示函数

智能家居项目(基于HAL库开发附源码)_第20张图片

发送UDP数据

智能家居项目(基于HAL库开发附源码)_第21张图片

优化,串口输入wifi的账号和密码

智能家居项目(基于HAL库开发附源码)_第22张图片

智能家居项目(基于HAL库开发附源码)_第23张图片

主函数的编写

智能家居项目(基于HAL库开发附源码)_第24张图片

智能家居项目(基于HAL库开发附源码)_第25张图片

运行结果

在这里插入图片描述

源码网址

百度网盘
题目码:stm3

你可能感兴趣的:(智能家居项目,单片机,c语言,嵌入式硬件,stm32)