准备工作:
软件:微信小程序
硬件:
蓝牙设备: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 = thislet 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.bufferwx.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

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

  1. 微信小程序与低功耗蓝牙通信-接受硬件端发送来的数据(四)

    接受数据只要 wx.notifyBLECharacteristicValueChange监听器打开, wx.onBLECharacteristicValueChange是接受数据的函数. 数据接收到后 ...

  2. 20_微信小程序-BLE低功耗蓝牙开发-发布小程序

    所有功能测试OK了,就剩下最后一步了,那就是把开发好的微信小程序发布出去. 1. 填写小程序信息,登录小程序管理平台,在设置->填写信息,里面填写小程序相关信息(后面我直接把小程序名称改为&qu ...

  3. 01_微信小程序-BLE低功耗蓝牙开发-注册和工具安装

    1. 访问微信公众号平台,注册小程序 注意:一个邮箱只能注册一个微信小程序 2. 下载安装开发工具 这里有个重要的东西AppID,注册申请的时候生成的.我们这里只做学习用,所以可以点击后面的测试号,会 ...

  4. 08_微信小程序-BLE低功耗蓝牙开发-设备搜索

    遇到的一些问题 BLE相关的好多函数都是异步的,但是BLE的操作又必须按照顺序流程来,否则就会出现问题,所以这里得嵌套大量的回调函数. 普通回调函数中this拿不到data数据的问题 原因:小程序在回 ...

  5. 【微信小程序控制硬件15 】 开源一个微信小程序,支持蓝牙快速配网+WiFi双控制ESP32-C3应用示范;(附带Demo)

    文章目录 一.前言 二. Blufi乐鑫自研的蓝牙配网协议 ESP32 配网流程 流程图 三.相关代码 3.1 蓝牙快速配网 3.2 蓝牙本地控制 2.3 外设驱动 3.1 蓝牙搜索 3.2 蓝牙服务 ...

  6. 乐鑫Esp32学习之旅 19 重磅开源,如何在微信小程序上ble蓝牙配网esp32,blufi的那些事!

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 " ...

  7. 微信小程序直连蓝牙实现控制继电器及串口调试功能--全系统开源工程

    微信小程序直连蓝牙硬件设备,设备控制继电器,灯等设备,同时实现蓝牙串口调试助手等功能,设备能够输出微信小程序发出的蓝牙数据,可为工程师在手机上实现设备串口调试功能,当工程师去现场调试设备,没有带电脑, ...

  8. 微信小程序和ros2进行通信

    微信小程序和ros2进行通信 环境配置 ubuntu下安装ros2 ubuntu安装mqtt库 windows安装微信开发者工具 主要功能模块介绍 ROS2基础程序讲解 微信小程序基础程序讲解 编译及 ...

  9. 黯然微信小程序杂记(一):从服务器获取数据 后端语言php

    黯然学编程 之 微信小程序杂记(一):从服务器获取数据 后端语言php 一.功能描述 二.服务器.数据库与微信小程序逻辑的关系 服务器 数据库 与微信小程序逻辑关系 三.请求数据的代码(可当做模板用) ...

最新文章

  1. BigData-‘基于代价优化’究竟是怎么一回事?
  2. 使用windbg查看PE结构
  3. git 修改分支名字_开发中必须要掌握的 Git 技巧
  4. HDU - 6641 TDL(数学)
  5. oracle java 绑定变量的值_Oracle SQL调优之绑定变量用法简介
  6. CodeForces - 1358D The Best Vacation(前缀和+尺取)
  7. go 捕获网卡http_接口测试工具Postman(三)使用postman抓包捕获HTTP请求-Go语言中文社区...
  8. JVM——类加载机制
  9. 柠檬汁制成的电池可以开动超100千克的车子吗?
  10. 豆瓣评分9.4!这部大片你不应该错过,每一秒都是不敢看的残忍!
  11. jquery如何实现ajax技术,使用JavaScript和jQuery简单实现Ajax技术(示例代码)
  12. rz、sz 命令 安装(Xshell 安装)
  13. Android studio 插件安装
  14. 水性油墨在纺织品印花中的应用
  15. Win 10 安装 Maven 与 Maven 知识点扫盲
  16. usrp n310测试总结---环境搭建篇2-uhd-dpdk干货
  17. python爬虫自动更换ip_python爬虫:自动投票代码(自动爬取代理IP)
  18. 各类编程开发网址分享
  19. JS自写带描述标签云
  20. Vulnhub-Moneybox

热门文章

  1. BAT面试题13:请简要说说一个完整机器学习项目的流程
  2. Excel  VBA批量修改文件名
  3. 洛谷P1294 高手去散步
  4. 部分高校网络教育资源将免费开放
  5. 辽宁自考 Java语言程序设计 课程代码 01019 备考整理(一)
  6. 2023第二届浙江省技能大赛温州市选拔赛任务书
  7. TCAN114x-Q1部分组网增强型CAN FD收发器(SBC_CAN的收发器)
  8. python cubes逻辑模型和元数据(靠google翻译+个别术语调整)
  9. 万字长文之JDK1.8的LinkedList源码解析
  10. linux可以批注pdf,linux下的pdf浏览器(可加批注)