딸기파이 시작3 - 디지털 온도 입력편 -

시작


지난번 아날로그 출력의 온도 센서를 라스파에 연결하려고 했지만 GPIO에 아날로그 IO가 없기 때문에 LED가 깜박이는 회로를 만들 수밖에 없었다.
이번에는 꼭 온도를 유지해주세요!
그렇다고 온도에 신경을 쓰는 것은 아니지만 고집도 있다.(^^`灬.

디지털 온도 센서


이에 따라 디지털 온도 센서AM2320로서의 물건을 새로 얻었다.
이것은 사실상 온습도 센서로 온도와 습도를 동시에 측정하는 우수한 것이다.
온도와 습도의 데이터 길이는 16비트, 온도는 0.1℃, 습도는 0.1%RH 해상도라고 합니다.
I2C는 라즈베리 파이와의 인터페이스에 사용할 수 있다.

I2C


이번에 얻은 AM2320은 필립스가 개발한 I2C라는 직렬 통신과 외부 인터페이스를 사용한다.I2C도 IIC 또는 I2C로 표시된 것 같습니다.이 글은 기술하기 쉬운 I2C입니다.
딸기 파이도 이 I2C를 지원한다.하지만 사용하지 않는 경우도 많기 때문에 기본적으로 무효입니다.먼저 딸기 파이를 사용한 I2C.

I2C 활성화


명령줄에서 레이블 구성을 시작합니다.$sudo raspi-config그리고 아래처럼raspi-config 메뉴를 엽니다.

메뉴에서 5 인터페이스 옵션 선택탭 페이지에서 항목을 만들거나 편집합니다.
인터페이스에 대한 메뉴가 열립니다.
그런 다음 메뉴에서 P5I2C를 선택합니다.

어떤 사람이 나에게 I2C를 사용하겠느냐고 물었다.예 를 선택하여 활성화합니다.

회로 설계


AM2320의 인터페이스는 이렇다.
1:VDD(전원 공급 장치 3.1V-5.5V)
2: SDA(직렬 데이터)
3: GND(접지)
4: SCL(직렬 시계 입력 포트)
나는 이 정보에 근거하여 회로를 구축했다.
일단 손바닥 그림.

다음은 회로도.

그리고 실제로 연결된 모습.

이번에는 센서의 입력일 뿐이기 때문에 지난번 LED 테스트 회로와 비교하면 좀 간단하다.

I2C 기능 테스트


I2C 테스트 도구를 적용합니다.

내가 사용하는 버전은 기본적으로 설치된 것 같다.
콘솔에서 I2C를 통과하는 센서의 연결을 확인합니다.$i2cdetect -y 1그래서 나는 이곳에서 한 번 반했다.
주소 5c를 표시해야 하는데 안 나와요.

반환 후 원 자료를 바탕으로 회로의 연결을 확인한다.I2C 기능이 유효한지 다시 확인하고 시스템을 다시 시작하기 위해 많은 시도를 했지만 결과는 변하지 않았다.앉아서 걸으면서 고민하다.대곡 선수의 기록을 무관심하게 바라보다...정말 불가능해!대단해, 대곡 선수!생각하면서
마지막으로 절반을 포기하고 Enter 키를 계속 누르면

그거?가끔 안 나와요.두 번씩 검사하는 것 같아.
근데 그렇지 않을 때도 있죠?
어쨌든 검출이 안 되는 건 아니야!!
그래서 이제 가야 돼!
(여기, 아는 사람 있으면 m(__)m)

프로그램


이번에는 지난번과 비교해도 절차가 간단하다.
센서 정보만 입력하면 되기 때문이다.
am2320test.py
#!/usr/bin/python
# coding: utf-8

# timeモジュールと補助モジュールをimport
import time
import smbus

print ("AM2320 test Start!")

i2c = smbus.SMBus(1)
# i2cdetect で確認したアドレスを指定
address = 0x5c

# I2C初期化
i2c.write_i2c_block_data(address, 0x00,[])
i2c.write_i2c_block_data(address, 0x03,[0x00, 0x04])

time.sleep(0.05)
# 温湿度情報読み出し
block = i2c.read_i2c_block_data(address, 0, 6)

# リトルエンディアン対応
hum = block[2] << 8 | block[3]
temp = block[4] << 8 | block[5]

print('hum : ' + format( hum/10) + ' %Rh')
print('temp: ' + format(temp/10) + ' digC')

print ("AM2320 test End!")

소단절 순서


컴퓨터에 따라 2바이트 길이 이상의 데이터의 배열(바이트 순서)도 역전된다.
이런 상황에서 여기서 진행하는 것처럼 위아래의 바이트를 반전시켜야 한다.

테스트

$python3 am2320.py
이렇게 드디어 온도와 습도에 대한 정보를 얻었다.
그리고 순환 회전하거나 Linux의cron을 사용하여 정기적으로 기록하는 시스템으로 구성되면 도표 표시를 펼칠 수 있습니까?내 생각엔

총결산


사실python과 라즈파는 모두 초보자인 나지만, 나는 둘 다 비교적 순조롭게 여기까지 왔다고 생각한다.
이 기사를 읽은 사람은 꼭 도전해 보세요.

관련 링크


딸기파이 시작 1 - 설정편 -
딸기 파이 시작 2 - LED 컨트롤 편 -

보충하여 기록하다


i2cdetect의 불안정한 일, 이쪽에서도 조언을 받았습니다버스 트랜지스터?이런 일.나도 한번 해보고 싶어.

좋은 웹페이지 즐겨찾기