위챗 애플릿 미니 프로그램 개발 WeChat 애플릿에서 Bluetooth 연결을 구현하는 방법은 무엇입니까? (코드 예)

WeChat 애플릿에서 Bluetooth 연결을 구현하는 방법은 무엇입니까? (코드 예)

Nov 13, 2018 pm 01:55 PM
위챗 애플릿 블루투스 연결

WeChat 애플릿에서 블루투스 연결을 구현하는 방법은 무엇입니까? 이 기사에서는 WeChat 애플릿을 사용하여 Bluetooth 연결을 구현하는 방법(단계)을 소개합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

최근 프로젝트에서는 애플릿의 블루투스 기능을 이용해 하드웨어 장치와 연결해 서로 데이터 명령을 전송해야 하는데, 공동 디버깅 과정에서 몇 가지 문제점이 발견되어 기록해 볼까 생각했습니다. 나중에 참고할 수 있도록!

1. 블루투스 기기 초기화

일반적으로 블루투스 기능을 사용하려면 특정 블루투스 기기이므로 블루투스 기기의 이름을 알아야 합니다. 일반적으로 QR 코드를 스캔하여 연결합니다. 그런 다음 이 기기의 QR 코드를 스캔하면 휴대폰의 블루투스 모듈을 초기화해야 합니다. 🎜🎜#

/**
* 初始化蓝牙设备
*/
  initBlue:function(){
    var that = this;
    wx.openBluetoothAdapter({//调用微信小程序api 打开蓝牙适配器接口
      success: function (res) {
        // console.log(res)
        wx.showToast({
          title: '初始化成功',
          icon: 'success',
          duration: 800
        })
        that.findBlue();//2.0
      },
      fail: function (res) {//如果手机上的蓝牙没有打开,可以提醒用户
        wx.showToast({
          title: '请开启蓝牙',
          icon: 'fails',
          duration: 1000
        })
      }
    })
  },
로그인 후 복사
#🎜 🎜#

2. 블루투스 장치 검색휴대폰 블루투스가 성공적으로 초기화된 후 검색됩니다. 주변 블루투스 기기

/**
*开始搜索蓝牙设备
*/
findBlue(){
    var that = this
    wx.startBluetoothDevicesDiscovery({
      allowDuplicatesKey: false,
      interval: 0,
      success: function (res) {
       
        wx.showLoading({
          title: '正在搜索设备',
        })
        that.getBlue()//3.0
      }
    })
  },
로그인 후 복사

3. 블루투스 기기 정보 얻기 블루투스 기기 검색 후 검색된 Bluetooth 장치 정보를 얻어야 합니다. 프로그램은

검색된 Bluetooth 장치 정보

를 얻는 두 가지 방법을 제공합니다. 해당 방법은

wx.onBluetoothDeviceFound입니다. :

Listen to find new 장치의 이벤트는 새 Bluetooth 장치가 발견되는 한 이 메서드가 한 번 호출된다는 의미입니다.

wx.getBluetoothDevices:

블루투스 모듈이 적용되는 동안 이미 기기에 연결된 장치를 포함하여 검색된 모든 블루투스 장치를 가져옵니다. #🎜🎜 # 두 가지 방법의 소개를 보면 차이점을 알 수 있는데, 차이점을 이해하지 못한다면 어떤 문제가 발생할까요?

처음 wx.onBluetoothDeviceFound 메서드를 공동 디버깅에 사용했을 때 모든 것이 정상임을 확인했습니다. 디버깅하는 동안 장치가 하나뿐이었기 때문에 Bluetooth 장치를 다시 검색했을 때 발견했습니다. 두 번째로 이 장치를 찾을 수 없습니다. 이 방법의 경우 새 장치가 아니고 이전에 연결한 적이 있거나 어떤 이유로 Bluetooth를 통해 데이터 명령을 전송할 때 오류가 발생하여 다시 연결해야 하기 때문입니다. 같은 이유로 현재 장치를 찾을 수 없습니다. 현재 장치는 이 방법의 새 장치가 아니기 때문입니다

그래서 wx.getBluetoothDevices 방법을 사용했습니다

/**
  * 获取搜索到的设备信息
 */
  getBlue(){
    var that = this
    wx.getBluetoothDevices({
      success: function(res) {
        wx.hideLoading();
        for (var i = 0; i < res.devices.length; i++){
           /*that.data.inputValue:表示的是需要连接的蓝牙设备ID,简单点来说就是我想要连接这个蓝牙设备,所以我去遍历我搜索到的蓝牙设备中是否有这个ID*/
          if (res.devices[i].name == that.data.inputValue || res.devices[i].localName == that.data.inputValue){
            that.setData({
              deviceId: res.devices[i].deviceId,
              consoleLog: "设备:" + res.devices[i].deviceId,
            })
            that.connetBlue(res.devices[i].deviceId);//4.0
            return;
          }
        }
      },
      fail: function(){
        console.log("搜索蓝牙设备失败")
      }
    })
  },
로그인 후 복사

4. 블루투스 기기 연결

이전 단계를 통해 해당 블루투스를 찾은 후, 해당 블루투스 기기의 ID를 통해 블루투스 연결을 해주세요. 블루투스 장치

/**
  * 获取到设备之后连接蓝牙设备
 */
  connetBlue(deviceId){                    
    var that = this;
    wx.createBLEConnection({
      // 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接
      deviceId: deviceId,//设备id
      success: function (res) {
        wx.showToast({
          title: &#39;连接成功&#39;,
          icon: &#39;fails&#39;,
          duration: 800
        })
        console.log("连接蓝牙成功!")
        wx.stopBluetoothDevicesDiscovery({
          success: function (res) {
            console.log(&#39;连接蓝牙成功之后关闭蓝牙搜索&#39;);
          }
        })
        that.getServiceId()//5.0
      }
    })
  },
로그인 후 복사

5. 서비스 uuid

을(를) 가져옵니다. Bluetooth 장치의 서비스 uuid#을 가져옵니다. 🎜🎜#

6 id

으로 Bluetooth 장치의 특성 값을 봅니다. 블루투스 기기의 경우 데이터를 쓰고 전송하려면 특정 특성값이 있어야 하므로 위의 단계를 통해 얻은 ID를 사용하여 현재 블루투스 장치의 특성값을 볼 수 있습니다#🎜 🎜#

getServiceId(){
    var that = this
    wx.getBLEDeviceServices({
      // 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接
      deviceId: that.data.deviceId,
      success: function (res) {
        var model = res.services[0]
        that.setData({
          services: model.uuid
        })
        that.getCharacteId()//6.0
      }
    })
  },
로그인 후 복사

7. 백그라운드 서버에서 얻은 지침

getCharacteId(){
    var that = this 
    wx.getBLEDeviceCharacteristics({
      // 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接
      deviceId: that.data.deviceId,
      // 这里的 serviceId 需要在上面的 getBLEDeviceServices 接口中获取
      serviceId: that.data.services,
      success: function (res) {
        for (var i = 0; i < res.characteristics.length; i++) {//2个值
          var model = res.characteristics[i]
          if (model.properties.notify == true) {
            that.setData({
              notifyId: model.uuid//监听的值
            })
            that.startNotice(model.uuid)//7.0
          }
          if (model.properties.write == true){
            that.setData({
              writeId: model.uuid//用来写入的值
            })
          }
        }
      }
    })
  },
로그인 후 복사

8. 백그라운드 서비스에서 얻은 지침을 Bluetooth 장치에 기록합니다#🎜 🎜#

startNotice(uuid){
    var that = this;
    wx.notifyBLECharacteristicValueChange({
      state: true, // 启用 notify 功能
      // 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接 
      deviceId: that.data.deviceId,
      // 这里的 serviceId 需要在上面的 getBLEDeviceServices 接口中获取
      serviceId: that.data.services,
      // 这里的 characteristicId 需要在上面的 getBLEDeviceCharacteristics 接口中获取
      characteristicId: uuid,  //第一步 开启监听 notityid  第二步发送指令 write
      success: function (res) {
      
          // 设备返回的方法
          wx.onBLECharacteristicValueChange(function (res) {
              // 此时可以拿到蓝牙设备返回来的数据是一个ArrayBuffer类型数据,所以需要通过一个方法转换成字符串
              var nonceId = that.ab2hex(res.value) 
      //拿到这个值后,肯定要去后台请求服务(当前步骤根据当前需求自己书写),获取下一步操作指令写入到蓝牙设备上去
      
     wx.request({
                    method: "POST",
         
                    data: {
                      xx:nonceId
                    },
                    url: url,
                    success: (res) => {
                      //res.data.data.ciphertext:我这边服务返回来的是16进制的字符串,蓝牙设备是接收不到当前格式的数据的,需要转换成ArrayBuffer
                      that.sendMy(that.string2buffer(res.data.data.ciphertext))//8.0
                      // 服务器返回一个命令  我们要把这个命令写入蓝牙设备
                    }
                   })
  }
    })
  },
로그인 후 복사

참고: 다음은 두 형식을 서로 변환하는 방법입니다

sendMy(buffer){
    var that = this 
    wx.writeBLECharacteristicValue({
      // 这里的 deviceId 需要在上面的 getBluetoothDevices 或 onBluetoothDeviceFound 接口中获取
      deviceId: that.data.deviceId,
      // 这里的 serviceId 需要在上面的 getBLEDeviceServices 接口中获取
      serviceId: that.data.services,
      // 这里的 characteristicId 需要在上面的 getBLEDeviceCharacteristics 接口中获取
      characteristicId: that.data.writeId,//第二步写入的特征值
      // 这里的value是ArrayBuffer类型
      value: buffer,
      success: function (res) {
        console.log("写入成功")
      },
      fail: function () {
        console.log(&#39;写入失败&#39;)
      },
      complete:function(){
        console.log("调用结束");
      }
    })
  },
로그인 후 복사
#🎜 🎜#참고: 위는 블루투스 연결의 전체 과정이지만 실제 사용에서는 확실히 그렇게 원활하지는 않을 것이며 블루투스를 통해 명령을 보내는 장치에는 특성이 있습니다. 즉, 누군가가 현재 블루투스 장치에 연결한 후입니다. , 다른 사람이 이 블루투스 기기를 검색할 수 없으므로 특정 개인이 특별한 상황에서 코드를 적극적으로 블루투스 연결을 끊고 다른 사용자가 사용할 수 있도록 기기를 해제해야 하는지 고려해야 합니다. Bluetooth 장치에 명령을 작성할 때 문제가 발생하기 쉽기 때문에 성공하려면 콜백을 여러 번 작성해야 합니다. 요약:

위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다. .

추천 관련 비디오 튜토리얼:


WeChat 미니 프로그램 개발 문서

전체 WeChat 미니 프로그램 방향성 심층 분석 영상 튜토리얼

WeChat 애플릿 개발 CMS 시스템 영상 튜토리얼

위 내용은 WeChat 애플릿에서 Bluetooth 연결을 구현하는 방법은 무엇입니까? (코드 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. 크로스 플레이가 있습니까?
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Xianyu WeChat 미니 프로그램 공식 출시 Xianyu WeChat 미니 프로그램 공식 출시 Feb 10, 2024 pm 10:39 PM

Xianyu의 공식 WeChat 미니 프로그램이 조용히 출시되었습니다. 미니 프로그램에서는 비공개 메시지를 게시하여 구매자/판매자와 소통하고, 개인 정보 및 주문 보기, 상품 검색 등을 할 수 있습니다. 궁금하시다면 Xianyu WeChat mini가 무엇인가요? 프로그램을 살펴볼까요? Xianyu WeChat 애플릿의 이름은 무엇입니까? 답변: Xianyu, 유휴 거래, 중고 판매, ​​평가 및 재활용. 1. 미니 프로그램에서는 대기 메시지 게시, 비공개 메시지를 통한 구매자/판매자와의 커뮤니케이션, 개인 정보 및 주문 보기, 특정 항목 검색 등을 할 수 있습니다. 2. 미니 프로그램 페이지에는 근처에 홈페이지가 있습니다. 유휴 게시, 메시지, 내 5가지 기능 3. 사용하려면 구매하기 전에 WeChat 결제를 활성화해야 합니다.

WeChat 애플릿은 사진 업로드 기능을 구현합니다. WeChat 애플릿은 사진 업로드 기능을 구현합니다. Nov 21, 2023 am 09:08 AM

WeChat 애플릿은 사진 업로드 기능을 구현합니다. 모바일 인터넷의 발전으로 WeChat 애플릿은 사람들의 삶에 없어서는 안될 부분이 되었습니다. WeChat 미니 프로그램은 다양한 애플리케이션 시나리오를 제공할 뿐만 아니라 이미지 업로드 기능을 포함한 개발자 정의 기능도 지원합니다. 이 기사에서는 WeChat 애플릿에서 이미지 업로드 기능을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. 준비 작업 코드 작성을 시작하기 전에 WeChat 개발자 도구를 다운로드하여 설치하고 WeChat 개발자로 등록해야 합니다. 동시에 WeChat도 이해해야 합니다.

win11에서 블루투스 연결이 불안정한 문제를 해결하는 방법은 무엇입니까? win11에서 블루투스 연결이 불안정한 문제 분석 win11에서 블루투스 연결이 불안정한 문제를 해결하는 방법은 무엇입니까? win11에서 블루투스 연결이 불안정한 문제 분석 Mar 03, 2024 pm 09:10 PM

이제 점점 더 많은 사람들이 블루투스 헤드셋을 사용하고 싶어하는데, 많은 사용자들이 win11에서 블루투스 연결이 불안정할 경우 어떻게 해야 하는지 문의하고 계십니다. 사용자는 BluetoothSupportService를 직접 찾아 설정할 수 있습니다. 이 사이트에서는 Win11의 불안정한 Bluetooth 연결 문제에 대한 분석을 사용자에게 주의 깊게 소개합니다. win11의 불안정한 블루투스 연결 문제 분석을 위한 방법 1: 블루투스 서비스 다시 시작 1. 단축키 win+R을 눌러 실행 대화 상자를 열고 services.msc 명령을 입력한 후 Enter를 눌러 서비스 인터페이스로 들어갑니다. 3. 아래 시작을 클릭하고, 검색창에 devicemanager를 입력한 후, 오른쪽에 있는 열기를 클릭하여 엽니다. 5. 가장

WeChat 애플릿에서 드롭다운 메뉴 효과 구현 WeChat 애플릿에서 드롭다운 메뉴 효과 구현 Nov 21, 2023 pm 03:03 PM

WeChat 미니 프로그램에서 드롭다운 메뉴 효과를 구현하려면 구체적인 코드 예제가 필요합니다. 모바일 인터넷의 인기로 인해 WeChat 미니 프로그램은 인터넷 개발의 중요한 부분이 되었으며 점점 더 많은 사람들이 관심을 갖고 주목하기 시작했습니다. WeChat 미니 프로그램을 사용하세요. WeChat 미니 프로그램 개발은 기존 APP 개발보다 간단하고 빠르지만 특정 개발 기술을 숙달해야 합니다. WeChat 미니 프로그램 개발에서 드롭다운 메뉴는 일반적인 UI 구성 요소로, 더 나은 사용자 경험을 제공합니다. 이 기사에서는 WeChat 애플릿에서 드롭다운 메뉴 효과를 구현하는 방법을 자세히 소개하고 실용적인 정보를 제공합니다.

WeChat 미니 프로그램에 이미지 필터 효과 구현 WeChat 미니 프로그램에 이미지 필터 효과 구현 Nov 21, 2023 pm 06:22 PM

WeChat 미니 프로그램에서 사진 필터 효과 구현 소셜 미디어 애플리케이션의 인기로 인해 사람들은 사진의 예술적 효과와 매력을 높이기 위해 사진에 필터 효과를 적용하는 것을 점점 더 좋아하고 있습니다. WeChat 미니 프로그램에서도 사진 필터 효과를 구현할 수 있어 사용자에게 더욱 흥미롭고 창의적인 사진 편집 기능을 제공합니다. 이 기사에서는 WeChat 미니 프로그램에서 이미지 필터 효과를 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 먼저 WeChat 애플릿의 캔버스 구성 요소를 사용하여 이미지를 로드하고 편집해야 합니다. 페이지에서 캔버스 구성요소를 사용할 수 있습니다.

WeChat 애플릿을 사용하여 캐러셀 전환 효과 달성 WeChat 애플릿을 사용하여 캐러셀 전환 효과 달성 Nov 21, 2023 pm 05:59 PM

WeChat 애플릿을 사용하여 캐러셀 전환 효과를 얻으세요. WeChat 애플릿은 개발 및 사용이 간단하고 효율적인 경량 애플리케이션입니다. WeChat 미니 프로그램에서는 캐러셀 전환 효과를 달성하는 것이 일반적인 요구 사항입니다. 이 기사에서는 WeChat 애플릿을 사용하여 캐러셀 전환 효과를 얻는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 먼저 WeChat 애플릿의 페이지 파일에 캐러셀 구성 요소를 추가합니다. 예를 들어 &lt;swiper&gt; 태그를 사용하여 캐러셀의 전환 효과를 얻을 수 있습니다. 이 구성 요소에서는 b를 전달할 수 있습니다.

WeChat 애플릿에서 이미지 회전 효과 구현 WeChat 애플릿에서 이미지 회전 효과 구현 Nov 21, 2023 am 08:26 AM

WeChat 미니 프로그램에서 이미지 회전 효과를 구현하려면 구체적인 코드 예제가 필요합니다. WeChat 미니 프로그램은 사용자에게 풍부한 기능과 좋은 사용자 경험을 제공하는 경량 애플리케이션입니다. 미니 프로그램에서 개발자는 다양한 구성 요소와 API를 사용하여 다양한 효과를 얻을 수 있습니다. 그 중 그림 회전 효과는 미니프로그램에 흥미와 시각 효과를 더할 수 있는 일반적인 애니메이션 효과이다. WeChat 미니 프로그램에서 이미지 회전 효과를 얻으려면 미니 프로그램에서 제공하는 애니메이션 API를 사용해야 합니다. 다음은 방법을 보여주는 특정 코드 예제입니다.

WeChat 미니 프로그램에서 슬라이딩 삭제 기능 구현 WeChat 미니 프로그램에서 슬라이딩 삭제 기능 구현 Nov 21, 2023 pm 06:22 PM

WeChat 미니 프로그램에서 슬라이딩 삭제 기능을 구현하려면 특정 코드 예제가 필요합니다. WeChat 미니 프로그램의 인기로 인해 개발자는 개발 과정에서 일부 공통 기능의 구현 문제에 직면하는 경우가 많습니다. 그중 슬라이딩 삭제 기능은 일반적으로 사용되는 기능 요구 사항입니다. 이 기사에서는 WeChat 애플릿에서 슬라이딩 삭제 기능을 구현하는 방법을 자세히 소개하고 구체적인 코드 예제를 제공합니다. 1. 요구 사항 분석 WeChat 미니 프로그램에서 슬라이딩 삭제 기능의 구현에는 다음 사항이 포함됩니다. 목록 표시: 슬라이드 및 삭제할 수 있는 목록을 표시하려면 각 목록 항목에 다음이 포함되어야 합니다.

See all articles