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

2019년 10월 31일 목요일

ES32 + Android 구취측정기

ESP32 를 이용해서 취득한 측정값을 Android App 에서 BLE 방식으로 자료를 가져와서 보여준다.




2018년 9월 17일 월요일

라즈베리 파이를 이용한 원격 자료수집기

라즈베리 파이3 을 이용해서 범용 센서 정보수집 장치를 만들었다.
C 와 C++ 로 만들었으며, 웹서버를 내장하고 있다.

센서 보드와 시리얼(TTL) 모드버스 방식으로 통신한다.
수집한 자료는 PCA(Principal Component Analysis), LDA(Linear Discriminant Analysis), Pattern, Neural Network 분석이 가능하고,
KT IoT, Microsoft Azure, HTTP POST, MQTT 등 프로토콜을 이용해서 서버로 발송한다.
자료는 내장 SD카드에도 저장하는데, 저장 간격에 따라서 다르기는 하지만 약 10년 치를 저장할 수 있다.
원활한 관리를 위하여 원격에서 서버를 라즈베리파이를 제어할 수도 있는데 SSH, Telnet, HTTP, 원격데스크탑을 지원한다.

특징 :
사용자에게 표출되는 측정 화면의 편집이 가능하다.
모든 처리는 내장 스크립트 언어에서 수행한다.
스크립트 언어는 C 나 Javascript 와 유사하나 아주 단순한 구조로 되어 있다.
스크립트를 수정함으로써 다양한 상황에 유연하게 대처할 수 있다.









2017년 6월 26일 월요일

실시간 미세먼지 정보

AirKorea 에서 받아온 전국의 미세먼지 정보를 보여준다.
PHP 와 MySQL 을 사용했다.


2016년 12월 20일 화요일

악취모니터링 시스템

전국에 설치한 악취정보 수집 장치로부터 자료를 수집하고 보여준다.
PHP 와 MySQL 을 사용했다.





2016년 10월 17일 월요일

윈도우 CE 원격제어

원격지의 Windows CE 장비 또는 Raspberry PI 장비를 모니터링 한다.

RelayServer:
Client PC 와 원격지 장비간의 통신 중계하는 서버프로그램.

CeMonitor:
PC에서 원격지 장비에 접속할 때 사용하는 프로그램.

CeRemote:
Windows CE 장비에서 원격접속 지원을 위한 프로그램.
TCP, WCDMA, Serial 을 지원한다.

PiRemote:
Raspberry PI 장비에서 원격접속 지원을 위한 프로그램.
TCP 만 지원한다.

CeMonitor 실행 화면. 좌측에 접속 가능한 장비 목록이 보인다.

Windows CE 장비에 접속한 상태. 마우스와 키보드를 사용할 수 있다.

Windows CE 장비에 접속한 상태. 마우스와 키보드를 사용할 수 있다.

Raspberry PI 장비에 접속한 상태. 웹브라우저로 접속할 수 있다.

2014년 11월 2일 일요일

IMS(Integrated monitoring system) 변전소 감시 시스템

온라인 진단장치를 만들었다.

AMOS, TOID, Calisto 와 추가로 설치한 GIS PD감시 장비에서 자료를 받아와서
가공, 보관, 알람 등의 작업을 수행한다.

기존 시스템은 AutoBase로 만들어져 있기 때문에 AutoBase Proxy Server 를 만들어서 기존 장비와 서버 사이에 끼워 넣었다.
1. Proxy 에서 장비의 자료를 취득.
2. 기존 Server  Proxy를 장비로 인식하고 자료를 취득하기 때문에 기존프로그램은 정상 동작함.
3. 이번에 개발한 IMS도 Proxy에서 자료를 취득함.



2014년 5월 21일 수요일

배전반 감시 시스템

배전방 감시장치는
1. 부분방전 분석
2. 활선, 온도, 침수, 진동 도어열림
을 감시한다.

외부 온습도계 SHT7x 를 지원
10분 단위로 1년 분량을 로그 그래프로 볼 수 있음.

(주)에이치앤에스 Windows CE 판넬PC IEC266를 에서 C# 으로 개발했다.


2013년 10월 21일 월요일

CB(circuit breaker) 감시장치

프로그램 구조
Circuit Breaker
↓AI, DI 로 실시간으로 값 취득
CB감시장비
↓매 1초마다 자료수집, ↕설정 (프로토콜 : DNP3)
서버 (C언어로 개발)
↕자체 프로토콜
CGI (C언어로 개발)
웹서버 (Apache 공개SW)
↕HTTP, Ajax
웹브라우저 (Internet Explorer, Chrom등)
클라이언트 (HTML, Javascript 로 개발)

서버
CB감시장비와 DNP3 프로토콜로 통신한다.
매 1초마다 CB실시간 값을 가져온다.
알람이나 파형이 발생하면 가져와서 저장한다.
CGI와는 자체 프로토콜로 통신한다.



CGI
클라이언트와 서버를 이어준다.
1. 클라이언트에서 수신한 요청을 분석
2. 전용 프로토콜로 서버에 질의응답
3. 사용자가 인지할 수 있는 글자나 그림으로 변경해서 클라이언트로 발송한다.


클라이언트
웹브라우저에서 동작한다.
사용자의 요청을 받아서 CGI로 요청한다.
실시간 화면에서는 매 1초마다 실시간 값을 CGI에 요청한다.
로그인 정보, 선택한 CB정보 등은 웹브라우저의 쿠키(Cookie)에 임시 저장한다.

2011년 2월 11일 금요일

HDR


CEDM 보수작업 로봇을 작업위치까지 이동시키는 Head Delivery Robot 을 컨트롤 하는 프로그램
VC++ 6.0에서 OpenGL을 이용해서 3D그래픽 처리하는 부분을 ActiveX로 만들어서 분리 시켰다.
주 프로그램도 VC++ 6.0을 사용했으며 모터 이동은 PMAC컨트롤러를 사용했다.

2010년 12월 24일 금요일

CEDM MC


원자로 내부에있는 CEDM을 보수작업하는 로봇을 컨트롤하는 프로그램을 만들었다.
VC6.0에서 OpenGL을 이용해서 3D그래픽을 처리하고 모터 이동은 PMAC컨트롤러를 사용했다.

2010년 11월 30일 화요일

SpectroPhotometer


광센서를 통해서 취득한 주파수별 특성을 분석하는 프로그램이다.
Ribbon을 이용하기 위하여 VC2008을 사용했다.

2010년 10월 31일 일요일

GenesisControl 3D


원자로 내부에있는 스팀홀 보수작업하는 로봇을 컨트롤하는 프로그램을 만들었다.
VC6.0에서 OpenGL을 이용해서 3D그래픽을 처리하고 모터 이동은 PMAC컨트롤러를 사용했다.

반투명한 외부에 불투명한 로봇이 있는 효과를 내기 위해서 반투명 외부의 면중 법선백터와 시선백터의 각이 90도를 넘는 부분을 먼저 그리고, 로봇을 그린 다음에, 나머지 외부면을 그리는 방법을 사용했다.

2009년 9월 25일 금요일

전압품질측정기(PQDAS)

변전소에 설치하여 원격에서 전력계통의 전류 와 전압, 순간 전압강하(Sag), 고조파 상태, 주파수 변동 등의 Data를 감시, 측정, 저장 및 전송할 수 있다.



전압 전류 수집 장치는 TMS DSP32/33에 C로 코드를 만들었다. 자료취득후 이더넷 방식으로 서버에 실시간 파형을 발송한다.
서버는 Windows C로 만들었으며 사용자는 웹브라우저를 통해서 접근한다. Apache웹서버를 사용했다.

2009년 6월 17일 수요일

철도공사 HMI

철도공사에 납품한 HMI 프로그램

C언어로 DSP, Windows에서 만들었다.
1. 장비(TMS DSP32/33)에서 자료를 취득한다.
2. PC의 서버에서 DSP에 Modbus, DNP3, 전용프로토콜을 이용해서 자료를 수집, 분석, 저장한다.
3. 사용자가 웹브라우저로 접근하면 내장 웹서버에서 요청을 처리한다.


서버의 주요기능
1. 자체 웹서버 내장
2. 모든 작업은 웹브라우저에서 이루어짐
3. DAU, CiDAS, GDAS 에서 자료를 받아와서 DB를 구축
4. 단선도 편집 기능 내장
5. 실시간 값 모니터링 기능
6. 경향정보를 연, 월, 일, 시, 분 단위의 그래프로 볼 수 있음
7. 경향정보 화면에서 Event 상황을 즉시 볼 수 있음.
8. CiDAS 동작 파형과 분석정보 제공
9. GIS UHF 센서별 부분방전 유형과 그래프 제공

2008년 12월 11일 목요일

DNP3 프로토콜

DNP3프로토콜을 C로 구현했다.
PC용으로 개발했지만 C를 사용했기 때문에 통신부분만 수정하면 MCU나 다른 장비로 이식이 용이하다.
지금은 Windows, DSP32/33, ARM9 에서 사용중이다.


Debug 모드에서 Selftest 캡쳐

2007년 8월 31일 금요일

Homodimer ZFP Finder

2007년 8월에 만든 Homodimer ZFP(Zinc Finger Protein) Finder.
입력한 서열에서 ZFP-space-ZFP 형태의 binding site 를 가지는 부위를 찾아준다.



위 알고리즘을 이용해서 Homo sapiens, Macaca mulatta, Rattus norvegicus 전체 지놈 서열의 Intergenic 영역에만 공통적으로 결합하는 3finger-6space-3finger 형태의 homodimer zfp를 찾아보았다.

자료수집
    ftp://ftp.ncbi.nih.gov/genomes/ 이하에 있는 H_sapiens, Macaca_mulatta, R_norvegicus 지놈 정보를 받아와서 서열과 gene정보 추출.

    Homo sapiens : Chromosome 1..22, MT, X, Y (2,870,843,926bp)
    Macaca mulatta : Chromosome 1..20, MT, Un, X (3,011,952,279bp)
    Rattus norvegicus : Chromosome 1..20, MT, Un, X (2,812,724,306bp)
* Macaca mulatta 와 Rattus norvegicus 는 Y염색체에 관한 정보가 없음. Y는 2007년 5월부터 시작해서 아직 진행중.
* MT(mitochondria) 는 기준에 부합하는 intergenic영역이 없음.

자료분석
    분석대상: Homo sapiens, Macaca mulatta, Rattus norvegicus 전체 서열
    선택DB: ZFDB45 (경우의수 453=91,125)
    Intergenic 선정기준: gene의 앞부분-10,000bp 부터 끝부분까지를 제외한 나머지 부분.
분석결과
  • ZFP형태에 제한이 없을경우.
    H,M,R 각각의 intergenic 영역에서만 1번이상 나온 ZFP수 = 292개

  • ZF의 Binding site 가 GNN인것이 2개이상 인것만 선택.
    H,M,R 각각의 intergenic 영역에서만 1번이상 나온 ZFP수 = 117개
    H,M,R 각각의 intergenic 영역에서만 1번만 나온 ZFP수 = 74개
    H,M,R 각각의 intergenic 영역에서만 2번이상 나온 ZFP수 = 4개>
* 중복되는 ZF target site 가 있기 때문에 서열로만 보면 개수는 약 1/3로 줄어듬.
* H=Homo sapiens, M=Macaca mulatta, R=Rattus norvegicus

2006년 8월 31일 목요일

Chromosome Map

Homo sapiens Chromosome Map Web-program.
Chromosome 상에 있는 유전자의 배치와 CpG Island, promoter, exon, intron 등의 배치와 서열 정보를 보여준다.

2006년 7월 31일 월요일

Methylation Analysis Web-program

DNA 전기영동한 사진을 웹프로그램에 업로드하고 처리할 Spot을 지정하면 상대적인 밝기를 이용해서 결과를 분석한다.


위 그림은 특정 제한효소가 DNA상에 메칠레이션이 되어있는 부위는 자르지 못한다는 사실을 이용해서 샘플 유전자의 특정 부분이 메칠레이션이 되어 있는지 여부를 알아보는 실험을 분석한 결과이다.
가로7개, 세로 15, 모두 105개의 DNA 전기영동 결과를 가지고 유전자별, 샘플별로 나열했다.

2006년 6월 1일 목요일

검안기 URK700

검안기 프로그램을 만들었다.
기존에 있는 프로그램은 지금 기계와 여러가지 맞지 않는 점이 있어서 약 90% 정도는 새로 작성했다.

DSP TMS320VC33 에서 C를 이용해서 GUI와 영상분석등을 처리하고, ALTERA를 이용해서 SRAM, CCD, LED, 광학부 촛점 조절을 위한 스테핑 모터, 화면출력을 위한 LCD화면 등을 구동했다.

검안기는 동공을 향해 발사한 빛이 망막에 반사되어 나왔을 때 얼마나 굴절 되었나는 측정해서 간접적으로 수정체의 굴절률을 측정하는 장비이다.

이론 적으로는 명료하지만

  1. 인체는 항상 변화하고
  2. 기계를 사용하는 사람에 따라 측정 방법이 다르고
  3. 고정밀 기계이다 보니 기계 온도가 1도만 변해도 열 변형에 의해서 측정치가 달라진다.
1. 인체가 변화하는 점은 먼 거리에 있는 듯한 아주 작은 물체를 보여 줌으로서 촛점을 고정시키고 Out-focusing 을 이용해서 눈의 긴장을 풀어주는 것으로 어느 정도 해결을 하고,

2. 측정 방법이 다른 점은 안구와 검안기 렌즈와의 거리를 측정해서 보정해 주는 방법으로 해결했고,

3. 온도편차는 기계의 온도를 측정시마다 계산해서 미리 주어진 실험치에 의해 측정결과를 보정해 주는 방법으로 해결했다.

여러 가지 방법을 강구 했으나 기계의 예열이 덜 되었을 경우나 초고도 근시/난시의 경우에는 1디옵터(diopter)정도 오차가 발생했다.


각막의 곡률을 계산하기 위해 링 형태의 빛을 눈동자에 비춘 사진
각막곡률은 콘택트렌즈 처방 등에 사용된다.




동공으로 들어간 빛이 망막에 반사되어 나온 사진.
6개의 빛의 위치로 타원을 만들어서 난시정도와 시력을 계산한다.
타원의 지름이 크면 근시, 작으면 난시, 이심률이 0이면 정시이고 그렇지 않으면 난시 정도와 난시축을 계산할 수 있다.




온도변화에 따른 타원반지름 크기변화 그래프



DSP 에 사용하지 않는 I/O 핀이 하나 있어서 아래와 같이 간이 A/D 컨버터를 만들었다.
CPU 쪽을 OUT 으로 한 다음 1을 보내면 Capacitor 에 5V가 충전된다. 충전이 완료된 후 CPU 쪽을 IN 으로 바꾼 다음 Capacitor 가 방전되어 입력 값이 1에서 0으로 변하는 시점을 알아본다.

2004년 11월 1일 월요일

Papilloma Virus Primer

Human PapillomaVirus 의 서열을 NCBI 에서 받아와서 상호 유사성 검색후 특정 type의 HPV를 인지하기 위한 primer 를 찾는다.

알려진 Human PapillomaVirus 서열은 73개이고 평균길이는 7,749bp 이다.

아래 그림은 73개의 Human PapillomaVirus 서열에서 10bp 단위로 유일한 서열의 위치를 나타냄.
2번째(NC_001525 ), 7번째(NC_001526), 48번째(NC_001676) HPV는 대부분의 서열이 중복되어 있다.