본문 바로가기

IOT

ESP8266 와 PMS7003 을 사용한 IOT 미세먼지 측정기 ESP8266 와 PMS7003 을 사용한 IOT 미세먼지 측정기 사진에는 개발 중 테스트를 위한 별도의 NodeMCU 가 하나 더 있습니다. PMS7003 이 Fritzing 에 없으므로 10 핀 짜리 커넥터와 만능기판을 사용해서 비슷하게 만들어 사용했다. ESP8266 에서 할 일 1. nodeMCU 를 사용하여 PMS7003 의 먼지데이터를 가져온다.2. nodeMCU 를 사용하여 AP 에 연결한다.(스마트폰으로 nodeMCU 를 AP 에 연결한다.)3. AP 와 연결된 nodeMCU 는 Thingspeak 와 sparkfun 서버에 값을 전송한다.4. Lua 언어를 사용하지 않고 아두이노 IDE 를 사용하여 작업한다.5. PUT/GET 을 사용하여 서버에 값을 전달한다. 세부 작업 내용 ## Ar.. 더보기
PMS7003 센서값을 통계적방법으로 보완하기 PMS7003 사용에 관한 소스를 조금 수정해 보았다. 기본 내용에 수정된 내용은 다음과 같다. 1. 불필요한 데이터 가져오는 부분을 삭제2. 체크섬을 활용, 손상이 의심되는 데이터 제거3. 일정 갯수의 데이터를 이용 통계적 방식으로 mean value 계산 이용 3.1. 10개의 데이터를 읽고 그 중 최대값과 최소값을 제외한 8개의 값으로 평균을 만든다. 수정된 소스는 아래에 붙여둔다. 아두이노 IDE 에서 바로 실행이 가능한 소스이다. /*Tips for Using Plantower PMS7003 air quality sensor to a Particle IoT microcontrollerMade by 2016 winduino http://wemakers.tistory.com */ #include /.. 더보기
Thingspeak 로 먼지센서 모니터링하기 Thingspeak 로 먼지센서 모니터링하기 기획실장의 글에서 PMS7003 을 사용하여 시리얼통신으로 미세먼지 데이터가 가져오는 것을 확인하였고[PMS7003 테스트 소스코드], 이후에 thingspeak 라는 IOT 서비스를 사용하여 아두이노에서 thingspeak 로 데이터를 업로드하는 것을 확인하였다[Thingspeak 사용 기초]. 여기서는 PMS7003 에서 가져온 데이터를 Thingspeak 에 올리는 작업을 진행한다. 기존 소스코드를 그대로 사용하려 하였으나 메모리 부족현상이 일어나 불필요한 부분과 디버깅에 관련된 부분(시리얼 모니터링부분)을 상당부분 제거하였다. 또한 아두이노 우노와 이더넷 실드는 핀 10,11,12,13 번을 사용하므로 기존 예제에서 소프트웨어 시리얼로 사용했던 10,1.. 더보기
thingspeak 에 데이터 쓰는 법과 읽는 법 (HTTP POST & GET) 아두이노라이브러리를 사용해서 Thingspeak 에 데이터를 쓰는 것을 해보았다. 비슷하게 같은 라이브러리의 예제 ReadPrivateChannel 을 보면 최신 데이터를 하나 가져오는 것도 어렵지 않게 할수 있다. 이제 http 프로토콜에서 thingspeak 에 데이터를 쓰는 법과 읽는 법을 익힌다. 이 방법을 가지고 matlab 에서 thingspeak 의 데이터를 가지고 와서 그래프를 그리거나 Signal Processing 을 할수 있으며 현재 무료 툴인 SciLab 에서도 이와 비슷한 기능을 구현중인 것으로 알고 있다. json 포맷을 사용하므로 조금만 신경을 쓰면 MatLab 이나 SciLab 등의 툴에서 ThingSpeak 에 저장된 데이터를 가져와서 사용할 수 있다. 그 기초가 되는 부분.. 더보기
PMS7003 에 대한 자료와 인터넷 IOT 플랫폼인 ThingSpeak 기초 1. 모임2016년 8월 27일, 토요일 10:00 ~ 13:00 까지 바람, David, 케이트 참석으로 모임이 이루어짐키덜트 행사 멘토로 2명이 지원을 간 상황이며 출석을 못한 회원들은 나름의 사정으로 참석을 못하였음. (다음번에는 다 뵐수 있기를 바랍니다. ^^) 2. PMS7003 사용자료기획실장님이 작성해 둔 자료 참고 : 링크1, 링크2 ...PMS7003 은 총 10개의 핀이 있으며 그중 4개(VCC, GND, RX, TX )를 사용하여 시리얼로 데이터를 가져올 수 있다.아두이노 우노에서 소프트웨어 시리얼을 사용하여 PMS7003 과 시리얼통신을 하고 관련 자료를 가져온다. 내용은 다음과 같다.가져오는 데이터 중에 PM1.0, PM2.5, PM10 데이터가 있으며 단위는 ug/m3 이다. 현.. 더보기
thingspeak 사용 기초 IOT 관해서 이미 서비스를 제공하고 있는 thingspeak 를 사용해보고 그 장단점을 분석해보려한다. 우선 thingspeak 에 접속하고 아두이노를 이용해서 사용하는 기본 방법을 따라해 본다. 아두이노에서 thingspeak 라이브러리를 설치한다. 아두이노 IDE >> 스케치 >> 라이브러리 포함하기 >> 라이브러리 관리 >> 검색 : thingspeak 여기서 나오는 라이브러리를 설치한다. 설치가 완료되면 예제에서 thingspeak 관련 자료들을 확인할 수 있다. WriteVoltage 라는 예제를 열어 본 내용이다. /* WriteVoltage Reads an analog voltage from pin 0, and writes it to a channel on ThingSpeak every 2.. 더보기
아두이노 웹서버 예제 분석 아두이노 웹서버 분석 예제입니다. 1. 개요 아두이노와 이더넷실드를 연결해서 A0 부터 A5 까지의 값을 읽어서 클라이언트의 웹브라우저에서 보여줍니다.바꿀 부분은 mac 과 ip 주소입니다. /* Web Server A simple web server that shows the value of the analog input pins. using an Arduino Wiznet Ethernet shield. Circuit: * Ethernet shield attached to pins 10, 11, 12, 13 * Analog inputs attached to pins A0 through A5 (optional) created 18 Dec 2009 by David A. Mellis modified 9 Ap.. 더보기
ADB-02. 센서 선별과정과 서버 세팅 1. DSM-501 관련자료 모음 미세먼지 측정을 위한 센서로 초기에 계획했던 것은 DSM-501 이었습니다. 하지만 DSM-501 을 사용해본 결과 원하는 감도의 측정값이 나오지 않았으며 데이터 시트를 면밀히 검토해 본 결과 본 프로젝트에 사용할 수 없다는 결론이 쉽게 나왔다. 우선 DSM-501 관련 자료와 아두이노 소스는 다음과 같다. DSM-501 데이터시트 (링크)기본 소스 (테스트 및 기본 분석용) 출처 : http://www.elecrow.com/wiki/index.php?title=Dust_Sensor-_DSM501A // Connect the Pin_3 of DSM501A to Arduino 5V// Connect the Pin_5 of DSM501A to Arduino GND// Con.. 더보기
wget 명령을 이용한 라즈베리파이 쉘스크립트 사용 설치 쉘스크립트는 라즈베리파이(리눅스)에서 일련의 명령을 순차적으로 실행시키기 위한 방법입니다. 예전에 DOS 를 사용했던 사람은 배치파일(.bat)을 작성해본 경험이 있겠지만 그만큼 나이가 들지 않은 사람들은 당연히 윈도우에서 마우스를 사용하는 것이 익숙할 것입니다. 쉘스크립트는 DOS 의 배치파일과 유사합니다. 우선 라즈베리파이에서 OS인 라즈비안을 설치하고 인터넷이 사용가능한 환경으로 만들어 둡니다. 그 다음 인터넷에서 다음 파일을 다운받습니다. http://cfs.tistory.com/custom/blog/10/102455/skin/images/step01.txt 라즈베리에서 다음과 같이 명령하면 됩니다. wget http://cfs.tistory.com/custom/blog/10/102455/skin.. 더보기
08/13 모임후기 2016년 08월 13일 토요일 모임후기입니다. IOT 서버를 만들기 위해 라즈베리파이를 사용하였으며, 이날 라즈베리파이에 OS 와 서버프로그램을 설치하였습니다. 참석자는 바람, 기획실장, 이람, 케이트, David, 이이오, 6명이고, 이날 라즈베리파이 기초 설정을 마쳤습니다. 아래에 그때 사용했던 라즈베리파이 설정방법을 다시 씁니다. 링크1 : 라즈베리파이 준비물(기획실장) 링크2 :OS, 서버, DB, PHP 설치하기 (기획실장) 링크3 : MySQL + PhpMyAdmin 설치 (이이오) 링크4 : 라즈베리파이 IP 를 고정IP로 변경 (바람) 마지막으로 필요한 사람을 위해 위에 사용한 기본 명령들을 스크립트로 만들어서 올려두었습니다. 텍스트파일을 다운 받은 후 확장자를 sh 로 바꾸어서 실행시키.. 더보기
새로 찾은 센서 PMS7003 기존에 사용하려던 DSM501A 의 감도문제로 새로운 센서를 찾아보았으며 검색 중 PMS7003 이라는 제품을 발견하였다. PMS7003 은 PlantTower 라는 중국계 회사의 먼지센서로 PMS1003, PMS3003, PMS5003, PMS6003 후에 PMS7003 을 발표했다. 크기는 최근 것일수로 작아졌으며 PMS7003 은 48*37*12(mm) 로 가장 작다. 사용에 큰 불편이 없을 것으로 예상되며 구입하여 테스트 해볼 예정이다. 크기도 Wearable 로 사용하기에 그리 크게 부담되지 않을 듯 하다. 사용방법이 기존 센서와 동일한지 여부를 파악해보고 몇번의 Trial & Error 를 거쳐 사용법을 파악하는 것이 우선할 일이다. 중국어로 된 데이터시트 : 더보기
미세먼지에 대한 환경부 자료 http://www.me.go.kr/issue/finedust/ebook.pdf 위 링크를 통해가면 2016년 4월자 환경부에서 소개하는 미세먼지에 대한 내용이 있다. 먼지측정기 제작시 참고할 자료. 먼지의 종류 총먼지 (Total Suspended Particles, TSP) : 입자의 크기 50um 이하미세먼지 (Particulate Matter, PM) : 입자의 크기가 작은 미세먼지PM10 : 입자의 크기 10um 이하PM2.5 : 입자의 크기 2.5um 이하 미세먼지 측정방법 미세먼지 측정은 크게 두가지 방법으로 진행된다. 방사선인 베타선을 미세먼지를 통과할 때 질량이 클수록 많이 흡수되는 성질을 이용한 베타선 흡수법과 미세먼지에 반사된 빛의 산란 정도를 측정하여 미세먼지의 농도를 구하는 간접측.. 더보기
기본 아두이노와 DSM501A 를 사용하는 소스 1. DSM501 데이터시트 2. 기본 소스 분석 출처 : http://www.elecrow.com/wiki/index.php?title=Dust_Sensor-_DSM501A 다음 소스를 분석한다. // Connect the Pin_3 of DSM501A to Arduino 5V// Connect the Pin_5 of DSM501A to Arduino GND// Connect the Pin_2 of DSM501A to Arduino D8// www.elecrow.com#includebyte buff[2];int pin = 8;//DSM501A input D8unsigned long duration;unsigned long starttime;unsigned long endtime;unsigned long.. 더보기
ADB-01. 첫모임 논의 내용 2016년 07월 16일, IOT AntiDustWristBand (가칭) 의 첫번째 모임 요약 I. 일정과 참석자 >> 바람, David, 기획실장 (총3인)>> PM3 구로역 모임, 미팅장소인 공구상가1번지로 이동, PM4.30까지 미팅 후 티타임 후 해산 II. 회의 내용 1. 프로젝트에 대한 내용 소개1) Wearable2) Dust-Monitor System3) IOT 2. 외부 지원사업(K-Maker 프로젝트) 참여에 대해 불필요성1) 참여자 수준이 특정분야를 맡아 진행할 정도가 아님2) 각자의 생활과 직장을 고려할 때 제한된 시간내 프로젝트 마감의 어려움3) 정해진 기한내 프로젝트 결과물에 대한 불확실성 큼4) 외부 사업 참여시 본 프로젝트의 수정, 추가, 변화에 어려움5) 기한과 과정을 내.. 더보기