dql2016 发表于 2022-1-24 23:01

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

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

<p></p>

<p></p>

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

<pre>
<code class="language-javascript">      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);
          }
      });</code></pre>

<p>显示通知数据的页面:</p>

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

<p>接收到led控制数据&#39;0&#39;或者&#39;1&#39;就进行开关led:</p>

<p></p>

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

<p>写特征值过程和按键状态通知接收过程的日志:</p>

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

<p></p>

<p>demo界面:</p>

<p></p>

<p>led控制:</p>

<p>按键状态通知订阅:</p>

<p>&nbsp;</p>

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

<p><iframe allowfullscreen="true" frameborder="0" height="450" src="//player.bilibili.com/player.html?bvid=1zS4y1L7uc&amp;page=1" style="background:#eee;margin-bottom:10px;" width="700"></iframe><br />
&nbsp;</p>

Jacktang 发表于 2022-1-25 07:17

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

annysky2012 发表于 2022-1-25 16:54

用小程序控制,看起来就很高大上。

dql2016 发表于 2022-1-25 18:09

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

<p>主要是方便跨平台<img height="48" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/congra.gif" width="48" /></p>

annysky2012 发表于 2022-1-27 08:33

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

<p>是的,小程序做起来就是不一样</p>

lugl4313820 发表于 2022-2-8 11:23

历害了,前后端都会,才子,可以拜你为师吗?

dql2016 发表于 2022-2-8 13:36

lugl4313820 发表于 2022-2-8 11:23
历害了,前后端都会,才子,可以拜你为师吗?

<p><img height="48" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/smile.gif" width="48" /></p>
页: [1]
查看完整版本: 【Silicon Labs BG22-EK4108A 蓝牙开发评测】七、微信小程序控制led和接收按键状态2