最近设计了一个项目基于单片机的儿童防丢器 || 儿童手表 || ,与大家分享一下:
一、基本介绍
项目名:儿童防丢器
项目编号:mcuclub-dz-297
单片机类型:STM32F103C8T6
具体功能:
1、通过蓝牙连接主从机
2、第一次连接后,每隔1s从机向主机发送一次数据,主机如果接收到数据,则表明儿童在附近,如果主机和从机距离远或从机断线,都会导致主机接收不到数据,则主机进行声光报警
3、通过GPS进行定位,当蓝牙断开后,通过GSM将定位以短信形式发送到手机端
二、32实物图
单片机型号:STC89C52
板子为绿色PCB板,两层板,厚度1.2,上下覆铜接地。元器件基本上为插针式,个别降压芯片会使用贴片式。
供电接口:TYPE-C
四、原理图
软件版本:AD2013
电路连线方式:网络标号连线方式
注意:原理图只是画出了模块的引脚图,而并不是模块的内部结构原理图
五、PCB图
由原理图导出,封装很大一部分都是作者自己绘制,不提供封装库,只提供连接好的源文件。中间有一个项目编号,隐藏在单片机底座下,插入单片机后不会看到。
两层板,上下覆铜接地。
六、系统框图
本设计以单片机为核心控制器,加上其他模块一起组成此次设计的整个系统,此次设计可以分为主机和从机。
从机和主机都可以分为三部分输入、输出和中控,从机的输入由两部分组成,第一部分是GPS模块获取当前儿童的位置;第二部分是供电模块,通过该模块给从机进行供电,输出由两个部分组成,通过蓝牙发射模块,将用户输入的数子传输到主机;第二部分是是GSM模块将当前儿童的位置信息发送到用户的手机中。
主机的输入由两部分组成,第一部分是蓝牙接收模块,用户通过该模块输入对应的数子;第二部分是供电模块,通过该模块给主机进行供电;输出通过声光报警模块,监测到儿童不在范围之内进行声光报警。具体系统框图如图3.1所示。
七、软件设计流程
八、部分程序展示
软件版本:keil5
逻辑程序和驱动程序分开,分布于main.c和其他.c文件
*******监测函数
*****/
void Monitor_function(void)
{
// if(USART2_WaitRecive() == 0)
// {
// if(strstr((char*)usart2_buf,"A") != NULL)
// {
// Mode=1;
// Sec=0;
// time_value_1s=0;
// flag_timer_begin = 1;
// UsartPrintf(USART2,"A");
// USART2_Clear();
// }
// }
if(Mode == 0 || Mode == 2)
{
if(time_num % 50 == 0)
{
UsartPrintf(USART2,"B");
// USART2_Clear();
}
}
if(Sec>2)
{
Mode=2;
Sec=0;
time_value_1s=0;
flag_timer_begin = 0;
UsartPrintf(USART2,"B");
}
USART2_Clear();
}
/****
*******处理函数
*****/
void Manage_function(void)
{
if(Mode == 2)
{
if(time_num % 20 == 0)
{
LED = ~LED;
BEEP = ~BEEP;
}
}
else
{
LED = 1;
BEEP = 0;
}
}