Funpack3-1基于XG24-EK2703A的蓝牙测温计
该项目使用了XG24-EK2703A,实现了蓝牙测温计的设计,它的主要功能为:使用芯片内部的温度检测外设,测量温度并通过蓝牙发送至上位机,在上位机中以“绘图”的形式对温度数据进行可视化。
标签
FunPack3-1
XG24-EK2703A
小熊熊
更新2024-03-06
68

项目介绍


本项目使用了XG24-EK2703A,实现了蓝牙测温计的设计。它的主要功能为:使用芯片内部的温度检测外设,测量温度并通过蓝牙发送至上位机,在上位机中以“绘图”的形式对温度数据进行可视化。


项目框图如下:

微信截图_20240306111852.png

项目由两部分组成,第一块是主控板XG24-EK2703A部分,使用circuitpython编写代码。使用到了两个芯片内置的外设,一个是蓝牙,另一个是温度传感器。蓝牙使用adafruit的官方库adafruit ble实现,而温度传感器可以直接方便的使用内置库microcontroller来读取。


另一部分是上位机接收蓝牙信息并绘图。这一块我是在手机上完成的。adafruit官方开发了手机蓝牙蓝牙调试工具Bluefruit Connect,可以用这个工具直接将数据绘制成线图。


硬件介绍


Silicon Labs XG24-EK2703A

XG24-EK2703A是一款基于EFR32MG24片上系统的开发套件,具备低成本、低功耗和紧凑的特点。该套件针对无线物联网产品的开发和原型制作提供了便利。


该套件的核心是EFR32MG24B210F1536IM48无线SoC芯片,采用ARM Cortex-M3架构,主频为78MHz,支持2.4GHz无线通信。此外,芯片内置1536KB闪存和256KB RAM,并具备AI/ML硬件加速功能,可轻松部署轻量级AI应用于嵌入式系统中。开发板上集成了EFR32MG24无线SoC芯片、陶瓷天线用于无线数据传输、LED指示灯和功能按键、复位按钮、qwiic连接插座、mikroBUS插座以及集成供电、串口和调试功能的USB Type-C接口。背面还提供一个Mini Simplicity接口的焊盘用于扩展。开发板上的qwiic接口和mikroBUS接口可方便用户扩展套件的功能。


XG24-EK2703A开发板还具备广泛的无线通信协议支持,包括蓝牙LE、蓝牙mesh、Zigbee、Thread和Matter等。这使得开发人员可以根据项目需求选择合适的协议进行开发。套件的低成本、低功耗和紧凑特点使其适用于智能家居、照明和便携式医疗设备等物联网应用领域。


各功能对应的主要代码片段及说明

代码流程图如下:

微信截图_20240306165441.png


任务主要使用了mcu的两个外设,一个是蓝牙,另一个是温度传感器。这两个传感器在circuitpython种都有了很好的支持。


先说说蓝牙,蓝牙使用的是circuitpython固件中的内置库adafruit_ble,根据官方例程,我们导入以下库方法:

from adafruit_ble import BLERadio
from adafruit_ble.advertising.standard import ProvideServicesAdvertisement
from adafruit_ble.services.nordic import UARTService

从库名就可以看出,这个库原本是为nordic写的。但是很幸运,在我们的板子上也可以正常运行。接下来是初始化蓝牙:

ble = BLERadio()
uart = UARTService()
advertisement = ProvideServicesAdvertisement(uart)
advertisement.short_name = "CPY_HID"
advertisement.connectable = True

我们就按照官方命名,将设备起名为“CPY_HID”不做修改。下面就可以把蓝牙广播出去,一旦连接上,发送Hello World

ble.start_advertising(advertisement)
while not ble.connected:
pass
uart.write(("Hello World").encode("utf-8"))


接下来再说说mcu内置的温度读取,这个官方已经很贴心的把方法编译在`microcontroller`库中。只需要一行代码就可以读取温度:

import microcontroller
print(microcontroller.cpu.temperature)


我们只需要把上面两个功能合并,就可以实现读取mcu温度,并把它发送到蓝牙的功能。上位机我们依然使用adafruit的工具Bluefruit Connect,连接成功后,可以用UART直接查看数据,也可以选择查看绘图。


功能展示


22bf12cb6c6a1d9d08b3fcfddcdbeb6.jpg


心得体会


这次活动又给大家体验到了不一样的板卡,虽然开发方式和ESP32系列较为相似,都可以用circuitpython,micropython这一类的平台来玩,但上手体验还是有一些差别的。这样既有新的东西可以研究,又不会一下子跨度过大,导致完全无法接受,我觉得非常好。

附件下载
code.py
源码
团队介绍
1
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号