STM32项目分享:智能药盒

目录

一、前言

二、项目简介

1.功能详解

2.主要器件

三、原理图设计

四、PCB硬件设计

PCB图 

五、程序设计 

六、实验效果 

七、资料内容

项目分享


一、前言

项目成品图片:

哔哩哔哩视频链接:

STM32智能药盒|医疗箱

(资料分享见文末) 

二、项目简介

1.功能详解

基于STM32的智能药盒

功能如下:

  1. 基于STM32F103C8T6单片机主控
  2. 监测功能:环境温湿度、药品余量、人体吃药状态
  3. 缺药报警:药物重量为零时蜂鸣器报警提醒缺药
  4. 时间显示:可以设置和显示当前的实时时间
  5. 定时提醒:可以设置5个定时时间提醒吃药,每个时间可自由控制开关
  6. 语音播报:定时吃药时间到扬声器播报语音提醒吃药
  7. APP控制:连接蓝牙APP接收环境信息并可设置定时时间与开关

2.主要器件

  • STM32F103C8T6单片机
  • OLED 屏幕
  • DHT11温湿度传感器
  • 光电红外传感器
  • HX711称重模块
  • JR6001语音模块
  • BT04A蓝牙模块
  • 有源蜂鸣器

三、原理图设计

四、PCB硬件设计

PCB图 

五、程序设计 

#include "sys.h"
//#include "usart3.h"
SENSOR SensorData;//传感器结构体定义
THRESHOLD Threshold;//阈值结构体定义
SYSTEM System;//系统标志位结构体定义

void Public(void);
void Threshold_Init(THRESHOLD *Threshold);

int main(void)
{
    delay_init();//延时函数初始化
	  MyRTC_Init();
		MyRTC_SetTime();

    NVIC_Config(); //中断优先级配置
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
    Usart3_Init(9600);
		USART2_Config();
	  u3_printf("AF:30");
		delay_ms(1000);
		u3_printf("A7:00001");
    My_USART1();
		DHT11_Init();

    Beep_Init();//蜂鸣器初始化

	  DO_Init();
    LED_GPIO_Config();//LED灯初始化
    oled_Init();//oled初始化
    KEY_Init();//按键初始化
    Threshold_Init(&Threshold);//传感器阈值及执行器件开关变量初始化
    
    //
    oled_ShowCHinese(16 * 1, 2 * 0, 0);
    oled_ShowCHinese(16 * 2, 2 * 0, 1);
    oled_ShowCHinese(16 * 3, 2 * 0, 2);
    oled_ShowCHinese(16 * 4, 2 * 0, 3);
    oled_ShowCHinese(16 * 5, 2 * 0, 4);
    oled_ShowCHinese(16 * 6, 2 * 0, 5);
    Init_HX711pin();
    Get_Maopi();
    delay_ms(1000);
    delay_ms(1000);
 //   Get_Maopi();
    oled_Clear();
//    TIM2_Init(2000-1,7200-1);
    //    oled_ShowString(0,2,"Connecting...",16);
    /*******************************************/
    while (1) {
			

        KeyScan();//按键扫描
			  
        Get_Weight();
        SensorData.Sensor1 = Weight_Shiwu; //获取药品重量
			  SensorData.Sensor4 = GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_6);
        Get_dht11();//获取温湿度数据
        Mode_Decide();//模式判定 (按键1选择模式)
        Public();
        delay_ms(50);

    }
}

//向MQTT服务器发布消息
void   Public(void)
{
	u1_printf("A:%d#,B:%d#,C:%d#,D:%d#,E:%d#,F:%d#,G:%d#,H:%d#,I:%d#,J:%d#,K:%d#,L:%d#,M:%d#,N:%d#",   
	           SensorData.Sensor1,
             SensorData.Sensor2,
             SensorData.Sensor3,
            WhatTime,
            Hour1,
            Min1,
            Hour2,
            Min2,           
            Hour3,
            Min3,       
            Hour4,
            Min4,         
            Hour5,
            Min5           );  


}


void Threshold_Init(THRESHOLD *Threshold)
{

}


六、实验效果 

七、资料内容

项目分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值