5월 중순에 그냥 Facebook "한국 아두이노 사용자 모임"에 아래와 같은 글이 올라와서 관심을 가지고 봤었다. 그래서 이번에 한번 사용해보았다.


스근하이 IOT는 Cloud 서비스로 메카솔루션이라는 업체에서 사내 벤처로 시작 한것 같다. 아직은 베타 오픈이다.

메카솔루션은 전기전자 개발 보드 및 각종 악세사리 모듈을 판매하고 각종 교육을 하는 업체인것 같다. 최근에는 Opensource Hardware에 대한 제품 및 교육에 대한 것을 강화 한것으로 보인다.

대충 쇼핑몰을 둘러 봤는데, 생각 보다 가격이 저렴한 것 같다. 구내의 모듈이 아닌 저렴한 중국산 모듈도 판매를 하는 것 같다.

스근하이 IOT에 대한 간단한 소개 & 예제에 대한 글을 써보려고 한다.

스근하이 IOT 블로그


스근하이 IOT?


스근하이 IOT 서비스는 아두이노와 같은 개발보드를 이용해서, 센서 데이터를 서버에 지속적으로 업로드를 하고, 이를 사용자가 Web Browser를 이용해서 스마트폰, 컴퓨터 등에서 확인 할 수 있는 IOT 서비스 이다.

아직은 시작한지 얼마 되지 않아, 타 Cloud 서비스에 비해 아직 부족한 면은 많지만 IoT를 처음 접하는 사람들이 입문하기에는 충분하다고 생각한다.

현재의 기능 개발 보드로부터 숫자(값)를 전송 받아 페이지에 수치와 그래프 형태로 보여주는 형태만 구현이 되어있다. 아직은 개발보드를 제어한다거나 다른 형태의 값을 입력 받는 것은 없는것 같다.

단순히 개발보드의 각종 센서를 연결해서 모니터링만 하는 기능을 구현한다면, 스근하이 정도면 충분 할 것 같다.

<스근하이 대시보드>


<스근하이 센서 페이지>

<스근하이 모바일 페이지>


스근하이 IOT 시작하기 - 장치 및 센서 등록하기

이제 스근하이 IOT를 사용하는 방법을 알아보겠다.

스근하이를 사용하기 위해서는 장치 등록과 센서 등록을 해야한다. 장치는 스근하이 IOT에 데이터를 전송하는 개발보드이고, 센서는 장치에 연결되어 모니터링을 하고자 하는 센서를 말한다.

스근하이는 사용자 한명당, 5개의 장치와 장치당 5개의 센서가 사용 가능하다고 한다.

  • 스근하이 홈페이지 를 접속해서 회원가입부터 하고 로그인을 한다.

  • 상단 메뉴의 "장치 관리하기" 클릭해서 "장치 관리하기" 페이지로 들어간다. 아래와 같은 페이지인데, 내가 빨간 블록으로 표시한 창에 장치 이름을 원하는 대로 입력 하고 "추가"를 클릭한다. 나는 "Arduino_1" 이라는 장치를 등록했다. 참고로 한글도 되는것 같다.

  • 본인이 등록한 장치를 클릭하면, 센서를 등록하는 페이지로 이동한다. 아래와 같은 페이지인데, 내가 빨간 블록으로 표시한 창에 센서 이름을 원하는 대로 입력하고 추가를 클릭한다. 나는 "Humi"와 "Temp" 라는 센서를 등록했다.


  • 센서 등록 페이지를 보면 장치 코드와 센서 코드가 있다. 장치명 옆에 있는 알파벳과 숫자로 이루어진 코드가 있는데 이것은 장치 코드이고, 센서명 몇에 있는 알파벳은 센서 코드이다.

  • 이 장치 코드와 센서 코드는 나중에 스근하이 IOT로 데이터를 전송 할 때 사용이 된다.


스근하이 IOT로 온/습도 모니터링 하기

필요한 부품

스근하이 IOT의 기본 예제는 DHT11 센서의 값을 모니터링 하는 예제인데, 나는 SHT11 센서도 추가해서 진행을 했다.

  • Arduino UNO

  • Arduino Ethernet Shield

  • DHT11 센서(온/습도 센서)

  • SHT11 센서(온/습도 센서)

  • 점퍼 와이어

회로 구성


소스코드 작성하기

  • 스근하이 IOT를 사용하기 위해서는 스근하이에서 지원하는 라이브러리를 다운받아야 한다.

  • 스근하이 Github 들어가서 스근하이 라이브러리를 다운한다. Github 페이지에서 "Clone or download" 를 클릭하면 다운로드가 가능하다.

  • 다운을 받으면 압축파일인 zip 파일인데 압축을 풀어서, 본인 컴퓨터의 아두이노가 설치되어 있는 폴더의 libraries폴더에 복사를 한다. ex)C:\Program Files (x86)\Arduino\libraries\

  • DHT11센서와 SHT11센서를 사용해야 하므로 해당 센서 라이브러리도 다운 받아야 한다.

  • 이 두 라이브러리도 본인 컴퓨터의 아두이노가 설치되어 있는 폴더의 libraries폴더에 복사를 한다. ex)C:\Program Files (x86)\Arduino\libraries\

  • 아래 그림은 스근하이에서 제공하는 예제 소스코드이다. 이 예제를 참고해서 소스코드를 작성해야한다.


  • 아두이노 스케치를 실행해서 아래와 같이 코드를 작성한다. 이 소스코드는 DHT11과 SHT11의 온/습도 데이터를 스근하이 IOT로 전송 하는 소스코드이다.

#include <sgn_arduino_ethernet.h>
#include <sht1x.h>
#include <dht.h>

#define DHTTYPE DHT11
#define dataPin 2
#define clockPin 3
SHT1x sht1x(dataPin, clockPin);
DHT dht(4, DHTTYPE);

char ID[] = "nanjsk";
char DEVICE_CODE[] = "hu5gqqZu58RU4UdaqW8I";

IPAddress IP(192,168,0,177);
dotori SHT11_TempC("cbzcY");
dotori SHT11_TempF("OT2yc");
dotori SHT11_Humi("jEZPB");
dotori DHT11_TempC("DxlEc");
dotori DHT11_Humi("DwW4T");

void setup() {
  Serial.begin(115200);
  Serial.println("Hello Arduino!!");
  dht.begin();
  dev.init(ID, DEVICE_CODE,IP);
  Serial.print("IP Address : ");
  Serial.println(Ethernet.localIP());
}

void loop() {
  float SHT11_tempC = sht1x.readTemperatureC();
  float SHT11_tempF = sht1x.readTemperatureF();
  float SHT11_humidity = sht1x.readHumidity();
  float DHT11_tempC = dht.readTemperature();
  float DHT11_humidity = dht.readHumidity();
  
  Serial.print("SHT11 Temperature Value : ");
  Serial.print(SHT11_tempC);
  Serial.println(" C");
  Serial.print("SHT11 Temperature Value : ");
  Serial.print(SHT11_tempF);
  Serial.println(" F");
  Serial.print("SHT11 Humidity Value : ");
  Serial.print(SHT11_humidity);
  Serial.println("%");
  Serial.print("DHT11 Temperature Value : ");
  Serial.print(DHT11_tempC);
  Serial.println(" C");
  Serial.print("DHT11 Humidity Value : ");
  Serial.print(DHT11_humidity);
  Serial.println("%");
  
  SHT11_TempC.set(SHT11_tempC);
  SHT11_TempF.set(SHT11_tempF);
  SHT11_Humi.set(SHT11_humidity);
  DHT11_TempC.set(DHT11_tempC);
  DHT11_Humi.set(DHT11_humidity);
  
  Serial.println(dev.send(SHT11_TempC, SHT11_TempF, SHT11_Humi, DHT11_TempC, DHT11_Humi) == OK?"OK":"NO");
  delay(1000);
}


동작 결과

아래 그림들은 스근하이 계기판에서 확인 한 값들이다. DHT11과 SHT11센서의 값이 서로 오차가 존재 했다. SHT11 센서가 굉장히 오래된 센서라 오차가 좀 큰것 같다.



본 글은 스근하이 블로그를 참고해 작성 했습니다.

스근하이 블로그 : http://blog.sgnhi.org/

스근하이 홈페이지 : http://sgnhi.org/

메카솔루션 블로그 : http://blog.naver.com/roboholic84


+ Recent posts