gpt4 book ai didi

azure - 云端Raspberry pi传感器数据监控

转载 作者:行者123 更新时间:2023-12-03 02:46:37 28 4
gpt4 key购买 nike

我正在构建我的第一个项目,该项目与云和树莓派 GPIO 引脚(或传感器)相关,但我遇到了一些困难,希望有人可以通过指出正确的方向来帮助我。

我有 Raspberry Pi 4,附带 Sensirion SCD30传感器并遵循 this guide我成功地在“/run/sensors/scd30/last”中检索了不断更新的传感器测量数据。

我的目标是将测量数据发送到一些免费的云服务,我正在考虑 Azure IoT Central 或 IoT HUB,因为两者都有免费选项。

我的问题是,如何获取此文件“/run/sensors/scd30/last”并以 5 或 10 秒的间隔将其转发到 Azure,然后我可以在其中制作所有必要的仪表板和触发器?

最佳答案

您需要实现正在使用 Azure IoT Hub Device SDK 的应用程序,并且可以将数据发送到 IoT 中心。

您必须实现每 4-10 秒从文件中读取一次数据,并使用上述 SDK 中的 DeviceClient 将信息发送到 IoT 中心。

下面是一个 C# 代码片段,它从 DHt11 温度/湿度传感器中提取数据,并每 2 秒将数据发送到 IoT 中心。

                        ...
var deviceClient = DeviceClient.CreateFromConnectionString("ConnectionString");

var dht = new DHT(pin, gpioController, DHTSensorTypes.DHT11);
while (true)
{
try
{
var measurement = new Measurement();
var dhtData = dht.ReadData();

measurement.Temperature = (int)dhtData.TempCelcius;
measurement.Humidity = (int)dhtData.Humidity;

if (gpioController.IsPinOpen(pin))
{
gpioController.ClosePin(pin);
}
}

SendMeasurementAsync(deviceClient, measurement).Wait();

Console.WriteLine(DateTime.UtcNow);
Console.WriteLine(" sent to iot hub temp: " + measurement.Temperature);
Console.WriteLine(" sent to iot hub hum: " + measurement.Humidity);
}
catch (DHTException)
{
Console.WriteLine(" problem reading sensor data ");
}
Task.Delay(2000).Wait();
}
.
.
.


private static Task SendMeasurementAsync(DeviceClient deviceClient, Measurement measurement)
{
var jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(measurement);
var eventMessage = new Message(Encoding.UTF8.GetBytes(jsonString));

return deviceClient.SendEventAsync(eventMessage);
}

关于free tier ,您可以拥有一个 IoT 中心,每个订阅可享受免费套餐,并包含所有功能。

关于azure - 云端Raspberry pi传感器数据监控,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58365850/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com