10039| 3
|
尝试用Micropython在ESP32中开展BLE实验 |
一、准备工作 1、ESP32主板(ESP-WROOM-32) 2、uPyCraft软件(v1.1) 二、软件环境的搭建 1、下载固件 进入官方下载网站https://www.micropython.org/download#esp32,可以发现有两种固件,一种是Firmware built with ESP-IDF v3.x, with support for LAN and PPP butno bluetooth,另一种是Firmware built with ESP-IDF v4.x, withsupport for bluetooth but no LAN or PPP,因为是使用BLE功能,所以需要下载后一种的固件。 从固件下载的表述可知,ESP32如果刷基于ESP-IDF v3.x的固件,则有网络功能没有蓝牙功能,刷ESP-IDF v4.x固件,则有蓝牙功能没有网络功能,两者只能二选一。 2、用uPyCraft烧写固件 这里我使用uPyCraft软件进行刷固件,也可以使用其他的软件,例如:flash_download_tools。 三、试用MicroPython官方的Bluetooth例子 https://github.com/micropython/micropython/tree/master/examples/bluetooth 先将从网站下载的文件上传到esp32主板中 ・ Ble_advertising.py ・ble_uart_peripheral.py ・ ble_temperature.py ・ ble_uart_repl.py 实验1:温度传感器 目标:让esp32成为带ble连接的温度传感器,从智能手机读取温度值。 因为是实验,所以ESP32主板并未连接温度传感器,而是用随机温度代替,为了在智能手机上读取温度,需要在手机上安装相应的应用程序,这里我们可以使用一个免费的安卓“nRF Connect”应用程序。 在uPyCraft的命令行终端输入exec(open('ble_temperature.py').read())执行程序,或直接在uPyCraft的device目录中的ble_temperature.py文件上右键,选择“Run”执行程序,现在服务器已经在ESP32端运行,从手机上用nRF Connect扫描,您会发现一个名为mpy-temp的BLE设备。 点击“CONNECT”进行连接,然后在“ CLIENT”选项卡上,您将找到一个名为“ Environmental Sensing”的服务。 然后,有一个名为“Temperature”的项目,当您点击它时,将显示温度值。该值每秒更新一次。 实验2:实现UART功能 目标:创建可以与BLE连接的UART端口,然后将REPL连接到UART端口。 由于应用程序的通信方向相反,因此源代码显示使用了Adafruit的“ Bluefruit”,因此我使用了它。该应用程序既可以在Android版本上使用,也可以在iPhone版本上使用。 在uPyCraft的命令行终端输入import ble_uart_repl导入文件模块,然后运行此模块中的start()函数【ble_uart_repl.start()】,把REPL连接到BLE UART上 在手机中启动Bluefruit,进行扫描,然后找到名为“ mpy-repl”的设备。 选择“Connect”连接并点击“UART”选项 然后,选择“设置”菜单,将DISPLAY SETTING中EoL Characters项目由默认的“\n”,设置为“\n\r”。 现在,您可以通过蓝牙从智能手机访问REPL。以下为从手机输入import os和os.listdir()的结果。 参考资料: 1、https://blog.boochow.com/article/testing-ble-on-mp-esp32.html 2、https://github.com/micropython/micropython 3、https://www.micropython.org/download#esp32 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed