方案框图:

原理图:

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方案原理图设计相关推荐

  1. 基于STM32单片机的智能手环设计(OLED显示)(Proteus仿真+程序+报告)

    编号8 基于STM32单片机的智能手环设计(OLED显示) 功能描述: 由 STM32单片机+按键模拟计步+RTC时钟模块+DS18B20温度传感器模块+心率采集模块+串口模块+OLED显示模块+键盘 ...

  2. 基于STM32单片机的智能家居测量系统设计

    当今的家庭生活面临着各种环境和健康问题,周围的生活参数存在潜在的隐患,包括室温.气体中有害物质的浓度等.在新时代,人们越来越关注健康及其相关因素.随着微电子技术的应用,电器的普及,以及单片机和传感器性 ...

  3. 基于STM32单片机的智能停车场车位管理系统设计

    摘  要 通过调查发现,现有的许多公共场所的停车位管理落后,智能化程度不高.为顺应现代自动化狂潮的发展趋势,本项目以STM32单片机为主控芯片,基于RFID智能识别技术,设计了一个具有IC识别的智能停 ...

  4. 基于STM32单片机的智能加湿器(Proteus仿真+程序)

    标号:11 基于STM32单片机的智能加湿器 功能描述: 11.基于STM32单片机的智能加湿器 本设计由STM32F103单片机最小系统+DHT11温湿度传感器+1602液晶显示模块+声光报警模块+ ...

  5. 基于单片机串口远程多路温湿度采集仿真-基于单片机ADC0809八路电压采集系统设计-基于单片机16x32点阵多模式显示仿真设计-基于单片机餐厅呼叫控制系统仿真设计-基于STM32单片机的智能水杯设计

    1220基于单片机ADC0809八路电压采集系统设计-毕设课设资料 数码管显示,测量八路电压表. #define addo (5.0/255.0) #define zero 0.005 //用于校准A ...

  6. 基于STM32单片机的智能家居烟雾温度火灾防盗报警的设计与实现

    功能介绍 以STM32单片机作为主控系统: LCD1602液晶显示屏来显示显示测得的值: SR501人体红外感应是否有人进行防盗: 通过烟雾传感器MQ-2获取前的烟雾值: 通过DHT11温湿度传感器来 ...

  7. 基于STM32单片机的智能书桌设计与实现

    研究结果表明,学生的读写姿势不正确率高达70%甚至85%以上[1].不良的读写姿势.不合适的光照条件会令学生不停地调整眼睛的睫状肌,容易降低睫状肌调节能力,进而导致近视[2].从长远看,不良的读写姿势 ...

  8. 基于stm32单片机农业智能温室大棚温湿度光照测量报警系统Proteus仿真

    资料编号:146   下面是相关功能视频演示: 146-基于stm32单片机农业智能温室大棚温湿度光照测量报警系统Proteus仿真(源码+仿真+论文) 设计内容 本次嵌入式课程设计综合实验的内容为基 ...

  9. 基于stm32单片机农业智能温室大棚温湿度光照测量报警系统Proteus仿真(源码+仿真+论文)

    资料编号:146 视频讲解: 146-基于stm32单片机农业智能温室大棚温湿度光照测量报警系统Proteus仿真(源码+仿真+论文) 设计内容 本次嵌入式课程设计综合实验的内容为基于proteus的 ...

  10. 基于stm32单片机的智能鱼缸设计(实物+原理图+源码)

    资料编号:059     功能如下: 1.采用stm32单片机作为控制CPU,OLED显示万年历和温度 2.智能加热.加氧.加二氧化碳 3.采用智能自动开灯 具体功能请看下方演示视频 59-基于stm ...

最新文章

  1. boost::hana::fuse用法的测试程序
  2. Linux之Nginx配置多个虚拟主机:静态转发
  3. K线理论--单根K线形态
  4. Intel 14nm PowerVR GPU成功验收:三星、台积电侧目
  5. centos7 ftp服务器搭建_CentOS7下搭建Jellyfin个人流媒体服务器
  6. 鸿蒙智慧屏桌面,全球首发国产鸿蒙操作系统,荣耀智慧屏现场亲测
  7. ECC椭圆曲线加密算法原理 | 比特币加密算法
  8. 以优美方式编写JavaScript代码
  9. python字典用法总结
  10. MacOS Ventura 13.0 Beta4 (22A5311f) 带 OC 0.8.3 / Cl 5148 / PE 三分区原版黑苹果镜像
  11. Git查询一定时间范围团队代码提交日志
  12. 深入理解Java虚拟机——Parallel Old收集器
  13. 凸包问题 —— Graham扫描法
  14. BIG DATA 神奇的大数据 - Hadoop(Linux)环境搭建与部署
  15. xmind转Excel测试用例
  16. 谷粒商城-分布式基础篇2
  17. 【211南京理工大学】新增网络空间安全学院,学硕专硕都招!
  18. 电脑清灰,你的电脑能有多脏 论清灰的重要性
  19. Java实现TCP/IP的ping连通性
  20. 从12306抢票极限并发到秒杀系统核心架构

热门文章

  1. win10系统的 3Dsmax2020 安装失败报错 1603 解决方案 亲测可用
  2. 揭秘偷渡史,福建最疯,全村一半人都出国了
  3. Java项目《谷粒商城》高级篇 个人错误总结
  4. 40行Python代码利用DOI下载英文论文(2022.3.7)
  5. 怎么用Excel公式计算百分比?教你三种计算方法
  6. 计算机键盘最小化,电脑按哪个键可以使窗口最小化
  7. 轮盘的基础,简单的实现和Toolbar的实现
  8. 高斯消元求解四种方程组
  9. 解决PowerDesigner提示This data item is already used in a primary identifier
  10. 对java方法进行功能增强的三种方法