社区导航

 

搜索
查看: 252|回复: 1

[分享] MQBoard-通过MQTT管理的MicroPython的微框架

[复制链接]

1万

TA的帖子

13

TA的资源

版主

Rank: 6Rank: 6

测评达人

发表于 2020-6-24 09:02 | 显示全部楼层 |阅读模式
本帖最后由 dcexpert 于 2020-6-24 09:02 编辑

作者的简介

我的项目是在基础设施方面,微控制器在某个地方工作很长一段时间,有时是十年。同时,这些项目中的很多都是实验性质,即使在“部署”和“投入生产”之后,我也会不断调整。所以我需要一个健壮的框架,让我可以远程查看板上发生的事情,有时执行交互式故障排除,并更新软件。并且有很高的可靠性,即使我犯了错误,我也不会失去与板的连接或管理权限。在这个上下文中,需要MQBoard。

MQBoard包含以下内容:
  • 使用新uasyncio的MQTT客户机库,处理断开和重新传输,并支持OTA升级所需的数据速率(1.5MB传输…)
  • 一组python文件,用于启动一个板、在出错时提供安全模式、通过MQTT登录、提供REPL访问和启动模块化应用程序
  • 一个MQ REPL任务,它提供对flash文件系统、REPL和OTA的访问,并在MQTT上进行升级
  • 具有类似于pyboard.py文件,加上OTA更新、日志查看和文件同步
  • 一个简单的blinky演示应用程序
现在MQBoard只在esp32上工作。我想让它在PYBD上工作,但还没有时间。它在esp8266上不能运行,因为没有足够的内存。

 

目标和特点

所有内容都是针对以下系统设计的:

  • 运行在某个远程位置,需要从远程进行管理,即无需将它们插入某些计算机的USB端口
  • 使用单个加密连接,特别是与代理的MQTT连接。

通过使用单个连接,只需要一组TLS缓冲区(每个连接需要20KB!),并且没有要维护的证书。攻击者也没有针对性的开放端口。

上述目标使以下功能合乎需要:

  • 一切都必须为保持24x7全天候运行并从故障中恢复而设计。
  • REPL访问:能够通过MQTT访问板上的repl,以便运行诊断,执行升级或进行故障排除。
  • OTA更新:能够通过MQTT发送MicroPython固件更新。
  • 模块:能够轻松添加或更新功能模块,并且对现有模块的影响最小。
  • 理想情况下,远程日志记录通常是通过MQTT打印到串行控制台的所有内容。
  • 将崩溃日志记录到某些本地持久性存储中,以便在板复位后可以远程分析崩溃。
  • 连续崩溃后的看门狗定时器和安全模式,以确保开发板始终处于启动状态,即使应用程序出现异常,也可以通过MQTT对其进行访问。

当前,除了崩溃日志到本地存储之外,所有这些功能都已实现。

问题

主要的问题是低功耗操作。目前没有考虑电源,尤其是没有优化启动时间以实现电池的定期唤醒操作。当前未集成OTA固件升级和安全模式,这意味着OTA升级需要比应有的更多的关注和思考。mqtt_async实现尝试与Peter Hinch的兼容,现在是废弃mqtt_as的时机了,以便可以直接集成board/mqtt.py功能,从而可以分离Wifi的管理。

 

项目仓库

 

游客,如果您要查看本帖隐藏内容请回复



回复

使用道具 举报

2

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2020-7-12 15:24 | 显示全部楼层
想看看


回复

使用道具 举报

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

关闭

站长推荐上一条 1/8 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

词云| Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-7-15 04:43 , Processed in 0.109023 second(s), 22 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表