首页 > 其他分享 >第一章 使用MASA Stack+.Net 从零开始搭建IoT平台 环境准备

第一章 使用MASA Stack+.Net 从零开始搭建IoT平台 环境准备

时间:2023-04-18 22:45:48浏览次数:43  
标签:Core MASA IoT +. 架构图 MQTT 设备

@

目录

前言

本系列文章以IoT开发小白的角度,从零开始使用.Net为主要技术搭建一个简单的IoT平台,由于是入门系列,所有代码以围绕IoT基础业务场景为主,不会涉及DDD等设计思想。

架构图

这里是我们整个IoT平台的架构图。
请添加图片描述

一、设备接入

1、针对可以联网的设备,直接通过MQTT协议连接到我们的MQTT服务上(可以使用国内的阿里云、Onenet也可以使用开源EMQX实现)。绿色线框部分
2、针对不能联网的设备,例如只能通过红外、短信、等其他非互联网技术通讯的,采用设备网关统一接管,这里主要涉及硬件相关内容我们不深入讨论。橙色线框部分

二、处理设备遥测数据

我们通过MQTT Hub 订阅设备发布到MQTT的消息,并通过Dapr的Pub/Sub 方式发送给我们的IoT Core集群,我们可以通过MQTT 5.0协议中的共享订阅方式实现我们高可用集群。蓝色线框部分

三、设备控制

直接在IoT Core中直接向MQTT发布控制指令。红色箭头所示

四、管理后台

管理后台我们采用Blazor搭建结合MASA Auth实现权限控制,红色线框部分,在IoT Core和IoT UI中间有一层Gateway,主要是方便我们在这一层Mock一些依赖的第三方业务接口,例如某个环节我需要从生产的MES系统获取某些信息才能继续下面的操作,我们可以在Gateway层去Mock这些接口和数据,方便我们测试。

五、数据存储

业务数据我们存储到关系型数据库中,设备的消息数据(遥测数据),我们存储到时序库中,方便统计查找,和生成报表。

六、规则引擎

针对不同类型的消息,我们可以在规则引擎中配置,使消息可以走不同的处理流程,例如接入的第三方系统设备,设备消息可能是加密的,我们就通过规则引擎将这种类型的消息发送到第三方系统解密之后再存储到数据库中,也可以在这里针对遥测数据进行分析和过滤,产生分级告警信息,发送到对应的处理系统或者干系人邮箱等。

环境准备

1、安装EMQX

1、运行以下命令获取 Docker 镜像:

docker pull emqx/emqx:5.0.20

2、运行以下命令启动 Docker 容器

docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:5.0.20

2、创建解决方案

创建解决方案MASA.IoT,分别添加
1、WebApi项目MASA.IoT.Core,对应架构图中IoT Core
2、WebApi项目MASA.IoT.Hub,对应架构图中IoT Hub
3、Blazor应用MASA.IoT.UI,对应架构图中的IoT.UI,也就是管理后台
4、类库MASA.IoT.Common,存放一些静态的公共方法

3、安装Dapr开发环境

https://blog.csdn.net/sunday866/article/details/129698679

参考这篇文章使用Masa DaprStarter安装Dapr环境

例如:以上就是今天要讲的内容,本文仅仅简单介绍了我们IoT后台的基本架构,下一章我们讲设备的生命周期

标签:Core,MASA,IoT,+.,架构图,MQTT,设备
From: https://www.cnblogs.com/sunday866/p/17331481.html

相关文章

  • 第二章 使用MASA Stack+.Net 从零开始搭建IoT平台 设备生命周期管理-设备注册.
    设备生命周期管理-设备注册@目录设备生命周期管理-设备注册前言一、设备注册流程二、MQTT注册1.在EMQX中添加认证方式2.创建ApiKey3.调用接口创建用户三、测试设备连接四、编写代码总结前言我们不希望任何设备都可以接入我们的IoT平台,所以一个设备正常的接入流程是这样的,1、......
  • MASA MAUI Plugin 集成个推,实现本地消息推送(六)【Android】篇
    MASAMAUIPlugin(六)集成个推,实现本地消息推送[Android]篇背景MAUI的出现,赋予了广大Net开发者开发多平台应用的能力,MAUI是Xamarin.Forms演变而来,但是相比Xamarin性能更好,可扩展性更强,结构更简单。但是MAUI对于平台相关的实现并不完整。所以MASA团队开展了一个实验性项目,意在对......
  • MASA MAUI Plugin 安卓蓝牙低功耗(二)蓝牙通讯
    MASAMAUIPlugin安卓蓝牙低功耗(二)蓝牙通讯项目背景MAUI的出现,赋予了广大Net开发者开发多平台应用的能力,MAUI是Xamarin.Forms演变而来,但是相比Xamarin性能更好,可扩展性更强,结构更简单。但是MAUI对于平台相关的实现并不完整。所以MASA团队开展了一个实验性项目,意在对微软MAUI的......
  • MASA MAUI Plugin IOS蓝牙低功耗(三)蓝牙扫描
    MASAMAUIPluginIOS蓝牙低功耗(三)蓝牙扫描项目背景MAUI的出现,赋予了广大Net开发者开发多平台应用的能力,MAUI是Xamarin.Forms演变而来,但是相比Xamarin性能更好,可扩展性更强,结构更简单。但是MAUI对于平台相关的实现并不完整。所以MASA团队开展了一个实验性项目,意在对微软MAUI的......
  • MASA MAUI Plugin (四)条形码、二维码扫描功能
    MASAMAUIPlugin(四)条形码、二维码扫描功能背景MAUI的出现,赋予了广大Net开发者开发多平台应用的能力,MAUI是Xamarin.Forms演变而来,但是相比Xamarin性能更好,可扩展性更强,结构更简单。但是MAUI对于平台相关的实现并不完整。所以MASA团队开展了一个实验性项目,意在对微软MAUI的补充......
  • MASA MAUI Plugin (十)iOS消息推送(原生APNS方式)
    MASAMAUIPlugin(十)iOS消息推送(原生APNS方式)背景MAUI的出现,赋予了广大Net开发者开发多平台应用的能力,MAUI是Xamarin.Forms演变而来,但是相比Xamarin性能更好,可扩展性更强,结构更简单。但是MAUI对于平台相关的实现并不完整。所以MASA团队开展了一个实验性项目,意在对微软MAUI的补......
  • MASA MAUI Plugin (七)应用通知角标Android+iOS
    MASAMAUIPlugin(七)应用通知角标(小红点)Android+iOS背景MAUI的出现,赋予了广大Net开发者开发多平台应用的能力,MAUI是Xamarin.Forms演变而来,但是相比Xamarin性能更好,可扩展性更强,结构更简单。但是MAUI对于平台相关的实现并不完整。所以MASA团队开展了一个实验性项目,意在对微软MAU......
  • MASA MAUI Plugin (九)Android相册多选照片(使用Android Jetpack套件库)
    MASAMAUIPlugin(九)Android相册多选照片(使用AndroidJetpack套件库)背景MAUI的出现,赋予了广大Net开发者开发多平台应用的能力,MAUI是Xamarin.Forms演变而来,但是相比Xamarin性能更好,可扩展性更强,结构更简单。但是MAUI对于平台相关的实现并不完整。所以MASA团队开展了一个实验性项......
  • MASA MAUI Plugin (八)Android相册多选照片(Intent 方式)
    MASAMAUIPlugin(八)Android相册多选照片(Intent方式)背景MAUI的出现,赋予了广大Net开发者开发多平台应用的能力,MAUI是Xamarin.Forms演变而来,但是相比Xamarin性能更好,可扩展性更强,结构更简单。但是MAUI对于平台相关的实现并不完整。所以MASA团队开展了一个实验性项目,意在对微软MA......
  • 阿里云智能春季2024届实习生招聘启动啦,快来加入IoT安全吧
    职位名称: 安全工程师/研发工程师C/C++工作地点: 杭州市/北京市毕业时间:2023年11月-2024年10月面试:远程我们是谁?阿里云IoT安全部负责阿里云物联网安全产品的系统性规划、研发、创新拓展与业务落地。聚焦物联网安全能力在云-边缘计算-设备端的产品化建设,协同阿里云的多条产品线,业......