카테고리 없음2016. 11. 27. 19:06

글을 시작하며..

개별 실험에 머물지 않고 두고두고 쓸만한 홈 오토메이션 전체 시스템을 구축하고 싶어졌다.


전체 개요 설명 링크 : http://orasman.tistory.com/370

본 챕터의 목표..

RF수신 모듈로 프로토콜 해석하기 (열림센서, 인체감지센서, 무선리모콘 신호 받기)


자동화 말단 장치들..

인체감지, 문열림감지, 전기플러그, 전등스위치

이런걸 아두이노로 만들어 보려고 했다.

물론 가능하지만 두고두고 오래 쓰긴 어려웠다. 그 이유는

(1) 전원 : 아두이노 전원 공급을 USB나 220V어댑터 쓰면 말단장치 설치가 어렵다..건전지를 써야 하는데

             아두이노 자체 소비 전류로 인해 건전지를 전원으로 쓰면서 장시간 동작하기 어렵다

(2) 케이스 : 3D프린터로 만들던 종이상자를 쓰던 케이스를 만들어야 한다

                아두이노 미니 같은 소형 모듈도 있지만 대부분 크기가 커진다


그래서 말단 장치의 설계 조건으로 다음을 뽑았다

(1) 건전지 동작

(2) 무선 송수신

(3) 케이스 일체형


최적의 선택

인터넷 서핑을 통해 RF 송신 기능을 갖춘 저렴한 센서를 찾았다


또한 RF 수신을 통해 전기플러스, 전등스위치 ON/OFF 되는 물건도 찾았다!











Posted by orasman
만들기2016. 11. 2. 00:05

글을 시작하며..

IOT 기술에 관심을 갖게되면서

인터넷 서핑, 블로그, 카페를 통해 다양한 응용 기술들을 접하게 되었다.

그러면서 단순한 실험에 그치지 않고 두고두고 쓸만한 홈 오토메이션 전체 시스템을 구축하고 싶어졌다.


프로젝트 목표..

집에서 필요한 다양한 기능을 구현하자

아두이노 기반으로 최대한 저렴한 방법을 찾자

스마트폰으로 언제 어디서든 제어를 하거나 알람을 받을 수 있게 하자


뭘 만들어야 하나? 홈 오토메이션 시스템 구성..

1. 스마트폰과 앱

2. 인터넷 서버 : 사물인터넷 연결 서비스 제공

3. 인터넷 중계망 : 인터넷 무선 공유기로 집안에 사물과 인터넷 서버를 어떻게 연결할 것인가

4. 가정용 허브 : 각종 홈 키트를 관장하는 중앙 제어 장치

5. 홈 키트(장치들) : 말단 장치들..열림감지, 전기 플러그, 전등스위치 등등


1번, 2번 앱과 서버를 직접 만드시는 분들도 있으나 난 그런 능력은 없으니 열심히 발품팔아서 해결책을 찾아보자.

3번은 집에 있으니 패스~

4번 허브와 5번 홈키트는 아두이노로 직접 만들어 보자


이런저런 고민과 개발 과정.. 1년의 시간

홈 키트 만들려고 아두이노+통신모듈 컨셉으로 접근하면 비싸고 전력도 커서 배터리 적용이 힘들다

그러니 홈 키트는 아두이노 없이 무선 통신 모듈만으로 간단한 동작과 데이터 송수신 기능만 하자

이러한 이유로 홈키트 통신 방식을 블루투스(1:1통신)나 와이파이 모듈을 쓰는건 아닌거 같다.


사실 이런 고민을 시작했던 1년 전에는 ESP8266의 펌웨어를 바꿔서 아두이노 처럼 쓸 수 있다는걸 몰랐다.

그렇다고 해도 ESP8266으로 홈키트를 만들면 전력 소모가 커서 배터리는 어렵고 AC전원을 끌어 써야 할 듯.


찾아보니 HC-11 같은 RF 모듈에 간단한 I/O 제어기능이 포함되어 있어서 쓸수 있을것 같다.


여기서 더 찾아보니 RF 통신으로 열림감지, 인체감지, 전원 플러그, 전등 스위치 제품이 있더라!!

게다가 이런 제품들이 상당히 저렴해서 직접 만드는것 보다 구입하는게 훨씬 싸게 들더라.

(무선 전원 플러그랑 전등스위치를 직접 만들려고 했더니 재료비만 각각 몇 만원이 넘더라)


홈키트는 자작을 포기! 그냥 싼거 사서 쓰자.. 근데 이것들이 아두이노로 제어가 될까?

앗! 아두이노에 붙일수 있는 RF 송수신 모듈도 있었네?

잘하면 아두이노로 RF 제품들을 제어할 수 있겠군..

몇 달에 걸쳐 인터넷 서핑과 시행착오, 삽질을 통해 RF 제품들 제어(=해킹)에 성공함

운 좋게 주파수는 잘 맞았고, 프로토콜은 제품마다 달라서.. 이걸 찾고, 분석하는데 상당한 노력이 필요했음


그럼 이제 RF 제품들과 WiFi를 연결해 주는 허브를 아두이노로 만들자.. 게이트웨이 역할이 되겠네..

[RF송수신 모듈 + 아두이노 + ESP8266]


스마트폰으로 제어하려면 어떤 앱이 좋을까?

이것 저것 검색하다가 IFTTT 라는 싸이트 발견! 게다가 Maker 를 위한 기능이 있다고 함

찾아보니 아두이노로 IFTTT와 통신이 가능하다는걸 알게됨

더 찾아보니 DO 라는 앱을 쓰면 스마트폰에서 아두이노로 명령도 내릴수 있다고 함


자, 이제 ESP8266을 써서 WiFi로 IFTTT, DO 앱하고 연결해 볼까?

HTTP, GET 뭐 이런 프로토콜을 알아야 하네.. 음.. 잘 모르겠고 일단 만들어 보자

이것도 몇달에 걸쳐 장님 코끼리 뒷다리 만지듯이 시행착오를 통해 IFTTT 서버로 전송 성공

열림감지 센서값을 RF로 받아서 IFTTT 통해서 스마트폰에 알람을 띄움


스마트 폰에서 DO앱으로 명령을 내리면 ESP8266+아두이노가 알아듣고 전등을 키고 싶다면,

ESP8266를 서버 모드로 셋팅하고 문자를 받으면 해석해서 해당 명령에 맞는 동작을 함

이것도 역시 몇달 걸려서 ESP8266 서버 기능과 수신 문자 해석 기능을 만듬

하지만 내가 만든건 코드가 조잡해서 쓸만한 ESP8266 라이브러리를 찾아 개조함


필요한 기술은 다 개발했으니 시스템 통합을 하자!

이것도 ESP8266 동작시키는데 제한이 있어서 몇 달 정도 걸려서 통합을 완성함


결국 시작한지 1년 정도 걸려서 프로젝트를 완성할 수 있었다.

사실 탱자탱자 놀면서 짬짬히 하다보니 생각보다 오래 걸렸다...


시스템의 한계와 단점..

저렴한 RF 방식의 홈키트를 적용하다 보니 생기는 단점들..

..전파 방해나 혼신, 보안문제, 해킹에 취약 할 수 있다

 (사실 아직 사용자가 많아 질때 까지는 발생하지 않을 문제다)

..홈키트 모듈에 프로세싱 기능이 없다보니 현재 상태를 피드백 해주지는 못한다

 (예를들어 전등을 켰는데 현재 켜진 상태인지, 꺼진 상태인지 응답 하는 기능은 없다)


그래서 국내 시판되는 IOT 홈오토메이션 제품들은 Z-wave 라는 무선통신을 쓴다.

아직 Z-wave는 공부를 안해서 어떤 기능까지 지원하는지 모르겠지만, 위에 언급한 문제들은 없겠지?

프로젝트 결과..

스마트폰으로 집 밖에서 집안에 전등과 전기 플러그를 ON/OFF 할 수 있다

잠자리에 누워서 집안에 모든 전등을 끌 수 있다

창문/현관문이 열리거나 사람이 감지되면 스마트폰에 알람이 온다

이 둘을 연결해서 집에 사람이 들어오면 자동으로 전등이나 전기 플러그가 켜진다


프로젝트 비용..

각 부품을 1개씩만 적용할 경우 전체 재료비는 대략 82,200원 정도


홈 오토메이션 키트 (건전지 값 포함)

열림감지 무선센서 (5,000원) 인체감지 무선센서 (12,500원)

무선 전원 플러그 (10,000원) 무선 전등스위치 (45,000원)


가정용 허브 구축

아두이노 (5,400원) ESP8266(3,500원) RF송수신모듈 (1,800원)

인터넷 서버 중계 : 무료 (IFTTT 서비스 활용)


상용 제품 대비 DIY 장단점과 가격 비교..

일단 DIY 를 하면 매달내는 통신비는 안낸다. (IFTTT 서비스가 유료로 되지 않는다면)

통신사에 사용기록이 남지 않아서 프라이버시를 지킬 수 있다. (특히 샤오미 같으면 중국서버에 기록이 남을수도..)

가정용 허브 코딩을 잘 하면 홈키트끼리 연동해서 동작하게 바꿀 수 있다. (상용제품에 없는 기능)

단점은 DIY를 하려면 알아야 할것도 많고, 귀찬고, 안되면 삽질도 해야한다.


상용제품을 쓰면 좀 비싸지만 좀 더 편리하게 귀찬은거 신경 안쓰고 쓸 수 있다.

다만 나만의 아이디어가 있을때 다양하게 확장하기 어렵고, 무엇보다 직접 만드는 재미는 없다.


LG IOT@홈

통신요금 연결 제품 1개당 2,200원

가정용 허브 (별도 구입 안되고 서비스 가입시 제공)

열림감지 센서 단품 33,000원

전기 플러그 단품 44,000원

전등 스위치 단품 55,000원


SK 스마트홈

선납이용료 (가입시 1회 납부, 5,500원)

통신요금 연결 제품 1개당 (1,100원 ,3년약정시) 연결제품 무제한(9,900원, 3년약정시)

브릿지(가정용 허브) 50,000원

전기 플러그 단품 44,000원

전등 스위치 단품 55,000원


샤오미 홈 오토 키트

허브+열림감지1개+인체감지1개+무선스위치1개 = 약 50달러


가격은 샤오미를 따라갈 수가 없다. 중국 서버를 거친다는게 찜찜 할 뿐..


개발 기술 공유를 위한 글 연재 순서..

RF수신 모듈로 프로토콜 해석하기 (열림센서, 인체감지센서, 무선리모콘 신호 받기)

RF 송신 모듈로 제어 명령 보내기 (전등 스위치 또는 전기 플러그 ON/OFF)

무료 인터넷 중계 서버 IFTTT 사용법

ESP8266 으로 IFTTT에 트리거 보내서 스마트폰 알람 띄우기

스마트폰 DO 앱으로 ESP8266에 알림 보내기

ESP8266 AT명령으로 쓸 때 주의할 점

지금까지 기술을 집약해서 가정용 허브 만들기



Posted by orasman
만들기2016. 10. 26. 23:36

TECLAST x98 pro FULL SIZE USB 개조설치

http://blog.naver.com/PostView.nhn?blogId=81xowlths&logNo=220603127905

USB A타입 Female 커넥터 구입처

http://www.devicemart.co.kr/goods/list.php?category=003001022008




순간접착제 바르고 클립으로 찝어 두면 잘 붙는다


첨부된 링크에 나와 있듯이 정면에서 봤을때 오른쪽 끝이 +극 전원



USB 소켓이 두꺼워서 덮개가 살짝 떴다. ㅠㅠ


Posted by orasman
만들기2016. 8. 28. 23:21

아두이노 우노 EEPROM 1Kbyte (1024byte)

 

하루 3600*24시간 = 86400초

 

5분(300초)에 한 샘플 (2byte : 온도1byte 습도1byte)

 

86400초 / 300초 = 288회 기록 (576 byte)

 

1023byte / 576byte = 1.7일간 기록가능

 

temperature_DHT11.ino

 

시리얼통신 명령어

'0' 보내면  EEPROM 메모리 주소 0으로 초기화

'1' 보내면 현재 기록중인 EEPROM 메모리

'2' 보내면 1범지 부터 지금까지 기록된 값 출려

 

Posted by orasman
카테고리 없음2016. 7. 24. 21:16

http://kocoafab.cc/tutorial/view/592

댓글에 보면 ESP8266을 아두이노처럼 쓰게 해준다는 Wemos D1 얘기가 나옴


출처 : http://deneb21.tistory.com/407


-- a simple HTTP server

srv = net.createServer(net.TCP)
srv:listen(80, function(conn)
    conn:on("receive", function(sck, payload)
        print(payload)
        sck:send("HTTP/1.0 200 OK\r\nContent-Type: text/html\r\n\r\n<h1> Hello, NodeMCU.</h1>")
    end)
    conn:on("sent", function(sck) sck:close() end)
end)



위 예제를 따라하면 아래와 같은 에러가 날 수 있다


unprotected error in call to Lua API (webserver.lua:2: only one tcp server allowed)


구글에서 찾아보니 기존에 열려 있는 서버가 있어서 발생하는 문제임

아래 싸이트에 나온것 처럼 기존 서버를 닫아주고 다시 열면 문제가 없음


http://stackoverflow.com/questions/37566185/only-one-tcp-server-allowed-esp8266-with-lua


if srv~=nil then
  srv:close()
end

srv = net.createServer(net.TCP)
srv:listen(80, function(conn)
    conn:on("receive", function(sck, payload)
        print(payload)
        sck:send("HTTP/1.0 200 OK\r\nContent-Type: text/html\r\n\r\n<h1> Hello, NodeMCU.</h1>")
    end)
    conn:on("sent", function(sck) sck:close() end)
end)




Posted by orasman
카테고리 없음2016. 7. 23. 09:49

형채가 변하는 구형 로봇 2종

https://youtu.be/9B1GnNmX7F8




https://youtu.be/vkb_5XGf_K0


        




굴러다니는 애완견용 장난감 GoBone

https://youtu.be/0XD7TDEr0yU



사료 투척기, 쌍방향 비디오 채팅, 나이트비전

https://youtu.be/5Oi7B1Ffgh8



지보(Jibo) 같은 소통형 스테이션 pillo, 얼음/약/물 공급

https://youtu.be/ooBgnWEHrDk




계란같은 소통형 스테이션(TAPIA)

https://youtu.be/0XmUaHf-11A


세그웨이 처럼 굴러다니거나 납작하게 눕혀서 구르거나

https://youtu.be/f5UR8YbcXIE




성격있는 강아지(CHIP)

https://youtu.be/0XmUaHf-11A


나인봇 결합형 로봇


감성 홈 로봇 aido


감성 홈 로봇 Zenbo

 



홈 로봇 Robit

https://youtu.be/Mx5aaE60SGA


홈 로봇 Xibot





로봇 장난감 VORTEX

https://youtu.be/Z02p2LKkrbE



홈로봇 BUDDY

 



Telepresence Home Robot


ROMO

https://youtu.be/z-48VdzFPwM



YYD Home Robot $350

https://youtu.be/cVbeyPY0upM

Reeman Robot on RK3288 Android with Artificial Intelligence

https://youtu.be/wu6v802ZXZg




Appbot

https://youtu.be/mfOEocAWZbc



2-Wheel Toy


HELIPAL

https://youtu.be/_og4m0g8M68



LG Rolling BOT

https://youtu.be/ovrkz12UFBM

https://youtu.be/l9lH_Ybtba0


2-Wheel Robot TOSHIBA

https://youtu.be/Y_qEn5MZJTs


EOPRO

https://youtu.be/S_VwwTVNa44



수륙양용 Rolling Spy CAM $100,000

https://youtu.be/gdawR-eYJfo


Posted by orasman
카테고리 없음2016. 7. 20. 22:48

mcp2515 CAN Shield Library

CAN_BUS_Shield.zip


OSC 16Mhz, 8Mhz support (only for 500Kbps CAN speed)

Osilator value in "mcp_can_dfs.h" file


CAN rx,tx sample code

CANShield_16MHz_Tx_random_Rx.zip



Cantalker installer (Maeul Software)

cantalker mca_cdrom.zip








Posted by orasman
카테고리 없음2016. 5. 30. 00:03
1. 제품의 옆면 사진





2. 제품 카달로그 다운받기 (아래 링크 클릭)

http://tmi.yokogawa.com/files/uploaded/BU04Q01A01_01E_050.pdf



카달로그에 나온 제품 모델명 분류 식별 방법



위 표에 따라 제품 코드 "MV2030-3-4-4-1-1F" 를 분석하면


30채널, 1초 측정 주기 (고속측정 모드에서는 125ms)

내부 메모리 : 400 (MB) 메가바이트

외장 메모리 : CF Card 및 USB 단자

표시 언어 : 한국어

입력 단자 : 클램프터미널

입력 전원 : 240V AC전원




3. 제품 사용 설명서 다운받기 (아래 링크 클릭)

http://web-material3.yokogawa.com/IMMV1000-01E_020.pdf

MV2030 은 클램프 타잎의 30채널 장비이다

한 블럭당 10채널씩 할당되므로 총 3개 블럭이 준비되어 있다.



아래는 클램프 터미널 핀 배치도(b, A, B) 와 체결 방법이다.





4. 사용자 설명서 (유저 매뉴얼) 에 나온 장비 구성도



사용자 설명서 (13page)에 보면 입력 가능한 신호의 종류가 나와 있음


전압 입력, 온도 센서 입력이 가능함.





5. 측정값 입력 신호에 관해서는 사용자 설명서 Section 3.3 을 참조하도록 되어 있음



입력 채널별로 어떤 종류의 입력인지, 입력 전압의 범위는 어떻게 되는지 설정하는 화면이다.


입력 신호의 종류는

Volt : 전압 입력

TC : Termocoupler 온도센서

RTD : 온도센서 모듈의 일종 (Pt100, JPt100 이라고 부르는듯?)

DI : 디지털 입력 (스위치 같이 On/OFF 신호)

1-5V : 1V ~5V 전압 입력



입력 가능한 전압의 범위는 아래와 같다

최대 +/- 50V 까지 가능하다



Posted by orasman
카테고리 없음2016. 4. 24. 20:34


블루투스로 한글 받아서 LCD (SSD1306)에 표시하는 샘플 코드 :

http://cafe.naver.com/arduinostory/36356



폰트 용량이 커서 RAM에 올리지 못하고 Flash 메모리에 올려야 한다.

Flash 메모리에 올리는 명령어에서 에러가 나서 아래와 같이 수정해야 컴파일 되었다.


const byte ASCfontSet[] PROGMEM = {


const, PROGMEM 명령어가 꼭 있어야 하며, 해당 키워드를 적어 넣는 순서도 중요함


수정한 코드 다운로드 ↓

BT_IN_hangel_ssd1360_minimize_DUE.zip

실행을 위한 관련 라이브러리 다운로드 ↓



아두이노 UNO는 Flash메모리가 작아서 첨부된 조합형 한글, 영어 폰트가 올라가지 않는다.

우노에서 실행하면 아래 사진과 같이 폰트가 깨져서 출력된다.


본 예제는 아두이노 DUE에서 동작시켰다.

컴파일 할때 보드 종류를 DUE로 해야 정상적으로 컴파일된다. (DUE에 있는 Serial1 을 썼기 때문)


한글을 전송하려면 유니코드로 전송해야 한다. 한글은 UTF-8 인코딩.

첨부된 샘플코드 처럼 스케치에서 한글 입력한뒤 시리얼 통신 터미널로 확인해 보면 아래와 같은 코드가 확인된다.



시리얼 통신 프로그램에서 받아서 HEX로 표시하면 아래와 같다.



이렇듯 PC에서 시리얼 통신으로 한글을 UTF-8로 인코딩해서 보내려면 TeraTerm 프로그램을 써야한다.

http://blog.naver.com/dk_dealer/60124422052



소스코드를 보면 알겠지만 문자열 끝에 '/'를 보내야 LCD화면에 출력된다.




안드로이드 스마트폰에서는 Bluetooth Terminal (제작:Qwerty) 에서 한글 전송이 가능했다.




스마트폰에서 블루투스로 접속해서 한글 문자열을 보내서 표시한 사진








관련 링크


블루투스로 한글 받아서 LCD (SSD1306)에 표시하는 샘플 코드 :

http://cafe.naver.com/arduinostory/36356


아두이노에서 조합형 한글 사용하기

http://cafe.naver.com/arduinostory/32771


한글 초,중,종 분리

http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=50&MAEULNo=20&no=919452&ref=919452


한글(유니코드) 초성 / 중성 / 종성 분리

http://warmz.tistory.com/entry/%ED%95%9C%EA%B8%80%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C-%EC%B4%88%EC%84%B1-%EC%A4%91%EC%84%B1-%EC%A2%85%EC%84%B1-%EB%B6%84%EB%A6%AC


아두이노 시리얼 함수 스트링 함수 설명 잘됨

http://m.blog.naver.com/yuyyulee/220303855563


MFC로 멀티바이트 전송은 있는데...

http://blog.naver.com/PostView.nhn?blogId=gwakdonggi&logNo=220054966365


아두이노에서는 아직 유니코드를 지원하지 않는다????

http://m.blog.naver.com/yuyyulee/220301796341


아두이노 퀵 레퍼런스

http://m.blog.daum.net/_blog/_m/articleView.do?blogid=0ZPt7&articleno=1973


unicode 전체 포맷 설명

http://www.azillionmonkeys.com/qed/unicode.html


Arduino UTF-8

http://playground.arduino.cc/Code/UTF-8

http://playground.arduino.cc/Main/Utf8ascii


** 테라텀으로 한글 송수신 가능

http://blog.naver.com/dk_dealer/60124422052












Posted by orasman
카테고리 없음2016. 4. 21. 23:22

구매처 : http://www.aliexpress.com/item/NodeMcu-Lua-WIFI-development-board-based-on-the-ESP8266-Internet-of-things/32339203041.html


NodeMCU Sming 개발환경 설치 : C언어 형태

http://www.hardcopyworld.com/gnuboard5/bbs/board.php?bo_table=lecture_esp&wr_id=38




ESP시리즈 비교, NodeMCU 시작하기 잘 정리됨

http://deneb21.tistory.com/category/%EC%82%AC%EB%AC%BC%EC%9D%B8%ED%84%B0%EB%84%B7%28IoT%29


NodeMCU V3 시작하기 잘 정리됨

http://diyhome.tistory.com/11


기본 시작 및 ESPlorer 설치 설명 잘 정리됨

http://deneb21.tistory.com/399


Hardcopy World 에 잘 정리됨

http://www.hardcopyworld.com/gnuboard5/bbs/board.php?bo_table=lecture_esp


NodeMCU 예제들

http://nodemcu.com/index_en.html#fr_54747661d775ef1a3600009e



소개 : http://ilikesan.com/entry/Nodemcu-%EC%86%8C%EA%B0%9C-%ED%8A%B9%EC%A7%95


V1.0설치 : http://ilikesan.com/559


구입한 제품은 v3


NodeMCU 펌웨어 다운로드, Lua 코딩 시작  :  http://blog.naver.com/ajkun/220544524428


Lua코딩 기초 :  http://blog.naver.com/ajkun/220544533006


NodeMCU로 온습도센서값 ThingSpeak에 업로드 : http://cafe.naver.com/arduinostory/52382

Posted by orasman