物联网 *** 作系统LiteOS内核教程01——IoT-Studio介绍及安装

物联网 *** 作系统LiteOS内核教程01——IoT-Studio介绍及安装,第1张

IoT Studio 是支持 LiteOS 嵌入式系统软件开发的工具,提供了代码编辑、编译、烧录 及调试等一站式开发体验,支持 C、C++、汇编等多种开发语言,让您快速,高效地进 行物联网开发。
IoT Studio 目前支持 Cortex-M0,Cortex-M4,Cortex-M7,Cortex-A7,ARM926EJ-S,RISC-V 等芯片架构。

IoT Studio 目前已经适配了多种开发板,主流支持小熊派IoT开发条件,另外还包括 GD、ST、HiSilicon、FudanMicroelectronics 等主流厂商的开发板。

IoT Studio 支持新增 MCU 列表,以满足用户其他开发板的业务需求。
IoT Studio下载地址如下:

下载会得到一份压缩包,其中包含一份安装指南,详细的安装教程可以参考该文档。
使用一键安装方式,无须再手动安装其他工具,安装步骤如下:

双击运行IoT-Studio_035exe文件开始安装。

选择我同意此协议:
选择安装路径,可以改动,不要有中文和空格,这里我保持默认:
确认设置,开始安装:
安装完成,选择是否安装ST-Link和Jlink驱动和工具,推荐全选:
IoT Studio安装成功之后会自动运行,在首次运行时检测到没有开发工具包,选择“是”,软件会调用浏览器开始下载,下载好之后双击运行developToolsexe。

软件会自动将需要用到的开发工具解压到C:UsersAdministratoropenSourceTools目录:
之后软件会自动开始安装ST-Link和J-link,根据提示安装即可。

打开工具目录,里面有两个路径需要我们在IoT Studio中配置:
安装完develop Tools之后,再次启动IoT Studio,无提示说明开发工具安装成功,IoT Studio的主界面如下:
在IoT Studio启动页面,选择用户指导文档,即可打开 IoT Studio 完整的使用指南,在以后使用的过程中遇到任何问题,都可以在此文档中找到答案:
小熊派开源社区,专注于前沿技术分享,关注“小熊派开源社区”微信公众号,获取更多资料教程。

一、产品上线前
商业需求文档(BRD BusinessRequirementDocument)
如果你有一个产品想法,想要把它实现,在公司里你就要说服老板吧? 创业你要说服投资人吧? 怎么说服别人把资源和钱给你呢?BRD就是让别人理解的说明文件,里面我们要告诉对方,你要做什么(项目介绍)、为什么要做这事(商业价值)、别人做得怎样(竞争情况)、你打算如何做(商业模式、实施策略)、需要多少资源和钱。
想把BRD写好不是件容易的事,你需要对市场、用户进行一次全面的调研、查阅大量的数据,然后说明现在存在的机会,再设计出合理的产品方案/服务,把这一切串通起来,最终形成有说服力的文档。
BRD教程:>Fedora IoT 是一个即将发布的、面向物联网的 Fedora 版本。去年 Fedora Magazine 的《 如何使用 Fedora IoT 点亮 LED 灯 》一文第一次介绍了它。从那以后,它与 Fedora Silverblue 一起不断改进,以提供针对面向容器的工作流的不可变基础 *** 作系统。

Kubernetes 是一个颇受欢迎的容器编排系统。它可能最常用在那些能够处理巨大负载的强劲硬件上。不过,它也能在像树莓派 3 这样轻量级的设备上运行。让我们继续阅读,来了解如何运行它。

虽然 Kubernetes 在云计算领域风靡一时,但让它在小型单板机上运行可能并不是常见的。不过,我们有非常明确的理由来做这件事。首先,这是一个不需要昂贵硬件就可以学习并熟悉 Kubernetes 的好方法;其次,由于它的流行性,市面上有 大量应用 进行了预先打包,以用于在 Kubernetes 集群中运行。更不用说,当你遇到问题时,会有大规模的社区用户为你提供帮助。

最后但同样重要的是,即使是在家庭实验室这样的小规模环境中,容器编排也确实能够使事情变得更加简单。虽然在学习曲线方面,这一点并不明显,但这些技能在你将来与任何集群打交道的时候都会有帮助。不管你面对的是一个单节点树莓派集群,还是一个大规模的机器学习场,它们的 *** 作方式都是类似的。

一个“正常”安装的 Kubernetes(如果有这么一说的话)对于物联网来说有点沉重。K8s 的推荐内存配置,是每台机器 2GB!不过,我们也有一些替代品,其中一个新人是 k3s —— 一个轻量级的 Kubernetes 发行版。

K3s 非常特殊,因为它将 etcd 替换成了 SQLite 以满足键值存储需求。还有一点,在于整个 k3s 将使用一个二进制文件分发,而不是每个组件一个。这减少了内存占用并简化了安装过程。基于上述原因,我们只需要 512MB 内存即可运行 k3s,极度适合小型单板电脑!

安装 k3s 非常简单。直接运行安装脚本:

它会下载、安装并启动 k3s。安装完成后,运行以下命令来从服务器获取节点列表:

需要注意的是,有几个选项可以通过环境变量传递给安装脚本。这些选项可以在 文档 中找到。当然,你也完全可以直接下载二进制文件来手动安装 k3s。

对于实验和学习来说,这样已经很棒了,不过单节点的集群也不能算一个集群。幸运的是,添加另一个节点并不比设置第一个节点要难。只需要向安装脚本传递两个环境变量,它就可以找到第一个节点,而不用运行 k3s 的服务器部分。

上面的 example-url 应被替换为第一个节点的 IP 地址,或一个完全限定域名。在该节点中,(用 XXX 表示的)令牌可以在 /var/lib/rancher/k3s/server/node-token 文件中找到。

现在我们有了一个 Kubernetes 集群,我们可以真正做些什么呢?让我们从部署一个简单的 Web 服务器开始吧。

这会从名为 nginx 的容器镜像中创建出一个名叫 my-server 的 部署 (默认使用 docker hub 注册中心,以及 latest 标签)。

为了访问到 pod 中运行的 nginx 服务器,首先通过一个 服务 来暴露该部署。以下命令将创建一个与该部署同名的服务。

服务将作为一种负载均衡器和 Pod 的 DNS 记录来工作。比如,当运行第二个 Pod 时,我们只需指定 my-server(服务名称)就可以通过 curl 访问 nginx 服务器。有关如何 *** 作,可以看下面的实例。

默认状态下,一个服务只能获得一个 ClusterIP(只能从集群内部访问),但你也可以通过把它的类型设置为 LoadBalancer 为该服务申请一个外部 IP。不过,并非所有应用都需要自己的 IP 地址。相反,通常可以通过基于 Host 请求头部或请求路径进行路由,从而使多个服务共享一个 IP 地址。你可以在 Kubernetes 使用 Ingress 完成此 *** 作,而这也是我们要做的。Ingress 也提供了额外的功能,比如无需配置应用即可对流量进行 TLS 加密。

Kubernetes 需要 Ingress 控制器来使 Ingress 资源工作,k3s 包含 Traefik 正是出于此目的。它还包含了一个简单的服务负载均衡器,可以为集群中的服务提供外部 IP。这篇 文档 描述了这种服务:

Ingress 控制器已经通过这个负载均衡器暴露在外。你可以使用以下命令找到它正在使用的 IP 地址。

找到名为 traefik 的服务。在上面的例子中,我们感兴趣的 IP 是 10008。

让我们创建一个 Ingress,使它通过基于 Host 头部的路由规则将请求路由至我们的服务器。这个例子中我们使用 xipio 来避免必要的 DNS 记录配置工作。它的工作原理是将 IP 地址作为子域包含,以使用 10008xipio 的任何子域来达到 IP 10008。换句话说,my-server10008xipio 被用于访问集群中的 Ingress 控制器。你现在就可以尝试(使用你自己的 IP,而不是 10008)。如果没有 Ingress,你应该会访问到“默认后端”,只是一个写着“404 page not found”的页面。

我们可以使用以下 Ingress 让 Ingress 控制器将请求路由到我们的 Web 服务器的服务。

将以上片段保存到 my-ingressyaml 文件中,然后运行以下命令将其加入集群:

你现在应该能够在你选择的完全限定域名中访问到 nginx 的默认欢迎页面了。在我的例子中,它是 my-server10008xipio。Ingress 控制器会通过 Ingress 中包含的信息来路由请求。对 my-server10008xipio 的请求将被路由到 Ingress 中定义为 backend 的服务和端口(在本例中为 my-server 和 80)。

想象如下场景:你的家或农场周围有很多的设备。它是一个具有各种硬件功能、传感器和执行器的物联网设备的异构集合。也许某些设备拥有摄像头、天气或光线传感器。其它设备可能会被连接起来,用来控制通风、灯光、百叶窗或闪烁的 LED。

这种情况下,你想从所有传感器中收集数据,在最终使用它来制定决策和控制执行器之前,也可能会对其进行处理和分析。除此之外,你可能还想配置一个仪表盘来可视化那些正在发生的事情。那么 Kubernetes 如何帮助我们来管理这样的事情呢?我们怎么保证 Pod 在合适的设备上运行?

简单的答案就是“标签”。你可以根据功能来标记节点,如下所示:

一旦它们被打上标签,我们就可以轻松地使用 nodeSelector 为你的工作负载选择合适的节点。拼图的最后一块:如果你想在所有合适的节点上运行 Pod,那应该使用 DaemonSet 而不是部署。换句话说,应为每个使用唯一传感器的数据收集应用程序创建一个 DaemonSet,并使用 nodeSelector 确保它们仅在具有适当硬件的节点上运行。

服务发现功能允许 Pod 通过服务名称来寻找彼此,这项功能使得这类分布式系统的管理工作变得易如反掌。你不需要为应用配置 IP 地址或自定义端口,也不需要知道它们。相反,它们可以通过集群中的命名服务轻松找到彼此。

随着集群的启动并运行,收集数据并控制灯光和气候,可能使你觉得你已经把它完成了。不过,集群中还有大量的计算资源可以用于其它项目。这才是 Kubernetes 真正出彩的地方。

你不必担心这些资源的确切位置,或者去计算是否有足够的内存来容纳额外的应用程序。这正是编排系统所解决的问题!你可以轻松地在集群中部署更多的应用,让 Kubernetes 来找出适合运行它们的位置(或是否适合运行它们)。

为什么不运行一个你自己的 NextCloud 实例呢?或者运行 gitea ?你还可以为你所有的物联网容器设置一套 CI/CD 流水线。毕竟,如果你可以在集群中进行本地构建,为什么还要在主计算机上构建并交叉编译它们呢?

这里的要点是,Kubernetes 可以更容易地利用那些你可能浪费掉的“隐藏”资源。Kubernetes 根据可用资源和容错处理规则来调度 Pod,因此你也无需手动完成这些工作。但是,为了帮助 Kubernetes 做出合理的决定,你绝对应该为你的工作负载添加 资源请求 配置。

尽管 Kuberenetes 或一般的容器编排平台通常不会与物联网相关联,但在管理分布式系统时,使用一个编排系统肯定是有意义的。你不仅可以使用统一的方式来处理多样化和异构的设备,还可以简化它们的通信方式。此外,Kubernetes 还可以更好地对闲置资源加以利用。

容器技术使构建“随处运行”应用的想法成为可能。现在,Kubernetes 可以更轻松地来负责“随处”的部分。作为构建一切的不可变基础,我们使用 Fedora IoT。

via: >大数据在物联网运用中的作用
大数据这一概念早已有之,只是在较长的一段时间里处于沉寂状态。近年来,随着人们意识的增强以及观念的更新,大数据又重回人们的视线,并逐渐成为一股革新浪潮。大数据又名巨量资料,其涉及的数据量规模巨大,以至于无法通过主流工具在短时间内实现撷取与管理。对于这一部分海量、高增长且多样化的信息资产,只有运用更强的洞察力、决策力以及流程优化能力才能发现隐藏在数据背后的规律与价值,而可穿戴设备以及汽车中传感器应用的盛行,标志着大数据应用已经开始延伸到物联网领域。
在物联网中,对大数据技术的应用提出了更高的要求:首先,物联网中的数据量更大。物联网的组成节点除了人和服务器之外,也包括物品、设备、传感网等,数据流源源不断的产生,其数量规模远远大于互联网。其次,物联网中的数据传输速率更高。由于物联网与真实物理世界直接关联,要求实时访问以及控制相应的节点和设备,需要高数据传输速率予以支持。此外,物联网中数据的海量性也必然要求更高的传输速率。再者,物联网中的数据更加多样化。物联网涉及广泛的应用范围,从智能家居、智慧交通、智慧医疗、智慧物流到安防监控等,无一不是物联网的应用范畴。同时,在不同领域、不同行业,也需要面对不同类型和不同格式的数据,这使得物联网中的数据更加多样化。
针对物联网对海量数据的处理与应用需求,万物云开发团队在现有数据立方(DataCube)的基础之上,打造了一个针对智能硬件与物联网应用的大数据服务平台。该平台包括一个硬件数据服务接口,一个平台数据服务逻辑层以及一套面向应用的编程接口。物联网开发团队只需关注硬件及应用,就可通过万物云轻松处理物联网上的大数据。具体而言,万物云拥有如下特性。
丰富多样的应用功能。首先,万物云提供清晰而简明的编程实例、接口文档以及丰富的案例样本代码,以帮助开发者快速开发跨平台物联网应用,并通过社区论坛、微信和微博等社交平台提供全方位的技术支持。同时,万物云平台支持>eSIM区别传统插拔卡,传统SIM随时插拔,或者终端客户自行采卡,采用eSIM,因为是贴片式,所以对于采购、生产、测试、出库、续费的流程都有很大不同,所以eSIM管理平台最好能兼容你的业务逻辑,同时要对接运营商API接口,读取卡数据,方便设备运营,如果自行搭建工作量太大,也可以考虑第三方的,eSIM物联工场可以提供SIMLINK平台,完全第三方的平台,不产生费用,API也可以提供,这样就不用花精力去对接三大运营。如果第三方的不能满足业务需求,也可以考虑找方案公司定制,有专门CMP平台供应商,但成本很高,以上建议,建议采纳!


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/dianzi/10524773.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-09
下一篇2023-05-09

发表评论

登录后才能评论

评论列表(0条)

    保存