WeMos D1 보드에 Dust Sensor연결하기.

ThinkSpeak에 접속해서 새로운 Channel을 생성한다.
상위 메뉴에서 "Channel"을 선택하고, "New Channel"버튼을 클릭한다.
 
"New Channel" 창에서 "Name"과 "Description"을 입력한다. 필요에 따라서 하위 내용을 작성할 수 있다. 화면 아래에 "Save Channel" 버튼을 클릭하면 Channel이 생성된다.
 
생성된 Channel에서 "Channel ID"와 "API Key"를 복사해 둔다. 향후 Arduino Sketch를 작성할 때 사용된다.

Channel ID는 외부에서 해당 channel을 확인하기 위한 ID이고, API Key는 Sketch나 프로그램에서 사용되는 Key이다.
"Write API Key"는 데이터를 Channel에 쓰기 위해서 사용된다. 일반적으로 Arduino Sketch에서 ThingSpeak Server에 Data를 올리기 위해서 사용된다.
"Read API Key"는 사용자가 ThingSpeak Server에 있는 Data를 읽기 위해서 사용된다. 일반적으로 핸드폰 어플에서 이 Key를 사용한다.

아두이노 스케치를 아래와 같이 작성한다.

전체 Code는 아래와 같다.
#include "ThingSpeak.h"
#include <SPI.h>
#include <ESP8266WiFi.h>
#include <SharpDust.h>

char ssid[] = "xxxxxx"; // your network SSID (name)
char pass[] = "xxxxxx"; // your network password
WiFiClient client;
unsigned long myChannelNumber = NNNNN;  // your channel number
const char * myReadAPIKey = "xxxxxxxxxxxxxxxx";  // your read api key
const char * myWriteAPIKey = "xxxxxxxxxxxxxxxx";

#define DUST_LED_PIN    2
#define DUST_MEASURE_PIN  0

float sum = 0;
int cnt = 0;

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, pass);
  ThingSpeak.begin(client);

  sum = 0.0;
  cnt = 0;
}

void loop() {
  if( cnt == 100 ) {
    float dust = sum / cnt;
    ThingSpeak.writeField(myChannelNumber, 1, dust, myWriteAPIKey);
    Serial.print(F("Dust :"));
    Serial.print(sum/cnt);
    Serial.println(F(" mg/m^3"));
    sum = 0.0;
    cnt = 0;
  } else {
    sum += SharpDust.measure();
    cnt++;
  }
}
WiFi.begin()함수를 통해서 공유기와 WiFi 연결을 설정한다.(공유기 Name과 Password가 필요한다.)
ThingSpeak.begin()함수를 통해서 ThingSpeak Server와 연결을 설정한다.
ThingSpeak.writeField()함수를 통해서 ThingSpeak Server에 Data를 올린다.
참고로, Sharp Dust Sensor를 동작하기 위한 Library를 설치해야만 한다.

Web을 통해서 WeMos D1 보드가 올리는 Data가 정상적으로 ThingSpeak Server에 올라오는지 확인한다.

안드로이드 핸드폰을 통해서 ThingSpeak Server의 Data를 가져오도록 하자!
먼저, ThingView 어플을 설치해야 한다. Google Store에서 "ThingView"를 설치한다.
최초 실행에서 Login이 있었는지 기억이 없다.
"+"버튼을 눌러서 Channel을 추가한다.
"Channel ID"를 입력하고, 공개 채널이 아니라면, Public에 check를 해제하고, ReadAPIKey를 입력한다.
  
  

ThingView에서는 위젯도 지원하므로, 핸드폰에 위젯을 올려서 Data를 받아보는 것도 가능하다.

댓글

이 블로그의 인기 게시물

아두이노 스케치 작성하기

ThingSpeak 가입하기