1010|0

104

帖子

1

资源

一粒金砂(中级)

【NXP Rapid IoT评测】+ 远程修改显示屏数据 [复制链接]

本来应该完成的是使用web服务修改屏幕的显示,但是没有找到合适的服务器去构架MQTT服务。所以就退而求其次,只是通过蓝牙修改屏幕数据。毕竟网络服务是建立在手机或者电脑上的,和套件没有关系。

参考我写的另外两个帖子,分别是蓝牙接收数据,已经电脑上构建蓝牙服务的帖子。

套件使用蓝牙接收数据

电脑端构建蓝牙服务

电脑端的代码为
  1. import asyncio
  2. from bleak import discover
  3. from bleak import BleakClient

  4. class My_Bluetooth():

  5.     def __init__(self,name):
  6.         self.devices = None
  7.         self.loop = asyncio.get_event_loop()
  8.         self.name = name

  9.     async def find_devices(self):
  10.         self.devices = await discover()

  11.     def scan_devices(self):
  12.         print("Find devices..")
  13.         self.loop.run_until_complete(self.find_devices())

  14.     def get_device_addr(self):
  15.         for d in self.devices:
  16.             if d.name == self.name:
  17.                 self.addr = d.address

  18.     def connect_device(self):
  19.         print("Try to connect "+self.addr+" ...")
  20.         self.client = BleakClient(self.addr,self.loop)
  21.         self.loop.run_until_complete(self.client.connect())

  22.     async def get_services(self):
  23.         self.svcs = await self.client.get_services()
  24.         

  25.     def print_services(self):
  26.         self.loop.run_until_complete(self.get_services())

  27.     async def write_data(self,show_string):
  28.         STRING_UUID = "0ab5b693-c2ce-c4ab-e711-6ccbaa65c888"
  29.         if len(show_string) != 0:
  30.             await self.client.write_gatt_char(STRING_UUID,show_string)
  31.             
  32.     def write_something(self,show_string):
  33.         loop = asyncio.get_event_loop()
  34.         loop.run_until_complete(self.write_data(show_string))



  35. print("Start..")
  36. BT = My_Bluetooth("RPK-AF90")
  37. BT.scan_devices()
  38. BT.get_device_addr()
  39. BT.connect_device()
  40. BT.print_services()
  41. while True:
  42.     buffer = input("Enter the string:")   
  43.     buffer = bytes(buffer,encoding='utf-8') + b'\x00'
  44.     BT.write_something(buffer)
复制代码




在电脑端,仍然是python+bleak实现修改蓝牙特性值的操作。当套件接收到修改特性值的操作后,会触发事件,套件根据事件来实现相关的操作。更新屏幕的数据显示就是放在这个事件处理函数中的。




此内容由EEWORLD论坛网友manhuami2007原创,如需转载或用于商业用途需征得作者同意并注明出处

此帖出自RF/无线论坛

回复
您需要登录后才可以回帖 登录 | 注册

最新文章 更多>>
    关闭
    站长推荐上一条 1/6 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表