# Bemfa Cloud SDK for MicroPython **Repository Path**: walkline/bemfa-cloud-sdk-for-micropython ## Basic Information - **Project Name**: Bemfa Cloud SDK for MicroPython - **Description**: 基于 MicroPython 编写的巴法云开放平台接入开发工具。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-01-16 - **Last Updated**: 2025-02-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: MicroPython, 巴法云, TCP ## README

Bemfa Cloud SDK for MicroPython

### 项目介绍 基于 MicroPython 编写的巴法云开放平台接入开发工具。 根据巴法云提供的文档可以知道,他们提供了三种接入协议: * TCP 协议 * MQTT 协议 * 图片存储云 第二个太常见了不做考虑,第三个是收费的所以也不做考虑,所以本项目中使用的是 TCP 接入协议。 ### 如何测试 #### 准备测试用到的类库文件 为了编写代码方便所以我把一些常用的类库编译到了自定义固件中,你可以查看 [自定义固件文件说明](./firmware/README.md) 并烧录使用它们。 测试代码中用到了下边这两个类库文件(自定义固件中已包含): * [dispatcher.py](https://gitee.com/walkline/micropython-timer-dispatcher/raw/master/dispatcher.py) * [button.py](https://gitee.com/walkline/micropython-drivers/raw/master/button.py) 你可以使用自定义固件,也可以点击上边的链接下载源文件再上传到开发板,或者使用`repl`进入交互环境直接下载。 ```python import mip mip.install('https://gitee.com/walkline/micropython-timer-dispatcher/raw/master/dispatcher.py', target='/') mip.install('https://gitee.com/walkline/micropython-drivers/raw/master/button.py', target='/') ``` #### 获取巴法云平台相关信息 注册登录账号的过程就不说了,只需要在 [TCP设备云](https://cloud.bemfa.com/tcp/index.html) 中新建一个名为`light002`的主题,并复制`用户私钥`即可。 #### 修改测试代码中的用户信息 将`tcpclient_demo.py`文件中以下常量修改为对应的信息。 ```python LED_PIN = 48 # 板载 LED 引脚 BOOT_PIN = 0 # BOOT 或其它按键引脚 # 用户私钥 BEMFA_SECRET_KEY = '' # Wifi 信息 WIFI_SSID = '' WIFI_PASSWORD = '' ``` #### 上传必要的文件 确保正确上传以下文件即可: * `dispatcher.py` * `button.py` * `protocol/nonblocking_tcpclient.py` #### 运行测试代码 开发板连接的 Wifi 热点最好是使用手机开的热点,方便做后续的场景模拟测试操作。 > 手机开热点必须为`2.4G`模式,同时打开 Wifi 和移动数据开关。 1. 在开发板上运行`tcpclient_demo.py`文件 2. 一切正常的情况下会提示主题订阅成功,即:`Subscribe Successed` 3. 使用`BOOT`按键切换 LED 显示状态,并观察提示信息,同时访问 [TCP设备云](https://cloud.bemfa.com/tcp/index.html) 网站查看状态是否已同步 4. 关闭手机 Wifi 开关,同时多次切换 LED 显示状态,并观察提示信息 > 此时开发板会断开连接并尝试重新连接,要特别注意重连过程中是否可以切换 LED 显示状态 5. 开发板重新连接成功后(当前手机热点使用的是移动数据),切换 LED 显示状态并观察提示信息 6. 关闭手机移动数据开关,同时多次切换 LED 显示状态,并观察提示信息 7. 重新打开手机移动数据和 Wifi 开关,切换 LED 显示状态并观察提示信息 #### repl 输出内容 ```docs # 手机通过 Wifi 和移动数据连接外网,并开启热点 [2000-01-01 00:16:35][main] Start running [2000-01-01 00:16:36][wifi] WiFi Connected [2000-01-01 00:16:37][wifi] Internet Connected [2000-01-01 00:16:37][tcp] Connected to Bemfa Cloud Server # 主题订阅成功 [2025-01-14 14:35:43][sub] Subscribe Successed # 使用 BOOT 按键切换 LED 显示状态 [2025-01-14 14:35:50][pub] Publish Successed [2025-01-14 14:35:51][new_msg] time: 1736836550, topic: light002, msg: off [2025-01-14 14:35:52][pub] Publish Successed [2025-01-14 14:35:52][new_msg] time: 1736836552, topic: light002, msg: on # 断开手机 Wifi [2025-01-14 14:35:58][tcp] Disconnected from Bemfa Cloud Server [2025-01-14 14:35:58][wifi] Internet Connection Lost # 自动通过移动数据连接外网 [2025-01-14 14:35:59][wifi] WiFi Connected [2025-01-14 14:36:00][wifi] Internet Connected [2025-01-14 14:36:00][tcp] Connected to Bemfa Cloud Server # 重新订阅主题 [2025-01-14 14:36:00][sub] Subscribe Successed # 切换 LED 显示状态 [2025-01-14 14:36:00][pub] Publish Successed [2025-01-14 14:36:02][pub] Publish Successed [2025-01-14 14:36:03][new_msg] time: 1736836563, topic: light002, msg: off [2025-01-14 14:36:04][pub] Publish Successed [2025-01-14 14:36:04][new_msg] time: 1736836565, topic: light002, msg: on # 关闭移动数据,手机没有任何外网连接 [2025-01-14 14:36:18][tcp] Disconnected from Bemfa Cloud Server [2025-01-14 14:36:18][wifi] Internet Connection Lost [2025-01-14 14:36:21][wifi] WiFi Connected [2025-01-14 14:36:21][wifi] No Internet Connection # 重新开启移动数据 [2025-01-14 14:36:28][wifi] WiFi Connected [2025-01-14 14:36:30][wifi] Internet Connected [2025-01-14 14:36:30][tcp] Connected to Bemfa Cloud Server # 重新订阅主题 [2025-01-14 14:36:31][sub] Subscribe Successed # 切换 LED 显示状态 [2025-01-14 14:36:34][pub] Publish Successed [2025-01-14 14:36:37][pub] Publish Successed [2025-01-14 14:36:38][new_msg] time: 1736836598, topic: light002, msg: off [2025-01-14 14:36:40][pub] Publish Successed [2025-01-14 14:36:40][new_msg] time: 1736836600, topic: light002, msg: on # 重新开启手机 Wifi,外网连接断开 # 猜测手机热点优先使用 Wifi 流量,所以把数据流量断开了 [2025-01-14 14:36:51][tcp] Disconnected from Bemfa Cloud Server [2025-01-14 14:36:51][wifi] Internet Connection Lost # 开发板重新连接手机热点 [2025-01-14 14:36:52][wifi] WiFi Connected [2025-01-14 14:36:53][wifi] Internet Connected [2025-01-14 14:36:53][tcp] Connected to Bemfa Cloud Server # 重新订阅主题 [2025-01-14 14:36:53][sub] Subscribe Successed # 切换 LED 显示状态 [2025-01-14 14:36:55][pub] Publish Successed [2025-01-14 14:36:56][new_msg] time: 1736836616, topic: light002, msg: on [2025-01-14 14:36:56][pub] Publish Successed [2025-01-14 14:36:57][new_msg] time: 1736836617, topic: light002, msg: off [2025-01-14 14:36:57][pub] Publish Successed [2025-01-14 14:36:58][new_msg] time: 1736836618, topic: light002, msg: on ``` ### 合作及交流 * 联系邮箱: * QQ 交流群: * 走线物联:[163271910](https://jq.qq.com/?_wv=1027&k=VlT7Bjs9) * 扇贝物联:[31324057](https://jq.qq.com/?_wv=1027&k=IQh2OLw9)

走线物联扇贝物联