[아두이노#343] (기상관측소#8) 장거리LoRa모듈(SX1276)을 이용한 데이터수집과 MQTT허브(HUB)만들기!(Weather Station시리즈/녹칸다/포로리야공대가자)
프로그래밍/MISOL기상관측소 2021. 9. 2. 22:51
(기상관측소#8) 장거리LoRa모듈(SX1276)을 이용한 데이터수집과 CRC16을 이용한 에러검증!(Weather Station시리즈)
녹칸다의 기상관측소(weather station) 시리즈이다!
기상관측을 위한 센서는 기능적으로 구현하기가 그렇게 어렵지는 않다!
그러나 항상 이런 질문을 받게 될 것이다! (직접 만든 센서.. 그거.. 정확해요..?)
DIY한 센서는 정확함?을 어필하기에는 명분이 부족하므로 기상관측소 시리즈에서는 제품을 활용해보도록 한다!
MISOL이라는 회사의 기상관측을 위한 센서와 프레임을 세트로 구입했다!(후원 해주신 분들 감사!)
아래와 같은 구성품이 있다!
1.풍속계(Anemometer/WH-SP-WS)
2.풍향계(Wind vane/WH-SP-WD)
3.측우기(Rainfall/WH-SP-RG)
4.온습도센서(이건 아두이노에서 실질적으로 사용하기가 어려움)
이번편에서는 녹칸다의 기상관측소의 버전을 한층더 끌어올려서 실생활에 바로 활용해도 손색이 없는 개념으로 접근해보도록 하자!
기상관측소(weather station)이 넓은 범위에 여러개 배치되어 있을 경우 하나의 관제소에서 데이터를 수집 및 관리 할 필요가 있다!
그렇다면 데이터를 무선으로 수집해야 하는데 아주 넓은 커버리지를 가지는 로라통신(LoRa)이 녹칸다가 가진 해법에서 가장 적절해 보인다!
LoRa모듈인 SX1276을 이용해서 관측소에 있는 아두이노를 LoRa 노드로 설정하고 PC에 연결된 아두이노를 LoRa 게이트웨이(gateway)로 설정해서 데이터를 넘겨받아 보자!
이때 보내는 프레임도 고민해야 할 것 같은데.. 아무튼 해보자!
차주에는 LoRa를 이용해서 수집한 데이터를 어떻게 수집 및 관리 하면 좋을지 다양한 툴을 이용해서 예제를 구현해보자!
(+추가) rs485통신(modbus)에서 송수신 데이터의 에러검증을 위해 사용되는 CRC16을 LoRa에도 반영해보자!
생각보다 송수신하는 데이터에 에러가 많이나서 필요할 것 같다..!
관련라이브러리(LoRa/0.8.0)
https://github.com/sandeepmistry/arduino-LoRa
관련라이브러리(DHT11/1.3.8)
https://github.com/adafruit/DHT-sensor-library
관련라이브러리(pubsubclient/2.8.0)
https://pubsubclient.knolleary.net/
관련라이브러리(CRC/0.1.2)
https://github.com/RobTillaart/CRC
(LoRa 웨더스테이션/아두이노 우노 코드)
(LoRa IoT HUB/ 사물인터넷보드 코드)