Project/Arduino

LoRa 프로젝트 완성(LoRa, WiFi, 센서 등 모든 코드 정리)

Juzero 2020. 7. 9. 13:46

 

 

드디어 한 학기짜리 LoRa 프로젝트를 완성했다. 

프로젝트 주제는

 

< LPWA 기반 실내 자동 환기 시스템 구축 > 

 

최종 완성과 시연 영상은 글 제일 마지막에 !

 

일단 이번 프로젝트에서 LoRa 통신을 이용했고, 하드웨어는 ESP32 TTGO LoRa 모듈이다. 

네이버에서 하나당 약 3만5천원? 정도 주고 구매했다.

SK나 다른 회사에서 제공하는 LoRa 통신망을 이용하지 않고, 모듈 3개로 송수신했다.

 

코드는 이 전에 포스팅 했던 게시글에 있다.

 

LoRa 모듈 송수신 코드

CO2와 이산화탄소 측정 코드

와이파이로 웹서버에 데이터 보내는 코드

 

최종 완성된 전체 코드 및 깃헙 주소는 아래에 있다. 코드만 옮기면 안되고, 필요한 라이브러리들을 모두 다운받아서 추가해야 한다. 

 

https://github.com/youngpark17/DGU_Cepston_4Ground

 

youngpark17/DGU_Cepston_4Ground

Contribute to youngpark17/DGU_Cepston_4Ground development by creating an account on GitHub.

github.com

 

만약 내 코드가 보기 좀 힘들다면

 

https://randomnerdtutorials.com/esp32-lora-rfm95-transceiver-arduino-ide/

 

ESP32 with LoRa using Arduino IDE | Random Nerd Tutorials

Learn LoRa basics and how it can be used with the ESP32 for IoT projects using the Arduino IDE. You'll also create a LoRa Sender and LoRa Receiver with RFM95

randomnerdtutorials.com

이 사이트를 참고하면 좋다. 나도 이 사이트에서 기본 코드들을 가져와서

 

우리 상황에 맞게 커스터마이징 했다. 위에 코드에는 블루투스도 있으니 그런 것들은 빼고

필요한 부분만 사용하면 될 것 같다. 


전체 하드웨어 구성

 

1. co2와 미세먼지 측정하는 부분

2. led 경보기 부분

3. 서보모터 센서와 간이 창문 부분

 

이렇게 3가지 파트로 구성되어 있다. 

 

좀 복잡하게 생겼지만 3부분으로 나누어져있다.

 

그리고 프로젝트 전체 시스템 구성도는 다음과 같다. LoRa 통신으로 데이터를 송수신하고, WiFi를 이용해서 웹서버로 데이터를 보내는 시스템이다. 우리는 AWS로 서버를 돌리고 데이터베이스를 구축해놨다. 

 

 

열람실에서 데이터를 측정해서, 그 값에 따라서 서보모터와 led가 동작하도록 하는 시스템이다. 

 


LoRa 송신모듈 : Co2와 미세먼지 측정해서 송신하기

 

 

잘 된다. 위에 있는 모듈이 ESP32 TTGO LoRa 모듈인데 

 

둘 중에 위에 있는 게 송신(Sender)역할 아래에 있는게 수신(Receiver)역할을 한다. 똑같은 코드로 여러 LoRa 모듈에서 수신도 가능하다. 

 

esp32를 살 때, LoRa 기능을 지원하는지 꼭 확인하고 사야 한다. 처음에 LoRa 기능을 지원 안하는 거로 했다가 시간 날려먹었다. 

 

다이소에서 3000원에 납땜기와 납을 사서 직접 납땜했다. 납땜하지 않으면 전기신호가 불안정하기 때문에 

꼭 납땜을 해주는 것이 좋다. (납땜 좀 잘한 것 같다 ㅎㅎ 하고나서 혼자 뿌듯)

 

Sender 부분 코드

 

https://github.com/youngpark17/DGU_Cepston_4Ground/blob/master/Arduino/LoRa_finalVersion/LoRaSender_Co2nDust_WiFi/LoRaSender_Co2nDust_WiFi.ino

 

youngpark17/DGU_Cepston_4Ground

Contribute to youngpark17/DGU_Cepston_4Ground development by creating an account on GitHub.

github.com

하드웨어 연결한 스케치

 

 

 


LoRa Recevier 1 : LED 전구와 연결한 LoRa 모듈이 데이터를 잘 수신해서 LED를 켜는지 확인

 

 

CO2나 미세먼지(DUST) 값을 수신해서 둘 중 하나라도 기준치가 넘으면 빨강색 LED가 켜지고, 두 값이 모두 기준치 이하라면 초록색 LED를 켜는 모습이다.

 

LED하나의 30원인가,,? 주고 샀는데 어떤 것은 엄청 밝고, 어떤 것은 되게 희미하다. (배송비가 더 비쌈)

 

아무튼 잘 작동한다. 


LED 전구를 사용할 때는 저항을 필수적으로 연결해주어야 한다. 저항 없이 직접 연결하게 되면 전구가 일찍 사망하거나 심하면 ESP32 TTGO LoRa 모듈이 고장날 수도 있다.

 

LED 작동하는 LoRa 모듈 코드

 

https://github.com/youngpark17/DGU_Cepston_4Ground/blob/master/Arduino/LoRa_finalVersion/LoRaReceiver_LED/LoRaReceiver_LED.ino

 

youngpark17/DGU_Cepston_4Ground

Contribute to youngpark17/DGU_Cepston_4Ground development by creating an account on GitHub.

github.com

하드웨어 스케치

 

 


LoRa Recevier 2 : 서보 모터 센서를 연결한 LoRa 모듈 확인

 

날개가 없어서 잘 안보이지만, 밑에 태엽(.....? 저 부분을 뭐라고 불렀지..)부분을 보면 돌아가는게 보인다. 

 

참고로, 

3개의 ESP32 모듈 전부 USB와 연결한 보조배터리/콘센트와 연결하여 전원을 공급했다. 

 

해당 코드

 

https://github.com/youngpark17/DGU_Cepston_4Ground/blob/master/Arduino/LoRa_finalVersion/LoRaReceiver_Servo/LoRaReceiver_Servo.ino

 

youngpark17/DGU_Cepston_4Ground

Contribute to youngpark17/DGU_Cepston_4Ground development by creating an account on GitHub.

github.com

 

스케치 구성도

 


최종 완성 영상

 

 

많이 미흡하지만, 그냥 작동하는 것만 만들어서 제출할 수는 없어서 하드보드지랑 절연테이프로 아주 간단하게 만들어봤다.

 

저 왼쪽에 벽돌처럼 생긴 검은 박스가 LED 경보기이고 오른쪽에 ㄷ자를 돌려놓은 모양이 간이창문이다. 

 

우리 학교 열람실 창문은 이렇게 생겼음.

 

좀 비슷ㅎ....ㅎ..한가?

 

그리고 최종 시연 영상!

 

 

https://www.youtube.com/watch?v=-BhjrzFxoog&list=PLysGR-hSRFyEHZsNsI_S_XzGc4xj0naut&index=7

 

 


 

앱 홍보

RN로 만든 주식, 코인 물타기 계산기, 수익률 계산기 앱

안드로이드>

아이폰>

 

UN인턴이 만든 영단어 퀴즈앱

안드로이드>

아이폰>