发布时间:2016-12-22 阅读量:6692 来源: 我爱方案网 作者: candytang
智能蓝牙(Smart Bluetooth)防丢器是利用蓝牙技术,通过距离变化来判断物品是否还控制在安全范围的设备。蓝牙技术本身是为了连接(比如蓝牙耳机,蓝牙键盘等)而并非防丢,手机是连接防丢器的终端和核心,一切寻物防丢,都是建立在手机的反馈和控制。蓝牙防丢器主要适用于手机、钱包、钥匙、行李等贵重物品的防丢,也可用于防止儿童或宠物的走失。
目前比较成熟的产品一般是采用蓝牙4.0技术,具有低功耗、双向防丢、自动报警等优点。虽然市场上该类产品种类繁多、层出不穷,但其核心构成一般包括:蓝牙4.0芯片、蓝牙芯片辅助电路、蓝牙天线、蜂鸣器、开关、电源等。
图1 蓝牙防丢器的主要构成
本文中我们先用一个相对简单但常用的蓝牙模块HC-05/HC-06进行蓝牙防丢器的制作。如下图该模块把天线、滤波电路、Soc、晶振都集成在了一起,当我们用的时候只要关注1、2、12、13、24、26这几个引脚就能实现比较完整的蓝牙通信功能,这样就为我们制作蓝牙防丢器节省了很多挑选元件、设计电路、焊接制板的功夫。
图 2 蓝牙模块1
由于考虑到很多读者在硬件方面还都是新手,初次拿到邮票边缘式引脚的模块会焊接不好,于是我们又找到了一款封装更好的蓝牙模块(其实就是把上面的模块加一个托,然后将VCC\GND\TXD\RXD四个关键的引脚引出)。当我们只是想把蓝牙模块作为标签时,只要在VCC和GND之间给它加上相应的电压就行了;当想用它进行无线数据传输时,这时TXD和RXD两个引脚就起作用了。
图 3 蓝牙模块2
下面开始制作一个简易的蓝牙防丢器
上面说了这么多了,那么我们的蓝牙防丢器的设计方案到底是什么样的呢?简单起见,咱么仅仅实现通过距离变化来判断物品是否还控制在你的安全范围内的具有核心功能的防丢器,对于节能功能、双向报警功能甚至是自拍功能咱们就先不考虑了。哈哈,可能说到这里大家还是对咱们要做的防丢器一点想法都没有,其实通过上面的铺垫楼主有信心大家可以在一分钟之内知道怎么完成它。
图4 简易蓝牙防丢器
相信很多看完上面图片同学会恍然大悟——不是嘛,只要将蓝牙模块接上相应的电源模块就能够做成一个简单的可以发出蓝牙信号的防丢器了!对的,由于我们没有加入复杂的通信功能,所以我们仅仅把蓝牙模块通上电做成一个蓝牙标签就可以了。但是大家不要高兴太早,没发现上面图片中手机屏幕里的应用还是一片空白吗?哈哈
如何找到并学习要用到的API ?
上面制作蓝牙防丢器的硬件部分让大家觉得没什么挑战性,那么接下来的东西可就有一定难度了!强烈建议大家着手了解安卓某个功能的应用时最好去安卓开发者社区,但是随着Google被屏Android Developer也不能被访问了。虽然在MIT网站上又找到了一个类似的网页,但是访问速度不是那么流畅,为了方便,LZ挑出了和本节相关的知识帮助大家理解和运用。
图 5 Android Developer页面
安卓蓝牙编程小知识
安卓平台支持蓝牙协议栈,允许一台设备和其他设备进行无线数据交换,当大家想使用蓝牙时可以通过调用相应的API实现功能。这些API提供的主要功能有:
△ 扫描搜索其他蓝牙设备(Scan for other Bluetooth devices)
△ 查询本地蓝牙适配器配对的蓝牙设备(Query the local Bluetooth adapter for paired Bluetooth devices)
△ 建立RFCOMM通道(Establish RFCOMM channels)
△ 连接其他设备(Connect to other devices through service discovery)
△ 与其他设备进行数据交换(Transfer data to and from other devices)
△ 管理多组连接(Manage multiple connections)
当准备在应用程序中使用蓝牙时,首先需要在manifest文件中包含BLUETOOTH和BLUETOOTH_ADMIN权限:
接着涉及蓝牙的操作主要有:1、开启蓝牙 2、关闭蓝牙 3、能被搜到 4、获取配对设备 5、传输数据。由于本节只涉及到搜索周边设备,所以配对并传输数据暂时不介绍。
安卓蓝牙编程主要操作
要想通过编程操作蓝牙设备,首先我们得了解一下有可供我们使用的相关类及其成员函数有哪些,如下图:蓝牙设备包括本地设备和远程设备,本地设备对应的类为BluetoothAdapter,远程设备对应的类为BluetoothDevice,两者的成员函数基本相同,接下来详细讲解。下面是蓝牙设备的相关函数。
打开本地蓝牙设备
我们要做带有蓝牙的应用,首先要保证用户的本地蓝牙设备是打开的,否则什么都不管直接使用搜索、连接、通信等函数肯定会得到和预期不一样的效果。但是有时候用户为了节省电池电量会把蓝牙关闭,那我们该怎么办呢?
其实,遇到这种情况大家也不用担心!请看下面的解决方案:其中第1行调用BluetoothAdapter的getDefaultAdapter()方法获得本地蓝牙设备,接着调用isEnabled()判断本地蓝牙设备是否被打开,如果被打开了就执行接下来的操作,否则可以发送Intent消息,请求打开本地蓝牙设备,接着待用户打开蓝牙后再进入接下来的操作。
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (!mBluetoothAdapter.isEnabled()) {
Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableIntent, REQUEST_ENABLE_BT);
} else {
nextOperation();
}
这时候有些同学可能要问了“你上面发送、请求、接着、然后说的挺轻巧,我怎么知道我发送完Intent消息后系统到底干了什么?用户又如何打开蓝牙的?应用程序又在哪里等待用户完成打开蓝牙事件,然后在哪里执行nextOperation()函数的?”下面将给大家详细介绍这一过程。由于篇幅限制,有兴趣的同学请加智能硬件QQ群:642391572,敲门暗号:我爱方案网,联系群主索要资料。
在万物互联与智能化浪潮席卷全球的今天,新唐科技以颠覆性创新奏响行业强音。4月25日,这场历时10天、横跨七城的科技盛宴在深圳迎来高潮,以"创新驱动AI、新能源与车用科技"为主题,汇聚全球顶尖行业领袖,首次公开七大核心产品矩阵,展现从芯片设计到智能生态的全链条创新能力,为半导体产业转型升级注入新动能。
在2025年北美技术研讨会上,台积电正式宣布其A14(1.4nm)工艺将于2028年量产,并明确表示无需依赖ASML最新一代High NA EUV光刻机。这一决策背后,折射出全球半导体巨头在技术路线、成本控制和市场竞争中的深层博弈。
随着AIoT技术的快速落地,智能设备对高性能、低功耗嵌入式硬件的需求持续攀升。华北工控推出的EMB-3128嵌入式主板,搭载Intel® Alder Lake-N系列及Core™ i3-N305处理器,以高能效比设计、工业级可靠性及丰富的接口配置,成为轻量级边缘AI计算的理想选择。该主板支持DDR5内存、多模态扩展接口及宽温运行环境,可广泛应用于智能家居、工业自动化、智慧零售等场景,助力产业智能化升级。
作为全球半导体沉积设备领域的龙头企业,荷兰ASM国际(ASMI)近日发布2024年第一季度财报,展现强劲增长动能。财报显示,公司当季新增订单额达8.34亿欧元(按固定汇率计算),同比增长14%,显著超出市场预期的8.08亿欧元。这一表现主要受益于人工智能芯片制造设备需求激增与中国市场的战略性突破,同时反映出半导体产业技术迭代与地缘经济博弈的双重影响。
随着汽车智能化加速,车载摄像头、激光雷达、显示屏等传感器数量激增,数据传输带宽需求呈指数级增长。传统国际厂商基于私有协议(如TI的FPD-Link、ADI的GMSL)垄断车载SerDes市场,导致车企供应链弹性不足、成本高企。2025年4月,纳芯微电子发布基于HSMT公有协议的全链路国产化SerDes芯片组(NLS9116加串器与NLS9246解串器),通过协议解耦、性能优化与供应链自主可控,为ADAS、智能座舱等场景提供高性价比解决方案,标志着国产车规级芯片从“跟跑”迈向“并跑” 。