CPU Raspberry Pi 在 C# 中的温度
CPU temperature of Raspberry Pi in C#
我已经阅读了很多关于这个主题的文章和论坛帖子,但几乎所有内容都非常复杂,而且都是 2 多年前的。
所以我想知道,在 C# 中获取 Raspberry Pi 的 CPU 温度的最佳方法是什么?
我有最新版本的 Windows 10 IoT Core。
更新
我不想降低 CPU 温度。我正在使用 Sense HAT。那东西的温度传感器位于 CPU 附近,因此读数不准确。我找到了一个使读数准确的 python 脚本,但它需要 CPU 温度。
注意:
我正在使用 Windows 10 IoT Core!
我没有这个文件:/sys/class/thermal/thermal_zone0/temp
更新二:
如果唯一的方法是编写自己的驱动程序,请指导我如何做。我对编写驱动程序或任何如此低级的东西一无所知...
据我所知,没有IoT SDK 或powershell 客户端可以访问低级BCM2836 peripherals.You 需要自己编写驱动程序。您可以按照 https://github.com/ms-iot/bsp/tree/master/drivers 中的代码示例进行操作,它是在 WDK 框架下编写的,因此您需要先熟悉它才能开始。
另一种选择是,使用 DS18B20 热传感器测量温度。此热传感器通过 I2C 连接 raspberry pi。你需要在你的解决方案中通过 nuget 安装 Rinsen.OneWire 包,这个库是用 C# 编写的,它内置了对 DS18B20 和 DS18S20 传感器的支持。
我不是 100% 确定这是正确的方法,但如果有人可以纠正我或指出更好的解决方案,我会非常乐意从中学习。
您可以使用 MCP9808 芯片实现此目的。
Jeremy Lindsay 的一篇文章向您介绍了如何在 Window 10 IoT Core 上使用 C# 使其工作的过程。
文章部分节选:
How does the MCP9808 work?
This sensor uses the I2C protocol, which is supported by Windows 10 IoT Core on the Pi 3. As there’s already extensive integration of this protocol in the framework, this makes coding significantly easier. The MCP9808 can be initialised using the slave address of 0x18, and the ambient temperature can be read back from two bytes of data after writing 0x05 to the device.
Connecting the MCP9808 to the Raspberry Pi
There are 4 pins on the MCP9808 temperature sensor that we need to use to get a basic temperature reading. I connected mine to the Pi using the pins specified below.
• Supply Voltage – Pin 2
• Ground – Pin 6
• Serial Clock – Pin 5
• Serial Data – Pin 3
Jeremy 还在 GitHub 上分享了代码:https://github.com/jeremylindsayni/Magellanic.Sensors.MCP9808
希望对您有所帮助!
我想你可以尝试通过reading the current consumption and then using this formula计算当前CPU温度来计算温度。
我不知道现在的手机制造商是如何测量设备温度的。但这与诺基亚过去(我在那里工作时)基于 IBATT(电池电流)和 VBATT(电池电压)读数测量温度的方式没有太大区别。
我已经阅读了很多关于这个主题的文章和论坛帖子,但几乎所有内容都非常复杂,而且都是 2 多年前的。
所以我想知道,在 C# 中获取 Raspberry Pi 的 CPU 温度的最佳方法是什么?
我有最新版本的 Windows 10 IoT Core。
更新
我不想降低 CPU 温度。我正在使用 Sense HAT。那东西的温度传感器位于 CPU 附近,因此读数不准确。我找到了一个使读数准确的 python 脚本,但它需要 CPU 温度。
注意:
我正在使用 Windows 10 IoT Core!
我没有这个文件:/sys/class/thermal/thermal_zone0/temp
更新二:
如果唯一的方法是编写自己的驱动程序,请指导我如何做。我对编写驱动程序或任何如此低级的东西一无所知...
据我所知,没有IoT SDK 或powershell 客户端可以访问低级BCM2836 peripherals.You 需要自己编写驱动程序。您可以按照 https://github.com/ms-iot/bsp/tree/master/drivers 中的代码示例进行操作,它是在 WDK 框架下编写的,因此您需要先熟悉它才能开始。
另一种选择是,使用 DS18B20 热传感器测量温度。此热传感器通过 I2C 连接 raspberry pi。你需要在你的解决方案中通过 nuget 安装 Rinsen.OneWire 包,这个库是用 C# 编写的,它内置了对 DS18B20 和 DS18S20 传感器的支持。
我不是 100% 确定这是正确的方法,但如果有人可以纠正我或指出更好的解决方案,我会非常乐意从中学习。
您可以使用 MCP9808 芯片实现此目的。
Jeremy Lindsay 的一篇文章向您介绍了如何在 Window 10 IoT Core 上使用 C# 使其工作的过程。
文章部分节选:
How does the MCP9808 work?
This sensor uses the I2C protocol, which is supported by Windows 10 IoT Core on the Pi 3. As there’s already extensive integration of this protocol in the framework, this makes coding significantly easier. The MCP9808 can be initialised using the slave address of 0x18, and the ambient temperature can be read back from two bytes of data after writing 0x05 to the device.
Connecting the MCP9808 to the Raspberry Pi
There are 4 pins on the MCP9808 temperature sensor that we need to use to get a basic temperature reading. I connected mine to the Pi using the pins specified below.
• Supply Voltage – Pin 2
• Ground – Pin 6
• Serial Clock – Pin 5 • Serial Data – Pin 3
Jeremy 还在 GitHub 上分享了代码:https://github.com/jeremylindsayni/Magellanic.Sensors.MCP9808
希望对您有所帮助!
我想你可以尝试通过reading the current consumption and then using this formula计算当前CPU温度来计算温度。
我不知道现在的手机制造商是如何测量设备温度的。但这与诺基亚过去(我在那里工作时)基于 IBATT(电池电流)和 VBATT(电池电压)读数测量温度的方式没有太大区别。