微信小程序与低功耗蓝牙通信-往硬件端发送数据(三)

2023-11-06

准备工作:
软件:微信小程序
硬件:
蓝牙设备:hc-09
单片机:stm32
微信小程序往硬件端发送数据,对应的函数是wx.writeBLECharacteristicValue,他的参数是:(对应的下面的参数获取有2种获取方式(1):通过硬件的at指令获取,(2)也可以通过微信小程序特征值获取)

deviceId:"2C:AB:33:33:94:08",
serviceId:"0808FF00-0808-0A09-0807-060504030201",
characteristicId:"0808FF01-0808-0A09-0807-060504030201",

value: buffer(往过传数据的类型是buffer,必须是buffer,不然传数据失败)
具体如下面的代码

let buffer = new ArrayBuffer(1)
let dataView = new DataView(buffer)
dataView.setUint8(0,0x23)

参数获取方式:
deviceId:“2C:AB:33:33:94:08”,
serviceId:“0808FF00-0808-0A09-0807-060504030201”,
characteristicId:“0808FF01-0808-0A09-0807-060504030201”,
(1)wx.getBLEDeviceCharacteristics获取serviceId、characteristicId
deviceId 根据 getBluetoothDevices 或 onBluetoothDeviceFound 接口中获取

wx.getBLEDeviceCharacteristics({
                // 这里的 deviceId 根据  getBluetoothDevices 或 onBluetoothDeviceFound 接口中获取
                // deviceId: that.data.connectedDeviceId,
                deviceId: "deviceId",
                // 这里的 serviceId 根据  getBLEDeviceServices 接口中获取
                serviceId: "serviceId ",
                success: function(res) {
                  for (var i = 0; i < res.characteristics.length; i++) {
                    if (res.characteristics[i].properties.notify) {
                      console.log("第" + i)
                      console.log(that.data.services[0].uuid);
                      console.log( res.characteristics[0].uuid);
                      that.setData({
                        notifyServicweId: that.data.services[0].uuid,
                        notifyCharacteristicsId: res.characteristics[0].uuid,
                      })
                    }
                  }
                  console.log('device getBLEDeviceCharacteristics:', res.characteristics);
                  
                  that.setData({
                    msg: JSON.stringify(res.characteristics),
                  })
                },
                fail: function(res) {
                  console.log("fail" + res);
                },
                complete: function() {
                }
              })

(2)通过at指令获取
所有参数拿到及数据类型准备完毕进行数据发送
js

   var that = this
        let buffer = new ArrayBuffer(1)
        let dataView = new DataView(buffer)
        dataView.setUint8(0,0x23)
        // var typedArray = new Uint8Array(hex.match(/[\da-f]{2}/gi).map(function (h) {
        //   return parseInt(h, 16)
        // }))
        // console.log("二进制数据:"+typedArray)
        // var buffer1 = typedArray.buffer
        wx.writeBLECharacteristicValue({
          
          deviceId:"2C:AB:33:33:94:08",
          
          serviceId:"0808FF00-0808-0A09-0807-060504030201",
          
          characteristicId:"0808FF01-0808-0A09-0807-060504030201",
          // 这里的value是ArrayBuffer类型
          value: buffer,
          success: function (res) {
            console.log('写入成功', res.errMsg)
          },
          fail(res){
            console.log('写入失败', res.errMsg)
          }
        })

微信小程序进行蓝牙初始化、搜索附近蓝牙设备及连接指定蓝牙(一)
https://blog.csdn.net/baidu_38978508/article/details/123439507?spm=1001.2014.3001.5502
微信小程序通过低功耗蓝牙设备进行定位及测距(二)
https://blog.csdn.net/baidu_38978508/article/details/123441079
更多关于微信小程序与蓝牙的知识关注下面公众号:
小白XBIT

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信小程序与低功耗蓝牙通信-往硬件端发送数据(三) 的相关文章

随机推荐

  • Maven基础——什么是Maven

    目录 Maven概述 一 什么是maven 二 Maven能解决什么问题 三 依赖管理的概念 四 一键构建概念 Maven基础 Maven安装与仓库类型介绍 Maven概述 一 什么是maven Maven是一个项目管理工具 它包含了一个项
  • 加密解密相关→EncryptUtils

    import android util Base64 import java io File import java io FileInputStream import java io IOException import java sec
  • SQL学习(二)初学SQL

    初学SQL有很多困惑 比如 学习SQL需不需要编写SQL语句 去哪里调试SQL语句 怎么创建表 有没有什么SQL的代码调试和编辑器 这些问题导致我们不知道从何下手 大概看了看网上对于SQL的介绍 明白是什么之后 再看了看基础的查询语句 但是
  • Echarts 折线图 自定义悬浮窗tooltip,读取params中的数据将小数显示为百分比并保留两位小数,日期只显示年月日

    在网上没有找到我需要的内容 悬浮窗数据一直显示为 Object Object 获取不到params中的相应内容 通过System out println map 获取到的后台数据格式为 treeMapData yield 0 9894 ti
  • JMeter安装和环境变量配置

    JAVA基础环境安装 下载Java Development Kit 下载地址 JDK官网下载 配置JDK环境变量 JDK 安装与环境变量配置请自行查询 JMeter下载 JMeter官网 解压JMeter 将下载后的文件进行解压 放置到指定
  • 拉格朗日插值定理

    拉格朗日插值法是一种函数逼近方法 通过已知的数据点构建一个多项式函数 该函数能够恰好经过这些数据点 它可以用于插值 即根据给定的离散数据点推断出未知函数在其它点上的取值 拉格朗日插值法的优点是计算简单 容易理解和实现 但是由于多项式次数越高
  • C++变量替换

    测试用例 4 xxx lyf ttt test ttt www yyy seeyou aa aaa x x x b b b
  • 上下文工程:基于 Github Copilot 的实时能力分析与思考

    上个月在计划为 AutoDev 添加多语言支持时候 发现 GitHub Copilot 的插件功能是语言无关的 通过 plugin xml 分析 便想研究一下它是如何使用 TreeSitter 的 可惜的是 直到最近才有空 研究一下它是如何
  • 【转】IE命令行参数

    k参数可以让IE工作在全屏方式下 slf参数会让IE连接到默认的主页 new开新的IE进程 channelband 收藏夹 nohome 无显示 blank空白页面也不显示 remote参数可以在Unix平台上启动另一个IE进程 v参数会显
  • springBoot实现统一结果封装、统一异常处理

    springBoot统一结果封装 统一异常处理 统一结果封装 目的 由于现在大部分公司项目都是前后端分离架构 为了联调方便统一后端数据返回格式 统一结果封装 实现 统一返回结果实体类 统一结果封装 Data public class R p
  • sqlite "replace into"的用法

    http blog sina com cn s blog 590be5290102vulh html 举例说明 建表并插入几条记录 CREATE TABLE test id INTEGER PRIMARY KEY name text age
  • springboot的脚手架搭建步骤

    SpringBoot脚手架搭建及运用 Max伏虎的博客 CSDN博客 springboot脚手架
  • Window 系统生成 Git SSH key

    当我们使用github或者bitbucket等仓库时我们有可能需要ssh认证 所以需要生成他的ssh key 1 首先你要安装git工具 下载地址 https git scm com downloads 2 右键鼠标 选中 Git Bash
  • VCRUNTIME140_1.dll丢失是怎么回事,如何修复VCRUNTIME140_1.dll缺失?

    VCRUNTIME140 1 dll是什么文件 它为啥会丢失呢 应该很多小伙伴对这问题都比较疑惑吧 毕竟有时候电脑突然弹出一个VCRUNTIME140 1 dll文件丢失 无法继续执行 面对这种提示都是一脸懵逼的 今天我们就来聊聊VCRUN
  • Kafka可视化平台EFAK搭建及使用

    文章目录 1 EFAK可视化平台介绍 2 搭建EFAK可视化平台 2 1 安装JDK环境 2 2 安装MySQL数据库 2 3 下载EAK二进制安装包并部署 2 4 配置EFAK连接Zookeeper集群 2 5 调整Eagle启动文件中的
  • 线程同步及互斥锁

    线程同步的概念 线程同步 指一个线程发出某一功能调用时 在没有得到结果之前 该调用不返回 同时其它线程为保证数据一致性 不能调用该功能 线程同步的例子 创建两个线程 让两个线程共享一个全局变量int number 然后让每个线程数5000次
  • 使用 ffmpeg 转换视频格式

    ffmpeg 是 nix 系统下最流行的音视频处理库 功能强大 并且提供了丰富的终端命令 实是日常视频处理的一大利器 实例 flac 格式转 mp3 音频格式转换非常简单 ffmpeg i input flac acodec libmp3l
  • 【Prometheus】“discovery manager scrape“ discovery=file msg=“Error reading file“ path=/dir err=“\“labl

    Prometheus discovery manager scrape discovery file msg Error reading file path dir err lable name is not a valid label n
  • 爬虫之JS解析,Python模拟JS代码运行。(附带模拟人人网登录案例)

    六 JS解析 1 定位js文件 1 通过initiator定位到js文件 2 通过search搜索关键字定位到js文件 3 通过元素绑定的事件监听函数找到js文件 Event Listeners 注 三种方法不能保证每一种都能找到js文件
  • 微信小程序与低功耗蓝牙通信-往硬件端发送数据(三)

    准备工作 软件 微信小程序 硬件 蓝牙设备 hc 09 单片机 stm32 微信小程序往硬件端发送数据 对应的函数是wx writeBLECharacteristicValue 他的参数是 对应的下面的参数获取有2种获取方式 1 通过硬件的