我使用 Avnet 设计的 Azure Sphere MT3620 入门套件为“使用 Azure Sphere 确保一切安全”竞赛完成了这个项目。
我将 Visual Studio Code + Platformio 与 Georgi Angelov 的插件一起使用。
它有很多功能,我们将在这个项目中使用 M7 内核,两个 M4 内核之一,两个内置 ADC,ADC0 用于接收环境光,ADC1 用于接收来自模拟多路复用器的信号,两个 GPIO用于选择来自模拟多路复用器和 I2C 接口的信号以连接 OLED 显示器的引脚。
我使用 4 个 SCT013-030。SCT013-030 是一款非侵入式电流传感器,可将最大 30A 的电流转换为 1V 的信号。
我们要测量交流电流,因此输出信号从 -1V 变为 +1V。但是我们的 ADC 在 0 到 3.3V 的范围内工作,所以我们必须使用一个电路来改变电压。我们将使用 OP 放大器。LM324 内部有 4 个。
我只使用板上的一个 ADC,我需要一个模拟多路复用器来接收来自 4 个传感器的四个模拟输入。
我设计了一个盾牌来连接到 Azure Sphere MT3620。
我把代码分成两部分。一个实时应用程序在一个 M4 核心中运行以读取模拟信号,并将它们发送到 M7 核心,它正在运行一个接收信息的应用程序,更新 oled 显示器并使用安全通道将它们发送到 Cloud Iot 平台。
在 M4 内核中,我读取了模拟信号。adc0 GPIO41 是来自环境光传感器的信息。在ADC1中,GPIO 42是模拟多路复用器的输出,GPIO 16和17用于选择模拟多路复用器的4个通道。
为了读取电流,我们必须在信号的 14 个周期或更多周期内读取模拟信号。我使用 25 个周期。
在 app_manifest.json 中,重要的是将 M7 应用程序的 ID 添加到“AllowedApplicationConnections”字段和所有 GPIO。
M7 核心运行代码以从 M4 核心接收信息,更新 OLED 显示屏并使用安全通道将信息发送到 Google IoT Core。
起初我使用 Azure IoT Central 应用程序来接收数据,但是试用期还有一个月就到期了,所以我不得不换到另一个云服务。这是我使用的教程
按照步骤做真的很容易
我转移到谷歌云,那里的安全通道基于 Json Web 令牌 (JWT) 身份验证。Cloud IoT Core 使用公钥认证,支持RSA 和Elliptic Curve 算法。这是连接 esp32 的一个很好的教程,我将它改编为 Mt3620
我们可以使用 MQTT 或 HTTP,我使用 HTTP。要使用 HTTP 桥将遥测事件发送到云,您必须将包含 base64 编码数据的 POST 请求发送到给定的 URL。该请求必须包含一个authorization
标头,其中包含使用您设备的私钥生成的有效 JWT。
按照教程,我部署了 InfluxDB 和 Grafana 以存储数据。
功率是电流乘以西班牙230V的电压。Grafana 进行转换。这是一个仪表板示例
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !