当前位置: 首页 > 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 */
}

六、实验效果 

七、资料内容

项目分享

http://www.lryc.cn/news/370873.html

相关文章:

  • PDU模块中浪涌保护模块与空开模块的应用
  • 19、Go Gin框架集成Swagger
  • 自动同步库数据——kettle开发36
  • MSOCache在电脑中可以删除吗?
  • 数据网格和视图入门
  • 雨的轮回与生命的律动
  • CANopen for Python 使用教程(二)
  • 前方碰撞缓解系统技术规范(简化版)
  • 数据赋能(117)——体系:数据收集——实施过程、应用特点
  • 【吃包子game】
  • 图片转Base64
  • STM32项目分享:智能家居语音系统
  • iOS 18 为 iPhone 15 机型引入了更多充电限制选项
  • Linux文本三剑客 awk 和 grep
  • Python NumPy 库详解
  • React state 执行时机
  • Spring基于注解开发
  • 深度探索:智能家居背后的科技力量与伦理思考
  • 鸿蒙开发:通过startAbilityByType拉起垂类应用
  • docker 更换镜像源
  • Springboot(若依)国际化配置接口访问后返回????????
  • java1
  • pytest中一个场景测试的demo
  • windows下安装IntelliJIDEA
  • string经典题目(C++)
  • 三篇卫星切换的论文
  • VUE之重定向redirect
  • 服务器时区与数据库时区不一致导致时间bug记录
  • 华为鸿蒙HarmonyOS应用开发者高级认证题库
  • 细说MCU串口函数及使用printf函数实现串口发送数据的方法