基于STM32单片机的智能药盒定时提示吃药喂水蓝牙APP方案原理图设计
方案框图:
原理图:
JDY-30蓝牙模块电路设计
蓝牙模块是指集成蓝牙功能的芯片基本电路集合,用于无线网络通讯。本蓝牙模块就是为了只能无线数据传输而专门打造的,本模块支持串行接口,支持SP蓝牙串口协议,具有成本低、体积小、收发灵敏性高等特点,只需配备少许的外围元件就能实现大功能。
一、模块特点
(1)支持蓝牙 SPP 串口协议
(2)内置 PCB 天线
(3)支持 UART 接口
(4)蓝牙 Class 2
(5)数据传输比 BLE 蓝牙快、可达到 8K 每秒以上的速率
(6)支持与 SPP 主蓝牙模块连接通信(JDY-30 为从 SPP 蓝牙模块)
(7)支持与电脑 SPP 蓝牙通信
(8)支持 Android 手机 SPP 通信
二、产品应用范围
(1) POS 机
(2)蓝牙打印机
(3)蓝牙玩具
(4)蓝牙高速数据传输产品应用
(5)小家电
(6)汽车电子
三、模块技术参数
(1)工作电压:3.3V-6V
(2)工作温度:-40℃-85℃
(3)天线:PCB板载天线
(4)功耗:19mA
四、模块接口说明
(1)RXD 串口输入,电平为TTL电平
(2)TXD 串口输出,电平为TTL电平
(3)GND 接GND
(4)VCC 接3.3V-6V
蓝牙模块接口电路图如下图所示。
LED信号指示灯电路设计
LED灯即发光二极管,它是半导体二极管的一种,可以把电能转化成光能。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。在电路中,电阻的作用是限流,保护LED灯。只要单片机的控制引脚拉低,则LED灯亮,否则,LED灯不亮。其具体电路原理图如下图所示。
二挡拨动开关检测电路设计
拨动开关是通过拨动开关柄使电路接通或断开,从而达到切换电路的目的的。拨动开关常用的品种有单极双位、单极三位、双极双位以及双极三位等,它一般用于低压电路,具有滑块动作灵活、性能稳定可靠的特点,拨动开关主要广泛用于:各种仪器/仪表设备,各种电动玩具,传真机,音响设备,医疗设备,美容设备,等其它电子产品领域。
简单的说,拨动开关就是通过拨动其执行机构(开关柄),来接通或断开电路。
通过拨动开关实现对信号的切换,电阻为上拉电阻。当二档拨动开关拨下去时,单片机控制引脚为低电平。当二档拨动开关拨上去时,单片机控制引脚为高电平。进而实现对信号的完美切换。其电路图如下图所示。
程序流程图
#include "pbdata.h"
_record_obj record[NUM_RECORD]; //记录结构体
vu8 box_open=0;//记录药盒打开的状态,每一个二进制位代表一个药盒
u8 length_record = 0;//记录的个数
u8 count_save_record = 0;//记录保存的次数,需要保存时加1,完成一次保存则减1void RecordInit(void)//记录初始化
{u8 i;
//读写flash数据均为2个字节,所以数据长度为结构体数据长度除以2STMFLASH_Read(ADDR_RECORD, (uint16_t *)&record[0].month,NUM_RECORD*sizeof(_record_obj)/2);for(i=0;i<NUM_RECORD;i++){if(record[i].alive==MSG_TRUE){length_record++;
// break;}}
}
//读写flash数据均为2个字节,所以数据长度为结构体数据长度除以2
void RecordRead(u8 recordNum)
{//从flash读取数据内容到内存STMFLASH_Read(ADDR_RECORD+sizeof(_record_obj)*recordNum, (uint16_t *)&record[0].month,sizeof(_record_obj)/2);
}
//保存记录到flash
void RecordSaveAll()
{count_save_record++;
// if(count_save_record&0x80){//任务4被挂起
// //当要保存的数据比较大时,保存数据的操作比较浪费时间,所以在一个单独的任务中执行
// OSTaskResume(TASK_4_PRIO); //恢复任务4,保存所有记录
// }
}
//删除记录
void RecordDelete(u8 recordNum)
{record[recordNum].alive = MSG_FALSE;MoveRecord();RecordSaveAll();length_record--;
}
//删除记录,如删除第二条,则将第三条移动到第二条
void MoveRecord(void){u8 i=0,j=1;for(i=0;i<NUM_RECORD-1;i++){if(record[i].alive!=MSG_TRUE){for(j=i+1;j<NUM_RECORD;j++){if(record[j].alive==MSG_TRUE){record[i]=record[j]; record[j].alive = MSG_FALSE;break;}}}}
}
//添加一条记录
void AddRecord(_calendar_obj time_now,u8 num){//记录总数有限制,保存满以后从头循环保存if(length_record==NUM_RECORD){record[0].alive=MSG_FALSE;MoveRecord();}else{length_record++;}//下面使用length_record-1,不是length_record,否则记录顺序不正确,甚至可能会数组越界而导致死机record[length_record-1].month = time_now.w_month;record[length_record-1].day = time_now.w_date;record[length_record-1].hour = time_now.hour;record[length_record-1].min = time_now.min;record[length_record-1].num_box = num;record[length_record-1].alive = MSG_TRUE;RecordSaveAll();
}
//查询并保存药盒打开记录
void RecordNow(void){u8 i=0;u16 gpio_key=KEY_PIN_1,gpio_led=LED_PIN_1;if(rtc_ok == MSG_FALSE){return;}for(i=0;i<NUM_BOX;i++){switch(i){case 0:gpio_key=KEY_PIN_1;gpio_led=LED_PIN_1;break;case 1:gpio_key=KEY_PIN_2;gpio_led=LED_PIN_2;break;case 2:gpio_key=KEY_PIN_3;gpio_led=LED_PIN_3;break;default:break;}if(GPIO_ReadInputDataBit(KEY_PORT,gpio_key)){//1号药盒打开OSTimeDly(5); if(GPIO_ReadInputDataBit(KEY_PORT,gpio_key) && !(box_open&(0x01<<i))){box_open |= 0x01<<i;alert_cancel |= 0x01<<i;//取消本次报警LED_OFF(LED_PORT,gpio_led);AddRecord(calendar,i+1);//记录药盒打开时间和编号}}else {box_open &= ~(0x01<<i);}}if(alert_en&(~alert_cancel)){Beep_ON();}else if(!alert_flash){Beep_OFF();}
}
.
链接:https://pan.baidu.com/s/1-pUy38R02RykPI3T6CKUhA
提取码:5sev
.
基于STM32单片机的智能药盒定时提示吃药喂水蓝牙APP方案原理图设计相关推荐
- 基于STM32单片机的智能手环设计(OLED显示)(Proteus仿真+程序+报告)
编号8 基于STM32单片机的智能手环设计(OLED显示) 功能描述: 由 STM32单片机+按键模拟计步+RTC时钟模块+DS18B20温度传感器模块+心率采集模块+串口模块+OLED显示模块+键盘 ...
- 基于STM32单片机的智能家居测量系统设计
当今的家庭生活面临着各种环境和健康问题,周围的生活参数存在潜在的隐患,包括室温.气体中有害物质的浓度等.在新时代,人们越来越关注健康及其相关因素.随着微电子技术的应用,电器的普及,以及单片机和传感器性 ...
- 基于STM32单片机的智能停车场车位管理系统设计
摘 要 通过调查发现,现有的许多公共场所的停车位管理落后,智能化程度不高.为顺应现代自动化狂潮的发展趋势,本项目以STM32单片机为主控芯片,基于RFID智能识别技术,设计了一个具有IC识别的智能停 ...
- 基于STM32单片机的智能加湿器(Proteus仿真+程序)
标号:11 基于STM32单片机的智能加湿器 功能描述: 11.基于STM32单片机的智能加湿器 本设计由STM32F103单片机最小系统+DHT11温湿度传感器+1602液晶显示模块+声光报警模块+ ...
- 基于单片机串口远程多路温湿度采集仿真-基于单片机ADC0809八路电压采集系统设计-基于单片机16x32点阵多模式显示仿真设计-基于单片机餐厅呼叫控制系统仿真设计-基于STM32单片机的智能水杯设计
1220基于单片机ADC0809八路电压采集系统设计-毕设课设资料 数码管显示,测量八路电压表. #define addo (5.0/255.0) #define zero 0.005 //用于校准A ...
- 基于STM32单片机的智能家居烟雾温度火灾防盗报警的设计与实现
功能介绍 以STM32单片机作为主控系统: LCD1602液晶显示屏来显示显示测得的值: SR501人体红外感应是否有人进行防盗: 通过烟雾传感器MQ-2获取前的烟雾值: 通过DHT11温湿度传感器来 ...
- 基于STM32单片机的智能书桌设计与实现
研究结果表明,学生的读写姿势不正确率高达70%甚至85%以上[1].不良的读写姿势.不合适的光照条件会令学生不停地调整眼睛的睫状肌,容易降低睫状肌调节能力,进而导致近视[2].从长远看,不良的读写姿势 ...
- 基于stm32单片机农业智能温室大棚温湿度光照测量报警系统Proteus仿真
资料编号:146 下面是相关功能视频演示: 146-基于stm32单片机农业智能温室大棚温湿度光照测量报警系统Proteus仿真(源码+仿真+论文) 设计内容 本次嵌入式课程设计综合实验的内容为基 ...
- 基于stm32单片机农业智能温室大棚温湿度光照测量报警系统Proteus仿真(源码+仿真+论文)
资料编号:146 视频讲解: 146-基于stm32单片机农业智能温室大棚温湿度光照测量报警系统Proteus仿真(源码+仿真+论文) 设计内容 本次嵌入式课程设计综合实验的内容为基于proteus的 ...
- 基于stm32单片机的智能鱼缸设计(实物+原理图+源码)
资料编号:059 功能如下: 1.采用stm32单片机作为控制CPU,OLED显示万年历和温度 2.智能加热.加氧.加二氧化碳 3.采用智能自动开灯 具体功能请看下方演示视频 59-基于stm ...
最新文章
- boost::hana::fuse用法的测试程序
- Linux之Nginx配置多个虚拟主机:静态转发
- K线理论--单根K线形态
- Intel 14nm PowerVR GPU成功验收:三星、台积电侧目
- centos7 ftp服务器搭建_CentOS7下搭建Jellyfin个人流媒体服务器
- 鸿蒙智慧屏桌面,全球首发国产鸿蒙操作系统,荣耀智慧屏现场亲测
- ECC椭圆曲线加密算法原理 | 比特币加密算法
- 以优美方式编写JavaScript代码
- python字典用法总结
- MacOS Ventura 13.0 Beta4 (22A5311f) 带 OC 0.8.3 / Cl 5148 / PE 三分区原版黑苹果镜像
- Git查询一定时间范围团队代码提交日志
- 深入理解Java虚拟机——Parallel Old收集器
- 凸包问题 —— Graham扫描法
- BIG DATA 神奇的大数据 - Hadoop(Linux)环境搭建与部署
- xmind转Excel测试用例
- 谷粒商城-分布式基础篇2
- 【211南京理工大学】新增网络空间安全学院,学硕专硕都招!
- 电脑清灰,你的电脑能有多脏 论清灰的重要性
- Java实现TCP/IP的ping连通性
- 从12306抢票极限并发到秒杀系统核心架构
热门文章
- win10系统的 3Dsmax2020 安装失败报错 1603 解决方案 亲测可用
- 揭秘偷渡史,福建最疯,全村一半人都出国了
- Java项目《谷粒商城》高级篇 个人错误总结
- 40行Python代码利用DOI下载英文论文(2022.3.7)
- 怎么用Excel公式计算百分比?教你三种计算方法
- 计算机键盘最小化,电脑按哪个键可以使窗口最小化
- 轮盘的基础,简单的实现和Toolbar的实现
- 高斯消元求解四种方程组
- 解决PowerDesigner提示This data item is already used in a primary identifier
- 对java方法进行功能增强的三种方法