2016-5-28 17:02:38 [显示全部楼层]
4794浏览
查看: 4794|回复: 1

[第二届] UEAL第2届电子设计大赛第四轮——儿童走失报警器

[复制链接]
UEAL第2届电子设计大赛第四轮——儿童走失报警器
东华理工大学
东华理工大学——儿童走失报警器作品介绍链接:描述篇:

东华理工大学——儿童走失报警器作品介绍链接:演示篇:
UEAL第2届电子设计大赛第四轮——儿童走失报警器图13
题目要求:
利用DFRobot M3开发板设计一款儿童走失报警,使用时发射端放在儿童口袋内,接收端由家长携带。

基本要求:
1. 当发射端与接收端相距大于3~5米时,接收端应发出提示声,提示音持续时间为5秒。 完成
2. 当发射端与接收端相距大于15~20米时,接收端应发出连续报警声。 完成
3、显示部分要求显示云汉社区logo与参赛高校logo 完成
4、上传视频 完成
5、根据自己设计的功能有详细的讲解步骤 完成
发挥部分:
1.显示时间与日期功能;温湿度  
2.报警距离可调;
3.超出蓝牙(其他无线装置)极限30m距离后,可自动通过GPRS切换GPS定位,并实时更新儿童所在位置;
4.  低电量短信通知功能 ;当电源不足时,此时会主动发出一通短信通知第一组紧急联络人
5.其它创新
评分标准

          项  目
      得 分

设计报告
应包括:方案设计与论证, 参数计算、电路图、 软件流程图、测试方法与数据,结果分析等、正文内容不超过6页

20
   本
   部
   分
完成第一项要求
      10
完成第二项要求
      10
完成第三项要求
      10
完成第四项要求
      10
完成第五项要求
      10
   发
   挥
   部
   分
完成第一项要求
      10
完成第二项要求
      10
完成第三项要求
      20
特色与创新
      10

题目完成情况:
基本部分:1、2、3、4、5全部完成。评委可在接下来的帖子与视频中证实。
发挥部分:1、2、3,5完成,4完成
特色与创新:将蓝牙报警器作为一个简单的儿童蓝牙手表,具有温湿度,距离范围,时钟,震动报警声光报警,防丢牌等功能。特别是时钟,我们将表盘与DFROBOT的LOGO结合,既美观又实用。对于测试,我们使用MATLAB对RSSI数据表进行大量的计算,用于测试结果的正确与否。
UEAL第四轮主观题设计报告蓝牙报警器
东华理工大学电子科技协会一、方案设计与论证
基于蓝牙的距离测试方法:
蓝牙测距是通过查询蓝牙的RSSI值进行运算,得到一个距离值。虽然随着环境的改变,该值可能并不准确,但是大体上符合测距的要求。
我们使用的是DFROBOTBluno m3蓝牙Arduino开发板,使用简单的AT指令便可以获取RSSI的值。然后进行一定的运算,得到距离值给其它模块进行调用。

DFROBOT Bluno m3 介绍:
Bluno M3 是一款基于ARM处理器并且兼容Arduino接口的开源硬件平台。一款集成了蓝牙4.0通信模块和32位主控芯片STM32F103RET6的微控制 器。作为Bluno 家族新的一员, Bluno M3继承了Bluno系列的几个特点:支持蓝牙通信、支持无线编程和支持手机控制等。在此基础上Bluno M3 也新增了新的功能——更强大的处理性能,更大的存储空间和更多的接口资源。这完全得益于它现在采用的32位主控芯片。
CC2540配置方式:
测距需要两个蓝牙器件进行链接后才可以进行,我们使用Bluno作为从机,Bluno m3作为主机。也就是说把Bluno m3CC2540配置为ROLE_CENTRAL模式,Bluno的CC2540配置为ROLE_PERIPHERAL模式


AT指令:
AT指令集是从终端设备(Terminal Equipment,TE)或数据终端设备(Data Terminal Equipment,DTE)向终端适配器(Terminal Adapter,TA)或数据电路终端设备(Data Circuit Terminal Equipment,DCE)发送的。
AT指令是以AT作首, 字符结束的字符串,AT指令的响应数据包在 中。每个指令执行成功与否都有相应的返回。其他的一些非预期的信息(如有人拨号进来、线路无信号等),模块将有对应的一些信息提示,接收端可做相应的处理。

PC端发送AT指令读取M3RSSI值的方法:
1.打开Arduino IDE
2.在菜单-》工具-》串口中选择正确的设备
3.开启串口监视器 (点击窗口的右上角的按键)
4.在两个下拉菜单中选择"No line ending"(①)115200 baud
5.在输入框中()输入"+++",并点击发送键(
6.如果收到“Enter AT Mode”(⑤),就证明已经进入AT指令模式.

.UEAL第2届电子设计大赛第四轮——儿童走失报警器图6

M3发送AT指令读取RSSI值的方法:
我们参考了网友的程序,并进行了修改。其中需要注意的是,一旦进入AT模式,与CC2540相连的串口就不能使用。因此我们增设了一组虚拟串口,使用外接的PL2302 USB串口用于获取返回的RSSI值。具体程序见附录。
UEAL第2届电子设计大赛第四轮——儿童走失报警器图7
M3Bluno指令交互的拓扑结构:

当蓝牙链接时,链接指示灯LINK灯亮,屏蔽主机串口回路,不能收发。
链接到从机串口回路,对从机可进行串口收发。
回路为:PC-主机CC2540--从机CC2540-从机-从机CC2540--主机CC2540-PC
作品全局展示:M3Bluno指令交互的拓扑结构:

当蓝牙链接时,链接指示灯LINK灯亮,屏蔽主机串口回路,不能收发。
链接到从机串口回路,对从机可进行串口收发。
回路为:PC-主机CC2540--从机CC2540-从机-从机CC2540--主机CC2540-PC

作品全局展示:
UEAL第2届电子设计大赛第四轮——儿童走失报警器图8
彩屏GUI展示:
主要界面
UEAL第2届电子设计大赛第四轮——儿童走失报警器图2

UEAL第2届电子设计大赛第四轮——儿童走失报警器图1


UEAL第2届电子设计大赛第四轮——儿童走失报警器图9

防丢牌
UEAL第2届电子设计大赛第四轮——儿童走失报警器图10

GPS模块展示:
UEAL第2届电子设计大赛第四轮——儿童走失报警器图3

GPS定位功能图片展示:
UEAL第2届电子设计大赛第四轮——儿童走失报警器图4
机智云扩展板介绍:
板载了正反转可调速电机马达、温湿度传感器、红外感应器、RGB全彩LED灯,另外增加了OLED扩展接口

方案论证:
以上方法经过实际测试,均可以使用。
二、参数计算
1.RSSI--距离公式
计算公式:
    d = 10^((abs(RSSI) - A) / (10 * n))
其中:
    d - 计算所得距离
    RSSI - 接收信号强度(负值)
    A - 发射端和接收端相隔1米时的信号强度
    n - 环境衰减因子
在实际使用中,A我们取值59,n我们取值2.0较符合!

三、电路图[size=21.3333px]UEAL第2届电子设计大赛第四轮——儿童走失报警器图11

四、软件流程图:
1.功能模块:
UEAL第2届电子设计大赛第四轮——儿童走失报警器图5
(一)AT指令发送模块:
Serial.print("+");
Serial.print("+");
Serial.print("+");   // Enter the AT mode
delay(1000); // Slow down and wait for connectin establishment
该模块放在setup()中用于进入AT模式,注意,发送完指令后需要进行等待。
(二)RSSI指令读取模块:
uchar ScanDis(uint *Dis);
以下是AT指令获取部分程序代码
char Data[100];
char RAW[3];
int INDEX;
char Value = '-';
    Serial.println("AT+RSSI=?"); // Ask about the RSSI
    delay(100);
    Serial.println("AT+RSSI=?"); // Ask about the RSSI
    delay(100);
for(int x=0 ; Serial.available() > 0 ; x++ ){    // get the Enter AT mode words
    Data[x] = Serial.read(); // Read and store Data Byte by Byte
    if (Data[x] == Value ) // Look for the elemnt of the array that have "-" that's the start of the RSSI value
      {
        INDEX=x+1;
      }
  }   
    RAW[0] = Data[INDEX]; // Copy the RSSI value to RAW Char array
    RAW[1] = Data[INDEX+1];
    RAW[2] = Data[INDEX+2];
Dis[0] = atoi(RAW);  //Convert the Array to an integer

Dis[0]  RSSI值,2字节数
Dis[1]  距离值,2字节数
Dis[2]  距离状态变量,2字节数
0:        1米范围之内
1:        1-3米范围
2:        3-5米范围
3:        5-20米范围
4:        20-30米范围之外
5:        30米范围之外
(三)温湿度检测模块:
uchar ReadHt(uchar *HTData);
函数参数列表为:
HTData[0] 湿度值,单字节数
HTData[1] 温度值, 单字节数
(四)报警处理模块:
void Motor_status(MOTOR_T motor_speed);
void AlarmHandle(uint Time);
Motor_status用于配置电机的转速,>5正转,<5反转
AlarmHandle 用于定时器延时,避免使用Delay延时函数,造成系统卡顿。
Time的单位为毫秒
(五)显示屏指令发送读取模块:
uchar Display(uint *Par);
void my_display(uint *Data);
Par[0] 湿度值        2字节数
Par[1] 温度值        2字节数
Par[2] RSSI值        2字节数
Par[3] 距离值        2字节数
Par[4] 屏幕返回值        2字节数
(六)数据处理模块:
串口模块:
SoftwareSerial mySerial(8, 9); // RX, TX
SoftwareSerial mySerial2(10, 11); // RX, TX
mySerial为Bluno与串口屏通讯端口
mySerial2 为测试通讯端口
[size=12.0000pt](七)初始化模块:
2.状态机:
  enum MAINSTATE {SENDDIS = 0, READHT, SCANDIST, HANDLE};
   switch (State)
    {
      case SENDDIS:
        {
          NState = READHT;
          Display(MainData.DisData);
          MainData.HandleD[0] = MainData.DisData[4];
        } break;
      case READHT:
        {
          NState = SCANDIST;
          ReadHt(MainData.HTData);
          MainData.DisData[1] = MainData.HTData[0] * 100;
          MainData.DisData[0] = MainData.HTData[1] * 100;
          MainData.HandleD[1] = MainData.HTData[0];
          MainData.HandleD[2] = MainData.HTData[1];
          Temp = MainData.HTData[1];
          Humidity = MainData.HTData[0];
        } break;
      case SCANDIST:
        {
          NState = HANDLE;
          ScanDis(MainData.DistanceData);
          MainData.DisData[2] = MainData.DistanceData[0];
          MainData.DisData[3] = MainData.DistanceData[1];
          MainData.HandleD[3] = MainData.DistanceData[0];
          MainData.HandleD[4] = MainData.DistanceData[1];
          MainData.HandleD[5] = MainData.DistanceData[2];
        } break;
      case HANDLE:
        {
          NState = SENDDIS;
          HandleData(MainData.HandleD);
        } break;
    }
    State = NState;
五、测试方法与数据
1.PC端测试RSSI
2.板载指示灯显示指令发送状态
3.虚拟串口采集状态
4.数据测试:MATLAB 计算RSSI与距离的关系
UEAL第2届电子设计大赛第四轮——儿童走失报警器图12
我们使用了四组不同的参数计算RSSI与距离的关系,实际测得第一组A=59,n=2.0比较合适。

六、结果分析等
1.功能解读:

我们的作品具有的功能如下:
使用彩屏显示各种信息,例如时间,温度湿度,RSSI值,距离值,震动报警,声光报警,给主机端报警请求,防丢牌功能显示儿童父母的信息以及住址信息。
温湿度采集:
我们直接采用了本次比赛的赞助商机智云的扩展板接入DFROBOT Bluno上,扩展板上有我们需要的温湿度采集器DHT11,震动马达,RGB led。极大地方便了我们功能的实现。




附录
一、MATLAB测试程序:
%subplot(2,2,1);
RSSI = 0:1:100;
A = 59;
n = 2.0;
d = 10.^((abs(RSSI)-A)/(10*n));
plot(RSSI,d,'b');
ylim([0 30]);
grid on
hold on
%grid minor

%subplot(2,2,2);
RSSI = 0:1:100;
A = 60;
n = 2.0;
d = 10.^((abs(RSSI)-A)/(10*n));
plot(RSSI,d,'m');
ylim([0 30]);
grid on
hold on
%grid minor

%subplot(2,2,3);
RSSI = 0:1:100;
A = 59;
n = 1.0;
d = 10.^((abs(RSSI)-A)/(10*n));
plot(RSSI,d,'c');
ylim([0 30]);
grid on
hold on
%grid minor

%subplot(2,2,4);
RSSI = 0:1:100;
A = 60;
n = 1.0;
d = 10.^((abs(RSSI)-A)/(10*n));
plot(RSSI,d,'r');
ylim([0 30]);
grid on
hold off
%grid minor
xlabel('-RSSI/dbm'),ylabel('Distance/m');
title('d = 10 pow ((abs(RSSI) - A) / (10 * n))');
legend('A=59,n=2.0','A=60,n=2.0','A=59,n=1.0','A=60,n=1.0');

我们使用了四组不同的参数计算RSSI与距离的关系,实际测得第一组A=59,n=2.0比较合适。

六、结果分析等
1.功能解读:

我们的作品具有的功能如下:
使用彩屏显示各种信息,例如时间,温度湿度,RSSI值,距离值,震动报警,声光报警,给主机端报警请求,防丢牌功能显示儿童父母的信息以及住址信息。
温湿度采集:
我们直接采用了本次比赛的赞助商机智云的扩展板接入DFROBOT Bluno上,扩展板上有我们需要的温湿度采集器DHT11,震动马达,RGB led。极大地方便了我们功能的实现。




附录
一、MATLAB测试程序:
%subplot(2,2,1);
RSSI = 0:1:100;
A = 59;
n = 2.0;
d = 10.^((abs(RSSI)-A)/(10*n));
plot(RSSI,d,'b');
ylim([0 30]);
grid on
hold on
%grid minor

%subplot(2,2,2);
RSSI = 0:1:100;
A = 60;
n = 2.0;
d = 10.^((abs(RSSI)-A)/(10*n));
plot(RSSI,d,'m');
ylim([0 30]);
grid on
hold on
%grid minor

%subplot(2,2,3);
RSSI = 0:1:100;
A = 59;
n = 1.0;
d = 10.^((abs(RSSI)-A)/(10*n));
plot(RSSI,d,'c');
ylim([0 30]);
grid on
hold on
%grid minor

%subplot(2,2,4);
RSSI = 0:1:100;
A = 60;
n = 1.0;
d = 10.^((abs(RSSI)-A)/(10*n));
plot(RSSI,d,'r');
ylim([0 30]);
grid on
hold off
%grid minor
xlabel('-RSSI/dbm'),ylabel('Distance/m');
title('d = 10 pow ((abs(RSSI) - A) / (10 * n))');
legend('A=59,n=2.0','A=60,n=2.0','A=59,n=1.0','A=60,n=1.0');我们使用了四组不同的参数计算RSSI与距离的关系,实际测得第一组A=59,n=2.0比较合适。

学习的过程是痛并快乐的,感谢ICKEY社区及DFRobot提供的DFRobot bluno,我们会更加优秀的成绩展示自己最好的作品
UEAL第2届电子设计大赛第四轮——儿童走失报警器图13

8A65E5C98C938A8BADED0A030899F987.jpg
47db7c6a02546cea49e7812f98fe3ec1.jpg
5899301D19C6BBB34036E59115355B41.jpg
图片4.png
图片9.png

dsweiliang  初级技神

发表于 2016-6-3 09:21:48

感谢分享
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail