【单片机毕业设计选题24087】-基于北斗系统的智能路灯
系统功能:
系统操作说明:
上电后OLED显示 “欢迎使用智能路灯系统请稍后”,两秒后显示Connecting...表示
正在连接阿里云,正常连接阿里云后显示第一页面,如长时间显示Connecting...请
检查WiFi网络是否正确。
系统分为四种模式
第一种模式为自动模式,OLED第一行显示"Mode:Auto",通过检测光照强度自动控制路灯开关,
光照强度低时打开路灯光照强度高时关闭路灯。
第二种模式为手动模式,OLED第一行显示"Mode:Manual",通过按键和阿里云平台可以手动控制路灯开关。
第三种模式为定时模式,OLED第一行显示"Mode:Time",晚19点到早六点开灯,其他时间关灯。
第四种模式为人体感应模式,OLED第一行显示"Mode:Body",检测到人体时开灯未检测到人体时关灯。
短按B4按键可在这四种模式间切换
OLED第二行显示当前时间和光照值
OLED第三行显示经度值
OLED第四行显示纬度值
注意:经纬度信息需要在室外空旷处才能显示。

主要功能模块原理图:
电源时钟烧录接口:

单片机和按键输入电路:

传感器采集电路:

继电器输出电路:

资料获取地址
系统主要功能模块代码
初始化代码:
/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init */InitVar();/* 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_USART1_UART_Init();MX_USART2_UART_Init();MX_ADC1_Init();MX_USART3_UART_Init();/* USER CODE BEGIN 2 *///uart2打开接收中断HAL_UART_Receive_IT(&huart2, (uint8_t*)&uart2RecBuff, 1);//uart3打开接收中断HAL_UART_Receive_IT(&huart3, (uint8_t*)&uart3RecBuff, 1);InitOled();InitOledDisp();//测试写DS1302时间// TestSetTime(); //初始化ESP8266ESP8266_Init(); HAL_Delay(100);OledFill(0x00); //全屏熄灭 /* USER CODE END 2 */
系统控制代码;
//系统信息更新void SystemControl(void){static uint8_t updateCnt = 0;updateCnt++; if(updateCnt>=SYSTEM_UPDATE_INTER){updateCnt = 0;Aliyun_SendData();}//读取传感器值ReadSensorVal();//获取系统时间GetSystemTime();}
系统显示:
//处理OLED显示内容void SystemDisplay(void){char textBuf[20];//第一行显示系统模式if(sysMode==SYS_MODE_AUTO){sprintf(textBuf,"Mode:Auto ");}else if(sysMode==SYS_MODE_MANU){sprintf(textBuf,"Mode:Manual");}else if(sysMode==SYS_MODE_TIME){sprintf(textBuf,"Mode:Time "); }else if(sysMode==SYS_MODE_BODY){sprintf(textBuf,"Mode:Body "); }OledShowString(0, 0, (uint8_t*)textBuf, OLED_FONT_8X16); //测试8*16字符//第二行显示系统时间和光照值sprintf(textBuf,"T %02d:%02d L:%04d", getHourVal, getMinVal, getLightVal);OledShowString(0, 2, (uint8_t*)textBuf, OLED_FONT_8X16); //测试8*16字符//第三行显示经度值sprintf(textBuf,"%s%s", gpsInfo.E_W, gpsInfo.longitude);OledShowString(0, 4, (uint8_t*)textBuf, OLED_FONT_8X16);//第四行显示纬度值sprintf(textBuf,"%s%s", gpsInfo.N_S, gpsInfo.latitude);OledShowString(0, 6, (uint8_t*)textBuf, OLED_FONT_8X16); }
此设计提供的资料包含原理图PCB(包含PDF,AD,立创EDA三个版本),源代码,系统框图,主程序流程图,物料清单(包含使用到的器件手册),功能操作说明等。


各功能模块资料:

相关文章:
【单片机毕业设计选题24087】-基于北斗系统的智能路灯
系统功能: 系统操作说明: 上电后OLED显示 “欢迎使用智能路灯系统请稍后”,两秒后显示Connecting...表示 正在连接阿里云,正常连接阿里云后显示第一页面,如长时间显示Connecting...请 检查WiFi网络是否正确。 系统分为四种模…...
[Docker][Docker常用命令]详细讲解
目录 1.帮助命令2.镜像命令3.容器命令4.卷命令5.常用命令 1.帮助命令 docker version # 显示docker的版本信息 docker info # 显示docker的系统信息,包括镜像和容器的数量 docker 命令 --help # 某条命令的帮助命令2.镜像命令 查看所有本地的主机上的镜像…...
onlyoffice用nginx反向代理
我对于onlyoffice的需求就是当个在线编辑器使用。在集成react的时候之前都是写的绝对路径的地址,这样在需要迁移应用的时候就造成了巨大的麻烦,所以我决定用nginx做反向代理,这样我集成的时候就不用每次都修改源码中的地址了。 一开始写的代…...
JavaScript字符串转换成base64编码方法
// base64编码表 const base64EncodeChars ref<string>("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789/" );/*** base64编码* param {Object} str*/ const base64encode (str: string) > {let result "";// 循环遍历字符串…...
25.惰性队列
介绍 消费者由于各种原因而致使长时间不能消费消息造成堆积。比如有一百万条消息发送到mq中,消费者这时宕机了不能消费消息,造成了消息堆积。惰性队列就有必要了。 正常情况下,消息保存在内存中。消费者从内存中读取消息消费,速…...
ControlNet on Stable Diffusion
ControlNet on Stable Diffusion 笔记来源: 1.Adding Conditional Control to Text-to-Image Diffusion Models 2.How to Use OpenPose & ControlNet in Stable Diffusion 3.ControlNet与DreamBooth:生成模型的精细控制与主体保持 4.Introduction t…...
源码编译安装,及nginx服务控制、监控块
1.源码编译安装: [root17dns ~]# wget https://nginx.org/download/nginx-1.27.0.tar.gz 2.解压: [root17dns ~]# tar -zxvf nginx-1.27.0.tar.gz 3.安装gcc等工具 [root17dns ~]# yum -y install gcc gcc-c [root17dns ~]# yum -y install make lrzsz …...
在react中使用wangeditor富文本
官方文档 wangeditor5在线文档 依赖安装(react框架) yarn add wangeditor/editor # 或者 npm install wangeditor/editor --saveyarn add wangeditor/editor-for-react # 或者 npm install wangeditor/editor-for-react --save在React 中使用wangEditor …...
拉提查合创5步玩转git工具协作代码开发
1 工具使用场景 开发团队使用git版本管理工具,进行协作代码开发过程中,最常用的场景为: (1)拉取代码 将git远端仓库最新代码拉取到本地。 (2)提交代码 将本地新增修改的代码提交至git远端仓库中…...
React特点
React 是一个用于构建用户界面的 JavaScript 库,由 Facebook 开发并维护。React 的特点主要体现在以下几个方面: 声明式(Declarative):React 使你能够以一种声明的方式来描述你的 UI,这使得代码更加容易理解…...
鸿蒙(HarmonyOS)自定义Dialog实现时间选择控件
一、操作环境 操作系统: Windows 11 专业版、IDE:DevEco Studio 3.1.1 Release、SDK:HarmonyOS 3.1.0(API 9) 二、效果图 三、代码 SelectedDateDialog.ets文件/*** 时间选择*/ CustomDialog export struct SelectedDateDialog {State selectedDate:…...
学习008-02-04-08 Localize UI Elements(本地化UI元素)
Localize UI Elements(本地化UI元素) This lesson explains how to localize an XAF application. It describes how to translate UI elements into German and create a multi-language application. 本课介绍如何本地化XAF应用程序。它描述了如何将U…...
如何系统的学习C++和自动驾驶算法
给大家分享一下我的学习C和自动驾驶算法视频,收藏订阅都很高。打开下面的链接,就可以看到所有的合集了,订阅一下,下次就能找到了。 【C面试100问】第七十四问:STL中既然有了vector为什么还需要array STL中既然有了vec…...
typescript 定义类
/* js class 和 ts class 的区别 ---------------------------- | 语言 | js | ts | ---------------------------| | 公有 | 有 | jspublic | ---------------------------| | 私有 | 无 | private | ---------------------------| | 静态 | …...
认证授权概述和SpringSecurity安全框架快速入门
1. 认证授权的概述 1.1 什么是认证 进入移动互联网时代,大家每天都在刷手机,常用的软件有微信、支付宝、头条、抖音等 以微信为例说明认证的相关基本概念。在初次使用微信前需要注册成为微信用户,然后输入账号和密码即可登录微信,…...
docker常用命令集锦
目录 一、查看版本信息 1.1 查看 Docker CLI 版本: 1.2 查看 Docker 详细版本信息: 1.3 查看 Docker 系统信息: 二、进入和退出容器 2.1 进入容器: 2.2 退出容器: 2.3 查看容器日志: 2.4 查看容器的…...
学习Java的日子 Day56 数据库连接池,Druid连接池
Day56 1.数据库连接池 理解:池就是容器,容器中存放了多个连接对象 使用原因: 1.优化创建和销毁连接的时间(在项目启动时创建连接池,项目销毁时关闭连接池) 2.提高连接对象的复用率 3.有效控制项目中连接的…...
如何实现PostgreSQL对某一张表的WAL日志进行记录
PostgreSQL 没有内置的 binlog(binary log)机制像 MySQL 那样。它使用 Write-Ahead Logging (WAL) 来记录数据库的变更。要将这些变更记录到某张表中,通常可以使用逻辑复制(Logical Replication)和触发器(T…...
机器学习数学基础(2)--最大似然函数
声明:本文章是根据网上资料,加上自己整理和理解而成,仅为记录自己学习的点点滴滴。可能有错误,欢迎大家指正。 在机器学习和统计学领域中,似然函数(Likelihood Function)是一个至关重要的概念。…...
详解 @RequestHeader 注解在 Spring Boot 中的使用
个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119@qq.com] 📱个人微信:15279484656 🌐个人导航网站:www.forff.top 💡座右铭:总有人要赢。为什么不能是我呢? 专栏导…...
华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...
Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?
在工业自动化持续演进的今天,通信网络的角色正变得愈发关键。 2025年6月6日,为期三天的华南国际工业博览会在深圳国际会展中心(宝安)圆满落幕。作为国内工业通信领域的技术型企业,光路科技(Fiberroad&…...
人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent
安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...
深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向
在人工智能技术呈指数级发展的当下,大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性,吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型,成为释放其巨大潜力的关键所在&…...
OCR MLLM Evaluation
为什么需要评测体系?——背景与矛盾 能干的事: 看清楚发票、身份证上的字(准确率>90%),速度飞快(眨眼间完成)。干不了的事: 碰到复杂表格(合并单元…...
基于江科大stm32屏幕驱动,实现OLED多级菜单(动画效果),结构体链表实现(独创源码)
引言 在嵌入式系统中,用户界面的设计往往直接影响到用户体验。本文将以STM32微控制器和OLED显示屏为例,介绍如何实现一个多级菜单系统。该系统支持用户通过按键导航菜单,执行相应操作,并提供平滑的滚动动画效果。 本文设计了一个…...
