반응형

https://youtube.com/live/2FeP8y0ASPU

[433Mhz #5] 아두이노(arduino)에 433mhz로 1:1 양방향통신 구현해서 Request&Response방식으로 제어해보기!(녹칸다의 아두이노)

녹칸다의 433mhz 무선통신 시리즈이다!

이번편은 아두이노 2대를 준비하고 433mhz 송신기(SYN115)와 수신기(SYN480R)를 둘다 연결하고 양방향 통신을 해보도록 한다!
송신기는 송신만되고 수신기는 수신만되기 때문에 아두이노에게 2개다 연결해주는 것이다!

그러면 통신다운 통신을 할 수 있게 되는 것이다!
(지금까지는 한쪽에서 다른 한쪽으로 보내는 단방향이었으므로)

무작적 2개의 보드가 메시지를 마구마구 전송하는 것은 큰 의미가 없는 것같고 한쪽이 주도권을 가진 방식으로 여러가지 시도를 해보고자 한다!
(한쪽은 마스터가 되고 한쪽은 슬레이브가 된다)

예를들어 마스터에 버튼이 있고 슬레이브에 LED가 있을 경우 마스터에서 버튼을 눌러서 슬레이브의 LED를 제어하게 되고 슬레이브는 아래와 같은 정보를 응답하도록 한다!
1.내가 지금 메시지를 잘 수신 받았다!
2.마스터가 보낸 명령을 잘 수행했다!

그러면 슬레이브가 전송한 응답으로 마스터는 제어가 성공했음을 알아차릴 수 있는 것이다!

마스터를 유저가 가지고 슬레이브에 달린 목적물을 제어한다고 할때 유저의 시야에 목적물이 보이지 않는다면 제어가 되었는지 안되었는지 알아낼 필요가 있다!
그런측면에서 양방향 통신은 의미가 있다고 할 수 있다!

(깨알지식)
1.아두이노의 아날로그 입력은 10bit이고 pwm출력은 8bit임으로 값에 차이가 있다!
2.10bit는 0~1023의 범위를 가지고 8bit는 0~255까지 총 256등분이다!
3.LED의 밝기제어라는 개념은 0~255값을 아두이노가 출력하면되고 아날로그 입력은 0~1023이므로 값의 변환을 해야한다!(비율에 맞게 조절해야함)
4.그때 사용하는 내장함수가 map함수이다!
5.LED On/Off예제는 릴레이 On/Off예제와 동일하고 LED 밝기제어 예제는 모스펫을 이용한 DC모터 속도제어 예제와 동일함!

(예제목차)
1.아두이노 2대에 각각 433mhz송수신기를 한쌍씩 연결하고 양방향통신이 가능함을 보이시오!(한쪽에서 hello라고 전송하면 world라고 응답하고 nockanda라고 전송하면 forever라고 응답하도록 하시오!)

433mhz-5-1-1.txt
0.00MB
433mhz-5-1-2.txt
0.00MB

 

2.슬레이브쪽에 가상의 온습도센서가 있다고 가정하고 마스터쪽에서 값을 요구한 경우에만 응답으로 센서값을 전송하도록 하시오!
(마스터) 0x1F값 전송
(슬레이브) 온습도값 구조체값 응답

433mhz-5-2-1.txt
0.00MB
433mhz-5-2-2.txt
0.00MB

 

3.마스터가 슬레이브에게 명령을 전송했을때 슬레이브가 오프라인인지 아닌지를 체크할 수 있도록 하시오!(타임아웃 시간은 1000밀리초)

433mhz-5-3-1.txt
0.00MB
433mhz-5-3-2.txt
0.00MB

 

4.마스터쪽에 2번핀과 3번핀에 버튼을 1개씩 연결하고 슬레이브의 2번핀에 LED를 1개 연결한다음 2번핀에 연결된 버튼을 누르면 LED가 켜지고 3번핀에 연결된 버튼을 누르면 LED가 꺼지도록 하고 아래 내용을 더 추가하시오! 마스터쪽에 LED를 4번핀에 연결한다음 슬레이브가 정상응답하면 LED를 켜고 비정상응답하면 LED를 끄도록 하시오!
(마스터) 0x00 전송하면 OFF, 0x01전송하면 ON
(슬레이브) 0xAA 응답하면 정상응답

433mhz-5-4-1.txt
0.00MB
433mhz-5-4-2.txt
0.00MB

 

5.(4)예제에서 마스터쪽 5번핀에 LED를 1개더 추가한다음 슬레이브에 연결된 LED가 켜져있으면 같이켜고 꺼져있으면 같이 꺼지도록 동기화 시키시오!
(마스터) 0x00 전송하면 OFF, 0x01전송하면 ON
(슬레이브) 끄기명령을 수행했으면 0xA0응답, 켜기명령을 수행했으면 0xA1응답

433mhz-5-5-1.txt
0.00MB
433mhz-5-5-2.txt
0.00MB

 

6.(4)예제와 유사하게 하되 마스터쪽 2번핀 버튼이 눌려지면 슬레이브 내부 변수값이 0.5씩 하락하고 3번핀 버튼을 누르면 0.5씩 증가하도록 하고 슬레이브가 해당 변수값을 응답해서 마스터쪽 FND모듈(TM1637)에 출력되도록 하시오!
(마스터) 0x00 전송하면 0.5씩감소, 0x01전송하면 0.5씩증가
(슬레이브) 설정값은 int형으로 전송하도록 함!(20.5라면 205를 전송한다)

433mhz-5-6-1.txt
0.00MB
433mhz-5-6-2.txt
0.00MB

 

7.마스터에 가변저항을 연결하고 100밀리초마다 슬레이브로 값을 전송한다! 슬레이브는 가변저항값을 받아서 LED의 밝기를 조절하고 현재 설정된 밝기값을 응답해서 마스터쪽 FND화면에 출력하시오!(전파법상 이렇게 해도 되느냐? 녹칸다는 모릅니다)

433mhz-5-7-1.txt
0.00MB
433mhz-5-7-2.txt
0.00MB

반응형
Posted by 덕력킹
,