Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

F407WeatherClock

基于 STM32F407 + FreeRTOS + ESP-AT 的桌面 WiFi 智能气象时钟。

项目简介

本项目以 STM32F407 高性能微控制器为核心,运行 FreeRTOS 实时操作系统,并设计了非阻塞的异步工作队列(WorkQueue)。配合 ESP8266/ESP32 WiFi 模块(AT 固件),实现自动连接 WiFi、同步 NTP 网络时间以及请求心知天气(Seniverse)API 获取实时室外天气与温度。结合 DHT11 采集室内温湿度,并在 240×240 彩色 LCD 屏上呈现精致的拟态卡片式 UI 界面。

功能特性

  • 现代拟态 UI 布局:
    • 顶部时间大卡片:展示 WiFi 连接状态、年月日、大字号时钟与动态闪烁冒号
    • 室内环境卡片:DHT11 实时检测室内温度与湿度
    • 室外气象卡片:心知天气 API 解析,动态显示天气图标(晴、阴、雨、雪等)及室外温度
  • FreeRTOS + WorkQueue 架构:
    • 异步事件驱动,网络请求与耗时传感器采集在工作队列中执行,避免阻塞 UI 刷新
  • ESP-AT 驱动封装:
    • 包含 WiFi 配置连接、NTP 时间同步、HTTP GET 报文构造与 JSON 格式天气数据解析
  • 字体与图像渲染:
    • 内置定制 Maple Mono 多字号字体库(54px / 24px / 20px / 16px)及天气图标资源

硬件与外设

  • 主控芯片: STM32F407 系列 (ARM Cortex-M4, 168MHz)
  • 显示外设: 240×240 SPI 彩色 LCD 屏幕
  • 网络模块: ESP8266 / ESP32(烧录标准 AT 固件)
  • 传感器: DHT11 温湿度传感器
  • 片上外设: SPI(LCD驱动)、USART(串口调试及ESP通信)、RTC、DMA

目录结构

  • Core/: 系统时钟配置、中断向量及 FreeRTOS 核心任务逻辑
  • MiddleDriver/:
    • LCD.c / .h: 屏幕绘制与显示队列
    • ESP_AT.c / .h: ESP 模块 AT 指令封装与 HTTP 天气请求
    • DHT11.c / .h: 温湿度传感器驱动
    • workqueue.c / .h: 轻量级工作队列实现
    • font/: 多尺寸英文字体定义
    • image/: 天气与状态图标资源
  • Drivers/: STM32F4xx HAL 驱动库与 CMSIS
  • MDK-ARM/: Keil MDK 工程文件 (Test1.uvprojx)

开发环境

  • IDE: Keil MDK-ARM (v5 及以上)
  • 配置工具: STM32CubeMX (Test1.ioc)
  • 工程文件: MDK-ARM/Test1.uvprojx

About

基于 STM32F407 + FreeRTOS + ESP-AT 的桌面 WiFi 智能气象时钟,支持 NTP 时间同步、心知天气与拟态 LCD UI。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages