如何在C#中读取火焰传感器?

时间:2017-05-20 11:21:57

标签: c# uwp sensor raspberry-pi2 windowsiot


我有这样的传感器:https://easyelectronyx.com/wp-content/uploads/2017/03/flame.jpg?i=1

请有人帮帮我吗?我需要在C#中找到要从中读取的代码。我有Raspberry Pi 2 Model B,Windows 10 IoT Core和C#编程。我无法在互联网上找到文档。是否需要连接模拟输出?

感谢

1 个答案:

答案 0 :(得分:1)

此帧传感器设备可根据其datasheet提供数字或模拟输出。

如果您不想使用模拟输出,可以从数字引脚 DO 获得输出。

首先,连接Frame传感器和Raspberry Pi。连接VCC,GND和DO,如下图所示。对于数字引脚,我在这里选择GPIO27,你可以选择你喜欢的其他引脚。

enter image description here

其次,编写代码。创建UWP应用程序(Start here)。

<强> MainPage.xaml中

<StackPanel VerticalAlignment="Center" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <TextBlock Name="SensorOuputValue" />
</StackPanel>

<强> MainPage.xaml.cs中

public sealed partial class MainPage : Page
{
    private const int SENSOR_PIN = 27;
    private GpioPin pin;
    private GpioPinValue pinValue;
    private DispatcherTimer timer;

    public MainPage()
    {
        InitializeComponent();

        timer = new DispatcherTimer();
        timer.Interval = TimeSpan.FromMilliseconds(1000);
        timer.Tick += ReadSensor;
        InitGPIO();
        if (pin != null)
        {
            timer.Start();
        }
    }

    private void InitGPIO()
    {
        var gpio = GpioController.GetDefault();

        // Show an error if there is no GPIO controller
        if (gpio == null)
        {
            pin = null;
            System.Diagnostics.Debug.WriteLine("There is no GPIO controller on this device.");
            return;
        }

        pin = gpio.OpenPin(SENSOR_PIN);
        pin.SetDriveMode(GpioPinDriveMode.Input);

        System.Diagnostics.Debug.WriteLine("GPIO pin initialized correctly.");

    }

    private void ReadSensor(object sender, object e)
    {
        SensorOuputValue.Text = pin.Read().ToString();
    }

}