探索Xiotman:物联网软件架构的创新之路

什么是物联网

🚀🚀众所周知,物联网是当今科技领域的一个热门话题,它指的是通过互联网将各种物理设备、传感器、终端等连接起来,实现信息的交换和通信。物联网的应用场景非常广泛,涉及智能家居、智能城市、智能医疗、智能工业等领域。然而,物联网终端应用的开发也面临着很多挑战,例如:

  • 🚀🚀应用的多样性:物联网终端需要支持不同的功能和场景,例如温湿度监测、人脸识别、语音控制等,这就要求开发者能够灵活地开发和切换不同的应用。
  • 🚀🚀组件的多样性:物联网终端需要使用不同的硬件和软件组件,例如传感器、显示器、摄像头、网络模块等,这就要求开发者能够方便地集成和解耦不同的组件。
  • 🚀🚀RTOS的多样性:物联网终端可能需要运行在不同的实时操作系统(RTOS)上,例如FreeRTOS、RT-Thread,ucos等,这就要求开发者能够兼容和适配不同的RTOS。
  • 🚀🚀MCU的多样性:物联网终端需要使用不同的微控制器(MCU)芯片,例如STM32、RA系列、ESP32等,这就要求开发者能够支持和移植不同的MCU。

什么是Xiotman

🚀🚀为了解决这些挑战,一套全新的物联网多应用框架Xiotman应运而生。Xiotman是一套致力于解决物联网终端应用多样化挑战的软件架构解决方案,它由 CSDN博客专家 架构师李肯在2023年RT-Thread全球技术峰会上首次公开发布,并在GitHub和Gitee上开源。


Xiotman的特点

🚀🚀Xiotman的主要特点如下:

  • 🚀🚀支持多应用开发:Xiotman提供了一个统一的应用接口和入口,开发者只需要编写自己的应用逻辑代码,并在配置文件中选择要编译和运行的应用即可。Xiotman还提供了一些常见的应用示例,例如智能房间、调试串口等,供开发者参考和学习。
  • 🚀🚀支持多组件解耦:Xiotman提供了一个组件管理机制,开发者可以将自己使用的硬件和软件组件封装成独立的模块,并在配置文件中选择要加载和使用的组件即可。
  • 🚀🚀支持多RTOS:Xiotman提供了一个RTOS适配层,开发者可以在配置文件中选择要运行在哪个RTOS上,并根据不同RTOS提供的API进行编程。目前Xiotman已经支持了RT-Thread V5.0.X版本,并计划支持更多版本和其他RTOS。
  • 🚀🚀支持多MCU:Xiotman提供了一个MCU适配层,开发者可以在配置文件中选择要使用哪个MCU芯片,并根据不同MCU提供的驱动和外设进行编程。目前Xiotman已经支持了qemu-veXpress-a9(仿真)、RA2E1、RA2L1、RA4M2、RA6M4等芯片,并计划支持更多芯片。

Xiotman的架构

🚀🚀Xiotman的架构如下图所示:

image-20230602232120443


Xiotman的使用

🚀🚀Xiotman的使用方法也非常简单,接下来我们就来详细介绍一下:


安装env工具

🚀🚀这个地方我们需要注意,我们最好使用官方最新的版本,目前最新是1.3.5版本,笔者在测试的时候使用的是1.1.0版本的,有许多❌错误❌,所以还是希望大家用最新版的。

🚀🚀下载连接如下所示:env下载链接

在这里插入图片描述


获取源代码

🚀🚀这边我们还是建议获取Github上面的最新版,但是考虑到Github在国内访问不太友好,所以我们也在Gitee上开源了我们的代码,可以使用Git去获取,也可以直接点击下载ZIP再解压使用。


使用

🚀🚀首先将env注册到右键,当然,直接手动进入目录也可以,注册到右键与使用env的教程如下:Env 用户手册 ,然后进入到 Xiotman/build 目录,右键,进入env(进入env之后通过命令行进去也是可以的):

menuconfig 常用快捷键

在这里插入图片描述


🚀🚀执行 scons --list_app 查看当前选择编译的应用、MCU、RTOS版本等信息;

在这里插入图片描述


🚀🚀执行 scons --menuconfig=build选择对应的应用、MCU及RTOS和RTOS版本,默认的情况下,选择的是 app_uart_debug应用、qemu-vexpress-a9、rt-thread-v5.0.x版本;

在这里插入图片描述


🚀🚀执行 scons 开始编译当前应用,输出如下所示就说明编译成功了,在 out/app_uart_debug(qemu-vexpress-a9)/ 目录可以看到对应的固件文件输出;

在这里插入图片描述


🚀🚀执行编译输出的固件;进入到 xiotman/out/app_uart_debug(qemu-vexpress-a9)/ 目录,执行 ./qemu-nographic.bat 即可运行;

image-20230603085818951


🚀🚀当然了,如果你想要清除当前选择的应用的中间编译输出,执行 scons --clean 就好了。

在这里插入图片描述


🚀🚀同时xiotman还保留了原生的 RTOS 的配置,执行 scons --menuconfig=rtos 即可进入配置:

在这里插入图片描述

🚀🚀我手上刚好有一块RA2E1的开发板,于是验证了一下,发现可以正常运行,结果如下所示。教程就和上述一样,只不过换了一个芯片,除了RA2E1之外,其他的我都测试过,没有什么大问题。

在这里插入图片描述


其他教程

🚀🚀Xiotman还提供了一些演示视频,展示了它在不同的硬件平台和应用场景下的运行效果,可以在B站搜索【Xiotman 基础功能演示】观看。


Xiotman的开源地址

🚀🚀Xiotman是一个完全开源的项目,遵循 Apache License 2.0 开源许可协议,可以免费在商业产品中使用,并且不需要公开私有代码,没有潜在商业风险。Xiotman的代码仓库地址如下:

  • GitHub: https://github.com/recan-li/xiotman
  • Gitee: https://gitee.com/recan-li/xiotman

总结

🚀🚀总之,Xiotman是一个全新的物联网多应用框架,它为物联网终端应用的开发提供了一个灵活、方便、兼容、可扩展的软件架构解决方案。同时也希望大家能给Xiotman提出宝贵的建议与看法,感谢大家。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐