반응형
I2C 포트 제어하기
I2C 센서들과 통신하기 위해 포트를 열어줘야 한다.
라즈베리파이 설정 창을 열어 I2C를 열어준다.
sudo raspi-config
그 다음 I2C 제어를 위한 패키지들을 설치해준다.
sudo apt-get install i2c-tools
sudo apt-get install python3-smbus
아래 명령어를 통해 현재 연결된 Slave들의 주소를 확인할 수 있다.
i2cdetect -y 1 //i2c-1
i2cdetect -y 0 //i2c-0
아래와 같이 0x68 (MPU6050), 0x5B(CCS811) 2개가 뜨는것을 볼 수 있다.
ajw@raspberrypi:~ $ i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- 5b -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
아래와 같이 파이썬에서도 통신이 잘 되는것을 확인할 수 있다.
ajw@raspberrypi:~/sensor-monitoring-system/raspberrypi $ python3
>>> import smbus
>>> i2c = smbus.SMBus(1)
>>> i2c.read_i2c_block_data(0x5b, 0x20, 1)
[129]
위의 코드는 CCS811의 HW_ID를 조회한 것으로, 데이터시트에 따르면 0x81이 나와야 정상이다.
10진수 129는 16진수 0x81이니 잘 나온것을 확인할 수 있다.
이제 통신이 됐으니 센서 모듈을 개발해보자.
반응형
'Projects > 센서 모니터링 시스템' 카테고리의 다른 글
[센서 모니터링 시스템] 6. Spring 서버 기본환경 설정 (0) | 2022.08.17 |
---|---|
[센서 모니터링 시스템] 5. MPU6050(가속도 센서) 모듈 개발 (0) | 2022.08.17 |
[센서 모니터링 시스템] 4. CCS811(공기질 센서) 모듈 개발 (0) | 2022.08.17 |
[센서 모니터링 시스템] 2. 라즈베리파이 개발환경 구성 (0) | 2022.08.17 |
[센서 모니터링 시스템] 1. 프로젝트 시작 (0) | 2022.08.17 |