'2020/03/15'에 해당되는 글 1건
- 2020.03.15 Software | ThingSpeak 등록하여 IoT 데이터 펼처보기
Arduino 를 통해 센서값을 확인 할 때, Arduino IDE 의 Serial Monitor 를 사용하게 되면 PC 를 계속 켜놔야 합니다.
PC 를 리부팅 하거나 다른 용도로 사용하게 되면, 측정을 중단해야 하므로 적절한 활용 방법이 아닙니다.
1. ThingSpeak
이런 불편을 없애려면 cloud 시스템에 internet 을 통해 올리면 됩니다.
그렇지만, 이걸 혼자서 하려면 다음과 같은 작업들이 필요합니다.
- 서버 설치
- OS 설치
- Apache 등 HTTP 서버 어플 설치
- DB 설치 및 설정
- API 설정
- 인터넷 설정
- 보안 설정
- 등등
유지 보수까지 생각하면 끝이 없는 작업입니다.
IoT 하나 하려다가 힘 다 빠지겠습니다. 그래서 나온 cloud 형 서비스가 몇 가지 있습니다.
* ThingSpeak for IoT Projects
2. ThingSpeak 등록
사이트 가서 등록 고고.
개인 email 이면 됩니다.
비번도 등록하고.
대학 email account 를 가지고 있으면, 대학에서 보유한 Matlab 계정을 자동 연동하여 사용할 수 있습니다.
그렇게 되면, 대학교에서 구매한 Matlab 을 사용하게 되므로, 대학교 구매부서와 확인해 봐야 합니다. (무단 사용이 될 수 있슴)
아직 대학교 email account 도 가지고 있지만, 개인 account 를 사용했습니다.
계정 등록이 끝나면, 최종 verify 메일이 옵니다.
계정 인증 후, 비번 완료하면 끝납니다.
3. MathWorks
ThingSpeak 는 Matlab 을 개발한 MathWorks 에서 제공하는 서비스 입니다.
그래서인지, MathWorks 에서 제공하는 툴이나 Knowledge 를 사용할 수 있습니다.
제가 요츰 필요한 지식은 Arduino > ESP8266 > ThingSpeak 연동 방법도 나와 있습니다.
만, 최신 ESP 모듈을 기준으로 설명되어 있어서, 별 도움은 못 되었네요. 다른 글에서 이 부분은 집중적으로 다뤄 보도록 하겠습니다.
무료 사용자는, 하루 8,219 개를 사용할 수 있습니다.
하루 24시간 동안, 1초마다 값을 보내게 되면, "86,400" 개 이므로, 이의 1/10 보다 조금 더 적게 값을 보내야 합니다.
대략 15초에 1번 정도로 값을 보내면, 한 개의 sensor 값 읽어 들이는 것에 활용할 수 있겠네요.
4. API Key
HTTP GET/POST 를 이용하여 값을 보내는 RESTful API 를 사용할 때, API Key 가 할당 됩니다.
API Key 사용법은, 위의 스샷 오른쪽 밑에 보이듯이, "api_key=" 로 시작하는 GET URL 의 string 으로 넣어 사용할 수 있습니다.
실제로 값을 API 를 통해 cloud 에 올릴 경우는 아래와 같이 API 키를 넣어주면 됩니다.
전체 HTTP URL 로 만들면 다음과 같이 됩니다.
Write a Channel Feed https://api.thingspeak.com/update?api_key=[Write_Key]&field1=[value]
5. Channels
계정과 API Key 가 있다 하더라도, 나만의 장소를 만들어야 합니다. 이게 Channels 이 됩니다.
이번에 CO2 취집 센서인 MH-Z14A 를 가지고 CO2 값을 취합하고 싶으니, 아래와 같은 채널을 만들었습니다.
Field1 은 CO2 값이 넣어지도록 하였습니다.
저의 Home Environment 채널이 만들어 졌습니다.
나중에 CO2 뿐만 아니라, 다른 기체 값들도 추가로 입력 받을 수도 있겠네요.
6. HTTP headers
리턴값으로 "1" 이 표시됩니다. 값들이 쌓여 가면, 이 숫자 카운트가 올라갑니다.
먹고사는 직업이 이쪽인지라, 직업병 발휘해 봅니다.
HTTP Request / Response 는 다음과 같습니다.
아래는 HTTP Request 만 뽑아 봤습니다.
브라우저가 아니고 command line 으로 ESP-01 을 컨트롤 할 때, 필요할 듯 하여 여기에 기록해 봅니다.
Host: api.thingspeak.com User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate, br Connection: keep-alive Cookie: s_fid=18DA4B3665F95BB2-21E82C5CDD94C74E; _ga=GA1.2.1025526633.1578383783; s_cc=true Upgrade-Insecure-Requests: 1
아래는 HTTP Response 입니다.
HTTP/2 200 OK date: Mon, 20 Jan 2020 05:03:40 GMT content-type: text/plain; charset=utf-8 content-length: 1 status: 200 OK x-frame-options: SAMEORIGIN access-control-allow-origin: * access-control-allow-methods: GET, POST, PUT, OPTIONS, DELETE, PATCH access-control-allow-headers: origin, content-type, X-Requested-With access-control-max-age: 1800 etag: W/"4e07408562bedb8b60ce05c1decfe3ad" cache-control: max-age=0, private, must-revalidate x-request-id: e0fa0bd9-fc3a-4e9a-a09e-efb6326dcd6c x-runtime: 0.022047 x-powered-by: Phusion Passenger 4.0.57 server: nginx/1.9.3 + Phusion Passenger 4.0.57 X-Firefox-Spdy: h2
7. Read a Channel Feed
API Key 를 통하여 Channel 값을 읽을 경우는 다음과 같이 API 를 날리면 됩니다. 아래는 JSON 방식의 값 추출 입니다.
Read a Channel Feed https://api.thingspeak.com/channels/[Channel_ID]/feeds.json?api_key=[Read_Key]&results=2 {"channel":{"id":Channel_ID,"name":"Home Environment","description":"gathering values from IoT sensors","latitude":"0.0","longitude":"0.0","field1":"CO2","created_at":"2020-01-10T09:36:21Z","updated_at":"2020-01-10T09:37:06Z","last_entry_id":3},"feeds":[{"created_at":"2020-01-20T04:53:28Z","entry_id":2,"field1":"40"},{"created_at":"2020-01-20T05:03:40Z","entry_id":3,"field1":"39"}]}
인터넷 브라우저를 사용하면 아래처럼 정렬된 값을 확인할 수 있습니다.
값이 쌓여 가면서 그래프를 그려 줍니다.
참고로, 이번에 MH-Z14A 를 이용해서 측정했던 결과 입니다.
PC 없이도 값들을 바로바로 올릴 수 있고, 그래프 조정도 할 수 있어, 왜 이제 했나 싶을 정도 입니다.
* Hardware | CO2 센서인 MH-Z14A 를 활용해 보자
- https://chocoball.tistory.com/entry/Hardware-CO2-sensor-MH-Z14A
8. 그 외
과거 값들이 불편할 경우는, Channels > Channel Settings > Clear Channel 을 이용하여 지울 수 있습니다.
9. FIN
이젠 PC 를 항상 켜놔야 하는 것으로 부터 해방입니다!
10. Update - 20200328
ThingSpeak 에서 그래프가 보이는 화면에서 data 를 export 하면, 거의 하루치 밖에 받을 수 없습니다.
측정된 값 전체를 받기 위해서는, My Channels > Data Import / Export > Export Download 에서 CVS 로 받을 수 있습니다.
EXCEL 로 그린 위의 그래프들은 이 메뉴에서 다운로드 받은 CVS 를 가지고 만들었습니다.
'Software' 카테고리의 다른 글
Software | Bing webmaster tools 사용기 (0) | 2020.04.23 |
---|---|
Software | NAVER Analytics 사용기 (0) | 2020.04.22 |
Software | AWS Certified 자격증 취득기 - 3 (12) | 2020.02.02 |
Software | GAIQ - Google Analytics for Beginners (2) | 2020.01.09 |
Software | AWS Certified 자격증 취득기 - 2 (8) | 2019.09.24 |