ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:1.12MB ,
资源ID:20009480      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20009480.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微信小程序蓝牙温度数据采集Word下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微信小程序蓝牙温度数据采集Word下载.docx

1、json文件不是必须的 一般情况下我们只需要用全局配置的 app.json文件配置就可以了。在图中还有一个utils的目录:可以看出utils和pages文件是并列的,所以他就不代表页面的信息了,里面只有一个js文件。这个js文件其实就是把代码模块化了,已经有的代码是将日期的转换封装好了,直接引入使用就可以了。最后剩下一系列app的文件,app.js app.wxss app.json代表的信息和上面的pages里面的页面文件夹中的其实差不多,只是pages里面的代表的仅仅是某个界面的配置,而app的代表的是这个项目的配置。找一个官方DEMO测试wx.getBLEDeviceServices(

2、Object object)滚动到最后面:点击“在开发工具中预览效果”,导入代码片段:因为涉及到蓝牙硬件,所以不能用模拟器调试,下面我们把这个代码片段添加到前面创建的项目中。图片位置在pages下面建一个文件夹images,把图片集中放在这里。添加页面下面我们添加一个目录scanble和一组4个页面文件scan,我们不用去创建scan页面相关的文件scan.js、scan.wxss和scan.wxml,点击打开app.json文件就可以自动创建一个小程序空白页面。app.json是一个数组,由pages和window组成。找到pages数组,它里面所存放的就是一个个页面的名称了,如图:我们只需

3、要在Pages中加上“pages/scanble/scan”,并在前面用一个逗号隔开数组元素:pages数组里面,哪个路径在第一个,就先显示那个路径对应的界面。保存(Ctrl+s)之后开发工具会自动帮我们创建文件夹和其中的4个scan页面文件:app.json文件中的windows用于设置小程序的状态栏、导航条、标题、窗口背景色。修改导航栏标题将“WeChat”改为“传感器数据采集”,保存(trl+s),模拟器界面自动刷新。修改scan页面代码把导入的代码片段index页面的4个文件内容复制到相应的scan页面代码中。页面跳转前面我们说过了,pages数组里面,哪个路径在第一个就先显示那个路径

4、对应的界面,index在第一个,所以小程序先显示页面index.wxml,我们再转到scan.wxml。为了实现点击跳转,我们把“Hello World”改造成“开始”按钮。修改index.wxml:修改index.wxss:效果:添加事件bindtap,它网站开发中的click事件一样,都是点击时触发的事件,我们把它写在矩形框的那个view标签里面:bindtap将事件绑定到组件上面,绑定了之后点击组件可以触发这个函数。bindtap=“go”的意思就是,当点击绑定的view时触发一个事件,这个事件名称叫做go,我们需要去index.js文件中去编写go事件。进入index.js文件中,找到

5、page,在“/事件处理函数”的最后添加go函数:与前后的函数用逗号分隔。真机调试(iPhone、安卓手机都可以)因为涉及到蓝牙硬件,所以不能用模拟器调试。点击“真机调试”,或者“预览”。如果不需要调试,只是测试,用“预览”要快一些。用微信扫码,验证通过后还需要登录“小程序账号”补充一些信息,按提示做就行。在“小程序账号”中可以设置和修改小程序图标和名称等信息:我已经设置好了,点击“查看详情”:开始真机调试后小程序会下载到你的微信中,可以反复测试:点击我们的小程序:点击“开始”,显示scan.wxml页面,点击“开始扫描”:左边是苹果手机,右边是安卓手机。扫描到3个蓝牙外围设备,第一个设备bl

6、e-temp就是我们的树莓派蓝牙设备。当然要看到这个设备先要按照我的文章树莓派蓝牙温度传感器,将树莓派温度传感器运行起来:4.扫描控制,获取数据为避免占用过多篇幅,下面只说明要修改的代码,源代码请看官方DEMO。3.1 在scan.wxss中添加.scan_btn width: 100%; position: fixed; bottom: 30rpx;.btn margin-top: 450rpx; background: #14a1fd; color: #fff; border-radius: 70rpx;3.2 修改scan.wxmlview class=devices_summary已发

7、现 devices.length 个外围设备:/viewscroll-view class=device_list scroll-y scroll-with-animation item.nametext style=10px;#14a1fd;item.deviceIditem.RSSIdBmview style=14pxitem.dateitem.tempCview class=scan_btnbutton class=btn bindtap=scanCtrlscaningStr单引号,双引号双引号会搜索引号内的内容是不是有变量,有则输出其值,没有则输出原有内容。所以输出纯字符串的时候用单引

8、号比双引号效率高,因为省去检索的过程。3.2 扫描控制在scan.wxml中bindtap=在scan.js中添加点击事件响应函数 / 开始/停止扫描 scanCtrl(e) if (this.data.scaningStr = 停止扫描) this.stopBluetoothDevicesDiscovery() / 停止扫描 else this.openBluetoothAdapter() ,停止扫描 stopBluetoothDevicesDiscovery() this._discoveryStarted = false wx.stopBluetoothDevicesDiscovery(

9、) this.data.scaningStr = 开始扫描 this.setData( scaningStr: this.data.scaningStr )开始蓝牙设备扫描 startBluetoothDevicesDiscovery() if (this._discoveryStarted) return this._discoveryStarted = true wx.startBluetoothDevicesDiscovery( allowDuplicatesKey: true, success: (res) = /console.log(startBluetoothDevicesDis

10、covery success, res) this.onBluetoothDeviceFound()发现了蓝牙设备 onBluetoothDeviceFound() wx.onBluetoothDeviceFound(res) = res.devices.forEach(device = if (!device.name & !device.localName) if (device.name != ble-temp & device.localName ! return / 过滤名字不是 ble-temp 的设备 const objDevice = / 重新构造一个device,添加温度 o

11、bjDevice.deviceId = device.deviceId objDevice.localName = device.localName objDevice.name = device.name objDevice.RSSI = device.RSSI let dateSec = Date.now() / 取手机系统时间秒 let date = new Date(dateSec) / 取手机系统时间 objDevice.date = util.formatTime(date) objDevice.advertisData = device.advertisData let adDa

12、taStr = ab2hex(device.advertisData) console.log(广播包数据: + adDataStr) objDevice.temp = getTemp(adDataStr)温度: + objDevice.temp) let foundDevices = this.data.devices let idx = inArray(foundDevices, deviceId, device.deviceId) / 找到当前deviceId对应的i if (idx = -1) tempData = tempData + objDevice.deviceId + dat

13、eSec + objDevice.temp this.data.devices.push(objDevice) / 如果this.data.devices没有找当前的deviceId,就添加一个新的 if (this.data.devicesidx.temp != objDevice.temp) / 不记录重复的数据 this.data.devicesidx = objDevice / 如果在inArray函数中找到了当前的deviceId,就更新 console.log(温度数据: + tempData) devices: this.data.devices添加函数和变量注意,根据Page(

14、来判断下面的函数和变量应该写在什么位置。/ 从广播包中取温度数据function getTemp(adDataStr) var temp = adDataStr.substring(4, adDataStr.length) var temperature = temp1 + temp3 + . + temp5 + temp7 / 去掉前导0,加小数点 return temperature/ 声明变量var tempData = const util = require(././utils/util.js)Page( data: , connected: false, chs: ,请对照官网DE

15、MO源代码看。3.3 真机调试为了看到程序运行时的中间结果,我们用真机调试一下:对于简单的修改,如果不需要看中间结果,可以用预览进行测试,比真机调试节省时间。“真机调试”窗口:console.log(tempData:这3条调试语句将程序运行的中间结果显示出来。手机显示:注意,苹果手机显示的是设备ID,安卓手机显示MAC。5.历史数据展示我们已经将数据缓存到了变量tempData中,为了便于观察数据的变化,下面我们将tempData中的数据用列表和曲线显示。4.1 创建一个新的页面display这个操作我们已经很熟悉了,在app.json中添加一行 pages/displays/display

16、4.2 写页面代码display.wxss.back-img 10%; none; margin-left: 5px;.canvas height: 250px;.device_list margin: 5rpx 5rpx; 0; border: 1rpx solid #EEE; 5rpx; 500rpx;/*定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/:-webkit-scrollbarwidth: 10px;height:background-color: #ffffff;/*定义滚动条轨道 内阴影+圆角*/-webkit-scrollbar-track-webkit-box-s

17、hadow: inset 0 0 10px rgba(0,0,0,0.3);border-radius: yellow;/*定义滑块 内阴影+圆角*/-webkit-scrollbar-thumb inset 0 0 10px rgba(0,0,0,.3); #ff5500;display.wxml100rpx;#eee;#38B0DE;image class=back-img mode=widthFix src=./images/backs.jpgback/imagefont-weight:bold;margin-right:deviceIdcanvas canvas-id=lineCanv

18、as disable-scroll=truecanvas bindtouchstart=touchstart bindtouchmove=touchmove bindtouchend=touchend/canvas50rpx;共 amount 条记录 scroll-y=true scroll-into-view=100idatacontent14px;item.samplingTime微信小程序wx-charts图表插件显示曲线需要下载wx-charts,网址解压后,把dist里面的wxcharts.js或者wxcharts-min.js放在小程序的文件夹里,在当前页面引用文件:const w

19、xCharts = require(././utils/wxcharts-min.js在网址上看README.md,有详细的使用说明。带参数可返回页面跳转点击扫描到的一个设备,scan.wxml发送点击事件:bindtap=在scan.js中写响应代码:前面我们用: wx.redirectTo( url:./scanble/scan进行页面跳转。跳转还有一个方法叫做wx.navigateTo,与wx.redirectTo的区别是:wx.navigateTo跳转到一个应用内的某个页面,还保留着当前页面,可以用wx.navigateBack 返回,wx.navigateTo还可以带参数。wx.re

20、directTo关闭当前页面,跳转到另外一个页面。在scan.js中我们用wx.navigateTo: / 数据展示 displayData(e) const deviceId = e.currentTarget.dataset.deviceId / 传递的参数可返回跳转 wx.navigateTo(./displays/display?ideviceId= + deviceId + tempData= + tempData用wx.redirectTo跳转会关闭当前页面,跳转页面后不能返回上一页,这样我们就看不到其他设备的数据了。所以我们改用wx.navigateTo函数,它在跳转时保留当前页面,使用wx.navigateBack可以返回原页面。下面的语句传递了2个参数deviceId和tempData。url: + de

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1