2016년 12월 25일 일요일

Arduino IDE에서 ESP8266 Board 추가하기

Arduino IDE에서 ESP8266 Board는 기본적으로 지원하지 않습니다.
추가적으로 설치를 해 주어야 하는데, 그리 어렵지 않습니다.

Arduino IDE를 실행한 후 File -> Preference로 가서 
(한국어인  경우 파일-> 환경설정)

추가적인 보드매니저 URLs에 아래의 내용을 추가해 줍니다.
http://arduino.esp8266.com/stable/package_esp8266com_index.json


확인을 누른후 툴 -> 보드 -> 보드매니저로 갑니다.
여기에서 검색을 ESP로 하면 아래와 같이 나오고,  설치해 주면 됩니다.


그러면 ESP 8266 관련 Board들이 설치되어 선택 가능하게 됩니다.

전 Wemos D1 mini를 주로 사용합니다.

[추가]  2018-07-13 : ESP32 계열은 아래의 Url 을 추가하면 됩니다.
https://dl.espressif.com/dl/package_esp32_dev_index.json
[수정] 2018-10-30 : 위의 주소도 되지만 아래가 정식인것 같습니다.
https://dl.espressif.com/dl/package_esp32_index.json

2016년 12월 15일 목요일

Curl로 구현한 ProcessBook

1. Plant Monitoring

 Plant Monitoring 관점에서 OSIsoft사의 PI ProcessBook이라는 제품이 있다. 각종 센서에서 생성되어 서버에 저장된 데이터를 Visualization하여 사용자에게 제공할 수 있는 도구이다. 오랜 세월 다듬어진 이 제품은 강력한 기능을 제공하지만 그만큼 가격이 비싸다고 할 수 있다. OSIsoft의 제품 가격은 현장에서 운영하시는 분들이 잘 아시겠지만, 연간 사용료를 근간으로 하는 가격 정책을 가지는 것으로 알고 있다.  연간 사용료는 센서의 개수에 따라서 다르며, 같은 제품이더라도 센서의 개수가 많아질수록 비싸진다. 즉 연간 사용료가 수억원이 될 수도 있다.  PI라는 제품군에는 여러가지가 포함되어 있다. 종류가 많기에 거론 하기 보다는 아래에 링크를 달아 둔다.

바로가기 링크 :  PI System Product List

2. ProcessBook

 PI System 제품군에서 사용자에게 현실적으로 다가가는 것의 중심에는 ProcessBook 이라는 것이 있다. 모든 공장에서 PI System 제품군의 전체 기능을 사용하는 것은 극히 드물며 한국 실정에서는 UI 측면에서 일반적으로 ProcessBook만을 사용한다.  이번 프로젝트의 최대 목표 역시 기존 ProcessBook을 대체 할 수 있는 것을 개발하는 것이었다.

3. Plant Monitoring System (PMS)

금번 프로젝트는 PMS라 명명하고 아래의 범위를 개발하였다.

  • 서버 (AWS EC2 이용)

  - 서버를 상황에 따라 증설 가능한 Scalable한 구성으로 개발
  - 수집된 데이터의 저장
  - 각 클라이언트의 데이터 요청에 대한 응답


  • 클라이언트 (Curl로 개발)

  -  ProcessBook에 준하는 Designer
  -  SVG 이미지 표시 기능
  - 서버와의 통신 및 데이터 처리
  - 실시간 데이터 표시 및 과거 이력 데이터 조회
  - 예제 작성

4. PMS 특징

작성되어진 예제 중 하나는 아래와 같다.  (석유 화학 공정의 일부이다. )



위의 예제는 OSIsoft사의 예제와 동일하나 전체적으로 장시간 모니터링을 위한 화면이어서 화려함 보다는 부담 없는 색상을 사용하였고, 사용성 측면에서 기능을 개선하였다. 

특징을 살펴보면 아래와 같다.
  • Auto scaling  기능

 PI ProcessBook은 화면을 디자인 하고 나서 사용할 때에는 디자인한 크기로 화면을 제공한다. 하지만 PMS는 화면 크기에 따라서 자동으로 표시되는 내용을 확대 하거나 축소한다. 언제든지 디자인한 모든 내용이 화면에 표시되는 형태이다. 물론 화면이 작은 경우 스크롤바를 표시하여 디자인한 크기 그대로 표시할 수 있으나, 사용자 측면에서 그것을 원하지는 않는다고 생각한다. 사용자들은 언제나 모든 내용이 표시되기를 원할 것이다.

  • Threshold 기능

 각 센서의 값을 표시할 때 설정한 값 이상이면 배경을 넣고 표시하도록 개선하였다. 시각적으로 보다 더 쉽게 알아 볼 수 있도록 하였다.

  • History 기능

 과거 5분간(기본 설정값 & 변경가능)의 데이터에 대해서는 툴팁으로 손쉽게 조회 가능하도록 하였다. 핵심은 데이터를 로컬에 축적하고 필요한 경우 서버측에 요청하지 않고 표시한다. 

  • 다른 화면 연결 기능

 다른 화면과 연결하는 기능이 추가 되었다.  설명을 하자면 화면 내에  Group을 표시 하는 기능이 있고, 이 아이콘을 클릭하면 Group의 상세 내용이 표시되는 형태이다. 


6.  Grouping 응용

여러 개의 센서들을 모아서 한 아이콘으로 표시하는 Grouping 기능을 응용해서 사용자에게 초기 화면을 제공한다면 아래와 같은 형태로 만든다. 예제는 한국의 울산에 있는 공장의 대략적인 대지 형태와 설비들의 그룹을 배치한 형태이다. (물론 예제는 석유 화학 공정 만을 표시하고 있지 않으며, 각 공정의 연관성 또한 없다.)
사용자는 홈 화면에서 보고 싶은 화면으로 연결해서 들어간다. 





7. 사용자 화면 

사용자가 보게 될 화면들은 아래와 같다. 컨셉은 모바일UI 처럼 슬라이딩으로 화면이 전환 되며, 이전 화면 링크를 눌러서 되돌아갈 수 있다. 







중요 지표들을 따로 Grouping해서 아래의 그림과 같이 사용자에게 제공할 수 있다.



8. 편집 모드

편집 모드로 전환하면 화면에 팔레트가 표시된다. 이 팔레트로부터 Drag & Drop을 하여 아이템을 추가 한다. 물론 PI ProcessBook 에서 제공하는 팔레트 보다는 훨씬 더 빈약하지만 이것은 아이콘을 SVG로 제작하면 보강이 가능한 구조이다. 아이콘들은 SVG로 제작되기 때문에 아이콘의 크기를 변경하더라도 깨끗하게 표시된다.




9. 끝으로

이러한 UI의 응용 분야는 많다. Plant Monitoring 이외에도 Network Monitoring, Security Monitoring등에 적용 가능하다. 


* 이 내용은 회사 블로그에도 올렸으며, 동일한 내용을 개인 블로그에 복사하여 올린 것입니다. 


파워뱅크를 만들어 보자

- 방전률이 높은 배터리를 이용하는 작업은 화재, 폭발의 위험이 있습니다. 충분한 지식을 가지고 있더라도, 잠깐의 부주의로 사고가 발생할 수 있습니다. 사고는 본인의 책임입니다.  소재로 시작된 만들기 일전에 어머님의 전동휠체어 배터리를 만들어서 교체...