산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

라즈베리 파이에 센서를 연결하여 유해 가스가 있을 때 경고합니다!

o Raspberry Pi로 방귀를 감지하려면 헛배부름의 1%를 구성하는 하나 이상의 휘발성 황산 화합물(즉, 방귀 냄새를 만드는 화합물)에 반응하는 센서를 사용해야 합니다. 본질적으로 우리는 Raspberry Pi에 코를 제공해야 합니다. 이 프로젝트에 권장되는 센서는 Figaro TGS2600입니다. 공기가 센서에 들어가면 전기 저항을 측정할 수 있는 작은 히터에 의해 에너지가 공급됩니다. 이것은 에너지가 공급된 공기의 작은 틈에 낮은 수준의 전기를 통과시켜 수행됩니다. 공기가 더 많이 오염될수록 저항이 줄어들고 전기가 잘 전도됩니다(가변 저항기 같은). 따라서 센서의 출력은 공기가 얼마나 오염되었는지에 따라 올라가고 내려가는 아날로그 전압입니다. 오염 물질이 많을수록 전압 출력이 높아집니다.

아날로그 대 디지털

또한 공기질 센서가 아날로그 신호를 제공하고 아날로그 신호와 디지털 신호의 차이를 이해해야 합니다. 디지털 신호는 본질적으로 이진법입니다. 1 또는 0; 켜기 또는 끄기. 반면에 아날로그 신호는 켜짐 또는 꺼짐 사이의 전체 범위를 갖습니다. 자동차 스티어링 휠을 생각해 보십시오. 운전자가 사용할 수 있는 모든 범위의 스티어링이 있기 때문에 휠은 아날로그입니다. 긴 코너를 아주 부드럽게 돌거나 바퀴를 완전히 잠그거나 그 사이의 어느 곳에서나 돌릴 수 있습니다. 자동차를 디지털 방식으로 조종하려면 기본적으로 왼쪽 완전 잠금과 오른쪽 완전 잠금만 있어야 합니다.

디지털 장치로 아날로그 신호 읽기

우리가 직면한 문제는 디지털 컴퓨터에서 아날로그 신호를 읽을 수 있다는 것입니다. Raspberry Pi GPIO 핀은 입력 또는 출력으로 사용할 수 있습니다. 출력 모드는 LED 또는 부저와 같은 것에 전압을 공급하려는 경우입니다. 입력 모드를 사용하는 경우 GPIO 핀에는 코드에서 읽을 수 있는 값이 있습니다. 핀에 전압이 들어가는 경우 판독값은 1이 됩니다. (높음 ); 핀이 접지에 직접 연결된 경우(전압 없음) 판독값은 0이 됩니다. (낮음 ). 따라서 핀은 디지털이므로 1만 허용됩니다. 또는 0 .

이 문제를 어떻게 해결할 수 있습니까? 한 가지 방법은 ADC 칩(Analog to Digital Converter)을 사용하는 것인데, 이 칩은 센서의 아날로그 전압을 우리 코드의 디지털 숫자로 변환합니다. 필요했다. 실제로 우리는 방귀가 감지되면 알람을 울리도록 하여 모두가 달릴 수 있도록 하고 싶습니다! 생각해보면 이것이 입니다 디지털 감지. 있다 방귀가 나거나 없다. 방귀:켜짐 또는 꺼짐, 바이너리 1 또는 0. 공기질 센서에서 나오는 아날로그 충실도에 대해 걱정할 필요가 없습니다.

우리는 센서가 가변 저항기와 같다는 것을 이미 알고 있습니다. 공기 질이 나쁠수록 저항이 낮아지고 더 많은 전압이 통과합니다. 논리적으로 센서가 방귀와 접촉하면 출력 전압이 급증해야 합니다. 따라서 이러한 전압 스파이크를 감지하기만 하면 됩니다. 디지털 방식으로 수행됩니다. 스파이크가 발생하면 GPIO 핀이 LOW에서 HIGH로 이동하도록 만들 수 있습니다. 그런 다음 코드에서 이 변경 사항을 감지하고 알람 사운드 파일을 재생할 수 있습니다!

상한 및 하한 임계값

Raspberry Pi는 GPIO 핀이 HIGH인지 LOW인지 어떻게 알 수 있나요?

이 질문에 대한 답변은 실제로 우리 솔루션의 일부입니다. GPIO 핀은 3.3볼트에서 작동합니다. 따라서 출력 모드에서 핀을 HIGH로 설정하면 해당 핀은 3.3볼트를 제공/공급합니다. 단, 출력 LOW로 설정하면 접지에 연결되지만 회로를 완성하기 위한 리턴 경로를 형성할 수 있습니다.

입력 모드에서는 약간 다르게 작동합니다. 핀의 판독값이 3.3V에 연결되면 HIGH이고 접지에 연결되면 LOW라고 가정할 수 있습니다. 실제로 전압 임계값이 있습니다. 그것은 약 1.1 ~ 1.4 볼트 어딘가에 있습니다. 임계값 미만은 LOW이고 초과는 HIGH입니다. 예를 들어 1.0볼트는 실제로 약간의 전압이 있음에도 불구하고 LOW로 읽히는 반면, 1.6볼트는 3.3보다 훨씬 작음에도 불구하고 HIGH로 읽힙니다.

일부 저항기를 사용하여 공기질 센서의 출력 전압을 바로 아래로 낮추면 이 임계값에 도달하면 방귀로 인한 스파이크가 LOW에서 HIGH로 넘어가고 디지털 방귀 감지 기능이 있습니다.

공기질 센서 연결

공기질 센서의 저면도입니다. 핀 번호에는 다음과 같은 기능이 있습니다.

<올>
  • 히터(-)
  • 센서 전극(-)
  • 센서 전극(+)
  • 히터(+)
  • 따라서 수용해야 하는 두 가지 별개의 회로가 있습니다. 첫 번째는 히터입니다. (핀 1과 4) 공기에 에너지를 공급하는 데 사용되며 다른 하나는 센서입니다. 자체(핀 2 및 3). 센서의 출력(-) 쪽은 저항을 연결할 위치입니다. 브레드보드를 ​​잡고 센서의 4개 핀을 밀어 넣어 아래 그림과 같이 중앙 간격에 걸치도록 합니다. 핀을 약간 구부려야 할 수도 있지만 이는 센서에 손상을 주지 않습니다. 작은 탭이 표시된 것과 같은 방향인지 확인하십시오.

    중요한 내용을 읽으십시오
    위 다이어그램은 Raspberry Pi 모델 B를 보여줍니다. B+ 또는 새로운 Pi 2를 사용하는 경우 처음 26개의 GPIO 핀은 모두 동일합니다. 따라서 다이어그램에 표시된 것과 동일한 핀을 사용할 수 있습니다.

    센서는 5볼트에서 작동할 수 있지만 여기서는 3.3볼트로 작동할 것입니다. GPIO 입력과 함께 사용하는 것이 더 안전하기 때문입니다. 점퍼 와이어를 사용하여 위에 표시된 주황색 연결을 만듭니다. 이것은 센서의 핀 3과 4(양극 모두)에 3.3볼트를 공급합니다. 사용하는 와이어의 색상은 중요하지 않습니다. 다음으로 히터의 (-) 단자를 검은색 선으로 위의 그림과 같이 직접 접지에 연결합니다.

    브레드보드의 오른쪽 상단 모서리에 있는 1행에 있는 센서의 부정적인 면으로 여전히 작업을 수행해야 합니다.

    트리거 핀 연결

    Raspberry Pi가 아직 꺼지지 않은 경우 다음을 입력하여 종료합니다.

    sudo 정지 

    지금은 전원을 뽑습니다. 나중에 다시 연결하겠습니다.

    다음으로 센서의 출력을 GPIO 핀 중 하나에 연결합니다. 이것은 방귀가 발생했는지 확인하기 위해 코드에서 모니터링할 트리거 핀입니다. 이를 위해 GPIO 4를 사용합니다. 점퍼선을 잡고 아래와 같이 흰색으로 연결합니다.

    다음으로 47kΩ 저항(저항은 식별을 돕기 위해 색상으로 구분됨)을 가져와 위와 같이 센서 출력과 접지 사이에 연결합니다. 이렇게 하면 센서 출력에서 ​​나오는 전압의 일부를 사이펀으로 빼내어 트리거 핀에 대한 GPIO 임계값의 1.1~1.4볼트 영역으로 낮추는 데 도움이 됩니다. 이 단일 저항으로는 작업을 완료하기에 충분하지 않으므로 계속 읽으십시오.

    저항 사다리 DAC 구축

    현재 우리가 가지고 있는 문제는 47kΩ 저항을 추가했음에도 불구하고 대기 질 센서의 출력 전압 범위가 상당히 크다는 것입니다. 0볼트는 우리가 진공 상태에서 볼 수 있는 값인 반면 최대 3.3볼트는 끔찍하고 눈이 침침하고 조용하지만 치명적인 방귀에서 볼 수 있는 것입니다. 공기의 배경 품질에 따라 센서의 출력 전압은 해당 범위 내의 어느 곳이든 될 수 있습니다. 따라서 다양한 공기 품질 조건에서 항상 GPIO 임계값 바로 아래로 전압을 낮출 수 있는 안정적인 방법이 필요합니다.

    이를 위해서는 다른이 필요합니다. 가변 저항기를 사용하여 접지로 사이펀하는 전압의 양을 변경할 수 있습니다. 이를 위해 전위차계를 사용할 수 있지만 사용하기 전에 항상 배경 공기에 수동으로 조정해야 합니다. 함정을 설정하고 순진한 희생자를 기다리려는 경우에는 이상적이지 않습니다. 그 사이에 배경 공기질이 자연스럽게 변하고 방귀 없이 알람이 울리도록 할 수 있습니다. 어색하다.

    우리 코드 내에서 이것을 제어하는 ​​것이 훨씬 더 좋을 것입니다. 그런 다음 배경 공기 품질에 계속 조정하도록 프로그래밍할 수 있으며 공기 품질이 변경되더라도 트랩에 수동 개입이 필요하지 않습니다.

    여기서 사용할 수 있는 영리한 트릭은 저항기 사다리입니다. 여기에 코드에서 독립적으로 켜고 끌 수 있는 반복 저항 세트가 있습니다. 각 저항의 옴 값이 서로 다른 경우 서로 다른 조합을 사용하여 가변 저항/전위차계의 동작과 비슷한 값을 얻을 수 있습니다.

    이론

    이 다음 섹션은 다소 지루해 보일 수 있지만 다루는 주제는 프로젝트를 이해하는 데 엄청난 도움이 될 것이므로 건너뛰지 않는 것이 좋습니다.

    아래 다이어그램은 도식적으로 저항 사다리가 TGS2600 대기 질 센서에 연결되는 방법을 보여줍니다. 센서의 출력 전압이 핀 번호 2에서 나옵니다. , 그리고 이것은 GPIO 4에 연결되어 있습니다. 그러나 그 사이에 필요에 따라 전압을 GPIO 핀 임계값까지 낮추기 위해 전압을 사이펀으로 줄일 수 있는 여러 위치가 있습니다.

    지금까지 47kΩ R0만 접지에 직접 배선된 브레드보드에 있습니다. 다른 저항(R1 R4로 )는 각각 병렬 연결됩니다. 다른 GPIO 핀에. 이것은 각 저항이 켜져 있는지 꺼져 있는지에 대한 디지털 제어를 제공합니다. INPUT를 사용하도록 GPIO 핀을 구성하는 경우 모드에서는 GPIO 핀이 내부적으로 아무것도 연결되어 있지 않기 때문에 저항을 끕니다. 그러나 OUTPUT를 사용하도록 설정하면 모드로 전환한 다음 핀을 LOW로 구동하면 저항이 접지에 연결되고 저항을 통해 일부 전압이 흡수됩니다.

    병렬 저항에 대한 참고 사항입니다. 사다리의 총 저항은 아니다. 켜져 있는 모든 저항의 합. 저항을 직렬로 연결했다면 그럴 것입니다. 전압이 각 저항을 차례로 통과해야 하기 때문입니다. 병렬로 전압의 흐름은 각 저항에 균등하게 분배되며 그 효과는 총 저항이 더 작아집니다. . 따라서 더 많은 저항을 켤수록 총 저항은 낮아지고 더 많은 전압이 접지로 흡수됩니다.

    래더는 저항을 켜고 끄는 방식으로 디지털 방식으로 제어되지만 센서의 아날로그 전압에 영향을 미치므로 회로를 디지털-아날로그 변환기 또는 줄여서 DAC라고 할 수 있습니다. 이것은 앞서 언급한 ADC의 반대입니다.

    이상적으로는 저항을 선형 방식으로 변경해야 하며 공기 품질 센서 출력 전압 범위를 수용할 수 있는 많은 수의 켜기/끄기 조합이 있어야 합니다. 모든 저항이 동일한 옴 값을 갖는다면 어떤 일이 일어날지 생각해 보십시오. 고유한 가능한 수 저항 값의 조합이 있을 수 있습니까?

    자세한 내용:라즈베리 파이에 센서를 연결하여 유해 가스가 있을 때 경고하세요!


    제조공정

    1. 라즈베리 파이 온도 로거
    2. 라즈베리 파이 기상 관측소
    3. 초음파 센서(HC-SR04) + 라즈베리파이
    4. Raspberry Pi를 사용한 모션 센서
    5. 라즈베리 파이 토양 수분 센서
    6. Raspberry Pi를 햄스터 피트니스 트래커로 전환
    7. Raspberry Pi 온도 및 광 센서
    8. Raspberry Pi 센서 및 액추에이터 제어
    9. 레고 Mindstorms NXT 초음파 센서를 Raspberry Pi에 연결하는 방법
    10. Raspberry Pi, DHT11 센서 및 Thingspeak로 최초의 IOT를 구축하십시오.