Difference between revisions of "Matrix - Fire Sensor"

From FriendlyELEC WiKi
Jump to: navigation, search
(Update Log)
 
(10 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
==Introduction==
 
==Introduction==
 
[[File:Matrix-Fire Sensor.jpg|thumb|Fire Sensor]]
 
[[File:Matrix-Fire Sensor.jpg|thumb|Fire Sensor]]
* 模块Matrix-Fire_Sensor是一个火焰传感器模块,该模块使用YS-17火焰传感器,用于各种火焰、火源探测。可以检测火焰或者波长在760纳米~1100纳米范围内的光源,火焰越大,测试距离越远,探测角度60度左右,对火焰光谱特别灵敏,模块测试灵敏度可通过电位器调节。
+
* The Matrix-Fire_Sensor module is a flame detector module. It uses the YS-17 flame detector to detect flames or fires. It can detect flames or fires whose wavelengths are between 760nm and 1100nm. Its detecting angle is up to 60 degrees. Its sensitivity can be adjusted via the potentiometer.
  
 
==Features==
 
==Features==
Line 23: Line 23:
  
 
==Basic Device Operation==
 
==Basic Device Operation==
* 火焰的热辐射具有离散光谱的气体辐射和连续光谱的固体辐射,YS-17火焰传感器利用红外线对对火焰非常敏感的特点,使用特制的红外线接收管来检测火焰的热辐射,然后把火焰的亮度转化为高低变化的电平信号,再通过比较器与参考阈值电压比较,达到阈值电压时,模块输出低电平。
+
* The YS-17 is an infrared flame detector monitoring the infrared spectral band for specific patterns given off by hot gases. Radiation of flames and fires is sensed using a specialized infrared receiver and then converted to an electronic signal. This signal is compared with a threshold signal and when it reaches the threshold value the module will output a low level.
  
 +
==Applications==
 +
===Connect to NanoPi M1===
 +
Refer to the following connection diagram to connect the module to the NanoPi M1:<br>
 +
[[File:Matrix-Fire_Sensor_nanopi_m1.jpg|frameless|600px|Matrix-Fire_Sensor_nanopi_m1]]
 +
 +
Connection Details:
 +
{| class="wikitable"
 +
|-
 +
|Matrix-Fire_Sensor || NanoPi M1
 +
|-
 +
|S    || Pin7
 +
|-
 +
|V    || Pin4
 +
|-
 +
|G    || Pin6
 +
|}
 +
 +
===Connect to NanoPi 2===
 +
Refer to the following connection diagram to connect the module to the NanoPi 2:<br>
 +
[[File:Matrix-Fire_Sensor_nanopi_2.jpg|frameless|600px|Matrix-Fire_Sensor_nanopi_2]]
 +
 +
Connection Details
 +
{| class="wikitable"
 +
|-
 +
|Matrix-Fire_Sensor || NanoPi 2
 +
|-
 +
|S    || Pin7
 +
|-
 +
|V    || Pin4
 +
|-
 +
|G    || Pin6
 +
|}
 +
 +
===Connect to NanoPi M2 / NanoPi 2 Fire===
 +
Refer to the following connection diagram to connect the module to the NanoPi M2/ NanoPi 2 Fire:<br>
 +
[[File:Matrix-Fire_Sensor_nanopi_m2.jpg|frameless|600px|Matrix-Fire_Sensor_nanopi_m2]]
 +
 +
Connection Details:
 +
{| class="wikitable"
 +
|-
 +
|Matrix-Fire_Sensor || NanoPi M2
 +
|-
 +
|S    || Pin7
 +
|-
 +
|V    || Pin4
 +
|-
 +
|G    || Pin6
 +
|}
 +
 +
===Connect to NanoPC-T2===
 +
Refer to the following connection diagram to connect the module to the NanoPC-T2:<br>
 +
[[File:Matrix-Fire_Sensor_NanoPC-T2.jpg|frameless|600px|Matrix-Fire_Sensor_NanoPC-T2]]
 +
 +
Connection Details:
 +
{| class="wikitable"
 +
|-
 +
|Matrix-Fire_Sensor || NanoPC-T2
 +
|-
 +
|S    || Pin15
 +
|-
 +
|V    || Pin29
 +
|-
 +
|G    || Pin30
 +
|}
 +
 +
==Compile & Run Test Program==
 +
Boot your ARM board with Debian and copy the matrix code:
 +
<syntaxhighlight lang="bash">
 +
$ apt-get update && apt-get install git
 +
$ git clone https://github.com/friendlyarm/matrix.git
 +
</syntaxhighlight>
 +
If your cloning is done successfully a "matrix" directory will be generated.
 +
 +
Compile and install Matrix:
 +
<syntaxhighlight lang="bash">
 +
$ cd matrix
 +
$ make && make install
 +
</syntaxhighlight>
 +
 +
Run test program:
 +
<syntaxhighlight lang="bash">
 +
$ matrix-gpio_int
 +
</syntaxhighlight>
 +
Note: this module is not plug and play therefore before running the module please make sure it is connected to an ARM board.<br>
 +
Here is what you should observe:<br>
 +
<syntaxhighlight lang="bash">
 +
Waiting event...
 +
Device[0] value is 1
 +
</syntaxhighlight>
 +
If a flame is within its detection range it will be detected and an event will be triggered.
 +
 +
==Code Sample==
 +
This Matrix code sample can work with all the ARM boards mentioned in this module's wiki. The name of this code sample is "matrix-gpio_int". Here is its source code:
 +
<syntaxhighlight lang="c">
 +
int main(int argc, char ** argv)
 +
{
 +
    int i, board;
 +
    int retSize = -1;
 +
    char value[ARRAY_SIZE(dev)];
 +
 +
    if ((board = boardInit()) < 0) {
 +
        printf("Fail to init board\n");
 +
        return -1;
 +
    }
 +
   
 +
    if (argc == 2)
 +
        dev[0].pin = atoi(argv[1]);
 +
    system("modprobe "DRIVER_MODULE);
 +
    signal(SIGINT, intHandler);
 +
    if (board == BOARD_NANOPI_T2)
 +
        dev[0].pin = GPIO_PIN(15);
 +
    printf("Use GPIO_PIN(%d)\n", dev[0].pin);
 +
    if ((devFD =sensorInit(dev, ARRAY_SIZE(dev))) == -1) {
 +
        printf("Fail to init sensor\n");
 +
        goto err;
 +
    }
 +
    printf("Waiting event...\n");
 +
    if ((retSize = sensorRead(devFD, value, ARRAY_SIZE(dev))) == -1) {
 +
        printf("Fail to read sensors\n");
 +
    }
 +
    if (retSize > 0) {
 +
        i = 0;
 +
        for (i=0; i<retSize; i++) {
 +
            printf("Device[%d] value is %d\n", i, value[i]);
 +
        }
 +
    }
 +
    sensorDeinit(devFD);
 +
err:   
 +
    system("rmmod "DRIVER_MODULE);
 +
    return 0;
 +
}
 +
</syntaxhighlight>
 +
For more details about this APIs called in this code sample refer to [[Matrix API reference manual]] <br>
 +
<!---
 
==Download Matrix Source Code==
 
==Download Matrix Source Code==
 +
--->
 +
 +
==Resources==
  
 
==Update Log==
 
==Update Log==
 
===Feb-24-2016===
 
===Feb-24-2016===
 
* Added Sections 1, 2, 3 and 4
 
* Added Sections 1, 2, 3 and 4
 +
 +
===Feb-26-2016===
 +
* Translated into English
 +
 +
===June-19-2016===
 +
* Re-organized and simplified wiki

Latest revision as of 15:00, 19 June 2016

查看中文

1 Introduction

Fire Sensor
  • The Matrix-Fire_Sensor module is a flame detector module. It uses the YS-17 flame detector to detect flames or fires. It can detect flames or fires whose wavelengths are between 760nm and 1100nm. Its detecting angle is up to 60 degrees. Its sensitivity can be adjusted via the potentiometer.

2 Features

  • Standard 3 PIN Interface
  • PCB Dimension(mm): 16 x 24

Fire Sensor.PCB

  • Pin Description:
Pin Description
S GPIO
V Supply Voltage 5V
G Ground

3 Basic Device Operation

  • The YS-17 is an infrared flame detector monitoring the infrared spectral band for specific patterns given off by hot gases. Radiation of flames and fires is sensed using a specialized infrared receiver and then converted to an electronic signal. This signal is compared with a threshold signal and when it reaches the threshold value the module will output a low level.

4 Applications

4.1 Connect to NanoPi M1

Refer to the following connection diagram to connect the module to the NanoPi M1:
Matrix-Fire_Sensor_nanopi_m1

Connection Details:

Matrix-Fire_Sensor NanoPi M1
S Pin7
V Pin4
G Pin6

4.2 Connect to NanoPi 2

Refer to the following connection diagram to connect the module to the NanoPi 2:
Matrix-Fire_Sensor_nanopi_2

Connection Details

Matrix-Fire_Sensor NanoPi 2
S Pin7
V Pin4
G Pin6

4.3 Connect to NanoPi M2 / NanoPi 2 Fire

Refer to the following connection diagram to connect the module to the NanoPi M2/ NanoPi 2 Fire:
Matrix-Fire_Sensor_nanopi_m2

Connection Details:

Matrix-Fire_Sensor NanoPi M2
S Pin7
V Pin4
G Pin6

4.4 Connect to NanoPC-T2

Refer to the following connection diagram to connect the module to the NanoPC-T2:
Matrix-Fire_Sensor_NanoPC-T2

Connection Details:

Matrix-Fire_Sensor NanoPC-T2
S Pin15
V Pin29
G Pin30

5 Compile & Run Test Program

Boot your ARM board with Debian and copy the matrix code:

$ apt-get update && apt-get install git
$ git clone https://github.com/friendlyarm/matrix.git

If your cloning is done successfully a "matrix" directory will be generated.

Compile and install Matrix:

$ cd matrix
$ make && make install

Run test program:

$ matrix-gpio_int

Note: this module is not plug and play therefore before running the module please make sure it is connected to an ARM board.
Here is what you should observe:

Waiting event...
Device[0] value is 1

If a flame is within its detection range it will be detected and an event will be triggered.

6 Code Sample

This Matrix code sample can work with all the ARM boards mentioned in this module's wiki. The name of this code sample is "matrix-gpio_int". Here is its source code:

int main(int argc, char ** argv)
{
    int i, board;
    int retSize = -1;
    char value[ARRAY_SIZE(dev)];
 
    if ((board = boardInit()) < 0) {
        printf("Fail to init board\n");
        return -1;
    }
 
    if (argc == 2)
        dev[0].pin = atoi(argv[1]);
    system("modprobe "DRIVER_MODULE);
    signal(SIGINT, intHandler);
    if (board == BOARD_NANOPI_T2)
        dev[0].pin = GPIO_PIN(15);
    printf("Use GPIO_PIN(%d)\n", dev[0].pin);
    if ((devFD =sensorInit(dev, ARRAY_SIZE(dev))) == -1) {
        printf("Fail to init sensor\n");
        goto err;
    }
    printf("Waiting event...\n");
    if ((retSize = sensorRead(devFD, value, ARRAY_SIZE(dev))) == -1) {
        printf("Fail to read sensors\n");
    }
    if (retSize > 0) {
        i = 0;
        for (i=0; i<retSize; i++) {
            printf("Device[%d] value is %d\n", i, value[i]);
        }
    }
    sensorDeinit(devFD);
err:    
    system("rmmod "DRIVER_MODULE);
    return 0;
}

For more details about this APIs called in this code sample refer to Matrix API reference manual

7 Resources

8 Update Log

8.1 Feb-24-2016

  • Added Sections 1, 2, 3 and 4

8.2 Feb-26-2016

  • Translated into English

8.3 June-19-2016

  • Re-organized and simplified wiki