【Silicon Labs BG22-EK4108A 蓝牙开发评测】七、微信小程序控制led和接收按键状态2

dql2016   2022-1-24 23:01 楼主

上一帖学习了Silicon Labs BG22-EK4108A 的蓝牙led控制和按键状态反馈例程,其中最重要的是如下的服务和特征值:

1.PNG

2.PNG

3.PNG 编写微信小程序控制led亮灭和获取按键状态就是对这两个特征值的写操作和订阅通知实现。通知数据接收后需要进行处理展示,通过两个页面之间数据交换实现:

      wx.onBLECharacteristicValueChange(function(res){
          console.log(res);
          var tmp =that.ab2hex(res.value);
          var cdn = that.data.currDeviceName;
          that.printLog("当前蓝牙设备名字: " + cdn + "," + "收到Notify数据: " + that.ab2hex(res.value));
          //发送数据到其它页面
          if(cdn=='Blinky Example')
          {
            event.emit('environmetDataChanged',tmp);
          }
        });

显示通知数据的页面:

//屏幕打开时执行的函数
  onLoad: function () {
    //接收别的页面传过来的数据
    event.on('environmetDataChanged', this, function(data) {
      //另外一个页面传过来的data是16进制字符串形式
      console.log("接收到蓝牙设备发来的数据:"+data)
      var a=parseInt(data[0]+data[1],16);
      //实时修改显示值
      var up0 = "charts[" + 0 + "].data";
      this.setData({
        [up0]:a,
      });
    })
  },

接收到led控制数据'0'或者'1'就进行开关led:

4.PNG

发现服务过程,微信小程序调试日志显示发现的服务和SSV5中定义的一致:

5.PNG 写特征值过程和按键状态通知接收过程的日志:

6.PNG 微信小程序的日志,连接设备成功后会扫描设备有哪些服务,然后开始接收具有通知权限的数据:

7.jpg

demo界面:

8.jpg

led控制:

9.jpg 按键状态通知订阅:

 

10.jpg 掌握了如何读写特征值,订阅通知数据,就能扩展很多有意思的应用了,比如开发板通过ADC采集传感器数据以通知的方式发送到微信小程序,演示效果:


 

回复评论 (6)

蓝牙led控制和按键状态反馈测试的挺好

点赞  2022-1-25 07:17
用小程序控制,看起来就很高大上。
点赞  2022-1-25 16:54
引用: annysky2012 发表于 2022-1-25 16:54 用小程序控制,看起来就很高大上。

主要是方便跨平台

点赞  2022-1-25 18:09
引用: dql2016 发表于 2022-1-25 18:09 主要是方便跨平台

是的,小程序做起来就是不一样

没有什么不可以,我就是我,不一样的烟火! 
点赞  2022-1-27 08:33
历害了,前后端都会,才子,可以拜你为师吗?
点赞  2022-2-8 11:23
引用: lugl4313820 发表于 2022-2-8 11:23 历害了,前后端都会,才子,可以拜你为师吗?

点赞  2022-2-8 13:36
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复