UEAL第2届电子设计大赛第四轮——儿童走失报警
儿童走失报警器感谢ICKEY社区及DFRobot提供的DFRobot bluno,同时感谢技术支持耐心的解答。方案设计与论证
本次儿童走失报警器设计,主要基于DFRobot的Bluno M3开发板,其采用的是意法半导体集团生产的STM32F103RET6,这款处理器以ARM Cortex-M3为核心,工作在72MHz的频率下。与Arduino所使用的8位处理器相比,Bluno的处理器性能和硬件资源有了很大的提升,但是却有近似的成本,为电子积木扩宽了应用的空间。同时,Bluno板载了Ti的CC2540芯片,支持蓝牙4.0,CC2540是一个超低消耗功率的真正系统单晶片,它整合了包含微控制器、主机端及应用程序在一个元件上。CC2540结合一个优异的无线射频传送接收器及一个工业标准的加强型8051微控制器,它包括连接类比及数位感应器的周边,内建可程式的快闪记忆体,精确的无线射频讯号强度指示, 全速USB 2.0界面,内建AES-128加密引擎。数字外设21个通用型输出入接口, 2个USART (UART或SPI),全速USB 2.0,2个16位元及2个8位元计时器,专属的连接层计时器用于低功率蓝牙协定时脉。同时CC2540还肩负着一个重要作用。USB线直接接到CC2540上,通信指示灯在下方,我们可以了解,CC2540的固件一部分功能是用做下载协议转换以实现Arduino程序下载,另一部分是完成AT的命令控制,CC2540起到转换芯片的作用。
方案:发射端:官方网站上推荐的USB BLE-LINK V1.0 Bluno+微型充电宝,这样的组合将会十分小巧,便于儿童携带,同时接口利于扩展,电平兼容。对于后续发送低电压警告,也利于扩展。考虑到儿童操作的简单性,我们只留有一个按键在发射端,作为紧急联系。 +
USB BLE-LINK + 小型充电宝扩展部分模块
GPS模块
短信模块——西门子TC35
file:///C:/Users/lenovo/AppData/Local/Temp/msohtmlclip1/01/clip_image003.png
接收端:
主控+蓝牙:DFrobot Bluno M3显示:TFT全彩液晶我们考虑到儿童端操作不宜复杂,且由于我们只有一个小巧的Bluno M3,故我们本次设计将Bluno作为接收端,大部分功能均在接收端实现,实现社区LOGO、学校LOGO、循环显示,时间、日期的显示,距离报警,报警距离可调。参数计算
TI公司的CC2540,它支持4种发射功率选择:4dBm、0dBm、-6dBm和-23dBm,按无线电功率定义:LdBm=10lg(Pwr/1mW),以上4种分贝值换算成瓦特为:2.51mW、1mW、0.251mW和0.005mW,有效通信距离分别为:30米、10米、7米和3米。事实上,RSSI测距具有很大的缺陷,在本次大赛期间发现,存在着同一次连接下,位置发生改变,RSSI值不发生变化,容易出现不规律跳变现象,如3米时RSSI绝对值大于5米时RSSI绝对值,误差较大。重启Bluno后(包括重启STM32及BLE),同一位置的RSSI值变化较大。根据Rssi转换为距离公式:其中A可以看作是信号传输1米远时接收信号的功率,n是传播因子(它受障碍,温度和湿度等影响),r是节点之间的距离。当确定了常数A与n的值后,距离r就可以根据PR(dBm)计算出来。
RSSI采样值遵循以下特点:有个别的脉冲干扰引起极大值和极小值的出现,其他采样数据值沿平均值分布,比较适合的算法是:滑动防脉冲干扰平均滤波法。它的原理是,设有N个单位的队列,用新的采样值覆盖旧的采样值,去除队列中最大值和最小值后,再计算队列中采样数据的平均值。软件代码
分别为发送“+++”;蜂鸣器报警;报警距离四档可调。
[*]if(rssi == "-000"){
[*] digitalWrite(BEEP, LOW);
[*] delay(1000);
[*] digitalWrite(BEEP, HIGH);
[*] }
[*]
[*] if(rssi == "-070" || rssi == "-071" || rssi == "-072" || rssi == "-073" || rssi == "-074" || rssi == "-075" || rssi == "-076" || rssi == "-077" || rssi == "-078" || rssi == "-079" || rssi == "-080" ){
[*] digitalWrite(BEEP, LOW);
[*] delay(5000);
[*] digitalWrite(BEEP, HIGH);
复制代码
[*]Serial1.print("+");
[*] Serial1.print("+");
[*] Serial1.print("+");
复制代码
[*]if (buffer == "OK\r\n") {
[*] Serial1.println("AT+TXPOWER=4");
[*] reading = false;
[*] state = WAIT_TXPOWER_0;
[*] }
复制代码
[*]if ( buffer == "OK\r\n") {
[*] Serial1.println("AT+TXPOWER=0");
[*] reading = false;
[*] state = WAIT_TXPOWER_1;
[*] }
复制代码
[*]if ( buffer == "OK\r\n") {
[*] Serial1.println("AT+TXPOWER= -6");
[*] reading = false;
[*] state = WAIT_TXPOWER_2;
[*] }
复制代码
[*]if (buffer == "OKTXPOWER\r\n") {
[*] Serial1.println("AT+TXPOWER= -23");
[*] reading = false;
[*] state = WAIT_TXPOWER_3;
[*] }
复制代码
电路图
Bluno M3CC2540
STM32
POWER
蜂鸣器
低电平有效
TFT液晶CS:TFTLCD片选信号。WR:向TFTLCD写入数据。RD:从TFTLCD读取数据。D:16位双向数据线。RST:硬复位TFTLCD。RS:命令/数据标志(0,读写命令;1,读写数据)NEO-6M GPS模块EEPROM
NEO-6
接口
短信发送模块TC35
测试方法与数据
在测试中、 我们采用手机蓝牙BLE .0以及电脑蓝牙作为发射端,通过Bluno M3测试各部分功能。蓝牙测试:http://v.youku.com/v_show/id_XMTU4NDQyMTI3Mg==.htmlGPS测试:
结果分析
根据我们的实际RSSI-距离曲线,我们可实现超过3米后实现蜂鸣器报警,超过15米后,蜂鸣器持续响直至重新连接。开机后循环显示LOGO数秒后进入时钟界面。我们的报警距离可在20米(理论为30m)、10米、6米、3米四个范围可调。我们在发射端设置西门子TC35模块,可实现短信发送(需STC15+蓝牙4.0模块控制或另一块BLuno控制)
演示视频https://v.youku.com/v_show/id_XMTU4NDQxODE4NA==.html 感谢分享
页:
[1]