MQBoard-通过MQTT管理的MicroPython的微框架

MicroPython相关代码、库、软件、工具
回复
头像
shaoziyang
帖子: 3917
注册时间: 2019年 10月 21日 13:48

MQBoard-通过MQTT管理的MicroPython的微框架

#1

帖子 shaoziyang »

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

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

头像
shaoziyang
帖子: 3917
注册时间: 2019年 10月 21日 13:48

Re: MQBoard-通过MQTT管理的MicroPython的微框架

#2

帖子 shaoziyang »

目标和特点

所有内容都是针对以下系统设计的:
  • 运行在某个远程位置,需要从远程进行管理,即无需将它们插入某些计算机的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的管理。
 

dexter
帖子: 298
注册时间: 2019年 10月 24日 12:41

Re: MQBoard-通过MQTT管理的MicroPython的微框架

#3

帖子 dexter »

哈哈,这个项目厉害了!以前实现过一个OTA升级和MQTT,现在我可以参考这个来完善自己的代码了

回复

  • 随机主题
    回复总数
    阅读次数
    最新文章