아두이노

    NodeMCU와 PMS5003 센서로 미세먼지 측정하기

    이전 글과 이어진다. https://diy-project.tistory.com/145 아두이노 + PMS5003 센서로 미세먼지 측정하기 비교적 저렴하고 성능이 좋은 미세먼지 센서는 PMSX003 (PMS5003, PMS7003)가 있다. 샤오미 공기청정기 역시 동일한 센서를 사용한다고 알고 있는데 1~2만원대의 가격으로 꽤 준수한 측정 성능을 보여준 diy-project.tistory.com 미세먼지 측정은 잘 되지만 화면이 없는 것이 아쉬워 OLED 디스플레이를 연결할 수 있게 기판을 설계했다. 언제나처럼 JLCPCB를 통해 PCB 주문을 해주었다. 소량 프로토타입 제작을 국내 기판 제작업체보다 굉장히 저렴하게 제작할 수 있어서 좋다. https://jlcpcb.com/KOR PCB 프로토타입; PC..

    아두이노 + PMS5003 센서로 미세먼지 측정하기

    비교적 저렴하고 성능이 좋은 미세먼지 센서는 PMSX003 (PMS5003, PMS7003)가 있다. 샤오미 공기청정기 역시 동일한 센서를 사용한다고 알고 있는데 1~2만원대의 가격으로 꽤 준수한 측정 성능을 보여준다. 국내에서 구입하는 것보다 알리가 좀 더 저렴한 듯싶다. 5409.0₩ 22% OFF|PMS5003 PMS7003 PMS7003T PMS5003ST PMS3003 PMSA003 센서 모듈 PM2.5, 공기 입자 먼지 디지털 온도 Smarter Shopping, Better Living! Aliexpress.com ko.aliexpress.com 다만 로직 레벨이 3.3V이기 때문에 일반적인 아두이노에서 사용하기 어렵다. 따라서 nodemcu를 이용해 센서의 값을 읽는 것이 더 편하다. 그리..

    Blynk와 아두이노에서 미세먼지센서 사용하기

    더 정확한 센서를 사용하는 방법은 아래 글을 참고하자 https://diy-project.tistory.com/145 아두이노 + PMS5003 센서로 미세먼지 측정하기 비교적 저렴하고 성능이 좋은 미세먼지 센서는 PMSX003 (PMS5003, PMS7003)가 있다. 샤오미 공기청정기 역시 동일한 센서를 사용한다고 알고 있는데 1~2만원대의 가격으로 꽤 준수한 측정 성능을 보여준 diy-project.tistory.com 이전글 2018/12/26 - [IOT 프로젝트] - Blynk와 아두이노로 온습도 표시하기와 이어지는 내용이다. 미세먼지 센서중 미세먼지 센서중 GP2Y1010AU 센서는 가격이 매우 저렴하고 사용법이 간단해 아두이노에서 자주 사용되는 센서중 하나이다. 필자의 경우 알리익스프레스에..

    Blynk와 아두이노로 온습도 표시하기

    지금까지 Blynk를 사용하면 Wemos D1과 같은 esp8266 계열의 보드를 반드시 사용했었다. 이러한 보드들은 자체적으로 WiFi칩이 내장되어있어 편리하지만 아두이노에 비해 사용가능한 디지털과 아날로그 핀의 개수가 현저히 적다는 것이 문제이다. 그래서 이번에는 아두이노를 그대로 사용하고 esp 01 모듈을 WiFi 쉴드처럼 이용하여 Blynk통신을 해볼 생각이다. esp 01의 핀 배치는 위와 같다. 이 모듈을 아두이노에서 사용하기 위해서는 팜웨어를 업데이트 해야하는데 아래 글을 참고했다. http://deneb21.tistory.com/343 팜웨어가 업데이트 되었다면 DHT22 온습도 모듈과 esp 01, 아두이노를 아래와 같이 연결한다. 아두이노 esp 01 DHT22 3.3V 8 5V + ..

    아두이노에서 Wii 눈차크 사용하기 [Wii Nunchuck]

    일본의 유명 게임회사인 닌텐도의 게임기 시리즈 중 닌텐도 Wii는 각각 3축 가속도계가 달린 Wiimote와 Wii Nunchuck을 게임 콘솔로 이용한다. (Nunchuck을 정확히 뭐라고 읽는지 애매하지만 눈차크나 넌척등으로 흔히 알려진듯 하다.) 특히 Nunchuck은 3축 각속도 센서, 2개의 버튼, 1개의 조이스틱이 포함되어있어 자작품 만들기에 유용한 컨트롤러이다. 게다사 I2C통신이 기본이라 아두이노에서 사용하기도 편하다. 알리에서 호환 컨트롤러를 저렴한 가격에 구할 수 있다. Wii Nunchuck의 커넥터는 일반적인 커넥터와 다르다. 총 6개의 핀중에 4개만 사용하며 위의 사진에서 1번은 SDA, 3번은 3.3V (특이하게 3.3V전원을 이용한다.) 4번은 GND, 6번은 SCL이다. 특이..

    아두이노 스케치에서 package_index.json 파일 서명확인 실패 오류가 발생하는 경우 해결법 (아두이노 보드 매니저 오류)

    아두이노의 대표 IDE인 스케치에서 아두이노가 아닌 다른 보드를 사용하거나 추가하기 위해서 주로 보드 매니저를 사용한다. 필자는 최근에 attiny85를 사용하기 위해 오랜만에 보드 매니저에 들어갔는데 아래와 같은 오류가 발생했다. 당시에 오류 내용을 캡처해두지 않아 영어로된 오류 화면만 찾았지만 한국어 버전이라면 package_index.json 파일 서명확인 실패라는 내용이 출력된다. 구글링을 해보니 해외에서는 꾀나 이슈가 된 오류인 것 같다. 해결 방법은 다음의 포럼에서 찾을수 있었는데, https://github.com/arduino/Arduino/issues/7103 공통적으로 컴퓨터의 C://Users/youruser/AppData/Arduino15/ 경로의 Arduino15 파일을 제거하고 ..

    아두이노 I2C통신하기

    아두이노간 유선통신을 하는 방법은 다양하지만 가장 쉽고 간편한 방법은 I2C통신이다. I2C 통신은 아두이노의 SCL, SDA 핀을 이용하며, 연결이 간단하고 1:N 통신도 쉽게 구현가능하다는 장점이 있지만 통신속도가 약간 느리다는 단점이 있다. 물론 체감상 느리다는 느낌은 별로 받지 못했고 일반적인 작업을 하기 위한 통신속도로는 충분하다. 출처 : https://www.arduino.cc/en/Tutorial/MasterReader 연결은 위의 그림과 같이하면 되는데, 아두이노 우노의 경우는 A4, A5를 연결해도 되지만 대부분의 아두이노 보드들은 직접 SCL, SDA 핀끼리 연결하면 된다. (SCL은 SCL끼리, SDA는 SDA끼리 연결) 데이터를 보내는 쪽에는 아래의 코드를 업로드 한다. 12345..

    아두이노에서 지자기센서 사용하기 [HMC5883L]

    HMC5883L는 자이로/가속도센서와 유사하게 생겼지만 지구의 자기장의 방향을 측정한다는 점에서 그 쓰임새가 다르다. 간단하게는 나침반을 만들수있으며, GPS 시스템과 연동하면 내비게이션 시스템을 구축할 수도있다. 그렇다면 이 센서를 간단하게 아두이노에서 사용해보자. 출처 : http://fusion94.org/2012-11-29-arduino-plus-compass-module-3-axis-hmc5883l/ 우선 아두이노와 HMC5883L를 위와 같이 연결하자. (핀배치의 순서를 모듈마다 조금씩 다를수 있으므로 주의하자.) 필자도 동일하게 꾸며보았다. (참고로 아두이노 우노는 아두이노를 처음 배웠을때 구입했었던 kocoafab의 오렌지보드이다.) 이제 아래의 라이브러리를 다운받아 아두이노에 추가시켜준다..

    아두이노로 날씨정보 출력하기[esp8266/OpenWeatherMap]

    아두이노로 날씨정보를 출력하는 방법은 다양하지만 크게 기상청 RSS, 공공데이터 포털, 그리고 OpenWeatherMap을 이용하는 방법이 주로 쓰인다. 이 중에서 OpenWeatherMap을 이용해 현재 날씨 정보를 출력해볼 것이다. 아래는 실제 작동사진이다. 우선 OpenWeatherMap의 API 키를 발급받아야 하는데 받는 방법은 블로그 초창기에 올린적이 있다. 아래 링크를 참고한다. http://diy-project.tistory.com/5 API 키 발급이 완료됬다면 아래와 같이 회로를 꾸민다. I2C 통신모듈을 장착한 LCD가 필요한데 해당 LCD에 대해서는 아래 링크를 참고하면 된다. http://diy-project.tistory.com/24 다음으로 아래의 라이브러리를 추가한다. 이제 ..

    휴대용 미세먼지 측정기 자작 #1 (준비)

    미세먼지 시즌은 지났지만 필요로 인해 휴대용 미세먼지 측정기를 자작하기로 했다.아래는 현재 제작중인 PCB 기판... EasyEDA로 제작중인데, 확실히 간단한 회로제작에는 정말 좋은 툴인 것 같다. [추가] 2018/07/19거버 파일이 완성됬다.

    esp8266에 서보모터를 연결할때 주의점...

    스마트홈 프로젝트를 준비하면서 esp8266에 서보모터를 연결하고 이것 저것 실험중이었다. 그런데 갑자기 wemos d1 mini 보드의 전원라인에서 연기가 피어오르더니 순식간에 뜨거워지며 보드가 죽어버렸다. 재빨리 USB포트를 분리해서 다행이지 하마터면 과전류로 USB포트도 죽을뻔 했다. 뭐 SBC나 회로를 좀 다루다보면 합선등의 이유로 이런상황은 자주 일어나는 편이지만 (지금까지 날린 보드도 꽤 많다.) 이번에는 상황이 좀 달랐다. 합선이 원인은 아니었는데 전원선에서 연기가 날만한 원인이 없었기 때문이다. 자세히보면 USB단자 옆 다이오드 하나가 타서 부풀어 오른 상태이다. 전원부만 나간건지 esp8266도 같이 나간건지 모르겠다. 분리해보고 칩만 따로 테스트 해볼계획. 원인을 좀 생각해보니 연결된 ..

    아두이노로 ESC제어

    ESC(Electronic Speed Controls)는 크기나 허용 전류 면에서 모터드라이버 보다 훨씬 효율적으로 모터를 제어한다고 볼수도 있다. 또한 연결 방법 또한 모터드라이버 보다 간단한 경우가 많다. 구입처 링크 흔히 취미용 RC카에 들어가는 ESC는 직류모터를 제어하는 2개의 출력선을 가지고 있으며, 드론의 브러시리스 모터를 제어하는 ESC는 3개의 출력선을 가지고있다. 위는 필자가 최근에 구매한 ESC는 전자에 속하며, 가격은 8천원 초반으로 매우 저렴하지만 성능은 기대이상이다. (설명에 적힌 320A는 오타로 추정 32A로 생각된다.) 이정도 가격이면 5만원 가량하는 고용량 모터드라이버 보다 더 나은 선택이라는 생각이 든다. 아두이노로 ESC를 제어하는 방법은 주로 Servo라이브러리를 이..

    NodeMCU 핀배치

    지난번의 Wmos D1 mini와 마찬가지로 Node MCU의 핀배치를 올린다. 출처 : https://iotbytes.wordpress.com/nodemcu-pinout/ 출처 : http://www.dreamy.pe.kr/zbxe/CodeClip/3768899

    Wemos D1 mini 핀배치

    아두이노 IDE상에서 esp8266 계열의 보드를 사용하다보면 아두이노와 다른 핀배치 때문에 헷갈리는 경우가 많다.그래서 이참에 Wemose D1 mini의 핀배치를 올려본다. 출처 : https://escapequotes.net/esp8266-wemos-d1-mini-pins-and-diagram/ 아두이노 IDE에서 핀번호를 지정할때는 GPIO핀의 번호를 이용하면 된다.

    아두이노 GPS 추적기 만들기 [esp8266/Blynk]

    요즘 유용한 IOT 툴인 Blynk를 공부하는 중이다. 그 중 MAP 기능이 꽤나 쓸모있어 보인다. GPS 좌표값을 받아 지도에 표시해줄 수 있으므로 영화등에 자주 등장하는 GPS 추적기를 만드는데 제격일 것이다. 그래서 GPS모듈, esp8266, Blynk를 이용해 GPS 추적기를 만들어 보았다. 1. GPS 모듈 GPS 모듈의 가격은 천차만별인데, 이 프로젝트를 진행하기 위해 굳이 수만원의 비싼 (메X솔루션에 판매되는 것처럼) 비싼 모듈이 필요없다. 찾아보니 GY-GPS6MV2 (흔히 NEO-6M칩을 탑재한) 모듈이 자주 사용되는 듯 하다. 알리에서도 가격은 8천원 이하로 저렴한 편이다. 구입처 링크 4457.0₩ |1 pcs NEO 6M gps 모듈 GY GPS6MV2 neo6mv2 buit in..

    아두이노 열전사 프린터 사용기

    알리에서 주문한 열전사 프린터가 먼저 도착하여 (지금껏 주문한 물건중 제일 오래 걸렸지만) 테스트겸 사용해보았다. (TTL 방식) 구입처는 링크를 참고하자. (판매 링크) 구성품은 열전사 프린터, 케이블, 감열지 1롤이다. 감열지는 그리 많은 양이 아니기 때문에 추가로 넉넉하게 구매해야할 것 같다. 프린터의 뒷면에는 각 핀의 배치가 적혀있다. 뒷면을 감싸는 판은 플라스틱인데 두께가 매우 얇고 부실하다는 것이 좀 아쉽다. 뒷면을 열어보면 내부가 훤히 보인다. 프린터는 TTL방식과 RS232방식 2가지로 판매되는데, 아두이노로 작동시킬 계획이면 TTL방식으로 구매해야한다. RS232는 TTL과 달리 메인보드에 변환 칩이 하나 추가된다. 그밖의 다양한 스펙 등은 아래 파일을 참고하면 된다. 이제 열전사 프린터..

    아두이노 크롬 공룡게임 자동 플레이

    알리에서 CDS (황화카드늄 조도센서)가 도착했다. 그래서 테스트도 해볼겸 크롬의 이스터에그인 공룡게임을 자동으로 플레이 하는 장치를 만들어 보았다. 이 공룡게임은 T-rex Game으로 알려진 크롬 브라우저의 대표적인 이스터에그이다. 인터넷에 연결이 되어있지 않을 때 무료함을 달랠 목적으로(?) 이 게임이 실행된다. 직접 크롬에 들어가거나 아래 링크에서 플레이 할 수 도있다. http://www.trex-game.skipser.com/ (이번주 랭킹 1,2,3위 인데 실력이 엄청나다.) 선인장, 새를 피해 적절하게 스페이스 바을 누르면 되기 때문에 조도센서로 빛의 양을 감지해 장애물이 오면 레오나르도 보드가 컴퓨터의 스페이스 바를 누르도록 만들어 두었다. 아래는 테스트 영상이다. 영상에는 잘 보이지 않..

    미디파일을 tone()으로 변환하기 [아두이노]

    아두이노를 이용해 음악을 재생하는 방법은 정말 다양하지만 가장 기본적인 방법은 tone()함수와 부저를 이용해 멜로디를 연주하는 것이다. 다만 아두이노와 부저만 있으면 간단하게 연주를 할 수 있지만 멜로디를 직접 만들어야 한다는것이 가장 큰 단점이다. 물론 공개된 멜로디 코드들이 있지만 (슈퍼마리오 테마들이 대부분이다.) 본인이 원한는 곡은 찾기는 어려울 것이다. 그래서 이번에는 미디 파일을 이용해서 손쉽게 멜로디를 만들수있는 방법을 소개한다. 우선 연주하고 싶은 곡의 미디 파일을 준비한다. 미디 파일을 구하는 방법은 다양하지만 처음이라면 유튜브에 해당 곡의 이름 + midi로 검색하면 미디파일을 실행하는 영상과 게시자의 링크와 함께 미디 파일을 쉽게 구할 수 있다. 영화 하울의 움직이는 성의 메인 테마..

    ESP8266에서 MQTT 사용하기

    ESP8266에서 MQTT를 사용하기 위해서는 MQTT borker가 필요하다. 이는 파이썬 등으로 직접 구현할 수 도 있지만 아래 사이트를 통해 무료로 사용할 수 도 있다. https://www.cloudmqtt.com/ 우선 위의 주소로 접속하고나서 회원가입을 한다. (이메일 인증이 필요하다.) 회원가입을 완료하면 위와 같은 화면을 볼수있는데, Instances의 Test 항목은 필자가 이미 만들어둔 MQTT 채널이다. 새로운 채널을 만들기 위해서 Create New Instance 버튼을 누른다. 부가적인 채널의 이름, 서버(US, EU선택 가능)를 선택하면 채널 제작이 완료된다. 이제 완성된 채널로 들어가 보면 Details에 자신의 Server 주소, User, Password, Port 등을 ..

    인터넷 현재 시간 받기 #2 [아두이노/ESP8266]

    전에 ESP8266을 이용해서 인터넷으로부터 현재 시간을 받는 코드를 소개한 적이 있다. (http://diy-project.tistory.com/6) 전혀 문제가 없는 코드이지만 가끔씩 서버와 연결이 끊어지고 속도도 맘에 들지 않는다. 그래서 새로운 방법을 찾던 중 괜찮은 방법을 찾았다. (https://github.com/scanlime/esp8266-Arduino/blob/master/tests/Time/Time.ino) 코드도 훨씬 간단하다. 다만 delay(1000); 동안 다른 작업을 못하기에 mills()를 이용해 코드를 약간 수정했다. 아래는 해당 코드이다. #include #include const char* ssid = "*****"; const char* password = "****..

# 테스트용