'분류 전체보기'에 해당되는 글 33건

Study/Python

python에서 특정 함수를 일정 주기마다 실행하고 싶으면? threading.Timer를 사용해보자


기본 사용방법은 아래와 같다.


import threading

class AsyncTask:
def __init__(self):
pass

def TaskA(self):
print 'Process A'
threading.Timer(1,self.TaskA).start()

def TaskB(self):
print 'Process B'
threading.Timer(3, self.TaskB).start()

def main():
print 'Async Function'
at = AsyncTask()
at.TaskA()
at.TaskB()

if __name__ == '__main__':
main()

수행 결과, TaskA는 1초마다, TaskB는 3초마다 수행되고 있다.


Async Function

Process A

Process B

Process A

Process A

Process B

Process A

Process A

Process A

Process B


핵심은 아래 함수이다.

threading.Timer(1,self.TaskA).start()

함수의 의미는 1초 후에 TaskA를 start하라는 의미이다.

TaskA 함수안에서 threading.Timer를 사용한다면 TaskA는 정해진 시간마다 주기적으로 수행되는 함수가 될 것이다.



가장 중요한 점은, TaskA를 최초의 한번은 수행햐주어야 한다는 점이다.

def main():
print 'Async Function'
at = AsyncTask()
at.TaskA()
at.TaskB()




0 0

Study/Python

Python에서 Queue의 기본적인 사용법은 아래와 같다.


import Queue

q = Queue.Queue()

items=list()

items.append('item1')
items.append('item2')
items.append('item3')
items.append('item4')
items.append('item5')

print 'start queue'

for i in items:
q.put(i)

while q.qsize():
print q.get()

print 'end queue'


put() 함수를 사용해서 q(queue)에  item1~item5 까지 put을 수행한다. get() 함수를 사용해서 q를 비운다.

위 코드를 수행하면 아래와 같은 결과가 나온다


item1

item2

item3

item4

item5

end queue


위 동작은 item1~item5 까지를 한번에 모두 Queue에 넣고 한꺼번에 get을 수행하기 때문에 전혀 문제가 없다.


그런데 여러 Thread 상에서 비동기적으로 Queue에 put과 get을 수행해야하는 상황이라면 문제가 생긴다.


put()과 get() 함수가 기본적으로 blocking 함수이기 때문이다.


흔히 발생할 수 있는 상황은, Queue에 데이터가 없는 상황에서 get() 함수를 수행한다면 데이터가 put() 될때까지 blocking 되기 때문에 해당 Thread에서 다른 동작을 수행할 수가 없다.


해결 방법은 get()과 put()을 non-blocking 함수로 바꿔야 하는데, 방법은 아래와 같다.


import Queue

q = Queue.Queue()

items=list()

items.append('item1')
items.append('item2')
items.append('item3')
items.append('item4')
items.append('item5')

print 'start queue'

for i in items:
q.put_nowait(i)

while q.qsize():
print q.get_nowait()

print 'end queue'



0 0

IoT Open House/ThingPlug


https://developers.sktelecom.com


강의 신청은 skt developer 사이트를 거쳐서 하셔도 되고, 아래 사이트에서 하셔도 됩니다.

http://wiznetacademy.com/


아래 강의에 대한 간략한 설명은 아래 글을 확인해 주세요.

http://1byte.tistory.com/15







0 0

IoT Open House/ThingPlug


안녕하세요


저는 위즈네트에서 WiFi 모듈 개발을 담당하고 있고, 'WiFi 모듈 사용 기초 방법'과 SK telecom의 IoT 플랫폼인 'ThingPlug를 쉽게 사용하는 방법'에 대해서 오프라인 강의를 하고 있습니다.

ThingPlug 강의는 무료입니다. 하지만 다른 강의들은 일반인 2만원, 학생 1만원을 받는다고 합니다. 


http://wiznetacademy.com/?module=lecture&act=dispCourseInfo&course_seq=175


Wireless(Embedded WiFi)의 커리큘럼은 3강의로 구성되어 있습니다.

기초, 중급, 고급의 구분은 딱히 없지만, 초급 중급 고급 순서대로 수강하시면 이해하시기 빠를것 같습니다.


강의의 내용은 아래와 같이 진행됩니다. 저는 초급과 고급 강의를 진행하고 있기 때문에 두 강의를 우선 소개해드리겠습니다.



1. WizFi310으로 Embedded Wi-Fi 시작하기


해당 강의는 WizFi310(embedded WiFi 모듈)을 사용하는 방법과 기본적인 예제들로 구성되어 있습니다.

이 강의를 수강하시면, 기본적인 TCP/IP 통신과 MQTT의 기초까지 알 수 있습니다.

아래에 해당하시는 분이라면 수강 가능합니다.(초보자 대상)

    • TCP/IP를 들어봤다.
    • 서버와 클라이언트를 안다.
    • 스마트폰으로 WiFi를 사용할 수 있다.
    • 키보드가 잘 눌리는 노트북이 있다.


2. ThingPlug 더 쉽게 시작하기


이 강의는 SKT의 IoT 플랫폼인 'ThingPlug'를 쉽게 사용하는 방법에 대해서 알려드립니다. 해당 강의는 (중급) 강의에서 진행된 MCU(Cortex M3)로 WizFi310을 제어해서 SKT ThingPlug를 사용하는 강의입니다.

이 강의는 '세계 최초로 oneM2M 표준을 적용한 IoT 플랫폼인 'ThingPlug''의 구조와 사용방법, 그리고 더 쉽게 사용하는 방법까지 모두 '무료'로 알려드립니다.


이 강의의 수강 대상자는 아래와 같습니다.

    • 1번 WiFi 기초 강의 수강자 - 필수는 아니지만 WizFi310을 사용해서 강의가 진행되기 때문에 선행되었으면 좋겠습니다.

    • MCU에 대한 기본적인 이해가 필요하지만, C 언어의 if, for, while을 아신다면 수강하실 수 있습니다. - 부족하시다면 중급 강의도 수강해주세요.

    • oneM2M, ThingPlug를 들어봤다.




이 외에도 아두이노, ARM mbed 관련 강의도 있으니 관심있으신 분은 아래 링크를 통해 신청해주세요.


http://wiznetacademy.com/








0 0

IoT/News


인터넷진흥원(KISA)에서는 조사한  2017년 정보보호 10대 이슈.

정보보호 관련 이슈들의 현황및 트렌드를 아래 링크에서 확인할 수 있습니다.

http://www.kisa.or.kr/public/library/etc_View.jsp?regno=022280


    강대국간 사이버 공방 심화: 사이버 전면전 위험 고조

    • 국가 간 사이버공간에서의 갈등이 심화되고, 사이버위협에 대한 적극적인 방어 의지와 선제공격 능력 배양이 강조 되면서 국가 간 국지적, 전면적 사이버戰의 현실화 가능성 증가
    • ’17년 미 트럼프 정부 공식 출범 이후 중국, 러시아, IS 등 다양한 국가에서 사이버갈등이 지속·확산될 것으로 예상
    • 국내도 ’17년 대선을 앞두고 북한 등 국외로부터의 사이버 공격 주의 필요


    사이버위협정보 공유와 협력 확대: 대응이 빨라진다

    • 각국 사이버위협 대응 기관·기업들은 보다 신속·정확한 공격 탐지 및 방어를 위한 사이버위협 정보공유 협력체계를 강화 중이며, 공동 연구협력과 기술교류도 증가 추세
    • 국내외 사이버위협정보 공유·분석을 뒷받침할 관련 법제도 및 인센티브 필요
    • ’17년 해외發 랜섬웨어가 기승을 부릴 것으로 예상됨에 따라 글로벌 대응공조 확대 예상




    돈을 노린 랜섬웨어 공격: 사이버범죄 주류에 등극

    • PC와 스마트폰에 저장된 파일을 암호화하여 금전을 요구하는 랜섬웨어 공격의 수익성이 확인됨에 따라 범죄 조직의 불법자금 조달 창구화 가능성
    • ‘No more ransom’과 같은 캠페인, 안티 랜섬웨어 기술개발, 강력한 법집행 등의 조치가 효과적으로 집행될 경우, ’17년 하반기에는 랜섬웨어가 감소하는 경향을 보일 수 있음


    빅데이터, AI, 클라우드 활용 사이버 보안: 패러다임이 바뀐다

    • 사이버보안 분야에서 빅데이터·AI·클라우드 등 새로운 기술을 활용하여 ’17년에는 사이버위협에 대한 예측 역량이 신장되고, 클라우드 기반의 ‘빌려 쓰는 보안서비스’ 시장 확대
    • 기존 단일 보안솔루션의 한계를 극복하고, 관련된 보안시장의 동반성장 예상


    분산저장기술 '블록체인': 이론에서 현실로

    • 블록체인은 데이터의 위ㆍ변조를 매우 어렵게 하는 데이터 분산저장기술로써 비대면 금융서비스의 안전한 거래를 위해 국내외 금융권에서 활발하게 도입 추진
    • 장기적으로 계약조건 기능 추가(블록체인 2.0) 등 기술 혁신에 따라 기존 은행 업무를 넘어 주식, 보험, 특허관리, 각종 소유권 보장 등으로 블록체인 도입 확대 가능


    다양화되는 바이오인증: 사용자 인증의 대세로

    • 바이오인증(지문, 홍채 등) 기술은 핀테크 산업의 성장과 더불어 다양한 금융서비스 분야에서 활용이 증가하고 있으며, 안전성을 제고하기 위한 기술 연구도 활발히 진행 중
    • 바이오인증이 상대적으로 안전한 사용자인증 수단이지만 정보주체의 거부감, 정보탈취의 위험 등이 여전히 존재 하므로 지속적인 보안성 강화 노력 필요


    보안 고려없는 사물인터넷(IoT): 커져가는 일상의 위험

    • IoT 기기 보급이 늘어남과 동시에 커지는 보안취약성에 대한 우려가 현실화
    • IoT 기기로 인한 사고발생시 제조업체, 벤더, 설치 업체, 서비스업체, 사용자간 책임소재 논란에 대한 대비책 강구 필요
    • 개발자간 치열한 경쟁 속에 개발기간 단축을 위해 오픈소스 등을 활용할 경우, 잠재적 보안 위협 발생


    활성화되는 커넥티드 카의 안전띠: 사이버 보안

    • 커넥티드 카가 전 세계적으로 빠르게 증가하면서 사이버보안 강화에 대한 논의 및 대책 마련 추세
    • 커넥티드 카의 사이버보안 강화를 위해 자동차, 통신, 장비, 보안 업체들 간의 협력이 중요
    • 인명사고 등을 고려하면 전자제어장치(ECU)의 작은 센서 수준까지 꼼꼼한 보안 필요


    잊힐 권리 보장: 강화되는 개인정보 자기결정권

    • ICT 기술발전으로 온라인 공간에 글이나 사진, 동영상 등을 올려 자신을 표현하고, 타인과 커뮤니케이션 하는 일이 일상화 되었으나, 자신과 관련하여 부정확하거나 밝혀지길 꺼리는 정보에 대한 잊힐 권리 보장의 필요성 역시 강조되고 있음

    • 잊힐 권리 관련 성급한 법제화 보다는 해외 동향 파악 및 사회 각계 각층의 의견 수렴 등을 병행하여 사회적 합의를 유도해 나감이 바람직하며, 잊힐 권리 구현 기술에 대한 지원방안 마련 필요


    개인정보 보호와 활용의 조화: 4차 산업혁명을 좌우한다

    • 빅데이터, IoT 등 새로운 기술과 서비스의 등장으로 사업자와 규제기관은 데이터 활용과 개인정보보호 사이 균형점을 찾으려고 노력중이며, 그 대안으로 데이터 비식별화 조치 부상
    • 비식별 조치가 프라이버시를 보호하면서 개인정보를 활용하고 공유한다는 상반되는 목표 간에 절충점을 찾아주는 중요하고 효율적인 수단이 될 수 있음은 모두 공감
    • 빅데이터 시대를 주도하기 위해서는 정부와 학계, 기업과 정보주체 간의 개인정보 활용에 대한 신뢰기반의 사회적 합의가 전제되어야 할 것임










0 0

IoT/News


아래 일정은 인터넷정보진흥원(KISA)의 레포트에서 발췌했습니다.





1~3월

국내 일정

  • 2월 평창동계올림픽 

  • 5G 테스트 이벤트 실시 

  • 2월 삼성, 갤럭시S8 발표 예정 

  • 2월 수도권 지상파 UHD 방송 

  • 3월 AI엑소브레인프로젝트 2단계 

  • 제4이통/풀MVNO정책정비(연초) 

  • 5G/IoT신규주파수 할당계획(연초)

해외 일정 

  • 1월 5일 CES 2017(라스베가스) 
  • 1월 17일 다보스 포럼(스위스) 
  • 1월 20일 트럼프 대통령 취임
  • 2월 27일 MWC 2017(스페인)
  • 2월 KDDI, SigFox기반 IoT서비스
  • 3월 20일 CeBIT 2017(독일)






4~6월

국내 일정

  • 4월 NB-IoT 상용화 예정
  • 4월 종편 재승인 심사 예정 
  • 인터넷전문은행 출범(상반기) 
  • 테슬라 국내 진출(상반기)

해외 일정 

  • 5월 도코모, 5G Trial 사이트 구축
  • 6월 애플, 세계개발자회의 개최
  • 6월 구글, I/O 개최
  • MS, 윈도우10 홀로렌즈 지원(상반기)
  • 일본 5GMF, 5G종합실증실험(상반기)





7~9월

국내 일정

  • 9월 ITU 텔레콤 2017 개최(부산)
  • 9월30일 보조금 상한폐지 시행
  • 9월 LG, V30 출시 예정

해외 일정 

  • 8월 3GPP, 릴리즈15에서 5G 1차 표준 개발 시작
  • 8월 인텔, 개발자포럼 개최
  • 9월 애플, 아이폰8 출시 예정 
  • 딥마인드, StarCraft2 대결 예정
  • 소프트뱅크, NB-IoT 서비스(여름)




10~12월

국내 일정

  • 10월 네이버, 개발자 컨퍼런스 개최 
  • 11월 카카오, 비즈니스 컨퍼런스 개최
  • 완전 자율주행차 판교제로시티 시범주행(연말) 
  • 로봇산업육성 법제도개정안(연내)

해외 일정 

  • 10월 구글, 안드로이드8 출시
  • 10월 ITU, 5G 후보기술 접수
  • 버라이즌, 5G 상용화 예정(연말)
  • 테슬라, 전기차모델3 출시(연내)
  • 매직리프, AR HMD 공개(하반기)






0 0

IoT/News


매년 인터넷진흥원(KISA)에서는 인터넷 관련 주요 이슈를 선정해서 발표하고 있다.

특히, 2017년을 혁신과 진화가 공존으로 ICT 기술의 패러다임의 전환을 말하고 있다.

2017년 인터넷 시장의 혁신 기술은 어떤 것들이 있을까? KISA의 보고서에서 요약한 내용은 아래와 같다.

http://www.kisa.or.kr/notice/press_View.jsp?mode=view&b_No=8&d_No=1517

    인공지능(Artificial Intelligence): 음성 비서를 통한 생태계 구축과 서비스 혁신으로 AI First 구현

    • 2017년 인공지능은 음성비서 서비스를 선봉으로 제품, 메신저, 커머스, 콘텐츠 이용에서 인공지능이 핵심적 역할을 수행하는 ‘AI First’화를 이루어갈 전망이다. 사업자 간에 음성비서를 중심으로 한 홈IoT, 커넥티드카까지 연결하는 생태계 구축 경쟁이 본격화 되고, ‘개인화’, ‘예측’, ‘셀프’라는 새로운 서비스 패러다임이 주목 받을 전망이다. 더불어 스마트 헬스 등 신규 융합 산업과 사업효율화 측면의 B2B를 주축으로 한 성장도 기대된다.


    차세대 네트워크 5G: 상상하는 모든 것을 가능하게 하는 Intelligent Network

    • 5G는 LTE 대비 전송은 약 270배, 지연 속도는 30배 이상 빠른 차세대 이동통신이다. 2017년은 미래의 핵심 인프라가 될 5G의 국제표준 토대가 마련되는 해로, 5G 주도권 선점을 둘러싸고 세계 각 국의 사업자들은 우호세력 확보를 위해 치열한 합종연횡 경쟁을 펼칠 것으로 예상된다. 또한 2018년 평창에서 선보일 5G 서비스와 단말의 개발도 본격적으로 진행될 전망이다. 




    혼합현실(MR, Mixed Reality): 디바이스, 플랫폼, 콘텐츠의 합작으로 완성될 MR 대중화의 원년

    • 2017년은 MR 시장의 대중화를 알리는 다양한 제품과 서비스들이 등장할 예정이다. 현재 MR 시장은 사업자들의 초기 시장 선점 경쟁으로 분주하다. 향후 MR 시장은 자체 컴퓨팅이 가능한 고글형 HMD가 주를 이룰 것으로 보이며, 홀로그래픽 기반 UI와 함께 윈도우즈가 주류 플랫폼으로 부상하는 한편, 기업용 시장의 주도권이 일반 소비자 시장으로 확대되며 새로운 전기를 맞이할 것이다. 


    자율주행차(Autonomous Car): 자율주행차 시장은 B2B 시장을 중심으로 개화

    • 2017년 자율주행차는 상용화를 앞당기기 위한 관련업체의 노력으로 기술력이 한층 강화되고 구체적인 개발 움직임에 가속도가 붙을 것으로 예상된다. 자동차 업체, ICT 업체, 부품·장비 업체 등 자율주행차 개발 업체들은 차별화 된 기술력을 확보하기 위해 업체 간 긴밀한 협업과 투자를 추진하고 있다. 자율주행차의 안전성과 보안성 확보가 핫 이슈로 떠오름과 동시에 자율주행차 시장은 B2B 시장을 중심으로 우선 개화될 것으로 보인다.


    생체인증(Bio Authentication): 내 몸이 나를 인증한다. 생체인증 시대의 대중화

    • 생체인증 기술은 사람의 신체적, 행동적 특징을 카메라, 터치패드, 스피커 등과 같은 자동화 된 장치로 추출하여 개인을 식별하거나 인증하는 기술로 최근 개인정보보호에 대한 관심이 높아짐에 따라 활용도가 증가하고 있다. 향후 높은 보안 성능을 기반으로 다양한 생체인증 방법이 주도권 경쟁을 할 것으로 보인다.


    핀테크 2.0(FinTech 2.0): 협업으로 금융을 재설계하는 핀테크 2.0

    • 핀테크 1.0이 ICT와 금융의 결합으로 송금, 결제, 펀드, 자산관리 등에서 파괴적 혁신을 통해 기존 금융서비스의 해체 및 재해석에 주안점을 두었다면 핀테크 2.0은 혁신적인 기술을 통해 기존 금융기관과 핀테크 기업과의 다양한 협업으로 모바일 환경에서 소비자중심의 새로운 가치 창출 및 금융 서비스 제공을 목표로 한다.


    O2O(Online to Offline): 온·오프라인 어디서든 이루어지는 ‘나’를 위한 최적의 소비

    • O2O는 온라인(Online)과 오프라인(Offline)이 결합하는 현상을 의미하는데, 온라인과 오프라인을 넘나들며 최적의 조건에서 쇼핑을 즐기려는 소비자들이 빠르게 증가하고 있어 O2O는 커머스 영역의 핵심 경쟁요소로 부상하고 있다. O2O는 서비스 연합을 통해 플랫폼으로 진화되고, ‘개인형 O2O’와 온오프라인 경험을 통합한 옴니채널화가 대세를 이룰 전망이다.


    데이터 커머스(D-Commerce): 빅데이터와 커머스의 만남, 큐레이션 커머스 시대의 도래

    • 빅데이터 분석을 통한 맞춤형 상품 제공 및 구매를 유도하는 데이터 커머스는 커머스 시장의 새로운 트렌드이다. 최근에는 단순 상품 추천에서 진화하여 개인 라이프스타일에 맞는 단말, 시간대, 콘텐츠별로 상품을 추천하고, 기업과 연결시켜주는 중개 플랫폼으로 진화하고 있다. 여기에 ‘스마트 렌탈’도 새로운 소비트렌드로 급부상하면서 빅데이터를 활용한 맞춤형렌탈도 등장하고 있다.


    산업인터넷(IIoT), 소물인터넷(IoST): 산업인터넷 및 소물인터넷 시장 선점을 위한 경쟁 본격화

    • 2017년 사물 인터넷은 산업인터넷(IIoT)과 소물인터넷(IoST)을 중심으로 한 다양한 경쟁이 나타나는 한 해가 될 것이다. 소물인터넷 분야에서는 LoRa와 NB-IoT 간의 경쟁이 부각될 것으로 보인다. 이후 산업 인터넷 플랫폼과 서비스 제공과 관련된 경쟁이 더욱 중요해질 것이며, 산업 영역에 대한 이해 및 보안/분석 솔루션의 보유와 성공 사례 확보 여부가 주요한 이슈로 부각될 것이다.


    플랫폼 경제(Platform Economy): 제4차 산업혁명의 핵심, 플랫폼 서비스

    • 디지털 기술을 기반으로 상품 및 서비스의 거래가 네트워크를 통해 이루어지면서 사회, 정치 및 경제 전반에 있어 다양한 기술적 확장과 상호호환성 확보에 대한 필요성이 증가하게 되었고, 네트워크로 기업과 소비자를 연결하며 제품과 서비스의 수요·공급을 담당하는 플랫폼이 경제를 주도하고 있다. 플랫폼 경제는 제4차 산업혁명의 원동력으로 작용하면서 새로운 가치와 시장을 창출하고 ‘업의 전환’을 통해 기업의 성장을 견인할 것이다.











0 0

Prototype/IoT Platform

 

 

아래 게시글의 ThingPlug 대시보드는 Local PC에 node.js 서버를 구동해서 만든 대시보드였다.

http://1byte.tistory.com/10

 

그렇기 때문에 외부에서 접근하기 위해서는 port forwading 등 서버 port에 접속하기 위한 별도의 작업이 필요하고, Local PC에서 서버를 구동하고 있는 동안에만 접속할 수 있다.

 

따라서, 위 문제점등을 해결하기 위해서 외부에서 호스팅 해주는 방법이 필요해 보였다.

 

구글링 결과, Heroku라는 클라우드 플랫폼을 선택했다. Heroku는 테스트 용도로 적합해 보이며, 꽤 쉽게 어플리케이션을 호스팅 할 수 있었다.

 

 

1. ThingPlug Starter Kit 소스코드 다운로드

 

https://github.com/SKT-ThingPlug/thingplug-lora-starter-kit

 

우선 ThingPlug Lora Starter Kit을 다운 받았다. Starter kit의 사용 방법은 PC에 starter kit 소스코드와 node.js를 다운로드 받고, config_x.js 파일에 테스트할 node id, user key, container 등등 ThingPlug web Application에서 필요한 정보들과,  디바이스 시뮬레이터를 실행 시키기 위한 config 내용들이 모두 포함되어 있다.

그렇기 때문에 config_x.js 에 node id, user key, container등의 정보가 정상적으로 저장되어 있어야만 최신 데이터 조회, 디바이스 제어 등을 수행할 수 있다.

 

2. ThingPlug Starter Kit 소스코드 수정

 

제공하는 StarterKit도 쓸만하지만, 여러 사용자들이 Config 파일과 상관 없이 접근 가능한 대시보드를 만드는 것이 목표였기 때문에,, 조금 StarterKit의 소스코드를 조금 수정했다.

 

      

왼쪽의 서버 소스코드를 오른쪽 처럼 Node ID, User Key, Container Name 을 직접 입력 받도록 수정했다.

이 과정에서 필요 없는 부분인 google 지도와 Event trigger를 없앴다.

https://github.com/wpgnss/ThingPlug_starter_kit_for_academy

 

 

3. Heroku 사용하기

Heroku에서 어플리케이션을 배포하기 위한 방법은 3가지를 지원한다.

Heroku CLI를 다운로드 받아서 Heroku Git에 소스코드를 업로드 하는 방법과 GitHub나 Dropbox에 소스코드를 업로드 후 연결하는 방법이 있다.

 

Heroku CLI를 사용하는 방법은 구글링에도 많이 나오기 때문에, 머리아픈 CLI 없이 GitHub와 연동하는 방법으로 해보기로 했다.

 

4. Heroku 사용하기 – Procfile

 

Heroku를 사용하기 위해서 자신의 ThingPlug StarterKit repository에 꼭 필요한 파일이 있다. Procfile이라는 파일이다. 해당 파일을 생성 후 commit & push 해주자.

이 파일은 처음 실행되어야 할 web app의 이름을 정의하는 파일이다.

 

ThingPlug Starter Kit의 메인 js 파일은 application_web.js이니까 아래처럼 작성해 준다.

 

web: node application_web.js

 

 

5. Heroku 사용하기 – Create New App

https://dashboard.heroku.com

Heroku에 가입 후 dashboard 사이트에 접속하게 되면 오른쪽 상단에서 New->Create new app을 선택한다.

 

Create App을 선택한다.

 

GitHub를 선택한다. (이미 GitHub와 연동되었기 때문에 아래처럼 나오지만 처음이라면 GitHub에 권한을 요청하는 팝업이 뜬다.)

 

Search를 클릭한 후 원하는 Repository에 Connect를 누른다.

 

Enable Automatic Deploys 를 누른다.

 

정상적으로 진행했다면, Overview 탭에서 Dyno formation 에서 web node application_web.js    ON 으로 변하면서 서버가 정상 동작하게 된다.

만약 Dyno formation이 바뀌지 않는다면, Manual deploys로 해보자.

 

 

Open app을 누르면 동작 중인 서버에 접속할 수 있다.

 

이렇게…

 

 

사이트 주소 뒤에 /dashboard 를 입력하면 SKT ThingPlug 대시보드가 정상적으로 동작하는 것을 확인할 수 있다.

https://boiling-everglades-36951.herokuapp.com/dashboard/

0 0

Prototype/IoT Platform

  ThingPlug 대시보드  


Node-Red 대시보드

Node.js 대시보드








해당 ThingPlug 대시보드는 SKT의 ThingPlug-LoRa-Staterkit을 수정하여 만들어졌습니다. 

(https://github.com/SKT-ThingPlug/thingplug-lora-starter-kit)






0 0

Prototype/IoT Platform

1. WizFi310

image

WizFi310은 Embedded Wi-Fi 모듈로서 기본적인 TCP, UDP통신 이외에도 MQTT 프로토콜을 AT Command로 구현되어 있다.

또한 앞서 살펴보았던 IoTMakers SDK가 구현되어 있어 AT Command 몇 개로 IoTMakers에 접속하거나 데이터 전송, 제어 데이터 수신을 할 수 있다.

이번 포스팅에서는 WizFi310으로 IoTMakers에 접속하고 데이터를 보내는 방법에 대한 내용이며, IoTMakers에서 디바이스를 등록하고 대시보드를 생성하는 방법은 가이드 문서에 자세히 나와 있다.

 

EX)

AT+TKTSET1=<Gateway 연결 ID>,<Device ID>,<Device Password>

AT+TKTCON=2,<IoTMakers IP>,<IoT Makers Port>,0,1111

AT+TKTSEND=<Tag Stream Type>,<Tag Stream ID>,<Value>

 

  • AT+TKTSET1: IoTMakers에 접속하기 위해 필요한 인증 정보들이다.
  • AT+TKTCON: IoTMakers의 IP와 Port 정보를 입력하고, 실제 MQTT접속과 디바이스 인증과정을 수행한다.
  • AT+TKTSEND: 데이터를 전송할 때 사용한다.
    • <Tag Stream Type>: 숫자형은 ‘d’, 문자형은 ‘s’를 입력한다.

image

 

2. 디바이스 구성하기

 

image

 

WizFi310에 구현된 IoTMakers SDK를 활용하기 위한 디바이스를 구성했다.

개발환경은 mbed IDE를 사용했다.

보드는 Nucleo-F401RE보드를 사용했고, 센서로는 CDS 조도센서와 Tact 스위치를 사용했다. 조도 센서의 센싱 데이터를 주기적으로 IoTMakers에 보내고, Tact 스위치를 눌렀을 때 이벤트적으로 알림용 데이터를 보낸다.

 

Nucleo-F401RE보드에 대한 설명은 아래 링크를 참고.

https://developer.mbed.org/platforms/ST-Nucleo-F401RE/

 

image

image

IoTMakers_proto

핀 연결은 위와 같이 했다.

WizFi310과 연결된 UART 핀은 Tx, Rx, cts, rts, reset핀 순이다.

PA_1에는 조도센서, LED에는 PC_7, 사용자 버튼에는 PC_13에 연결했다.

 

 

3. 소스코드 설정

https://developer.mbed.org/users/jehoon/code/KT_IoTMakers_WizFi310_Example/

 

image

  • AP_SSID: 디바이스가 접속할 공유기의 SSID를 입력한다.
  • AP_PASSWORD: 공유기의 PASSWORD를 입력한다.
  • AP_SECURITY: 공유기의 보안 타입을 입력한다.(현재 WPA2로 설정됨)

 

  • IoTMakers_GW_ID: Gateway 연결 ID
  • IoTMakers_DEV_ID: Device ID
  • IoTMakers_DEV_PWD: Device Password

 

  • IoTMakers_MQTT_IP: IoTMakers의 MQTT Broker IP
  • IoTMakers_MQTT_PORT: IoTMakers의 MQTT Broker Port

 

  • DELAY_SEND_TIME_MS: 주기 데이터를 전송할 주기(milliseconds)

 

4. 소스코드 메인 loop

image

메인 loop에서는 AP에 접속, IoTMakers에 접속 하는 과정과  주기적으로 센싱 데이터 전송(Periodic_Event())와 사용자 버튼 이벤트(Button_Push_Event()), 제어 신호를 프린트 하도록 구현되어 있다.

 

5. AP에 접속

image

 

 

6. 데이터 전송

image

주기 데이터(illumination, 숫자형)과 버튼 푸시 데이터(switch, 문자형)

 

7. 제어 데이터 수신

image

제어 데이터를 수신했을 때, IoTMakers의 oneM2M 포맷으로 프린트 한다.

snsnTagCd: Tag Stream ID

strVal: 문자형 제어 신호(ex: on, off)

 

 

8. 대시 보드로 센싱 데이터 표현 및 제어

image

0 0

1 2 3 4
블로그 이미지

IoT 개발자 블로그이고 싶다.

1byte