(사진 출처: https://www.blueair.com/ 블루에어 공식 페이지) 내가 일하는 사무실에서 약 5년간 공기 청정을 담당하다가 얼마 전 집으로 오게 된 구형 공기청정기 블루에어 Pure211. 이 녀석을 구글 홈에 붙여서 음성으로 컨트롤하거나 원하는 시간에 꺼지거나 켜지게 할 수 있도록 인터넷을 연결해 보았다. 1. 기기 분석 - 개조 가능한지 살펴보기 첫 번째 할 일은 공기청정기를 분해해서 개조가 가능한지 살펴보는 것이다. 내가 생각했던 제일 좋은 개조 방법은 스위치 케이블을 ESP8266(아두이노를 탑재한) 에 연결하고, 다시 아두이노에서 공기청정기로 스위치 신호를 보내는 방법이다. 그렇게 되려면 구조가 간단해야 하는데... 기판을 분해해서 스위치 쪽 케이블 커넥터를 살펴보니 친절하게 설..
가끔씩 필요에 의해서 만드는 IOT 기기 프로젝트를 진행하면 제일 고민스럽고 귀찮은 것 중에 하나가 WiFi 연결과 서버 연결 설정을 만드는 부분이다. 이 프로젝트를 완성하기 전에는 소스코드 내에 하드코딩으로 무선 AP 의 SSID와 패스워드를 삽입해 버리거나 웹 서버를 동작시켜서 GET 파라미터 값으로 SSID 와 패스워드 그리고 mqtt 서버 주소를 입력하는 방법을 사용해왔다. 하지만, 최종 연결 상태를 확인하거나 추가 옵션을 붙이기가 만만치 않고, 중구난방으로 생겨나는 자작 IOT 기기들의 설정 방법들이 일관되지 않아서 유지 보수가 어렵다는 단점이 있었다. 그래서 일관된 방법으로 설정값을 넣기 위한 웹 설정 마법사 모듈을 단순하게 만들어봤다. 소스코드 및 사용방법: https://github.com..
예젠에 회사 블로그에 올렸던 글... 준비물 1. NodeMCU v2 WIFI 기능이 탑재된 가성비 좋은 마이크로 컨트롤러 보드입니다. 2. USB 와이어 LED 오픈마켓 등에서 'USB 와이어 LED' 로 검색하여 구입 가능합니다. 3. 브레드보드와 점퍼 케이블 납땜 없이 전자 회로를 구성하고 테스트 할 수 있습니다. 4. NPN 트렌지스터 - 2N2222 NodeMCU v2 소개 NodeMCU v2 에는 중국 에스프레시프 시스템사에서 개발된 wifi 기능이 탑재된 MCU, ESP8266-12E 모듈이 탑재되었습니다. 이 기기의 스펙을 간략하게 적어보면 다음과 같습니다. - 802.11 b/g/n 프로토콜 - Wi-Fi Direct (P2P), soft-AP - TCP/IP 프로토콜 - 80Mhz 클럭..
값비싼? 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 카드등 해외 결제가 가능한 체크카드나 신용 카드만 있으면 된다. - 물론 가품이나 문제가 있는 제품도 많아서 마치 확률 높은 도박을 해야한다는 단점이 있다. 인터넷을 뒤져보면 풍부한 구매 후기등이 있는데, 많은 수가 사기를 당하거나 문제있는 제품을 구매했다고한다. - 아마도 물건 구매에 실패한 사람들이 속상..
r글 작성중...
1편 HC-06 블루투스 모듈을 설정하는 방법에 이어서 이번에는 안드로이드에 연동하는 방법에 대하여 공유하겠다. 아래는 HC-06 모듈을 달고 있는 아두이노로 메세지를 보내면 그것을 되돌려 받는 안드로이드 앱의 스샷이다. 구글 플레이 스토어 앱 : https://play.google.com/store/apps/details?id=kr.re.Dev.BluetoothEcho Github 안드로이드 프로젝트 소스 : https://github.com/ice3x2/HC-06_Arduino_Echo 우선 안드로이드에서 블루투스를 시리얼 포트 모드로 이용하기 위한 간단한 모듈을 작성 하였는데, 관련 내용은 이 포스팅에서 볼 수 있다. 동작하는 원리는 아주 간단하다. 그냥 안드로이드에서 문자열을 보내면 아두이노에서 ..
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
- 스마트 무드등
- oled
- noidemcu
- 블루투스
- 안드로이드
- 병렬 프로그래밍
- ESP8266
- 알리익스프레스
- HC-06
- Java
- 침블락
- activity
- 안드로이드 개발
- 이더넷
- WS2812B
- ndk
- Android
- bluetooth
- ENC28J60
- Cheapduino
- Iot
- 칩두이노
- 개발
- 아두이노
- NeoPixel
- ATtiny85
- 부트로더
- 가습기
- json
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |