当前位置: 首页 > news >正文

STM32项目分享:智能小区充电桩系统

目录

一、前言

二、项目简介

1.功能详解

2.主要器件

三、原理图设计

四、PCB硬件设计

1.PCB图 

2.PCB板打样焊接图

五、程序设计 

六、实验效果 

七、资料内容

项目分享


一、前言

项目成品图片:

哔哩哔哩视频链接:

https://www.bilibili.com/video/BV19B421B7x2/?share_source=copy_web&vd_source=097fdeaf6b6ecfed8a9ff7119c32faf2

(资料分享见文末) 

二、项目简介

1.功能详解

基于STM32的智能小区充电桩系统。功能如下:

  1. 车辆进出数量记录:光电传感器采集记录车辆出入个数
  2. LED指示灯:车辆出入时闪烁提醒
  3. 环境温湿度采集:SHT-30采集环境温湿度
  4. 危险气体报警:MQ-7判断危险气体是否超标
  5. OLED显示:显示进出车辆个数、温湿度信息和一氧化碳浓度
  6. 蜂鸣器报警:温湿度、危险气体超过阈值范围报警
  7. 机智云APP:手机端app远程监视数据、节阈值与控制报警模式开关

2.主要器件

  • STM32F103C8T6最小系统板
  • OLED显示屏(4针I2C协议)
  • SHT-30温湿度传感器
  • 光电红外传感器
  • MQ-7一氧化碳传感器
  • 蜂鸣器

三、原理图设计

四、PCB硬件设计

1.PCB图 

2.PCB板打样焊接图

五、程序设计 

int main(void)
{/* USER CODE BEGIN 1 */char car_str[32];char car_exit_str[32];char gas_str[32];char temp_str[32];char humi_str[32];/* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_TIM2_Init();MX_USART2_UART_Init();MX_ADC1_Init();MX_I2C1_Init();MX_TIM3_Init();MX_USART1_UART_Init();/* Initialize interrupts */MX_NVIC_Init();/* USER CODE BEGIN 2 */timerInit();uartInit();OLED_Init();OLED_Clear();OLED_ShowString(0, 0, "Charging Safety", 16);OLED_ShowString(38, 2, "System", 16);OLED_ShowString(0, 4, "Gas:", 16);OLED_ShowString(45, 4, "0", 16);OLED_ShowString(0, 6, "T:", 16);OLED_ShowString(20, 6, "0.0", 16);OLED_ShowString(65, 6, "H:", 16);OLED_ShowString(85, 6, "0.0", 16);userInit();gizwitsInit();SHT30_reset();if(SHT30_Init() != HAL_OK) {printf("sht30 init fail.\n");}timer_init(&timer1, timer1_callback, 1000, 1000); //1s looptimer_start(&timer1);GIZWITS_LOG("MCU Init Success , SoftVersion = %s\r\n",SOFTWARE_VERSION);HAL_GPIO_WritePin(GPIOC, GPIO_PIN_14, GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOC, GPIO_PIN_15, GPIO_PIN_SET);key1LongPress();//key1ShortPress();/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */userHandle();gizwitsHandle((dataPoint_t *)&currentDataPoint);timer_loop();uint32_t car_num = get_current_enter_car();memset(car_str, 0, 32);snprintf(car_str, 32, "%-5d", car_num);//OLED_ShowString(85, 0, car_str, 16);uint32_t car_exit_num = get_current_exit_car();memset(car_exit_str, 0, 32);snprintf(car_exit_str, 32, "%-5d", car_exit_num);//OLED_ShowString(85, 2, car_exit_str, 16);uint16_t gas = mq2_get_gas();memset(gas_str, 0, 32);snprintf(gas_str, 32, "%-5d", gas);OLED_ShowString(45, 4, gas_str, 16);//显示温度和湿度float temp = sht3x_get_temp();memset(temp_str, 0, 32);snprintf(temp_str, 32, "%.1f", temp);OLED_ShowString(20, 6, temp_str, 16);float humi = sht3x_get_humi();memset(humi_str, 0, 32);snprintf(humi_str, 32, "%.1f", humi);OLED_ShowString(85, 6, humi_str, 16);//阈值检测if (global_mode == 0) {continue;}//温湿度阈值超标告警if (humi > max_humi && max_humi != 0.0) {beep_on();} else if (temp > max_temp && max_temp != 0.0) {beep_on();    } else if (humi < min_humi && min_humi != 0.0) {beep_on();} else if (temp < min_temp && min_temp != 0.0) {beep_on();    } else if (smoke_value > max_gas && max_gas != 0.0){beep_on();} else {beep_off();}}/* USER CODE END 3 */
}

六、实验效果 

七、资料内容

项目分享

相关文章:

STM32项目分享:智能小区充电桩系统

目录 一、前言 二、项目简介 1.功能详解 2.主要器件 三、原理图设计 四、PCB硬件设计 1.PCB图 2.PCB板打样焊接图 五、程序设计 六、实验效果 七、资料内容 项目分享 一、前言 项目成品图片&#xff1a; 哔哩哔哩视频链接&#xff1a; https://www.bilibili.c…...

PDU模块中浪涌保护模块与空开模块的应用

由于PDU具体应用的特殊性&#xff0c;其在规划设计时具有应用场景的针对性&#xff0c;同时PDU的高度定制化的特点&#xff0c;是其他电气联接与保护产品所不具备的。 PDU基础的输出输入功能外&#xff0c;其电路的控制与电压保护器同时也极为重要。空气开关和浪涌保护器相关功…...

19、Go Gin框架集成Swagger

介绍&#xff1a; Swagger 支持在 Gin 路由中使用一系列注释来描述 API 的各个方面。以下是一些常用的 Swagger 注释属性&#xff0c;这些属性可以在 Gin 路由的注释中使用&#xff1a; Summary: 路由的简短摘要。Description: 路由的详细描述。Tags: 用于对路由进行分类的标…...

自动同步库数据——kettle开发36

kettle中的那些人工智能。 一、kettle的AI能力目录 跨库同步 2.自动开发 3.自动优化 二、AI实例 1、跨库同步 sqlsever表同步至oracle数据库 1.1源库sqlserver 1.2目标库oracle 1.3可视化跨库同步 使用多表复制向导 选择跨库的表&#xff0c;下一步下一步&#xff0c;即可…...

MSOCache在电脑中可以删除吗?

MSOCache文件夹在电脑中是可以删除的。但删除前需要了解以下几点&#xff1a; MSOCache文件夹的作用&#xff1a; MSOCache文件夹是Microsoft Office的本地安装源&#xff0c;用于存储Office安装和更新过程中所需的临时文件&#xff0c;如安装程序所需的组件、配置设置以及更新…...

数据网格和视图入门

WinForms数据网格&#xff08;GridControl类&#xff09;是一个数据感知控件&#xff0c;可以以各种格式&#xff08;视图&#xff09;显示数据。本主题包含以下部分&#xff0c;这些部分将指导您如何使用网格控件及其视图和列&#xff08;字段&#xff09;。 Grid Control’s…...

雨的轮回与生命的律动

雨的轮回与生命的律动 我们生活在一个充满变数的世界里&#xff0c;许多事情无法预测&#xff0c;如同这不知何时会停歇的雨。然而&#xff0c;尽管我们无法预知雨停的确切时刻&#xff0c;但我们深知&#xff0c;这场雨终将会过去&#xff0c;阳光终将再次洒满大地。这种对未…...

CANopen for Python 使用教程(二)

系列文章目录 前言 CANopen 标准的 Python 实现。该项目的目的是在一个简单的 Pythonic 接口中支持 CiA 301 标准中最常见的部分。它主要针对测试和自动化任务&#xff0c;而不是符合标准的主实施。 该库支持 Python 3.6 及以上版本。 一、特点 该库主要用作主库。 NMT 主站…...

前方碰撞缓解系统技术规范(简化版)

前方碰撞缓解系统技术规范(简化版) 1 系统概述2 工作时序3 预警目标4 功能条件5 HMI开关6 显示需求7 相关子功能8 TTC标定参考9 指标需求1 系统概述 前方碰撞缓解系统包含LW潜在危险报警、FCW前方碰撞预警和AEB自动紧急制动三个部分。 LW潜在危险报警:根据本车与前车保持的…...

数据赋能(117)——体系:数据收集——实施过程、应用特点

实施过程 数据收集过程是一个系统化、有序的步骤集合&#xff0c;旨在确保能够准确、高效地获取所需数据。以下是数据收集过程的基本步骤&#xff1a; 明确数据需求&#xff1a;这是数据收集的第一步&#xff0c;需要明确需要收集哪些类型的数据&#xff0c;这些数据将如何支…...

【吃包子game】

如果您想要编写一个简单的“吃包子”游戏代码&#xff0c;可以使用Python语言来实现。下面是一个简单的例子&#xff0c;该游戏会随机生成一定数量的包子&#xff0c;玩家每次可以吃掉一个包子&#xff0c;直到包子被吃光为止。 import random def eat_dumplings():# 随机生成…...

图片转Base64

在Python中, 可以使用内置的base64模块以及图像处理库(如PIL, 也称为Pillow)来将图片转换为Base64编码的字符串. 以下是一个简单的示例, 说明如何实现这一过程:首先, 需要安装Pillow库(如果尚未安装), 可以使用pip来安装: pip install pillow然后, 可以使用以下Python代码将图片…...

STM32项目分享:智能家居语音系统

目录 一、前言 二、项目简介 1.功能详解 2.主要器件 三、原理图设计 四、PCB硬件设计 1.PCB图 2.PCB打板焊接图: 五、程序设计 六、实验效果 七、包含内容 项目分享 一、前言 项目成品图片&#xff1a; 哔哩哔哩视频链接&#xff1a; https://www.bilibili.com…...

iOS 18 为 iPhone 15 机型引入了更多充电限制选项

iOS 18 为 iPhone 15 机型引入了更多充电限制选项 所有四款iPhone 15型号都具备一项设置&#xff0c;可以限制设备充电至80%以内&#xff0c;这样能够缩短电池完全充电所需的时间&#xff0c;并有可能延长iPhone电池的使用寿命。随着iOS 18的推出&#xff0c;Apple进一步加入了…...

Linux文本三剑客 awk 和 grep

awk 前言 AWK是一种优良的文本处理工具。它不仅是 Linux中也是任何环境中现有的功能最强大的数据处理引擎之一。 Linux中最常用的文本处理工具有grep&#xff0c;sed&#xff0c;awk。行内将之称为文本三剑客&#xff0c;就功能量和效率来看&#xff0c;awk是当之无愧的文本三…...

Python NumPy 库详解

大家好&#xff0c;在当今数据驱动的世界中&#xff0c;处理大规模数据、进行复杂数值计算是科学研究、工程设计以及数据分析的关键任务之一。在Python生态系统中&#xff0c;NumPy&#xff08;Numerical Python&#xff09;库是一款备受推崇的工具&#xff0c;它为我们提供了高…...

React state 执行时机

设置 state 只会为下一次渲染变更 state 的值 一个 state 变量的值永远不会在一次渲染的内部发生变化 React 会使 state 的值始终"固定"在一次渲染的各个事件处理函数内部 React 会等到事件处理函数中的所有代码都运行完毕再处理 state 更新 在一个函数中&#xff0…...

Spring基于注解开发

目录 一. Bean基本注解开发 二. Bean依赖注入注解开发 三. 非自定义Bean注解开发 四. Spring配置类的开发 五. Spring配置其他注解 5.1 Primary 5.2 Profile 六. Spring注入的解析原理 七. Spring注解方式整合第三方框架 一. Bean基本注解开发 Spring除了xml配置文件…...

深度探索:智能家居背后的科技力量与伦理思考

目录 科技力量&#xff1a;创新驱动下的智慧生活引擎 1. 人工智能与机器学习 2. 物联网技术 3. 大数据分析 4. 5G与边缘计算 伦理与隐私&#xff1a;智能家居的双刃剑 1. 隐私侵犯风险 2. 数据安全挑战 3. 算法偏见与决策透明度 应对策略&#xff1a;构建安全、负责任的智能…...

鸿蒙开发:通过startAbilityByType拉起垂类应用

通过startAbilityByType拉起垂类应用 使用场景 开发者可通过特定的业务类型如导航、金融等&#xff0c;调用startAbilityByType接口拉起对应的垂域面板&#xff0c;该面板将展示目标方接入的垂域应用&#xff0c;由用户选择打开指定应用以实现相应的垂类意图。垂域面板为调用…...

UniApp二维码生成避坑指南:解决常见Canvas渲染问题

UniApp二维码生成避坑指南&#xff1a;解决常见Canvas渲染问题 在移动应用开发中&#xff0c;二维码功能已成为用户交互的标配。UniApp作为跨平台开发框架&#xff0c;其Canvas组件在实现二维码生成时却存在诸多"暗礁"。本文将深入剖析五个典型场景下的Canvas渲染陷阱…...

PyTorch模型参数与元数据安全存储:safetensors实战解析

1. 为什么需要safetensors存储模型参数&#xff1f; 在深度学习项目中&#xff0c;模型参数的保存和加载是最基础也最频繁的操作。传统PyTorch开发者习惯使用torch.save和torch.load这对黄金组合&#xff0c;直到某天我在分布式训练集群上遇到了一个诡异的问题&#xff1a;一个…...

视觉定位模型Chord实战:基于Qwen2.5-VL,快速搭建多模态目标检测服务

视觉定位模型Chord实战&#xff1a;基于Qwen2.5-VL&#xff0c;快速搭建多模态目标检测服务 1. 项目概述 视觉定位技术正在改变我们与图像交互的方式。Chord模型基于Qwen2.5-VL多模态大模型&#xff0c;能够理解自然语言指令并在图像中精确定位目标对象。想象一下&#xff0c…...

HiveSQL实战:巧用前后函数(lag/lead)解析用户行为序列

1. 窗口函数与用户行为分析的完美结合 做数据分析的朋友们应该都遇到过这样的场景&#xff1a;老板让你分析用户从浏览商品到最终下单的平均时间间隔&#xff0c;或者找出那些在关键页面停留时间过长的流失用户。这类问题本质上都是在分析用户行为序列&#xff0c;而HiveSQL中的…...

通道注意力与空间注意力【实战篇】

1. 通道注意力实战技巧 第一次在项目中引入通道注意力机制时&#xff0c;我对着论文反复调试了三天才跑通。现在回头看&#xff0c;其实核心代码不到20行&#xff0c;但当时确实踩了不少坑。通道注意力最实用的价值在于&#xff1a;它能自动发现哪些特征通道对当前任务更重要。…...

如何高效抓取足球数据:SoccerData实战指南

如何高效抓取足球数据&#xff1a;SoccerData实战指南 【免费下载链接】soccerdata ⛏⚽ Scrape soccer data from Club Elo, ESPN, FBref, FiveThirtyEight, Football-Data.co.uk, SoFIFA and WhoScored. 项目地址: https://gitcode.com/gh_mirrors/so/soccerdata 在足…...

避坑指南:用Dify搭建AI Agent时,Docker镜像拉取失败和Postman接口调试的那些坑

避坑指南&#xff1a;用Dify搭建AI Agent时的高频问题解决方案 当你第一次尝试用Dify搭建AI Agent时&#xff0c;可能会遇到各种意想不到的"坑"。从Docker镜像拉取失败到Postman接口调试报错&#xff0c;每一步都可能让新手开发者抓狂。本文将聚焦这些实操中的真实痛…...

Wan2.1-umt5开发环境搭建:IDEA集成与调试技巧详解

Wan2.1-umt5开发环境搭建&#xff1a;IDEA集成与调试技巧详解 如果你是一名Java开发者&#xff0c;最近开始接触Wan2.1-umt5这类模型&#xff0c;可能会觉得有点无从下手。模型本身是用Python写的&#xff0c;各种脚本和命令行操作&#xff0c;跟咱们熟悉的Java开发环境完全是…...

STM32F103C8T6实战:在最小系统板上运行轻量级TranslateGemma

STM32F103C8T6实战&#xff1a;在最小系统板上运行轻量级TranslateGemma 1. 引言 你有没有想过&#xff0c;在一块只有拇指大小的开发板上运行AI翻译模型&#xff1f;STM32F103C8T6最小系统板&#xff0c;这个通常用来控制LED灯、读取传感器的小家伙&#xff0c;现在居然能跑…...

永磁同步电机全速域无位置传感器控制探索之旅

永磁同步电机全速域无位置传感器控制&#xff08;高频注入改进滑膜控制方法&#xff0c;PMSM矢量控制仿真&#xff09; 永磁同步电机-PMSM的仿真-原理-算法-复现 1&#xff09;关于PMSM控制算法的文章复现、matlab编程仿真等均可&#xff0c;Matlab/Simulink仿真建模 分析建模 …...