[아두이노#329] (LoRa#4)장거리 무선통신 LoRa모듈(SX1276)로 게이트웨이(gateway)&노드(node) 1:1 양방향통신 해보기!(녹칸다/포로리야공대가자)
프로그래밍/로라(LoRa)SX1276 2021. 8. 12. 22:48
(LoRa#4)장거리 무선통신 LoRa모듈(SX1276)로 게이트웨이(gateway)&노드(node) 1:1 양방향통신 해보기!
녹칸다의 아두이노 예제에서 LoRa모듈을 활용하는 시리즈중 1:1 단방향에 대한 내용이다!
LoRa모듈인 SX1276을 최근 구입했는데 장거리 무선통신을 할 수 있는 모듈이다!
스펙상 5~6km거리에서도 송수신이 가능하다고 한다!(이건 추후에 검증해보도록 한다!)
다른 RF모듈과 다르게 LoRa모듈이 사용하는 주파수대역은 좀 엄격하다!
그러므로 꼼꼼히 따져보고 활용을 해야 할 것 같은데 녹칸다도 이분야 전문가가 아니므로 확신은 할 수 없다!
즉 본 내용을 참고만 하되 자료를 활용할때 문제가 되는 부분은 스스로 다시 확인할 필요가 있다!
(주의! 녹칸다가 구현한 코드를 외부에서 실사용해서 발생한 위법문제는 본인 책임임!)
추후 녹칸다가 외부에서 테스트 할 일이 생기면 주변 전문가에게 자문을 해볼 예정임!(아직은 잘 모르겠음)
이번편은 328편에서 1:1 양방향예제가 생각보다 확실하게 동작하지 않는다는게 파악이 되었기 때문에 약간 방향을 틀어보도록 한다!
아두이노용 LoRa라이브러리 샘플에는 양방향통신 예제도 있지만 게이트웨이(gateway), 노드(node)예제도 있다!
1:1 양방향에서 마스터가 gateway, 슬레이브가 node라고 생각하면 될 것 같다!
아무튼 1:1 양방향예제에 어떤 독특한 기술이 더 들어간것 같은데 녹칸다의 생각에는 이것이 올바른 LoRa의 사용방법인것 같다!
하나하나 살펴보면서 녹칸다가 원하는 형태의 예제로 가공한다음 여러가지 예제를 구현해보도록 하자!
(일단은 쉬운예제로 잘 되는지 먼저 확인해본다)
-게이트웨이와 노드의 양방향 통신을 충분히 확인할 수 있도록 Text와 LED를 가지고 먼저 테스트 해보자!
(아래는 원래 하기로 예정되었던 목차인데 상황을 봐가면서 구현해보도록 한다)
-마스터에서 슬레이브에 달린 서보모터를 제어하고 현재 설정된 각도를 응답받기!
-버튼을 눌렀을때 서보모터를 제어하고 결과를 FND모듈(TM1637)로 출력하는 예제로 업그레이드!
-마스터에서 슬레이브에 달린 스탭모터를 제어하고 현재 설정된 각도를 응답받기!
-버튼을 눌렀을때 스탭모터를 제어하고 결과를 FND모듈(TM1637)로 출력하는 예제로 업그레이드!
-마스터에서 슬레이브에 달린 DC모터를 릴레이로 제어하고 모터의 RPM을 응답받기!
-버튼을 눌렀을때 DC모터를 제어하고 결과를 FND모듈(TM1637)로 출력하는 예제로 업그레이드!
-마스터에서 슬레이브에 달린 DC모터를 모스펫(IRF520)으로 제어하고 모터의 RPM을 응답받기!
-가변저항과 버튼으로 DC모터를 제어하고 결과를 FND모듈(TM1637)로 출력하는 예제로 업그레이드!
(예제순서)
1.게이트웨이와 노드를 적용한 1:1 양방향 통신이 잘 된다는 것을 확인하는 예제!
2.노드에 LED 1개를 연결한다음 게이트웨이에서 시리얼입력으로 LED를 제어하고 LED의 상태를 노드에서 게이트웨이로 전송하는 예제!
3.노드에 서보모터를 연결하고 게이트웨이에서 시리얼입력으로 보낸 각도값으로 서보모터를 제어하고, 노드에서 게이트웨이로 현재 서보모터의 각도값을 반환하는 예제!
4.게이트웨이에 버튼2개와 FND모듈 1개가 있을때, UP버튼을 누르면 노드내부에 설정된 각도값이 증가하고 DN누르면 각도가 감소하고 그때 변경된 각도값을 게이트웨이쪽으로 반환하라!(스탭모터없는 스탭모터 예제)
5.노드에 릴레이를 이용해서 DC모터를 연결하고 게이트웨이에서 보낸 명령에의해 DC모터를 작동시키고 작동상태를 게이트웨이에달린 FND모듈에 출력하시오!
6.(5)예제에서 릴레이를 mosfet으로 교체하고 PWM을 이용해서 DC모터의 속도를 제어하고 모스펫에 설정된 PWM값을 노드에서 게이트웨이로 전송한다음 FND모듈에 출력하시오!
관련라이브러리(LoRa/0.8.0)
https://github.com/sandeepmistry/arduino-LoRa