Azure 树莓pi传感器在云中的数据监控
我正在构建我的第一个项目,它与cloud&raspberry Pi GPIO引脚(或传感器)相关,但我有点卡住了,希望有人能帮我指明正确的方向 我有带传感器的Raspberry Pi 4,通过以下操作,我成功地在“/run/sensors/scd30/last”中检索到传感器测量数据,该数据不断更新 我的目标是将测量数据发送到一些免费的云服务,我正在考虑Azure IoT Central或IoT HUB,因为两者都有免费选项Azure 树莓pi传感器在云中的数据监控,azure,raspberry-pi,azure-iot-hub,azure-iot-sdk,azure-iot-central,Azure,Raspberry Pi,Azure Iot Hub,Azure Iot Sdk,Azure Iot Central,我正在构建我的第一个项目,它与cloud&raspberry Pi GPIO引脚(或传感器)相关,但我有点卡住了,希望有人能帮我指明正确的方向 我有带传感器的Raspberry Pi 4,通过以下操作,我成功地在“/run/sensors/scd30/last”中检索到传感器测量数据,该数据不断更新 我的目标是将测量数据发送到一些免费的云服务,我正在考虑Azure IoT Central或IoT HUB,因为两者都有免费选项 我的问题是,我如何将此文件“/run/sensors/scd30/la
我的问题是,我如何将此文件“/run/sensors/scd30/last”以5秒或10秒的间隔转发到Azure,然后在那里制作所有必要的仪表板和触发器 您需要实现正在使用的应用程序,该应用程序可以向物联网中心发送数据 您必须每隔4-10秒从文件中读取数据,并使用上述SDK中的DeviceClient将信息发送到IoT中心 下面是C#中的一个代码片段,它从DHt11温度/湿度传感器提取数据,并每隔2秒将数据发送到物联网中心
...
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);
}
关于,您可以拥有一个IoT中心,每个订阅具有免费层,包括所有功能 此外,如果您确实想发送文件,可以通过Azure portal将blob存储连接到IoT中心,并使用DeviceClient将文件上载到blob存储。