BLE,Bluetooth Low Energy 也就是我们口说的「低功耗蓝牙」,是蓝牙技术联盟设计和销售的一种个人局域网技术。
相较经典蓝牙,低功耗蓝牙能在保持同等通信范围的同时显著降低功耗和成本。关键在于低功耗,满足了非常多的应用场景。大家想想自己手机开着蓝牙,掉电有多快!就知道:在一些设备中,低功耗有多么切确的需求了。
在医疗保健、运动健身、信标、安防、家庭娱乐等领域被广泛应用,特别这几年穿戴设备的火热,比如运动手环、智能跑步鞋等,就连共享单车早期也都是运用这技术,可惜现在说凉就凉了,不过手环还一直坚挺,特别是小 mi 手环。
BLE 技术可谓是 IoT 的功臣、先驱,在「万物互联」时代,在未来 5G 网络未全面铺开前,就算铺开了,我也相信 BLE 会占领一片小天小地。
跟时间打个赌,下一个风口就是万物互联,智能硬件设备将打开一片广阔的市场,我们拭目以待!软硬结合的人才需求也将会进一步扩大。
说了这么多,我们还是从技术人开发角度的出发,熟悉一下 BLE 技术的 coding 流程。
这里不得不佩服小龙哥手下的「小程序」,小而不平凡。它给我们使用 BLE 降低了很大的门槛,相信通过对小程序 BLE 的使用,会很大程度让我们理解 BLE 技术。
另外插一句,龙哥在 2019 微信公开课中分享,真是句句珠玑,非常推荐大家观看:
https://v.qq.com/x/cover/b86kk0n60chvn5j/b0029zsv8t9.html
说到小程序开发,最好的学习的资源,就是官方文档了。我们要相信「官方文档永远是最佳的学习资料」,但可能不是最适合。
打开文档,我们发现小程序给我们提供一些 API 来调用
总共关于蓝牙及低功耗蓝牙开发相关的 API 也就这么几个,不多,非常适合我们入门蓝牙开发。
低功耗蓝牙
wx.writeBLECharacteristicValue
wx.readBLECharacteristicValue
wx.onBLEConnectionStateChange
wx.onBLECharacteristicValueChange
wx.notifyBLECharacteristicValueChange
wx.getBLEDeviceServices
wx.getBLEDeviceCharacteristics
wx.createBLEConnection
wx.closeBLEConnection
蓝牙
wx.stopBluetoothDevicesDiscovery
wx.startBluetoothDevicesDiscovery
wx.openBluetoothAdapter
wx.onBluetoothDeviceFound
wx.onBluetoothAdapterStateChange
wx.getConnectedBluetoothDevices
wx.getBluetoothDevices
wx.getBluetoothAdapterState
wx.closeBluetoothAdapter
官方给的文档,对于没有接触过蓝牙开发的 Friend 可能比较难懂,因为它并没有按蓝牙开发的一般流程来罗列 API,我们过一遍 API 可能还糊里糊涂的,不知所以然,不知如何入手,文档描述也可能比较晦涩。
但很好的是,有例子、有 demo!学习一个技术,我觉得最快的方式过一次官方文档,跑一篇例子,反复琢磨、图文笔记。
所以我非常建议大家跑一下官方的例子,假如你装了微信开发工具,在官方文档中找到如以下图片红框中的文字,双击即可打开。
跟着 demo 的执行顺序,一边查阅相关的 API,走一遍下来,估计明白得七七八八了。一遍不行,就两遍!
这里有些坑,官方文档也给得非常清楚,不过在这里劝一下:大家看文档一定要耐住性子,认真仔细一字不漏的看完且起码知道怎么回事。如果能做到,相信百分之九十九的问题都不用在什么群里或到博客到处问、到处搜。
我这里简单画了一下开发的流程图,分享给大家,希望对有缘之人有帮助!
我是业余画流程图,画得不全,也不一定正确,只是按照我的个人能力,把大概的开发思路用流程图描述而已,并没有全部把代码体现在流程图中,望大家指正!
图片可能不是那么清晰,也没那么多套路,扫描下方百度云分享二维码即可获取高清 pdf 版本。在此只希望大家帮忙戳一下底部 ad,支持一下。
本文章首发于公众号「 MoTec 」,公众号定期特别推送 Java、Python 干货、共享网络资源、一起讨论技术、思维认知、投资理财,一起成长、To Be Better。