(사진 출처: https://www.blueair.com/ 블루에어 공식 페이지) 내가 일하는 사무실에서 약 5년간 공기 청정을 담당하다가 얼마 전 집으로 오게 된 구형 공기청정기 블루에어 Pure211. 이 녀석을 구글 홈에 붙여서 음성으로 컨트롤하거나 원하는 시간에 꺼지거나 켜지게 할 수 있도록 인터넷을 연결해 보았다. 1. 기기 분석 - 개조 가능한지 살펴보기 첫 번째 할 일은 공기청정기를 분해해서 개조가 가능한지 살펴보는 것이다. 내가 생각했던 제일 좋은 개조 방법은 스위치 케이블을 ESP8266(아두이노를 탑재한) 에 연결하고, 다시 아두이노에서 공기청정기로 스위치 신호를 보내는 방법이다. 그렇게 되려면 구조가 간단해야 하는데... 기판을 분해해서 스위치 쪽 케이블 커넥터를 살펴보니 친절하게 설..
값비싼? FTDI 가 달려있는 아두이노나 짭두이노에 대한 설치 자료를 인터넷 검색을 통하여 쉽게 찾아볼 수 있지만, 최근 온라인 쇼핑몰에 심심치 않게 등장하는 초 저가형 짭두이노는 CH340 라는 USB 시리얼 변환 드라이브를 사용한다. (요즘 알리 익스프레스에 접속하면 자동으로 한글로 번역되어 나오는데, 차라리 영어가 낫다...) 특히 아두이노 나노와 호환되는 초 저렴한 짭두이노를 많이 찾아볼 수 있는데, 이 블로그 포스팅을 작성하고 있는 15.11.23 기준으로 가장 싼 녀석이 1.75 달러다. 현재 환율로 따져보면 초코파이 한박스보다 싼 가격으로 아두이노를 구입할 수 있다. 이렇게 다른 짭두이노보다 가격이 저렴한 이유는 FTDI 와 같은 비싼 드라이버 대신 CH340 (ch340g, ch341) 이..
프로젝트 코드 및 회로도는 아래 주소에서 확인하세요. https://github.com/ice3x2/Wifi_Humidifier 아두이노를 취미로 시작한지 1년이 지났다. 그 이후로 수집벽이 생겼는데, 센서나 부품을 쓰지도 않으면서 알리 익스프레스를 통하여 모으는 일이다 덕분에 책상 위에 온갖 센서들이 굴러다닌다. 초창기에 구입한 ESP8266 ESP-1 도 그 중에 하나인데, 사놓고 사용하지를 않아 아까워서 이번 프로젝트에 사용하게 되었다. 단, ESP8266은 80Mhz 와 메모리 32kbyte 의 뛰어난 성능을 갖고 있는데, 그 자체로 IOT 플랫폼으로 사용할 수 있다. 하지만 ESP-1은 최신 버전인 ESP-12 와 다르게 사용할 수 있는 GPIO 포트가 얼마 되지 않고 아날로그 입력을 받도록 처..
이전에 아두이노 IDE 1.0.x 버전 기준으로 Attiny85 부트로더 굽는 법과 삽질 경험에 대하여 포스팅(http://www.dev.re.kr/59) 했었는데, 아두이노 IDE 1.6.4 버전 이상과 그 안에 포함된 개개선된 ISP 코드 덕분에 이제는 부트로더 굽는 것이 더 쉬워졌다. 콘덴서나 저항을 reset 버튼 사이에 연결하거나 수정된 ISP 를 따로 구해서 사용할 필요가 없어졌다. 이번 시간에는 1.6.x 버전을 이용하여 간단하게 부트로더를 굽는 방법에 대하여 언급할까 한다. 이 포스팅은 Arduino UNO 기준으로 되어있다. 1. Attiny85 라이브러리 설치하기. 먼저 환경설정 메뉴에 들어가면 아래와 같은 화면이 나오는데, Additional Boards Manager URLs 의 텍..
1. DHT22 와 라이브러리 구하기 내가 자주 이용하는 알리 익스프레스에서 3달러 라는 저렴한 가격에 판매되고 있다. 국내 쇼핑몰에서도 많이 판매되고 있다. github 에 공개된 오픈소스 라이브러리를 다운 받아서 압축을 풀고 아두이노 프로젝트 폴더 내의 라이브러리 폴더에 붙여 넣는다. DHT22 라이브러리 : https://github.com/nethoncho/Arduino-DHT22 예제코드 : https://github.com/nethoncho/Arduino-DHT22/blob/master/examples/Serial/Serial.ino 예제코드를 보면 매우 간단한 사용법을 확인할 수 있다. 예제코드 실행 결과. 2초에 한 번씩 온도와 습도를 불러온다. 2. DHT22 를 활용한 인터넷 온도/습도..
이번 포스팅에서는 ENC28J60 를 이용하여 아두이노를 웹서버로 만들어 보겠다. 아두이노 모델중에 가장 많이 사용되는 UNO 에 탑재된 ATmega328의 2kbyte 라는 개미 코딱지 같은 메모리를 활용하여 그럴싸한 html 문서를 보여주는 웹 서버를 만드는 것은 쉽지 않은 일이다. 응용 소프트웨어 서버로 사용하기에는 조악한 성능을 갖고 있다. 그 때문에, 아두이노를 웹 서버로 사용하게 된다면 센서를 통하여 데이터를 수집하고 REST로 값을 전달해 주는 기능이나 물리적 장치 제어를 위한 컨트롤러 이상으로 확장하기는 어려울 것이다 . 하지만 이번 포스팅에서는 아두이노를 웹서버로 만들어 재미있는 것들을 만들어보고자 한다. (조만간 안 귀찮을 때 WIFI 사용도 같이 다뤄보고자 한다. ) 1. 이더넷 모듈..
아두이노 에서 사용하는 마이크로 컨트롤러는 작은 양의 RAM 공간을 갖고 있습니다. 아두이노 우노 에서 사용하는 ATmega328 계열은 고작2Kbyte 의 공간을 갖고 있으며 기본적으로 200에서 300byte 정도의 메모리가 소비되는 것을 볼 수 있었습니다. 스케치 코드를 짜면서 무분별한 변수 선언이나 지나친 메모리 할당은 아두이노 스케치가 오동작 할 수 있는 상황을 야기시킬 수 있기 때문에 코딩중 고심하게 만드는 부분중에 하나입니다. 심지어 메모리 누수(Memory leak) 버그가 발생하면 코딱지 만한 메모리 공간은 쓰레기로 가득 찰 것입니다. 다행히도 아두이노에 남아있는 메모리 사용량을 실시간으로 체크할 수 있는 방법이 존재합니다. 그리고 그것을 라이브러리로 쓰기 편하게 만들어 주신 분도 있습니..
우선 해외 사이트 중에 Attiny85 에 아두이노를 올리는 것에 대해 자세히 나와있는 아주 좋은 포스팅이 하나 있다.http://highlowtech.org/?p=1695 하지만, 이 포스팅을 보고 순서대로 따라해 보았지만 동작하지 않았다. 대략 원인은 위 포스팅에 나와있는 아두이노 우노 R2 에서는 잘 올라가지만 직접 테스트 해본 아두이노 우노 R3 에서는 문제가 발생하는 것으로 예상하고 있다. 물론 아두이노 (호환)나노, 아두이노 (호환)미니 에서도 동작하지 않았다. 위에 링크로 올린 http://highlowtech.org/?p=1695 에서는 아주 간단한 방법으로 부트로더도 올리고 Blink 예제도 올리고 있지만, 앞서 언급한대로 잘 되지 않으므로 정공법으로 부트로더를 올리고 스케치 프로그램을 ..
이전 포스팅 '저렴한 RGB LED(WS2812B) 구임/사용기' 라는 포스팅에서 WS2812B 에 대하여 잠깐 소개한적이 있다. 간단한 사용 방법에 대하여 소개를 하지 않아서 본격적으로 사용법에 대하여 소개를 하려고 한다. 우선 구입은 Aliexpress 와 같은 해외 사이트를 추천한다. 글을 올린 시간 기준으로 100개에 약 18달러정도 한다. (http://www.aliexpress.com/premium/WS2812B-100pcs-Heatsink.html?ltype=wholesale&d=y&origin=y&SearchText=WS2812B+100pcs+Heatsink&isPremium=y&initiative_id=SB_20141005041503&isViewCP=y&catId=) 뿐만 아니라 LED ..
이전에 알리 익스프레스에서 구입한 OLED 사용기(http://dev.re.kr/47)에서 OLED 제어에 대하여 간략하게 올린적이 있습니다만 그것보다 더 편리한 u8glib 사용에 대하여 정리해 보도록 하겠습니다. 좀 더 자세한 튜토리얼과 레퍼런스는 이 곳 https://code.google.com/p/u8glib/wiki/u8glib?tm=6 페이지 에서 확인 할 수 있습니다. 우선 제어하려고 하는 OLED 가 SPI 로 통신하는지 I2C 로 통신하는지부터 알아야 하며, 내장 컨트롤러에 대한 정보도 알아야 한다. OLED 를 판매하는 인터넷 쇼핑몰 페이지의 상세 정보나 데이터시트를 참고하거나, 모델명으로 구글링해보면 OLED 컨트롤러에 대한 정보를 얻을 수 있다. 지금 테스트 해보려는 OLED 는 아..
3V 를 소비하는 LED 가 있다고 가정해 보자. 이 LED 의 밝기를 제어하기 위하여 전압을 변경할 수 있지만, 좀 더 간단한 방법으로 아두이노의 PWM 제어 기능을 이용하여 밝기를 조절할 수 있다. 만약 LED 에 전류를 1초간 공급했다가 다시 1초동안 끊고 또 다시 1초간 공급하는 과정을 반복한다면 우리 눈에는 LED 가 깜빡거리는 것으로 보인다. 하지만, 0.1 초 간격으로 신호를 끊고 다시 연결하고를 반복한다면 우리눈에는 LED 밝기가 원래 밝기에 비해 좀 어둡게 출력되는 것으로 보일 것이다. 이런 신호 폭을 조절하여 LED 의 밝기를 제어할 수 있다. PWM 제어에 대한 자세한 설명 : http://www.hanbit.co.kr/network/view.html?bi_id=1087 아두이노 우노..
우선 아래 포스팅은 근본적인 해결책이 아니다. 본인 같은 경우에는 드라이버 및 OS 업데이트를 통하여 이 문제를 해결하였다. 맥을 사용하고 OS는 매버릭스를 사용하는 환경에서 이와 같은 문제가 발생한다. (어쩌면 윈도우에서도 발생할지 모르겠다.) 구글링을 해보니 아두이노판 스텍 오버플로우에서 쉽게 찾을 수 있었다. 먼저 이게 드라이버의 문제인지 뭐가 잘못된건지 잘 모르겠지만 FTDI 드라이버를 아두이노에 연결하여 컴파일된 코드를 올리면 다음과 같은 에러가 발생한다. (물론 드라이버는 최신 상태로 업데이트 하였다. 간혹 잘 되는 경우도 있다. ㅡ, ㅡ;;) 아주 열받는 상황이다. 조금 귀찮은 트릭을 사용하여 이 문제를 해결할 수 있다. 우선 상단 메뉴에서 Arduino->환경 설정 을 열어서 다음과 같은 ..
u8glib 라이브러리를 활용한 좀 더 쉬운 OLED 사용법은 http://www.dev.re.kr/51 에 포스팅 해 놓았습니다. 바로 이전 포스팅에 이어서 이번에도 알리 익스프레스에서 구매했다. 6.66$ 나름대로 저렴한 가격이다. I2C 를 사용한다고 하는데, 이 통신 방법에 대해서는 다음 위키 페이지에서 요약된 정보를 확인할 수 있다. http://ko.wikipedia.org/wiki/I%C2%B2C 앞 모습. 보호 필름이 발라져 있다. 뒷 모습. 핀헤더 아래를 보면 Address Select 라고 써져있는 부분이 보인다. 이 부분을 자세히 보자. 주소가 0x78 으로 표시되어 있는데, 각 디바이스마다 고유의 주소 값을 갖고 있고, 이 것을 선택하여 여러대의 I2C 기기를 컨트롤 할 수 있다고한..
(WS2812B 사용법및 예제 소스는 다음 포스팅 http://www.dev.re.kr/57 에서 확인할 수 있습니다.) 뭐를 만드려고 하는데, RGB LED 개 열 개 정도 필요하게 되었다. 좋은 대안은 컨트롤하기 편한 Adafruit 에서 만든 NeoPixel 이 되겠다. 이 녀석은 디지털 출력 포트 하나로 여러 모듈을 동시에 컨트롤 할 수 있다는 것이 가장 큰 장점이다. 하지만, 좀비싸다. ㅠㅠ 알리 익스프레스를 뒤져본 결과 NeoPixel 에 들어가는 WS2812B가 올라간 모듈을 아주 싼 가격에 팔고 있었다. 100개에 17.99달러!! 나는 10개만 필요하기 때문에 불량품이 있을 것을 감안하여 20개를 구입하였다. 무료 배송을 선택하고 2주 하고 5일 뒤에 상품이 왔다.이런식으로 붙어있긴 하지..
약 한 달 전에 알리 익스프레스라는 곳을 알게 되었다. 이전에는 국내에서 구하기 힘든 물건들은 이베이나 아아존 구매대행 사이트나 배송대행 업체를 이용하여 직구하기도 하였는데, 수수료와 배송비의 압박으로 부터 자유롭지 못 했다. 하지만 중국판 아마존인 알리 익스프레스는 달랐다. 중국 소포를 이용한 무료 배송을 해주는 상점이 많고, 제품들도 무척 저렴했다. - 당연히 구매 절차는 매우 간단하다. VISA 카드등 해외 결제가 가능한 체크카드나 신용 카드만 있으면 된다. - 물론 가품이나 문제가 있는 제품도 많아서 마치 확률 높은 도박을 해야한다는 단점이 있다. 인터넷을 뒤져보면 풍부한 구매 후기등이 있는데, 많은 수가 사기를 당하거나 문제있는 제품을 구매했다고한다. - 아마도 물건 구매에 실패한 사람들이 속상..
우선 안드로이드 개발 문서를 살펴보자.http://developer.android.com/guide/topics/connectivity/bluetooth.html친철하게도 한글로 번역해놓은 분도 계시다. (감사합니다 b >.< d) http://hardroid.net/profiles/blogs/bluetooth 요즘은 안드로이드 관련 이슈나 API 문서를 한글로 번역해 놓는 분들이 많아서 참 고맙다. 친분이 있다면 치맥이라도 대접해 드리고 싶은 심정이다. 그동안 안드로이드 개발해오면서 사운드 관련 API와 함께 블루투스 관련 API 는 깔끔한 편에 속하는 것 같다. (개인적인 느낌으로는...) UI 관련 API는 멘탈이 강하지 않으면 사용하기 힘들다. 단, 요즘은 3.x 이하 버전을 버리는 추세라서 많이..
Arduino 와 Android 디바이스와의 블루투스 통신을 하기 위하여 다른 모듈 대비 저렴한 HC-06 을 사용하였다. HC-06 블루투스 모듈은 블루투스 2.0 을 사용하고 슬레이브 모드(마스터 모드와 슬레이브 모드가 있다. 슬레이브 모드는 기기를 한 대 밖에 연결하지 못 한다. 관련 설명 페이지)만을 사용하며 가격이 다른 모듈에 비해 비교적 저렴한 것이 특징이다. 또 관련 자료도 많이 접할 수 있다. 옥션 같은 곳에서 12,000 원대에 구할 수 있지만 이베이에서는 국내 판매 가격보다 훨씬 저렴한 가격으로 구할 수 있다. 그냥 HC-06 알맹이만 있는 녀석은 4$~5$ 정도 한다. 다만, 배송비의 압박이 만만치 않다. 나는 5v 로 사용할 수 있는 HC-06 시리얼 모듈을 구입하였다. 모듈을 구입..
우선 테스트 영상. 첫 번째 실습부터 삽질이다. 칩 두이노에 LED 와 스위치를 연결하여 스위치를 한 번 누르면 LED 가 켜지고 다시 한 번 누르면 깜빡 거리고 다시 한 번 누르면 더 빨리 깜빡거리고 마지막으로 꺼지는 것을 만들고자 하였다. 마치 자전거용 전조등처럼 말이다. 추후에 자전거 전조등 자작을 염두에 둔 실습이었는데, 스위치에 좋지 않은 문제가 하나 있었다. 바로 기계식 스위치가 갖고 있는 문제인 바운스 현상이라 하는데, 스위치 내부에 스프링위에 올라간 접점이 붙거나 떨어질때 탄성으로 인하여 한 번 더 붙거나 하는 현상이 다. 아래 그림을 보면 이해가 쉬울 것 이다. 스위치 바운스. 처음에는 본인 직업인 소프트웨어 개발자 답게 코딩으로 딜레이를 주는 방식으로 해결해볼려고 했는데 아무래도 물리적..
요즘 즐겨보는 간행물인 Make 에 보면 아두이노는 꼭 빠지지 않는 단골 소재다. 이 잡지를 보면서 항상 아두이노에 대하여 감탄해왔다. 그리고 최근 결정적으로 아두이노에 입문하게 되게 해준 계기가 있었는데, 바로... 이 녀석들 이다.. 스노보드와 자전거가 취미인 내게 고글에 속도가 디스플레이 된다는 것이 큰 매력으로 다가왔다. 하지만 가격이 적어도 한국 돈으로 40만원 이상 하는 것들이라 가난한 월급쟁이인 저는 좌절 할 수밖에 없었다. 하지만 그 순간! 아두이노가 머릿속에 떠올랐다! 그리고 아두이노와 기기들에 대하여 조사를 해 본 결과 웨어러블 기기를 만드는데 딱 좋은 사이즈인 Cheapduino 라는 좋은 제품을 발견할 수 있었다. 요즘 많이 사용하는 아두이노 우노 R3에 비하여 스팩과 퍼포먼스가 많..
- Total
- Today
- Yesterday
- 병렬 프로그래밍
- arduino
- 부트로더
- 블루투스
- 아두이노
- activity
- oled
- noidemcu
- Java
- HC-06
- 칩두이노
- 개발
- ndk
- 알리익스프레스
- 안드로이드 개발
- 가습기
- Iot
- 안드로이드
- ENC28J60
- 침블락
- ESP8266
- ATtiny85
- NeoPixel
- 스마트 무드등
- 이더넷
- WS2812B
- Cheapduino
- json
- bluetooth
- Android
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |