[아두이노#123] CAN통신모듈(MCP2515/4편) 1:N통신으로 온도센서와 먼지센서값 측정하기(녹칸다/포로리야공대가자)
프로그래밍/CAN통신(MCP2515) 2020. 10. 27. 22:15
회로도준비중
(CAN통신모듈(MCP2515/4편) 1:N통신으로 온도센서와 먼지센서값 측정하기)
마스터 아두이노 1개와 슬레이브 아두이노 2개를 1:2로 연결(MCP2515)
첫번째 슬레이브 아두이노에 온습도센서 연결
두번째 슬레이브 아두이노에 미세먼지센서 연결
예제1)마스터에서 각각의 슬레이브의 정보를 request하면 데이터를 response하기
예제2)데이터 출력을 0.91인치 OLED 디스플레이에 해보기
예제123-1-1 (마스터코드)
* 슬레이브1에 온습도센서(DHT11)가 있다
* 슬레이브2에 먼지센서(GP2Y)가 있다
* 슬레이브1과 2의 ID는 define에 참조
* command id는 온습도가 0x0D이고 먼지센서는 0x0F로 하자
* (예시) 0x0F6 0x0D 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
* → ID가 0x0F6인 슬레이브에게 온습도 센서값을 요청하는 패킷
* (예시) 0x036 0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
* → ID가 0x036인 슬레이브에게 먼지센서값을 요청하는 패킷
예제123-2-1 (마스터코드)
* 마스터에 0.91인치 OLED 디스플레이를 연결하자
* SDA를 A4에 SCL을 A5에 연결하면 I2C 통신이 된다!
* 슬레이브1에 온습도센서(DHT11)가 있다
* 슬레이브2에 먼지센서(GP2Y)가 있다
* 슬레이브1과 2의 ID는 define에 참조
* command id는 온습도가 0x0D이고 먼지센서는 0x0F로 하자
* (예시) 0x0F6 0x0D 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
* → ID가 0x0F6인 슬레이브에게 온습도 센서값을 요청하는 패킷
* (예시) 0x036 0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
* → ID가 0x036인 슬레이브에게 먼지센서값을 요청하는 패킷
CAN통신라이브러리(MCP2515)
github.com/autowp/arduino-mcp2515
온습도라이브러리(DHT11)
github.com/adafruit/DHT-sensor-library
0.91인치 OLED 라이브러리(SSD1306)
github.com/adafruit/Adafruit_SSD1306
레퍼런스코드(MCP2515/예제113-1)
레퍼런스코드(먼지센서/예제36-1)
'프로그래밍 > CAN통신(MCP2515)' 카테고리의 다른 글
[아두이노#127] CAN통신모듈(MCP2515/6편) 1:N통신으로 스탭모터 제어해보기(녹칸다/포로리야공대가자) (0) | 2020.10.29 |
---|---|
[아두이노#125] CAN통신모듈(MCP2515/5편) 1:N통신 기본코드 버전2 만들기(녹칸다/포로리야공대가자) (0) | 2020.10.28 |
[아두이노#117] CAN통신 MCP2515으로 1:N통신을 구현해보자(3편/기본)(녹칸다/포로리야공대가자) (0) | 2020.10.21 |
[아두이노#113] CAN통신 MCP2515으로 1:N통신을 구현해보자(2편/프로토콜)(녹칸다/포로리야공대가자) (0) | 2020.10.19 |
[아두이노#108] CAN통신 MCP2515으로 1:N통신을 구현해보자(튜토리얼)(녹칸다/포로리야공대가자) (0) | 2020.10.13 |