DL张 发表于 2018-4-19 13:20:50

钱包小管家

本帖最后由 DL张 于 2018-4-19 13:28 编辑

                  钱包小管家                   制作说明文档(很多东西显示不出来,请下载下面的pdf打开查看)
                                                          重庆育才中学——张德邻 指导教师——沈菊颖创意来源:生活中,许多人经常丢三落四,出门之前总是找不到自己的钱包;有些月光族从来不懂得理财,不经意间钱包里的钱就被他用光了;有些人虽然有记账的习惯,但也会出现漏记或者记不清某一笔开销的情况;还有些人走在路上钱包从口袋里滑落或者被扒手扒走,她当时却不知道。基于此,我设计了一套集防丢、记账、定位功能于一身的钱包管理系统。有了这个钱包小管家,钱包管理不再愁。
功能说明:钱包小管家能记录您钞票的进进出出,能记录您每天的东奔西跑。她是一个钱包卫士,防丢利器;她是一个钱包小饰品,记账小助手;她是一个轻薄小配件,寻物好帮手。她给您带来省心的体验。
l 防丢报警——“嘀嘀,又忘记我了”手机和钱包小管家建立蓝牙连接(Bluno beetle集成蓝牙4.0功能)后,通过使用手机APP,24小时贴身保护您的财产,钱包掉了手机报警,手机掉了钱包报警(加速度传感器的值较大/蓝牙非正常断开,蜂鸣器发出报警声/手机报警),实现财产双保险。
l 自动记录消费时间地点——“叮咚,您又花钱了”当您从口袋里掏出钱包,打开钱包刷卡、消费,您的手机就会叮咚一声,弹出一条消息,提示您的钱包打开了(通过光线传感器识别是否打开钱包),而且手机APP会自动记录下您的使用时间(通过APP INVENTOR里的计时器实现),并获取当前位置的纬度,经度和地址名称(通过APP INVENTOR里的位置传感器实现)。

file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wpsC090.tmp.jpg










l 无忧记账file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC091.tmp.jpg

您只需要在空闲的时候打开手机APP,根据自动记录的钱包使用时间和地点,轻松让您记起您的每一笔消费,并一次性记账。还可以输入日期查询往日的账本。






















l 定位寻找——“嘀嘀,我在这里,我在这里”有时候在室内也会遇到找不到钱包的情况,这时,打开手机APP,点击“钱包钱包你在哪”,铃声响起,钱包无处遁身,让您免除找不到钱包的麻烦。file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC092.tmp.jpg





















l 账本查询主人这是您当日的账本,请过目≧∇≦ file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC093.tmp.jpg








































l 免打扰设置——“我不打扰您了,我先休息了”当您在公司或在家里的时候,您不想因为频繁走动导致反复的断线报警,那么您可以将正常模式切换到勿扰模式,在这个时间内,会屏蔽手机和钱包小管家的全部报警,除了打开钱包时的通知消息。file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC094.tmp.jpg






l 丢失地点记录——“嗨,我可能被落在这里了”当手机和钱包小管家断开连接时,手机会记录下最后一次断开连接的时间和地点,当您回家后发现钱包不见了,请别紧张,请打开手机APP看看,它最后一次断开的位置有可能在饭店或者朋友家里。即使在勿扰时间段里,管家依旧会默默地帮您记录下断线时间和地点。
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC095.tmp.jpg

























硬件清单:
序号                                  名称       数量
            1                        DFRobot Bluno beetle1
            2模拟环境光线传感器      1
            3             Gravity:I2C LIS2DH 三轴加速度传感器      1
            4                              数字无源蜂鸣器      1
            5                        USB充电线 2.0扁插头      1
            6               DJMY 603040800mAh 3.7V锂电池      1
            7                                       导线      9
之所以选择Bluno beetle作为主控器是因为它只有SD卡大小,集成蓝牙4.0功能,满足可穿戴电子应用的需求。使用模拟环境光线传感器识别钱包是否打开,使用三轴加速度传感器来检测钱包是否掉落,数字无源蜂鸣器起到报警提示的作用。
制作过程:(1) 电路连接file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC0A6.tmp.jpg





传感器                              主控板
加速度传感器                  对应Bluno Beetle管脚
                                 VCC                                  5V
                                 GND                                 GND
                                  SCL                                  SCL
                                  SDA                                  SDA
                  模拟环境光线传感器                  对应Bluno Beetle管脚
                                 VCC                                  5V
                                 GND                              GND1
                           ANALOG                                  A0         
                            无源蜂鸣器                  对应Bluno Beetle管脚
                                 正极                                  D4
                                 负极                                 GND
   DJMY 603040800mAh 3.7V锂电池                  对应Bluno Beetle管脚
                                 正极                                  VIN
                                 负极                              GND2

(2)用Solidworks建立3D模型钱包小管家分为主体和盖子两个部分,主体和盖子的连接为滑盖连接主体部分长65mm宽65mm高20mm file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wpsC0A7.tmp.jpg
中间凸出来的棱是为了滑盖连接而设计的
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC0A8.tmp.jpg

中间的小孔为光线传感器的透光孔长8mm宽6mmfile:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC0A9.tmp.jpg





















盖子部分长63mm宽61mm高20mmfile:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC0AA.tmp.jpg

























file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wpsC0BA.tmp.jpg




凹槽为滑盖结合而设计file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC0BB.tmp.jpg















(3)连接安装
1.规划每个部件的位置file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC0BC.tmp.jpg






























2用热熔胶固定各部件file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC0CD.tmp.jpg























3. 焊接使用可调温式电烙铁和直径1mm焊锡丝,焊接温度500摄氏度。file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC0CE.tmp.jpg


























file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wpsC0CF.tmp.jpg
安装完成file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC0D0.tmp.jpg






































Arduino 代码编写(Arduino IDE)file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC0E0.tmp.png             各部分功能
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC0E1.tmp.pngfile:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC0E2.tmp.png

file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC0E3.tmp.pngfile:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC0E4.tmp.pngfile:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC0E5.tmp.pngfile:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC0E6.tmp.pngfile:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC0F7.tmp.png



检测钱包是否掉落    检测钱包是否被打开   寻找报警         断线报警

一.检测钱包是否掉落钱包小管家一直在检测钱包在Z轴(竖直方向)上的加速度值,当钱包掉落时,钱包首先会进行一段近似于自由落体的运动,然后猛的撞向地面。如果检测到的值达到了我设定的阈值,钱包就会报警,然后发送字符串”2”给手机,手机接收到后也会报警。代码:#include <Wire.h>#include <DFRobot_LIS2DH12.h>         //调用加速度传感器所需要的函数库

DFRobot_LIS2DH12 LIS;
void setup(){Wire.begin();Serial.begin(115200);               //设置串口波特率115200while(!Serial);delay(100);
}
void loop(){acceleration();                     }
/*! *@brief Print the position result. */void acceleration(void)               //调用函数库{int16_t x, y, z;delay(100);LIS.readXYZ(x, y, z);LIS.mgScale(x, y, z);      //X,Y,Z为加速度传感器所测得3个轴的值,但这里只需要Z轴的值 if (z >= 1050) {                delay(100);                if (z >= 1050) {         //检测是否自由落体运动      delay(100)                  if(z>=2000){      //检测是否撞击地面
      Serial.println("2");    //如果是,向手机发送字符串”2”      for (int i = 0; i <= 180; i = i + (1)) {      tone(4,2000 + 1000 * sin(i / 180.0 * 3.14159));      delay(2);          //管脚为四的蜂鸣器发出报警声      }      
   }
    }   }
二.检测钱包是否被打开读取光线传感器的值,来判断钱包是否被打开,如果打开则发送字符串”1”给手机。代码:void setup()
{
Serial.begin(115200);               //设置串口波特率115200}
void loop()
{if (analogRead(A0) >= 100) {
    delay(2000);                      //防抖
    if (analogRead(A0) >= 100) {
      Serial.println("1")                //如果模拟环境光线传感器输入的值大于100则向手机发送字符串”1”    delay(10000)                      //避免过多判断已打开钱包
}}}三.寻找报警读取串口的值来判断此时是否在寻找钱包,如果是则蜂鸣器发出报警声。代码:String item;                           // 定义item为字符串
void setup(){Serial.begin(115200);               //初始化串口波特率为115200item = "0";                         //随便给item赋的值,无任何意义pinMode(4, OUTPUT);                //定义数字管脚4为输出管脚}
void loop(){if (Serial.available() > 0) {            //串口是否有数据可读?    item = Serial.readString();         //如果串口有数据可读,将“item”赋值为串口读取到的数据    if (item == "3") {                   //如果“item”=3,说明此时正通过手机寻找钱包      for (int i = 0; i <= 180; i = i + (1)) {      tone(4,2000 + 1000 * sin(i / 180.0 * 3.14159));      delay(2);                      //蜂鸣器报警      }    } else if (item == "4") {            //如果“item”=4,说明此时正通过手机控制管家不再发出声音      noTone(4);                     //蜂鸣器停止报警    }
}
}四.断线报警当手机钱包相距过远(超过5m)蓝牙连接就会中断,串口就会断开,蜂鸣器报警代码:void setup()
{Serial.begin(115200);}void serialEvent() {               //当串口中断时,即手机和钱包相距过远蓝牙断开时执行for (int i = 0; i <= 180; i = i + (1)) {      tone(4,2000 + 1000 * sin(i / 180.0 * 3.14159));//蜂鸣器报警      delay(2); }}手机APP设计使用APP inventor制作:file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC0F8.tmp.pngfile:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC118.tmp.pngfile:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC119.tmp.pngfile:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC11A.tmp.pngfile:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC12B.tmp.pngfile:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC12C.tmp.pngfile:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC13C.tmp.pngfile:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC13D.tmp.pngfile:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC14E.tmp.png                      Smart Wallet APP





防丢报警          账本管理                足迹追踪               寻找钱包
一.防丢报警(1)掉落报警当钱包掉落时,钱包小管家发送字符串“2”给手机,手机接收到后报警。file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC14F.tmp.jpg


















(2)断开报警当手机和钱包小管家的连接处于非正常断开状态(通过连接状态的文本来判断),手机报警。file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC150.tmp.jpg













二.账本管理(1)自动记录账本当钱包被打开时小管家会发送字符串“1”给手机,手机读取此时的时间、位置等信息然后将信息追加到一个列表里面;并且弹出对话框提示钱包被打开了。file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC151.tmp.jpg file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC152.tmp.jpg
(2)完善和保存账本当用户点击“完善今日账本” 时,将列表里的数据一个个地展示到列表显示框里。
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC163.tmp.jpg










效果图:file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC164.tmp.jpg
































用户根据列表显示框的时间、位置信息在文本输入框中输入支出或收入的金额来完善账本,再点击“完善下一条”进行下一条的完善。此时将文本输入框内的数据与列表显示框内的数据合并,追加在另一个列表里。列表显示框的数据再替换为下一条的数据。file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC165.tmp.jpg
用户完善好后点击“保存今日账本”按钮,此时调用微数据库来保存已完善账本的数据,调用计时器读取此时的年月日作为保存的标签。file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC166.tmp.jpg














(3)查询账本既然有完善账本功能,那么也应该有查询账本功能:在对应的文本输入框中输入要查询的日期,点击查询按钮,就会调取相应日期的账本用列表的方式展现给你。file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC167.tmp.jpg

效果图: file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wpsC196.tmp.jpg三.足迹追踪(1)记录足迹每当位置发生改变时手机都会记录下改变的位置信息,追加在列表里,然后再保存在微数据库里。file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC1A7.tmp.jpg










用户点击“保存今日足迹”按钮,调用微数据库保存,调用计时器获取时间作为标签。file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wpsC1A8.tmp.jpg(2)查询足迹用户在文本输入框内输入要查询的日期,再点击查询按钮即可查询 file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wpsC1A9.tmp.jpg
效果图:

file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wpsC1AA.tmp.jpg



四.寻找钱包有时候在室内也会遇到找不到钱包的情况,这时,打开手机APP,点击“钱包钱包你在哪”,铃声响起,钱包无处遁身。


file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wpsC1BB.tmp.jpg
当“钱包钱包你在哪”被点击时,手机就会发送字符串”3”给小管家,小管家接收到后就会使蜂鸣器发出声音。




file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC1BC.tmp.jpg 找到钱包后点击“钱包钱包你够了”,小管家的铃声就会停止。当“钱包钱包你够了”被点击时发送字符串”4”给小管家,小管家接收到后就会使蜂鸣器停止发出声音。




















蓝牙连接此作品的所有功能都是建立在蓝牙连接的基础上的,所以蓝牙连接的介绍必不可少。
由于后面与bluno beetle通讯均需要使用地址,因此首先初始化2个全局文本变量:
ble_service_uuid为蓝牙服务的地址,由bluno固件定义,不可修改,固定为0000dfb0-0000-1000-8000-00805f9b34fb;
ble_characteristic_uuid为设备通讯地址,由bluno固件定义,不可修改,固定为0000dfb1-0000-1000-8000-00805f9b34fb。
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC1BD.tmp.jpg App打开时调用Activity活动启动器开启蓝牙获取权限并扫描周围蓝牙设备:
file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wpsC1BE.tmp.jpg




蓝牙打开后接下来需要打开设备列表给用户选择。点击连接与断开按钮时如果显示为“连接Bluno“说明当前蓝牙是断开的,则停止扫描周围蓝牙设备,并弹出一个选择框显示当前搜到的周围的蓝牙设备列表。如果点击按钮时显示为“断开Bluno“说明当前蓝牙已连接,则断开当前连接的蓝牙。file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC1BF.tmp.jpg


当用户点击列表选择了某个设备后,就可以连接这个设备了:选择列表的第1到17项为设备的MAC地址,连接这个地址的设备。file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC1C0.tmp.jpg 建立蓝牙连接之后,需要使用定时器扫描是否接收到数据(从小管家传递过来的),如果有数据就读取数据并处理。我们设置的计时器时间为500ms,因此每500ms会扫描一次是否接收到数据,此数据若太小会导致发送的数据丢包。file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC1C1.tmp.jpg







接收到数据后,就对数据进行相应的处理。file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC1D1.tmp.jpg



如果蓝牙处于断开状态,调用对话框显示未连接;如果蓝牙处于连接状态,随时准备发送数据。file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsC1F1.tmp.jpg








DL张 发表于 2018-4-19 13:21:31

天哪,我的图片不见了

DL张 发表于 2018-4-19 13:21:56

为什么图片上传不起呢

1973742214 发表于 2018-4-21 11:37:41

我也发现了

1973742214 发表于 2018-4-21 11:38:26

你看下能不能在回复里发图片试试{:5_157:}

20060606 发表于 2020-8-11 05:25:28

哈哈哈哈哈哈
页: [1]
查看完整版本: 钱包小管家