LoRa - IOT 2
LoRa - IOT 2
1. IoT System 구조와 무선기술
IoT란?
우리가 수많은 Device를 가지고 있는데 이 Device 중에서 Data를 sensing 하여
그 값들을 어떠한 방법을 이용하여 인터넷에 데이터를 올려서 사용자가 데이터를
보거나 그 데이터를 가지고 가공을 할 수 있게 만드는 것들을 IoT라고 한다.
2. 인터넷에 데이터를 올리는 방법
1) 예전 :
유선, 무선의 진짜 인터넷 무선 IP를 통해 인터넷에 데이터를 올리는 방법을 사용
2) 요즘 :
제품들이 작고 이동가능 해야 하게 됨. 하지만 유무선 인터넷은 너무 무겁고 크거나
이동성이 떨어짐. 이를 해결 하기 위해 다른 다양한 무선 기술을 개발함
* 무선 기술
Short Range에는 WiFi, Zigbee, Bluetooth가 있다.
면허대역에는 Lte, 3G, Lte-M, NB-IOT가 있다.
Lte-M과 NB-IOT는 사물인터넷을 위한 새로운 무선통신이다.
비면허 대역에는 LoRa, SigFox가 있다. 유럽에서 주로 사용된다.
이 중 Lte-M, NB-IOT, LoRa, SigFox는 LPWAN 이다.
LPWAN은 IOT를 위한 통신 기술로 따로 묶어서 이야기 한다.
IOT의 생명력은 배터리의 생명력이라고 할 수 있고 넓은 광대역을 원한다.
3. Acitivity 에 따른 IOT 구조
IoT Device 들은 굉장히 다양한 시나리오를 가지고 데이터를 sensing한다.
구분 기준 : 실내 / 실외
실내
|
홈네트워크
|
온도계
집도둑 감지
가스 on/off
|
공간이 한정되어 있어서 중계기를 가질 수 있다. 따라서 근거리 네트워크를 사용한다. Ex ) WiFi, BLE, Zigbee
|
실외
|
모든 사람 중계기를 가지고 다니기 어렵다 -> 기지국이 설치되어 있는 무선 네트워크
많이 사용
|
LoRa,
NB-IoT
LTE-M
|
Bit rate가 낮게 설정되어 있어야 한다. 높은
rate를 필요로 하는 시나리오는 지양되어 진다.
|
4. IoT 제품 개발 방법 (설명 하는 것 보다 더 많은 방법 있음)
1) idea 정리
(1) 내가 만들고 싶은 제품 idea 쓰기
(2) 시나리오 만들기
(3) 필요한 기술 쓰기
2) IoT 개발 제품 기술 조사
(1) 필요한 기술 공부 및 제품 검색
(2) 필요한 기술의 SW/HW 요구사항 확인
(3) 제품단가/ 크기/ 양산 확인
(4) SW 개발 지원 확인 :
처음부터 개발 해야 하는지 중간단계 부터 개발 해도 괜찮은지 결정
(5) IDE 확인 : 개발 환경에 대한 세팅도 잘 할 수 있는지 확인
3) 개발 보드 선택 (2단계 토대로 개발 보드 선택)
4) 각 기술에 맞는 SW 동작 확인 및 시나리오 구현
5) 테스트
( unit 테스트 부터 total 테스트 까지 테스트 할 수 있는 방법 구상 -> 테스트 하기 )
예제 > 실내 IoT 개발
1) idea 정리
(1) 집온도를 체크해서 26도 이상이면 사용자에게 알림
(2) 5분별로 온도 체크 -> 서버 전송 -> 서버에서 26도 이상이면 사용자에게 알림
---시나리오---
(3) 온도 단말기 + Timer, 무선 전송기술, 서버, 사용자에게 알림
---필요한것 나열---
2) IoT 개발 제품 기술 조사
(1) 필요한 기술 공부 및 제품 검색
- 온도계 단말기 - 보드와 센서 어떤것을 사용해야 하는 가
: 무엇을 사용해야할지 조사
- 무선기술
- BLE, WiFi, LoRa 중 어떤 것을 사용해야 하는가,
근거리기술을 사용해야 하는가, 장거리 기술을 사용해야 하는가 : 기술 조사
- 서버 & Viewing
-> Data server, Viewing system, Mornitoring, ... , Push server 필요
- GCM,HQTT 등 어떤것을 사용해야 하는가
- 제어
-> 데이터 포맷 구성 등을 한다 : 제어를 어떻게 할것인지에 대한 규격 조사
ex ) 온도계 단말기 : LM35
무선네트워크 : BLE, HM-10, WiFi kit lm35
STM 마이크로스
개발보드 : NUCLEO-L073RZ
STM WiFi & BLE Shield : 적층해서 사용한다. 이는 번거러움을 덜어준다.
*Shield : extension connector를 지원해 준다.
(2) 필요한 기술의 SW/HW 요구사항 확인
- CPU / Memory / IO Pin / Timer / ...
IO pin 과 Timer는 몇개 있는지 확인이 필요하다.
Memory에 대한 정보확인이 필요 하다. MCU는 Memory가 작다.
DataSheet 확인이 필요하다.
DataSheet를 통해서는 HW 스펙을 확인 할 수 있다.
ex) 아두이노와 STM
아두이노의 메모리는 STM의 메모리보다 작다. 그래서 STM에서 가동되 어 지는 것이 아두이노에서는 메모리 부족으로 가동되지 않을 수 있다.
(3) 제품 단가 확인 : 양산 업체와 문의 필요
(4) IDE & SW 개발 지원 확인 (개발환경)
ex) 아두이노의 경우 sketch (통합환경)
STM의 경우 develop Tool change에 기술
<IDE - 아두이노>
v (Verify) : source compile
-> (Upload) : 폼웨어 다운로드
- 스케치에서 바로 제공한다. 폼웨어에 올린다.
SW 지원 : 아두이노 /STM 둘다 잘 지원된다.
통합환경 : IAR : EWARM , MDK-ARM , SWASTM32 (dir 의 형태로 저장)
KEIL
-> Project 밑에 compile 관련된 명령어가 있다.
그 밑에 다운로드 명령어가 있다.
3) 개발보드 선택
4) 각 기술에 맞는 SW 동작확인 및 시나리오 구현
(1) SW Architecture
(2) Message Sequence Diagram -> SW Output 즉, 소프트웨어 산출물 뽑아 보기
-> 이를 토대로 개발
예제 )
STM32보드 + IKS01A2 Shield와 STM BLE Shield를 더하여 3층으로 적층시킨
다. on하여 불이 들어가면 BLE Connection 완료 된다. 그리고 Data가 들어오
면 MQTT(Push Service)로 간다. sever는 시나리오에 작성된대로 구현된다.
5) 테스트
(1) 동작확인 , 시나리오 확인
(2) Debugging
- 보드 : IDE에서 제공하는 Debugging 환경 이용
- Communication : print문을 이용한 Debugging (UART)
-> debugger Tool로 잡기 어려운 경우 사용된다.
(3) 배터리 소모량 확인 해야 한다. 이거에 따라 SW 알고리즘 변경이 있을 수
있다.
예제 > 실내 IoT 개발 - 자전거 도난 방지 개발
1) idea정리
(1) 자전거가 내가 놓은 위치에서 일정거리 벗어나면 사용자에게 알림
(2) 1분별로 GPS 체크 -> 서버에 전송 -> 서버에서 1m 이상 차이 나면 단말기에
10초에 한번씩 위치 체크 명령 및 사용자에게 알림 기능
2) IoT 개발제품조사
(1) 필요한 기술 공부 및 제품 검색
- GPS 단말기는 어떤 것을 사용해야 하는가? 아두이노우노GPS (개발보드)
- 무선기술은 어떤 것을 사용해야 하는가?
LoRa (Dragion : LoRa GPS shield, STM LoRa Package, P-NUCLEO-LPWAN1)
- 보드선택시 유의사항 :
각 나라 별로 비면허 대역 주파수가 다르다.
따라서 Region 정보 확인이 필요하다.
ex ) ARDUINO MKR WAN 130 oSPEC
몇 Mega 대역 까지 지원 해주는지 알아야 한다.
국내에는 인증 받은 LoRa가 없다.
따라서 KC 인증 받은 모듈에 대해 선택가능 하다.
ex ) SKT IoT.com : 다양한 LoRa module이 있다.
ST사의 B-LO72Z - LRWAN1 (Freq : 860Mhz - 930Mhz -> 국내에서 사 용 가능하다)
- 서버는 어떤 것을 사용해야 하는가? LoRaWAN 의 경우 네트웍 서버와 APP
서버가 필요하다. 인공지능 사용에 있어서는 BigData가 필요하다.
(2) 필요한 기술의 SW/HW 요구사항 확인
- CPU / Memory / IO Pin / Timer / ...
Memory 확인이 중요하다.
STM Basic memory에 LoRaWan 올리면 ROM의 사용량이 증가한다.
3) 개발 보드 선택
4) 개발 (실내의 경우와 동일)
(1) SW Architecture
(2) Message Sequence Diagram -> SW Output 즉, 소프트웨어 산출물 뽑아
보기 -> 이를 토대로 개발
보기 -> 이를 토대로 개발
STM 32 보드 + GPS 와 LoRa Module을 더한다. 이를 Power on 시키고
LoRaWan 스펙을 공부 하면 Join 완료된다. Join 완료 되면 그 후 암호화된 데
이터 송수신 되어 sequence Diagram에 따라 App Server로 간다.
5) 테스트 (실내의 경우와 동일)
(1) 동작확인 , 시나리오 확인
(2) Debugging
- 네트웍, 앱 서버에서도 디버깅 필요하다.
(3) 배터리 소모량 확인 해야 한다. 이거에 따라 SW 알고리즘 변경이 있을 수 있
다.
다.
참고 :
서울 IoT 워크숍 LoRa 강의 02강 :
서울 IoT 워크숍 LoRa 강의 03강 :
댓글
댓글 쓰기