首页 > 其他分享 >基于STC32的智能灯控测试

基于STC32的智能灯控测试

时间:2023-12-14 23:37:18浏览次数:29  
标签:定时器 定义 灯控 STC32 开灯 智能 关灯 EEPROM

我们要实现的功能是通过官方的例子改写以实现自己项目的要求:

项目要求:1.通过定时器实现灯亮十分钟后自动关灯

     2.检测到有人来时开灯,并保持十分钟

     3.若亮灯十分钟内还有人来,则刷新时间

     4.将开灯和关灯的日志信息通过AIP技术存到EEPROM中,实现掉电不丢失

      

步骤:

首先,在stc官网提供的教程中下载例子

链接:https://www.stcai.com/filedownload/720640

下载之后找到

 这是一个关于STC32中用IAP技术将FLASH当成逻辑上的EEPROM来使用,手册中也有介绍和范例代码

 接着用keil打开项目(keil需要提前配置好有关STC32MCU的内容,在官方手册中也有详细步骤)

打开项目后可以看到如下目录:

 然后找到Demo.c文件中的定时器0部分

我们可以根据自己的需要改变其中的内容,我现在要做的是实现每十分钟关灯一次,则将变量timcount设置为十分钟所对应的毫秒数的值(这里的定时器初始化中设置是1ms)

由于只是测试,我们就设置为10秒钟关灯。则对应将timcount的值设置为10000,当时间到达后就进行关灯操作,由于原代码中并没有定义灯的引脚,则可以用P40,也就是实验箱中灯的总开关来模拟灯的引脚。

  还需要注意一个问题就是,我们在灯已经是关闭状态下是不需要执行关灯操作的,所以可以定义一个表示灯状态的变量,比如u8 Tnumber,定义好之后通过这个来判断是否到达设置的时间

 

接下来做第二个功能,当有人来时开灯

STC32单片机提供IO中断,需要下载中断扩展,否则在中断号超出31之后就会编译报错。

打开exit.c文件,找到对应中断,这里为了演示定义的是P35这个按键

 

 建议在使用的时候,将中断内容放到主程序里,将代码改成上面的之后进行测试,若正常则是当P35按下之后蜂鸣器响,松开后关闭。

 

接下来就是编写日志存储部分,在EEPROM中可以用于存储数据的是64K的空间,对应0x0000到0xFFFF

由于EEPROM中一位最多为OxFF,所以只能存0-255,所以我这里采用的思路,是将几位连在一起同时使用,记录的时候,使用下图的方式同时存8位

首先我们需要一个变量,用于记录系统总运行时间,由于需要防止中途掉电,所以使用EEPROM1的第0xFFFE位(十进制的65,534位)来记录

定义为u32 sysTime,然后这个变量以秒为单位,所以在之前定时器0的基础上,还要加上每过一秒sysTime加1,并且加1以后需要存到EEPROM中。

然后自己定义一个getTime函数用于将总时间转换成标准的年月日时分秒,再定义一个函数用于保存系统总运行时间。

 

 

编写一个记录函数,在每次检测到有人来并且开灯的记录开灯时间,当自动关灯时也记录。

void LogMsg(const char* message) {
// 实现日志记录的代码
}

最后就是定义一个系统总开灯时间,当灯开启的时候在定时器里面自增。当我们想查看节能比例时可以通过(系统总未开灯时间/系统总运行时间)非常直观的看到节能效果。

 

标签:定时器,定义,灯控,STC32,开灯,智能,关灯,EEPROM
From: https://www.cnblogs.com/pjxx/p/17902450.html

相关文章

  • 自主人工智能(开源版)分享
    主要内容GPT-Engineer(https://github.com/AntonOsika/gpt-engineer)Auto-GPT(https://github.com/Significant-Gravitas/AutoGPT)Agent-GPT(https://github.com/reworkd/AgentGPT)curl--location'http://172.20.90.121:2000/v1/chat/completions'\-H&qu......
  • 智能分析/可视化安防监控系统EasyCVR风光互补远程视频监控方案
    一、背景需求在一些偏远地区,也具有视频监控的需求。但是这类场景中,一般无法就近获取市电,如果要长距离拉取市电,建设的成本非常高且长距离传输有安全隐患,因此风光互补远程视频监控方案的需求也较多。利用风光电转化原理为偏远或无电区域的视频监控设备提供电力供应,从而满足偏远地区......
  • TSINGSEE青犀中央厨房视频智能监控监管解决方案
    一、行业背景预制菜是指经过洗、切、搭配、加工完成的菜品,采取冷冻或真空等一系列方式进行包装保存,消费者购买后只需通过简单烹调或直接开封即可食用,具有方便、高效、出品稳定的特点。据统计报告分析,从上游食材生产推算以及下游餐饮市场的数据来看,预制菜的规模在2025年有望破万亿......
  • 智慧工地防盗新手段:TSINGSEE青犀工地智能监控防盗系统方案
    工地监控大家都很了解,主要是利用视频监控摄像头全方位无死角地对工地场所进行监控,并在汇聚平台(如:安防监控系统EasyCVR平台)上进行统一汇聚与分发。不过随着科技的发展,智能视频监控在工地监管方面又有了新突破,打破了传统监控的桎梏,利用AI智能+监控设备保卫工地财产、实现防盗需求,最......
  • 你相信光吗?开源一个能进行虚拟光渲交互的全志D1s智能家居中控
    本文所介绍产品demo是在立创开源平台的开源作品**《全志D1s智能家居中控虚拟光渲交互(86盒)》**,项目选用RISC-V核心的全志D1s作为主控进行开发,并通过家庭WIFI内网,实现设备间MQTT通信,与其它开源单片机控制项目进行充分联动,旨在推广类似客制化键盘概念到智能家居领域,尝试打破各大厂商......
  • 软件测试/人工智能|selenium元素定位方式大全
    前言当我们在使用selenium进行自动化测试工作时,元素定位是非常重要的一环,因为我们是借助脚本模拟我们通过鼠标和键盘对元素进行点击、输入内容和滑动操作的,所以准确的元素定位是我们执行测试脚本的重要一环。本文就来给大家介绍一下selenium的元素定位方式。find_element和find......
  • 软件测试/人工智能|一文教你配置selenium环境
    前言在软件开发过程中,自动化测试是确保应用程序质量的关键步骤之一。Python语言与Selenium库的结合为开发者提供了一个强大的工具,用于自动化Web应用程序的测试。本文将介绍如何配置Python和Selenium,搭建一个高效的自动化测试环境。Seleium安装我们可以直接在项目的虚拟环境中......
  • 真实照片与人工智能生成的艺术:新标准 (C2PA) 使用 PKI 来显示图像的历史
    https://www.asiaregister.com/zh/news/zhen-shi-zhao-pian-yu-ren-gong-zhi-neng-sheng-cheng-de-yi-shu-xin-biao-zhun-C2PA-shi-yong-PKI-lai-xian-shi-tu-xiang-de-li-shi-2661.htm在网上辨别真假变得越来越困难。Adobe、微软、索尼、DigiCert和数十家其他行业领导者推出的......
  • 软件测试/人工智能|教你掌握 Conda 的基本用法
    前言作为一名技术爱好者或者开发人员,我们可能经常需要管理不同版本的软件包或创建独立的开发环境。Conda是一个强大的工具,能够帮助我们轻松完成这些任务。接下来,我们将介绍Conda的基本概念和常用操作,帮助大家快速上手。什么是Conda?Conda是一个开源的软件包管理系统和环境......
  • 振弦采集仪:工程安全监测的“智能助手”
    振弦采集仪:工程安全监测的“智能助手”振弦采集仪是一种用于工程安全监测的设备,它可以被视为工程安全监测的“智能助手”。振弦采集仪通过测量结构物振动的频率和振幅来判断结构物的安全性,并实时监测结构物的变化。振弦采集仪可以广泛应用于桥梁、建筑物、隧道等工程项目的监测......