레이블이 wireless communication인 게시물을 표시합니다. 모든 게시물 표시
레이블이 wireless communication인 게시물을 표시합니다. 모든 게시물 표시

2017년 7월 13일 목요일

SIM5320E으로 3G 통신

SIM5320E는 SIMCOM이라는 회사에서 나온 3G 통신모듈이다.



다만 이 모듈을 구해도 바로 사용하기 힘들기 때문에 Adafruit에서 이 모듈의 breakout 보드를 구했다.
정확한 명칭은 Adafruit FONA 3G module로 사이트에 가 보면 US용과 EU용 두가지 버젼이 있는데 국내에서 사용하려면 꼭 EU 버젼으로 구해야 한다. 3G 주파수가 EU는 국내와 동일하게 2100MHz인데 비해 미국용은 1900MHz라 국내에서 사용할 수가 없다. 그리고 보드를 구매해도 딱 보드만 들어있기 때문에 별도로 2.1GHz 안테나와 GPS안테나를 구입해야만 사용할 수 있다. (단 GPS안테나는 옵션)



사진에서 볼 수 있는것처럼 보드의 위쪽에 커넥터와 SIM5320 모듈이 붙어있고 보드의 아래쪽에는 USIM 카드를 장착할 수 있는 소켓이 장착되어 있다.
저 보드는 휴대폰에서 마이크/스피거, 액정화면, 버튼이 빠진거라고 생각하면 된다. 즉 빠진 부품만 붙이면 완벽한 휴대폰을 만들어 줄 수도 있는 것이다.

저 모듈은 시리얼 포트를 통해 모뎀과 마찬가지로 AT 명령으로 모듈을 제어할 수 있으므로 아두이노같은마이크로 프로세서를 연결해 동작을 제어할 수 있다.


동작을 시켜보려면 휴대폰과 동일하게 개통된 USIM이 있어야 한다. 저 모듈은 일반크기의 USIM을 꼽아야 하므로 USIM adapter를 사용했다.


  먼저 보드의 아래쪽에 있는 USIM 소켓을 열어준다.


방향을 맞춰 USIM을 꼽아준다.


꼽은 다음 소켓을 닫아주면 된다. 위의 사진은 USIM이 장착 완료된 것이다.


 이제 사진의 화살표 부분에 마이크로USB 케이블을 꼽아 컴퓨터와 연결해준다. 단 Mac OS X에서는 디바이스 드라이버가 없어 장치가 인식되지 않고 윈도우와 리눅스에서만 인식된다. 여러개의 시리얼 포트로 인식되는데 만일 인식되지 않으면 디바이스 드라이버를 설치해 줘야 한다. 


케이블이 연결되면 USB커넥터와 오른쪽의 검은색 커넥터 사이에 있는LED가 빠르게 깜빡인다. 이때는 아직 전원이 켜지기 전이라 컴퓨터에는 장치가 인식되지 않고 전원을 켜 줘야만 인식된다. 오른쪽 검은색 커넥터 옆에 있는 PWR key라는 버튼을 눌러주면 모듈의 전원을 켜 주는 것이다.

 

전원이 켜지면 빠르게 깜빡이던 LED가 켜져있게 되고 컴퓨터에서는 새로운 시리얼 포트가 보이게 된다.



컴퓨터에서 시리얼 터미널 프로그램을 실행해 시리얼 포트를 연결해서 명령을 주면 모듈을 제어할 수 있는 상태가 된 것이다.
이제 여기서는 SimTech HS-USB AT Port 9000 (COM7) 포트를 열어준다. 일반 모뎀과 동일하게 AT 명령어를 사용하면 되고 사용할 수 있는명령 목록은 문서를 참고하면 된다.

SIM5320E AT command set

매우 많은 명령이 있어 아주 세밀하게 조작이 가능하지만 전화기로 사용하려면 몇개의 명령만으로도 충분하다.

시리얼 포트를 연 다음 전화를 걸고 받는걸 직접 해 보도록 하겠다. 단 전화 통화를 해야 하므로 마이크가 달려있는 이어폰을 모듈에 먼저 꼽아줘야 한다. 아래가 명령과 그에 대한 응답을 캡춰한 것이다. 굵은 글씨체가 내가 직접 입력한 명령들이고 나머지가 모듈이 출력하는 메시지이다.


at+creset
OK

START

+CPIN: READY

SMS DONE

+VOICEMAIL: INIT_STATE, 0, 0

PB DONE
at+creg
OK
at+creg?
+CREG: 0,1

OK
at+cops?
+COPS: 0,0,"KT",2

OK
atd[걸고자하는 전화번호];
OK

+WAP_PUSH: "REC UNREAD","114",,"17/07/13,11:40:56+36"
2406226170706C69636174696F6E2F766E642E7761702E6D6D732D6D65737361676500AF848C8298323376483744423134304746353030008D928A828E017C88058103093A8083687474703A2F2F642D6D6D73632E6B746677696E672E636F6D3A393038332F32337648374442313430474635303000

+WAP_PUSH: "REC UNREAD","114",,"17/07/13,11:40:56+36"
89078005EA31313400960EEAECA09CEBAAA9EC9786EC9D8C00

VOICE CALL: BEGIN

VOICE CALL: END: 000005

NO CARRIER

RING

RING

RING

RING

RING

MISSED_CALL: 01:23PM 07077374920
atd[걸고자하는 전화번호];
OK

VOICE CALL: BEGIN
at+chupVOICE CALL: END: 000015

OK
RING
ata
VOICE CALL: BEGIN

OK

VOICE CALL: END: 000007

NO CARRIER


먼저 AT+CRESET 명령으로 모듈을 리셋 시킨다. 잠시 기다리면 초기화 과정이 끝나고 PB DONE이라는 메시지가 나올 것이다. 그럼 AT+CREG? 명령을 입력해 모듈이 통신사 3G망에 등록되었는가를 확인한다. 망에 등록이 되어야만 통신(전화 걸기/받기, 문자 송/수신, 데이터 전송등)이 가능하다. AT+CREG? 명령의 응답이 '+CREG: 0,1' 이런식으로 나오는데 여기서 맨 마지막 숫자가 '1'이 나와야 정상적으로 통신사의 망에 등록이 된 것이다. 만일 이 값이 1이 아니면 등록이 안된 것이므로 다시 확인해 봐야 한다. 모듈에 해당 USIM을 처음 꼽으면 망에 등록이 안되는 경우가 있는데 이 경우는 AT+CRESET 명령을 두세번 실행한 다음 다시 확인해보면 될 것이다. 

AT+COPS? 명령으로 어느 통신사를 사용하는지 확인할 수 있다. 현재 테스트에 사용한 USIM은 에넥스텔레콤 것으로 KT망을 빌려쓰는 MVNO이므로 KT망에 등록된 걸 확인할 수 있다.

전화를 걸려면 ATD 명령을 사용하면 된다. ATD 바로 뒤에 원하는 전화번호를 쓰고 ';'를 붙여주면 된다. 즉 010-2345-6789번으로 전화를 걸고 싶으면 'ATD01023456789;'라고 입력하면 된다. ATD 명령을 내리면 실제로 전화가 걸리고 전화를 받으면 음성통화가 가능하다. 만일 통화중에 모듈쪽에서 전화를 끊고 싶으면 'AT+CHUP' 명령을 내려주면 된다. 어느쪽이 끊건 통화가 끝나면 'VOICE CALL:END:000015' 같이 통화가 끝났다는 메시지와 함께 통화시간을 알려준다.

명령을 내리지 않고 가만히 놔둬도 전화가 오면 RING이라는 메시지가 출력된다. 의도하지는 않았지만 070에서 스팸전화가 와서 받지 않고 놔뒀더니 상대방이 벨이 몇번 울린 후에 끊어서 MISSED_CALL 이라는 메시지와 함께 시간 및 발신자 전화번호가 출력되었다. 전화가 왔을 때 받으려면 ATA 명령을 내리면 된다.

일단 모듈을 연결해 가장 기본적인 음성통화를 해 보았다. 다음에는 SMS 발신 및 인터넷 연결 방법에 대해 설명하도록 하겠다.

2016년 8월 16일 화요일

LoRaWAN 네트웍 소개 - 암스텔담의 경우


“그것을 만들면 그가 올 것이다” 1989년 영화인 “Field of Dreams”에서 허공에서 속삭이는 소리였다. 케빈 코스트너 캐릭터는 자라서 “그”가 누군지는 미스터리일지라도 “그것”이 야구장이라는걸 확신하게 된다. 그래서 코스트너는 옥수수밭을 쟁기질해서 야구장을 만들어 다음에 무엇이 올 때 까지 고집스럽게 기다린다.

TTN(The Thins Network)의 창립자는 비슷한 게임을 하고 있다. 하지만 여기서 “그것”은 가입이 필요 없는 커뮤니티 기반의 LoRaWAN 네트웍으로 암스텔담을 커버해서 “그”는 도시에 설치될 상상할 수도 없이 많은 배터리로 동작하는 와이어리스 디바이스를 사용한 수없이 무수한 솔루션이 될 수 있다.





LoRaWAN(Long Range Wide-Area Network)은 저소비전력, 장거리, 저대역폭 네트웍 솔루션으로 스마트 시티에 이상적이다. LoRaWAN의 핵심에는 Semtech이 만든 작은 칩이 있는데 대량인 경우 $1 정도에 구매가 가능하다. 이 칩은 433MHz, 868MHz (대부분의 유럽), 915MHz(USA) 주파수 대역에서 0.3Kbps~50Kbps 정도의 양방향 통신이 가능하다. IoT에 있어 LoRaWAN은 스마트폰에 있어 3G/4G와 같은 역할을 한다.

주차장 공간이 비어 있으면 통보를 해 주거나, 주변의 전기차 충전기가 사용중이 아니면 알려주는 동네에 살고 있다고 상상해 보자. 쓰레기통이 거의 차면 도로에 쓰레기가 흘러넘치기 전에 미화원에게 통보해주는 걸 상상해보자. 집 안의 일산화탄소나 흡연이 감지되면 알림을 보내주는 그림을 그려보자. 또는 창문이 열려 있어 비가 들이치는걸 알려주는걸 상상해보자. 도시가 스마트하면 해외 여행중에도 지갑, 열쇠, 또는 우산을 잃어버렸을 때 찾는걸 도와줄 수 있을 것이다. 이런 것이 모든 디바이스에 3G, WiFi, Bluetooth를 요구하지 않고도  TTN이 암스텔담에서 그리고 있는 미래이다.





LoRaWAN 게이트웨이는 매우 작고 배터리로 동작하는 LoRaWAN 센서 또는 디바이스들과 LoS가 확보되면 15 Km 이상, 건물로 막혀 있어도 몇 Km 내에서 통신을 할 수 있다. LoRaWAN 디바이스는 얼마나 자주 통신을 해야 하는가에 달려있기는 해도 일반적으로 배터리 교환 없이 수년간 동작할 수 있다. 고정 센서의 경우는 작은 태양광 패널을 사용해 실질적으로 반영구적으로 전원 공급이 가능하다.

암스텔담은 작년 8월 개당 $1200인 10개의 게이트웨이를 사용해 LoRaWAN 망이 구축되었다. 겨우 6주만에 커뮤니트 소유의 네트웍이 펀딩되어 특정 통신사의 지원 없이 자원봉사자에 의해 구축되었다. 이 네트웍은 도시 내의 누구건 완전히 무료로 사용할 수 있다. 별도의 가입이나 로그인이 전혀 필요 없다. 그리고 이 비용은 7월에 TTN이 200유로의 LoRaWAN 게이트웨이를 킥스타터 후원자에게 발송하기 시작하면서 극적으로 떨어졌다.



암스텔담의 LoRaWAN 네트웍은 통신 트래픽이 폭증하기 전인 90년대 초반의 인터넷과 닮아 있다. 학생, 호비스트, 벤쳐사업가가 LoRaWAN의 한계를 테스트하고 use case를 식별하기 시작하는 장소이다.

TTN의 창업자 중의 한명인 Wienke Giezeman은 “현재 개발자는 어떤 어플리케이션이 동작할 수 있는가 확인하기 위해 기술을 탐험하고 있다”고 말했다. “이런 실험들을 통해 대규모로 구현될 비즈니스를 지원할 수 있는지 결정하게 될 것이다” Giezeman과 Stokking은 LoRaWAN 기반의 스마트 시티 솔루션이 2017년부터 나오기 시작할 것이라고 기대한다. “우리는 개발자들이 2016년에 훌륭한 어플리케이션을 만들어 2017년에 상용화 할 수 있게 돕는데 초점을 맞추고 있다”

Giezeman과 Stokking은 첫번째 LoRaWAN 솔루션은 도시 서비스를 향상시키기를 원하는 정부에 의해 만들어 질 것이라고 믿는다. 여기에는 쓰레기, 상하수도 관리, 항만 및 공항 트래픽 관리, 도로 정체 관리까지 모든 것을 포함한다. 당장 모든 것이 가능하다.

“그것을 만들면 그가 올 것이다” LoRaWAN 네트웍이 Sao Paulo, Boston, Buenos Aires, Kochi, Sydney를 기반으로 전 세계에 울려퍼지는 목소리이다.  현재 TTN의 커뮤니티 기반 캠패인은 전 세계적으로 36개 도시가 참여하고 있다. LoRaWAN이 90년대 중반 이후의 인터넷에서 본 것 처럼 폭발적으로 증가할지 말하는건 아직 이르다. 하지만 내년 스마트 시티의 23억개로 추정되는 IoT디바이스를 연결할 필요가 있고 이것이 바로 거기에 사용될 수 있는 기술이라는건 명백하다.

2010년 1월 24일 일요일

TI의 CC430을 사용한 무선 도어 개폐 시스템 (Wireless door controller using eZ-430 Chronous)

TI에서 무선통신 기능을 가지고 있는 초저전력 마이크로 프로세서인 CC430을 사용한 데모보드로 만든 eZ430-Chronos라는 키트($49)가 있다.


사진에서 보는것처럼 시계 안에 CC430 프로세서와 3축 가속도 센서 및 고도/온도 센서가 들어 있다. 또한 시계의 프로그래밍과 디버깅을 위한 USB동글(사진 왼쪽), CC430과 무선 통신을 위한 USB동글(사진 오른쪽)이 키트 내에 기본으로 포함되어 있다.

이 키트를 사용해 도어락 제어 시스템을 만든 사람들이 있다.



위의 동작 영상에서 볼 수 있는것처럼 시계를 차고 문에 가까이 접근하면 시계가 문에 있는 시스템과 통신을 하게 된다. 미리 페어링이 되어 있지 않은 시계는 문을 열 수가 없다. 일단 서로 페어링 된 디바이스란게 확인되면 시계에 정해진 암호를 넣어줘야 한다. 여기서 멋진 아이디어는 별도의 스위치를 누르는게 아니고 시계를 가볍게 두드려 주면 된다. 시계의 3축 가속도 센서를 이용해 가볍게 두드릴 때의 충격을 감지한다. 즉 탁(두드리는 소리) - 잠시 휴식 - 탁 - 탁 - 탁 - 휴식 - 탁 - 휴식 같은 식으로 정해진 코드를 입력하면 된다. 이 두드림간의 시간 간격이 문으로 전달되어 기록되어 있는 암호와 비교하게 된다. 물론 이 시간간격은 normalized되기 때문에 매번 정확한 시간 간격으로 두드리지 않아도 된다. 즉 어떤 리듬감을 가지고 두드린다면 그 리듬을 좀 빠르게 하거나 느리게 해도 normalized되면 동일한 암호로 인식하게 된다.

예를 들어 [탁 - 0.5초 휴식 - 탁 - 0.8초 휴식 - 탁 - 0.2초 휴식 - 탁 - 0.5초 휴식 - 탁] 이나 [탁 - 0.25초 휴식 - 탁 - 0.4초 휴식 - 탁 - 0.1초 휴식 - 탁 - 0.25초 휴식 - 탁] 은 동일한 리듬으로 인식한다.

CC430은 초저전력 프로세서로 만들어 졌기 때문에 시계의 경우 하루에 약 10번정도 문을 연다고 하면 시계에 들어가는 220mA 코인셀 배터리인 경우 약 4년, 문은 하루 30번 정도 개폐한다고 하면 2500mAh, 1.2V 배터리 4개를 직렬로 연결해 사용하는 경우 약 1년 8개월 정도 사용할 수 있다고 한다.

회로도 및 상세한 기술적 사항의 확인, 소프트웨어 다운로드는 https://ziyan.info/2010/01/secure-wireless-door-lock/ 을 보면 된다.