lcb163 发表于 2020-1-7 13:47:48

尝试用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”应用程序。谷歌商店网址:https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp在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版本上使用。Adafruit Bluefruit LE Con​​nect在Google Play上的应用Adafruit Bluefruit LE Con​​nect在App Store上的应用在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.html2、https://github.com/micropython/micropython3、https://www.micropython.org/download#esp32

kylinpoet 发表于 2020-2-18 13:21:24

这个好,必须支持。

gada888 发表于 2020-6-30 21:49:25

不简单呀

我i的清风 发表于 2021-8-31 15:16:56

问题解决了,非常感谢
页: [1]
查看完整版本: 尝试用Micropython在ESP32中开展BLE实验