[아두이노#122] RS485/MAX485 통신모듈(5편) 1:N통신으로 온습도센서와 먼지센서값 측정하기(녹칸다/포로리야공대가자)
프로그래밍/RS485모드버스(modbus) 2020. 10. 27. 22:13
회로도준비중
(RS485/MAX485 통신모듈(5편) 1:N통신으로 온습도센서와 먼지센서값 측정하기)
마스터 아두이노 1개와 슬레이브 아두이노 2개를 1:2로 연결(rs485)
첫번째 슬레이브 아두이노에 온습도센서 연결
두번째 슬레이브 아두이노에 미세먼지센서 연결
예제1)마스터에서 각각의 슬레이브의 정보를 request하면 데이터를 response하기
예제2)데이터 출력을 0.91인치 OLED 디스플레이에 해보기
예제122-1-1 (마스터코드)
* 슬레이브1번 아두이노에 온습도센서 DHT11이 연결되어있다
* 슬레이브2번 아두이노에 먼지센서인 GP2Y가 연결되어있다.
* 슬레이브1의 ID는 0x00이고 슬레이브2의 ID는 0x01이다
* 온습도센서의 command code는 0x01이다
* 먼지센서의 command code는 0x02이다
* (예제 패킷)
* 0x00 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
* → ID가 0x00인 슬레이브에게 온습도센서의 값을 요청하는 패킷
* 0x01 0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
* → ID가 0x01인 슬레이브에게 먼지센서값을 요청하는 패킷
예제122-2-1 (마스터코드)
* 마스터에 OLED 디스플레이가 연결되어있다.
* OLED디스플레이는 I2C통신을 하므로 고정된 위치에 연결해야한다
* SDA : A4, SCL : A5
* 슬레이브1번 아두이노에 온습도센서 DHT11이 연결되어있다
* 슬레이브2번 아두이노에 먼지센서인 GP2Y가 연결되어있다.
* 슬레이브1의 ID는 0x00이고 슬레이브2의 ID는 0x01이다
* 온습도센서의 command code는 0x01이다
* 먼지센서의 command code는 0x02이다
* (예제 패킷)
* 0x00 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
* → ID가 0x00인 슬레이브에게 온습도센서의 값을 요청하는 패킷
* 0x01 0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
* → ID가 0x01인 슬레이브에게 먼지센서값을 요청하는 패킷
온습도라이브러리(DHT11)
github.com/adafruit/DHT-sensor-library
0.91인치 OLED 라이브러리(SSD1306)
github.com/adafruit/Adafruit_SSD1306
레퍼런스코드(rs485/예제112-1)
레퍼런스코드(먼지센서/예제36-1)
'프로그래밍 > RS485모드버스(modbus)' 카테고리의 다른 글
[아두이노#126] RS485/MAX485 통신모듈(7편) 1:N통신으로 스탭모터 제어해보기(녹칸다/포로리야공대가자) (0) | 2020.10.29 |
---|---|
[아두이노#124] RS485/MAX485 통신모듈(6편) 1:N통신 기본코드 버전2 만들기(녹칸다/포로리야공대가자) (8) | 2020.10.28 |
[아두이노#116] RS485통신으로 1:N 통신을 구현해보자(4편/기본)(녹칸다/포로리야공대가자) (0) | 2020.10.21 |
[아두이노#112] RS485통신으로 1:N 통신을 구현해보자(3편/프로토콜)(녹칸다/포로리야공대가자) (0) | 2020.10.19 |
[아두이노#107] RS485통신으로 1:N 통신을 구현해보자(2편)(녹칸다/포로리야공대가자) (0) | 2020.10.13 |