[原创] 【TI首届低功耗设计大赛】贵物管家

littleshrimp   2014-12-28 13:41 楼主
TI首届低功耗设计大赛】贵物管家
前些天参加拍卖会,花5000万买了两个黑瑙球,因为太“值钱”撂家里不放心,每天要带着上班,晚上再带回去。做公交车又怕被偷,挺纠结的。后来正好看到有金钢狼活动,我做了一个针对研发人员的实验平台,又借着这个平台做了一个贵物管家系统。
这个系统由传感前端和服务器组成,重点在传感前段上,服务器我简单使用LaunchPad开发板加CC1101模块+电脑做了一个,服务器上的CC1101接收传感前端发来的报警数据,然后传送给电脑,电脑上使用C#写了一个服务,收到报警数据后通过预先设置好的邮件信息将报警数据发送到我的邮箱。
传感前段使用ADXL362这颗世界上最低功耗的加速度传感器和MSP430FR5969这颗世界上最低功耗的MCU配合CC1101射频模块完成。
单片机定时唤醒采集加速度数据,发现加速度数据大于上次数据到触发阈值时通过CC1101模块将加速度数据发送给服务器。
做好的贵物管家装上钮扣电池,放到我装黑瑙球的宝盒里,这样我就可以放心的把盒子放在家里,如果有人动了我的宝盒,手机就会收到邮件提醒,使用QQ邮件绑定微信后还会收到微信提醒,绑定到手机邮箱上还能收到短信提醒。真安全
明天上班就可以一心工作,再也不用担心我的宝球了
这个设计基于我的上一个贴子
TI首届低功耗设计大赛】第二个外设程序 MSP430FR5969读取ADXL362数据通过CC1101发送
https://bbs.eeworld.com.cn/thread-453485-1-1.html
写好的程序代码量非常小,这是在上一个贴子的基础上增加的判断代码
  1. ADXL362_GetXyz(&xAxis, &yAxis, &zAxis);
  2. if(abs(xAxisSnapshoot - xAxis) > TRIGGER_THRESHOLD ||
  3. abs(yAxisSnapshoot - yAxis) > TRIGGER_THRESHOLD ||
  4. abs(zAxisSnapshoot - zAxis) > TRIGGER_THRESHOLD
  5. )
  6. {
  7. memset(str_buffer,0,sizeof(str_buffer));
  8. sprintf(str_buffer,"x:%d,y:%d,z:%d\r\n",xAxis,yAxis,zAxis);
  9. send_packet_string(str_buffer);
  10. CC1101_SetSleep();
  11. }
  12. xAxisSnapshoot = xAxis;
  13. yAxisSnapshoot = yAxis;
  14. zAxisSnapshoot = zAxis;
简易服务器使用C#开发,主函数代码如下:
  1. public void run()
  2. {
  3. try
  4. {
  5. mySerialPort.DataReceivedEvent += new 接收数据发送EMAIL.MySerialPort.DataReceivedEventHandler(DataReceivedHandler);
  6. new Thread((ThreadStart)delegate
  7. {
  8. while (true)
  9. {
  10. if (emailCounter < 10)
  11. {
  12. emailCounter++;
  13. }
  14. Thread.Sleep(1000); //邮件发送计数器
  15. }
  16. }).Start();
  17. new Thread((ThreadStart)delegate
  18. {
  19. Console.WriteLine(SERIAL_PORT+"连接中……");
  20. while (!mySerialPort.Open())
  21. {
  22. Thread.Sleep(1000);
  23. }
  24. Console.WriteLine(SERIAL_PORT + "连接成功!");
  25. while (true)
  26. {
  27. //int [] val = mySerialPort.ReadInt16(true);
  28. //接收串口数据
  29. Console.WriteLine("数据接收中……");
  30. string str = mySerialPort.ReadLine();
  31. Console.WriteLine("收到数据:" + str);
  32. if(emailCounter >= 10) //两封邮件间隔不能小于10秒
  33. {
  34. emailCounter = 0;
  35. email.SendEmail("eeworld_com@163.com", "有人动了你的宝贝", string.Format("加速度值:{0}",str));
  36. Console.WriteLine("邮件发送成功!");
  37. }
  38. }
  39. }).Start();
  40. }
  41. catch (Exception ex)
  42. {
  43. Console.WriteLine(ex.Message);
  44. }
  45. }
  46. 下边附上图片和
视频,视频还有俺的配音呢,第一次录视频时说话有点非常紧张
这个是介绍模块的功耗情况的视频
这个是介绍贵管系统的视频
这些是相关图片
IMG_20141228_104448135.jpg
IMG_20141228_104451774.jpg
IMG_20141228_104526535.jpg
本帖最后由 littleshrimp 于 2014-12-28 14:17 编辑
虾扯蛋,蛋扯虾,虾扯蛋扯虾

回复评论 (5)

赞楼主,整个一套系统硬件带软件很棒,只是,,,当报警有人动了你的宝球后,你如何确定是谁?然后怎么找回?。。。。这一套东西只能告知“动了”吧 本帖最后由 aibing 于 2014-12-28 18:46 编辑
点赞  2014-12-28 18:43
引用: aibing 发表于 2014-12-28 18:43
赞楼主,整个一套系统硬件带软件很棒,只是,,,当报警有人动了你的宝球后,你如何确定是谁?然后怎么找回?。。。。这一套东西只能告知“动了”吧
你说的对,所以这只能说是整个安防系统中的一部分吧。完整的系统可能需要有110联动,网络录像,人脸捕获,必要时还要在俺的宝盒上装上高压电
虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2014-12-28 19:02
引用: littleshrimp 发表于 2014-12-28 19:02
你说的对,所以这只能说是整个安防系统中的一部分吧。完整的系统可能需要有110联动,网络录像,人脸捕获,必要时还要在俺的宝盒上装上高压电
嗯啊,哈,很不错~
点赞  2014-12-28 19:07
呵呵,很有意思的应用啊
So TM what......?
点赞  2014-12-28 21:49
赞一个   话说楼主都有5000万买玩具,干嘛不直接包了公交车
点赞  2014-12-29 11:59
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复