使用Windows IoT上的MAX31855热电偶传感器读取温度

时间:2016-07-02 11:06:28

标签: c# python raspberry-pi temperature windowsiot

我正在使用Windows IoT开发Raspberry Pi 2。我想将Raspberry Pi与我在Adafruit上购买的MAX31855 Thermocouple Sensor连接起来。 GitHub上有一个Python库可以读取传感器的当前温度。不幸的是,我无法使用这个库来处理我的Pi,因为我不知道如何在我的Pi上安装必备的RPi.GPIO和Adafruit_Python_MAX31855库。我不确定它是否在Windows IoT上使用Python。有人可以证实这一点吗?

我在StackOverflow上找到了线程Getting SPI temperature data from outside of class,这似乎就是我想要做的。首先,当我将热电偶与我的Pi连接时,是否需要使用Software SPI or Hardware SPI?使用Windows IoT时是否有重要区别?

GitHub上还有一个C ++库。是否可以在我的C#项目中调用此库中的方法?

2 个答案:

答案 0 :(得分:1)

MAX31855使用SPI接口,因此您可以使用Windows.Devices.Spi.SpiDevice类来读取C#中的数据。

以下是使用SPI总线演示的通用Windows平台(UWP)示例应用程序:https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/IoT-SPI

请注意,最新的Windows 10 IoT核心内幕预览版10.0.14366.0中可能会破坏SPI。以下线程涉及MAX31855并提及此问题: https://social.msdn.microsoft.com/Forums/en-US/b7a61a59-3238-47a3-9249-a3e00abd1488/trouble-reading-thermocouple-max31855-over-spi?forum=WindowsIoT

答案 1 :(得分:1)

在使用带有Windows IoT核心的raspberry pi上使用该python驱动程序之前,您需要进行一些移植工作,

  1. 按照此示例https://developer.microsoft.com/en-us/windows/iot/win10/samples/pythonblinky开始在Windows IoT上进行python编程。
  2. 请参阅https://github.com/adafruit/Adafruit_Python_GPIO中的Platform.py,它适用于电路板版本检测和多板支持。将它添加到您的项目中,您可以将其硬编码为仅支持raspberry pi。

  3. 将MAX31855.py添加到您的项目中,从https://github.com/adafruit/Adafruit_Python_MAX31855/blob/master/Adafruit_MAX31855/MAX31855.py

  4. 复制代码
  5. 替换

    import Adafruit_GPIO as GPIO import _wingpio as gpio

  6. import Adafruit_GPIO.SPI as SPIimport _winspi as SPI

    另外,用PyWinDevices库中的一个来替换每个api调用。

    1. 取决于您是否使用Software SPI or Hardware SPI接线,您可能需要从https://github.com/adafruit/Adafruit_Python_GPIO/blob/master/Adafruit_GPIO/SPI.py移植SPI.py驱动程序。 SetBang api是sw / hw spi控制器的软件包装器,您可以按照示例轻松编写自己的。
    2. 你应该善于完成驱动程序的移植。