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강 : 

댓글

이 블로그의 인기 게시물

LoRa - IOT4

LoRa - IOT 5