일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- BLE Spoofing Attack
- 플러터
- 칼만 필터
- BLE 보안
- 스푸핑 공격 감지 시스템
- 실내 위치 포지셔닝
- BLE 스푸핑 공격
- 삼변측량
- trilateration
- BLE Security
- Flutter Positioned
- 실내 위치 예측
- 직선의방정식
- 플러터 기초
- flutter
- BLE 보안 취약
- Flutter Stack
- 실내 위치 측위
- RSSI란?
- 해킹 감지 시스템
- Positioned Widget
- Flutter 기초
- BLE 삼변측량
- RSSI 전처리
- 위치 정확도
- 삼변측량기법
- BLE 실내 위치 측위
- Stack Widget
- ble
- RSSI 평활화
- Today
- Total
목록전체 글 (25)
컨테이너
지난 글에선 실내 위치 측위의 필요성과 많은 무선 기술 중 왜 BLE를 사용하는지를 다뤘었습니다. 이번 글에선 어떻게 BLE를 사용하여 실내 위치 측위를 할 수 있을지 알아보겠습니다. 지난 글이 궁금하신 분들은 아래 링크를 확인해주세요. BLE를 활용한 실내 위치 측위 (1) - 왜 BLE를 사용하는가? 위치 측위와 관련하여 많은 분들께 친숙한 시스템은 위성 항법 시스템(Global Positioning System, GPS)일 것이라 생각합니다. 아쉽게도 GPS는 실외에선 유효한 위치 정확도를 보이지만 실내에서 사용하 ahang.tistory.com RSSI (Received Signal Strength Indicator)란? BLE 기기가 Advertise Mode에서 주기적으로 송신하는 광고 패킷 ..
작년부터 BLE에서 발생하는 스푸핑 공격 탐지 시스템의 개발을 위해 관련된 논문이나 정보들을 찾아 읽어보기 시작했습니다. 저는 단순히 스푸핑 공격을 감지하는 것이 아닌 사용자와 공격자를 확실히 구분할 수 있는 시스템을 만들고 싶었습니다. 가장 처음 실험해본 아이디어는 BLE 기기가 전송하는 광고 패킷 (비콘 메시지)의 RSSI (Received Signal Strength Indicator)를 사용하는 방법이었죠. 광고 패킷의 RSSI는 패킷을 수신받는 기기(Anchor Point, AP)와 패킷을 송신하는 기기(Tag)의 대략적인 거리를 나타내는 지표로 사용될 수 있습니다. 따라서 사용자와 공격자는 서로 다른 위치에 있어 수신한 RSSI는 다를 것이라 생각했어요. 결과적으로 사용자와 공격자가 어느 정도..
최근 지도 관련 어플을 Flutter의 Naver Map으로 개발했습니다. 확실히 UI도 한국인들에게 친숙하면서 깔끔하고, 지도에 위치한 장소나 식당 등의 최신화가 잘 되어있더라구요. (구글 맵 같은 경우 폐업했지만 운영 중이라고 표기된 매장이 여럿있어서 골치아팠습니다) 사용법도 어렵지않으니 아래 내용을 천천히 따라오시면 충분히 개발하실 수 있습니다. 이 글은 Window, Android 기준으로 작성되었습니다. 1. 프로젝트 생성 import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context..
들어가기 앞서 제 BLE를 활용한 실내 위치 측위 시리즈는 단순히 BLE를 활용하여 실내에서 위치를 예측할 수 있는 방법을 나열하지 않습니다. 제가 연구하면서 습득한 지식과 과정을 바탕으로 어떻게 BLE가 실내 위치 측위에 사용되며, 그 과정에서 발생할 수 있는 문제점과 한계점 을 모두 다룰 예정입니다. 따라서 이 시리즈가 완성될 때까지 생각보다 많은 시간이 걸릴 수 있습니다. 감사합니다. 위치 측위와 관련하여 많은 분들께 친숙한 시스템은 위성 항법 시스템(Global Positioning System, GPS)일 것이라 생각합니다. 아쉽게도 GPS는 실외에선 유효한 위치 정확도를 보이지만 실내에서 사용하기엔 큰 아쉬움이 있습니다. 이번 글에선 실내 위치 측위가 왜 필요하고, 이러한 실내 위치 측위에 왜..
2011년, 부모님께서 최신형 스마트폰 갤럭시 S2를 선물로 주셨었습니다. 아직도 기억나는 것이 그 스마트폰에서 Bluetooth라는 글자를 처음 보았는데 어디에 쓰이며, 왜 사용하는지 전혀 몰랐었죠. 단지 친구들에게 "Bluetooth 기능을 켜두면 배터리가 빨리 줄어드니, 항상 꺼둬라!"라는 조언만 들을 수 있었습니다. 당시 친구들의 말을 전혀 의심하지 않고 블루투스 기능을 끄고 다녔는데요. 이제 와서야 왜 배터리가 빨리 줄어드는지 궁금해져 찾아보았습니다. 확인해보니 갤럭시 S2는 Bluetooth 3.0을 사용했었네요 [1]. Bluetooth 4.0 이전 버전인 Bluetooth Classic은 데이터의 전송 속도를 높이기 위해 과도한 전력을 소비했었습니다. 이것은 빠른 배터리 소모로 이어졌고 B..
플러터로 개발하면서 비동기 작업을 해보신 적 있으신가요? 여기서 비동기란 동시에 일어나지 않는다란 뜻을 가지고 있으며 대표적으로 프로젝트 외부에서 데이터를 가져올 때 발생합니다 (Firebase같은 DB에서 데이터 가져오는 경우, 외부에서 데이터를 크롤링하는 경우 등등) 이러한 비동기의 문제는 데이터를 받아오기 전 다음 작업으로 넘어가 내가 원하는 값을 사용할 수 없다는 건데요 쉽게 아래 코드로 확인해보겠습니다 import 'dart:async'; import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatefulWidget { @override _MyAppState createState()..
사용자의 동작(클릭, 더블 클릭, 오래 누르기 등)을 감지하는 것을 Gesture라고 합니다. Flutter에는 Container와 같이 Gesture를 감지할 수 없는 위젯들에게 Gesture 기능을 부여할 수 있는 위젯이 있습니다. ( 쉽게 설명해 버튼이 아닌 위젯을 버튼처럼 사용할 수 있게 해주는 위젯 ) 이번 글에선 그 두가지의 위젯과 간단한 차이점을 소개합니다. InkWell | GestureDetector InkWell 예제 코드 import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatefulWidget { @override _MyAppState createState() => ..
이번 포스팅에서는 알림, 경고 또는 로딩창으로 사용할 수 있는 SnackBar를 다룹니다! SnackBar 예제 코드 import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { final scaffoldKey = GlobalKey(); @override Widget build(BuildContext context) { return MaterialApp( debugShowCheckedModeBanner: false, title: 'SnackBar', home: Scaffold( key: scaffoldKey, appBar: AppBar( title: Text('Snac..