본문 바로가기

전체 글

(154)
[AWS IoT 프로젝트] AWS LED Button 목적 & 요구사항 & 시스템 흐름 제 블로그의 프로젝트 관련 포스트들은 모두 이용하는 제품이나 서비스에 대한 기본적인 이해를 가정하고 실제 구현을 목표로 하므로 기초적인 부분은 직접 공부해야 합니다. 목적 사물(Thing)과 클라이언트는 AWS IoT의 Thing Shadow를 얻어와 초기 동작/상태를 설정하고, AWS IoT를 통해 서로 통신한다. 클라이언트 (안드로이드 앱) 요구사항 회원가입을 하고 이메일 인증을 해야 해당 앱을 이용할 수 있다. 인증된 사용자라도 사물의 고유한 Device Serial Number(DSN)과 operation key를 알고 있어야 사물(Thing)에 접근할 수 있다. DSN과 operation key만 알고 있으면, 인증된 사용자(회원가입 + 이메일 인증)는 서로 다른 기기에서 로그인해도 해당 사물에..
[Noise Detector] 어플리케이션 (2) : 소스 코드 GitHub 다른 컴퓨터에서 빌드해도 작동하는 것 확인했습니다.WaveData 저작권 문구와 동일합니다. Copyright (c) 2017, JoonDongAll rights reserved.Copyright holder's blog : http://joondong.tistory.com Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:소스와 바이너리 형태로 재배포와 사용은 다음 조건들을 만족한 경우에만 허용됩니다.Redistributions of source code must retain the abo..
[Noise Detector] 어플리케이션 (1) : 시스템 흐름 노르딕에서는 BLE(Bluetooth Low Energy) 어플리케이션 개발을 위해 nRF Toolbox 어플리케이션의 BleProfile 모듈을 제공합니다. BleProfile 모듈은 BleProfileActivity, BleProfileServiceReadyActivity, BleProfileExpandableListActivity, BleMulticonnectProfileServiceReadyActyvity 4가지 버전의 액티비티를 제공하며, 개발자는 이 중에서 한가지를 선택하여 사용할 수 있습니다. BleProfileManager는 연결 상태를 관리하고, 데이터를 송수신(Notification/Indication)하는 역할을 담당하며, BleProfileManager의 객체는 액티비티에 생성될 수..
[Noise Detector] nRF51 (6) : 소스 코드 및 플래시 방법 GitHub nRF5 SDK 12.3 환경에서 만들어 졌으며, 여기에서 다운받은 후 압축 푼 폴더에 덮어씌우면 됩니다. 플래시하기 위해 PCA10028에 있는 OB(On-Board) J-Link를 사용했습니다. PCA10028의 OB J-Link과 nRF51422 연결을 끊고 다른 nRF 보드에 사용하는 방법은 이 링크에 나와 있습니다. 개발환경을 셋팅하는 방법과 플래시하는 방법은 노르딕 개발자 홈페이지 튜토리얼에 자세하게 나와있습니다. nRF51822 M1 모듈 핀 배열 : 칩이 있는면이 위쪽 OB J-Link와 연결 저작권 문구는 WaveData 모듈과 동일합니다. Copyright (c) 2017, JoonDong All rights reserved. Copyright holder's blog : ..
[Noise Detector] nRF51 (5) : 배터리 잔량 계산 관련 링크 2017/12/09 - [회로/Noise Detector] - Noise Detector 2단계 -회로 (4) : 배터리 잔량 측정 회로 배터리 전압은 사용할 수록 조금씩 떨어지는데, 이것을 이용하여 잔량을 구합니다. 그런데 일정하게 떨어지는 것이 아니라 몇개의 변곡점이 나타나는데요. 회로 카테고리에 포스팅된 배터리 잔량 회로에서 출력되는 전압을 그대로 측정하여 배터리 서비스를 사용하여 피어로 전송하면, nRF Logger 어플리케이션에 의해 로그에 기록되는데, 이 기록으로 누적시간에 대한 그래프로 만들어 보니 아래 그림과 같았습니다. 원본 파일은 위에 첨부했습니다. 완충시 측정되는 최대값인 210(3.98V)부터 제가 임의로 정한 최소값인 147까지 총 64범위(분해능)를 측정했습니다. 각 ..
[Noise Detector] nRF51 (4) : 시스템 흐름 각 모듈에서 핵심 기능을 담당하는 함수들과 그 함수들 또는 모듈 간의 관계를 블록 다이어그램으로 표현했습니다. 전 메세지 시퀀스 정도만 그리고 코드를 작성했고, 아래 블록 다이어그램은 코드의 이해를 돕기 위해 추가로 그린 것입니다. 각 함수들이 어떻게 연결되는 지는 노르딕 인포센터를 참조하거나 SDK 함수를 천천히 보면 알 수 있습니다. 참고로 bsp는 bsp_custom_1_btn_ble.c가 구현했습니다. - Detected Noise Value(ADC 배열 20바이트씩) 방송 과정 - Noise Detector(Op-Amp + m_noise_detector_timer_id 타이머) 동작 제어 과정(- Noise Detector 명령/결과 수송신) - BUTTON_1로 연결 상태를 제어하는 과정 - ..
[Noise Detector] nRF51 (3) : NDS Message Sequence 일반적인 Message Sequence입니다. 세로축은 시간의 흐름, 화살표 위의 글자는 이벤트, 아래 글자는 이벤트와 함께 전달되는 내용입니다. 피어는 안드로이드 Noise Detector 어플리케이션을 의미합니다. 전체 과정을 ① Noise Detector ON 단계, ② Detected Value 전송 단계, ③ Noise Detector OFF 단계로 구분했습니다. ① Noise Detector ON 단계 이전 포스트에서 Noise Detector Controlpoint Characteristic(이하 NDCP 특성)은 쓰기 요청에 대해 어플리케이션의 인증이 필요하다고 했습니다. 따라서 피어가 NDCP 특성에 {0x02, 0x00} 쓰기 요청을하면, 요청을 수신한 소프트디바이스는 속성 테이블에 요..
[Noise Detector] nRF51 (2) : Noise Detector Service 구성 BLE(Bluetooth Low Energy) 프로토콜 중 서비스에 대해 간단히 설명하겠습니다. BLE 프로토콜에 대해 하나도 모르면 이해할 수 없지만, 이전 포스트에서 추천한 서적을 읽고, BLE 프로토콜을 이해하기 위해 노력했다면 약간 정리된 듯한 느낌을 받을 수 있을지도.. 모르겠습니다. BLE를 시작하는 개발자들이 BLE 프로토콜에 대한 약간의 느낌이라도 얻을 수 있으면 좋겠네요. BLE 프로토콜에서 서비스는 자바에서 추상 클래스, 특성(Characteristic)은 서비스의 서브 클래스와 비슷한 개념입니다. 그리고 각 특성의 디스크립터와 값 속성은 서브 클래스의 필드와 비슷한 개념입니다. 이것들은 BLE 스택에서 GATT 프로파일(Generic Attribute Profile) 위에 위치하기 때..