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

라즈베리 파이 온도 센서

몇 주 전에 라즈베리 파이를 구입했습니다. Eben Upton의 Raspberry Pi 사용자 가이드, 특히 그가 GPIO에 중점을 둔 두 개의 챕터를 읽은 후 첫 번째 프로젝트에 대한 아이디어가 떠올랐습니다. 이 게시물은 내가 Raspberry Pi, MCP9808, 구형 Mac Mini(2008년 초), InfluxDB, Grafana, 약간의 Python 및 runit을 사용하여 조합한 가정 온도 모니터링 프로젝트의 첫 번째 반복을 다룹니다.

센서 하드웨어

이 프로젝트를 위해 Adafruit의 MCP9808 브레이크아웃 보드를 사용하기로 결정했습니다. 이는 부품, 회로 및 아이디어를 위한 훌륭한 소스입니다. 몇 가지 이유로 이 장치를 선택했습니다.

<올>
  • I²C를 통해 제어됨 – Raspberry Pi의 GPIO는 핀 3(직렬 데이터 라인, SDA) 및 5(직렬 클럭 라인, SCL)를 통해 필요한 I²C 버스를 지원합니다.
  • 2.7V ~ 5.5V 전력 및 논리 범위에서 실행 - Raspberry Pi는 3.3V 및 5V에서 전력선을 제공합니다.
  • 매우 저렴했습니다(<$5 USD) – 제 납땜 기술은 최고가 아닙니다.
  • 회로 어셈블리

    Adafruit의 MCP9808 브레이크아웃 보드는 대부분 조립되어 배송됩니다. 이 특정 키트는 포함된 8핀 헤더 스트립을 브레이크아웃 보드에 납땜하기만 하면 됩니다.

    GPIO Breakout과 브레드보드를 ​​사용하여 Raspberry Pi를 MCP9808에 연결했습니다. 이 접근 방식은 관리하기가 조금 더 쉽고 배선 실수를 수정하며 센서를 Raspberry Pi에 납땜하는 것보다 덜 영구적입니다. MCP9808에서 온도를 읽으려면 전원 핀, 접지, I²C SDA 및 SCL 핀만 필요합니다.

    나머지 선택적 핀은 이 프로젝트에서 사용되지 않습니다. 동일한 버스에서 여러 장치를 사용할 때 문제를 해결하는 I²C에 대한 해결 방법과 센서가 임계값 위 또는 아래의 온도를 읽을 경우 경고하는 핀을 제공합니다.

    데이터 저장소

    영구 데이터 저장소로 프로젝트를 지원하고 싶다는 것을 알고 있었습니다. 이렇게 하면 데이터 포인트를 캡처하고 나중에 일반적인 추세, 날씨 이벤트에 따른 난방/냉각 패턴 상호 참조 등에 대해 분석할 수 있습니다.

    나는 시간 중심 쿼리 언어와 스토리지 모델 때문에 InfluxDB를 선택했습니다. 나는 내 책상 밑에 앉아 있던 오래된 Mac Mini(OSX 10.10이 설치된 2009년 초)에 Influx를 설치했습니다. InfluxDB의 기본 설치를 시작하고 실행하는 것은 문서화되어 있습니다. 이미 Homebrew를 사용하여 대부분의 타사 종속성을 관리하고 InfluxDB에 대한 공식이 존재하므로 brew install influxdb를 실행하여 설치가 완료되었습니다. .

    InfluxDB 데이터베이스 구성

    InfluxDB가 설치된 상태에서 온도 판독값을 저장하기 위한 데이터베이스와 이를 관리할 데이터베이스 사용자를 설정했습니다. InfluxDB 인스턴스의 웹 콘솔을 사용하여 이 작업을 수행했습니다. 기본적으로 포트 8083에서 실행됩니다. InfluxDB 호스트의.

    라즈베리 파이 구성

    이제 하드웨어와 데이터 저장소가 설정되었으므로 I²C 버스를 통해 MCP9808과 통신하기 위해 기본 제공되는 Raspberry Pi에 약간의 OS 구성이 필요합니다.

    I²C 활성화

    기본적으로 Raspberry Pi는 I²C 버스를 사용하는 데 필요한 커널 모듈을 로드하지 않습니다. GPIO를 통한 I²C 통신을 활성화하기 위해 /etc/modules에 다음 두 줄을 추가했습니다.

    i2c-bcm2708i2c-dev 

    그런 다음 Raspberry Pi를 재부팅하십시오.

    sudo 재부팅 

    시스템이 초기화된 후 시스템은 MCP9808이 연결되었음을 인식할 수 있어야 합니다. i2cdetect를 사용했습니다. cli 도구:

    sudo i2cdetect 1 # 채널 1은 Raspberry Pi B+ 모델의 기본값입니다. 

    센서 소프트웨어

    Adafruit는 MCP9808 래퍼와 I²C 추상화를 제공합니다. 이 프로젝트의 기본 드라이버 스크립트에서 이 두 가지를 모두 사용했습니다.

    빌드 종속성 설치

    sudo apt-get 업데이트sudo apt-get 설치 빌드 필수 python-dev python-smbus 

    Adafruit_Python_MCP9808 래퍼 설치

    cd ~/Downloadsgit clone https://github.com/adafruit/Adafruit_Python_MCP9808/blob/master/Adafruit_MCP9808cd Adafruit_MCP9808sudo python setup.py 설치 

    이것은 또한 MCP9808 래퍼가 의존하는 I²C 추상화를 설치합니다.

    읽기, 보고하기, 반복하기

    다음으로 poll.py라는 작은 파이썬 스크립트를 작성했습니다. , 일정 간격으로 MCP9808에서 읽고 그 결과를 mcp9808_test InfluxDB 데이터베이스 인스턴스에 보고합니다.

    #!/usr/bin/python import time import Adafruit_MCP9808.MCP9808 as MCP9808 from influxdb import InfluxDBClient # 온도 데이터를 InfluxDB에 게시하는 데 필요한 페이로드 생성 def temperature_data(degrees_c):return [ { 'points':[[c_to_f(degrees_c)]], 'name':'Temperature Readings', 'columns':['degrees_f']}] # 섭씨 온도 표현을 다음으로 변환합니다. Farenheight def c_to_f(c):return c * 9.0 / 5.0 + 32.0 # I2C 버스를 통해 MCP9808과 통신을 초기화합니다. sensor =MCP9808.MCP9808() sensor.begin() # 캡처 로직이 발생할 간격을 정의합니다. capture_interval =60.0 # 60초마다 # mcp9808_test에 연결을 설정합니다. # InfluxDB 인스턴스 influxClient =InfluxDBClient('', 8086, 'mcp9808', '', 'mcp9808_test') # True인 동안 읽기, 보고, 반복:temp =sensor.readTempC() print "Temperature {0:0.3} F".format( c_to_f(temp)) influxClient.write_points(temperature_data(temp)) time.sleep(capture_interval)

    이제 다음 명령을 사용하여 실행할 수 있습니다. 스크립트는 루트로 실행해야 합니다. GPIO와 상호 작용하기 위해 Raspberry Pi 사용자.

    sudo 파이썬 /poll.py 

    영향

    만세! 모든 것이 정상 작동 중이었습니다... 책상 아래 전원 표시줄의 켜기/끄기 스위치를 걷어차기 전까지는 말이죠. 이 시점에서 나는 poll.py 스크립트는 Raspberry Pi에 전원이 있는 한 실행되었습니다. 이를 위해 runit 프로세스 감독자를 사용했습니다.

    자세한 내용:Raspberry Pi 온도 센서


    제조공정

    1. 라즈베리 파이 온도 로거
    2. LabVIEW를 사용한 Raspberry Pi 온도 프로파일
    3. 1선 DS18B20 센서와 Raspberry Pi로 온도 측정
    4. Raspberry Pi 온도 및 습도 네트워크 모니터
    5. DS18B20으로 온도 읽기 | 라즈베리 파이 2
    6. Raspberry Pi의 온도 모니터링
    7. RASPBERRY PI로 온도 측정
    8. Raspberry pi를 사용하는 TMP006 온도 센서 Python 라이브러리,
    9. Python 및 Raspberry Pi 온도 센서
    10. 라즈베리 파이 기상 관측소