위즈네트 아카데미

TUTORIAL

튜토리얼

Home  > 튜토리얼

IoT with Arduino & 스근하이

WIZnet Academy 2016.06.09 16:08 조회 수 : 32

스근하이는 클라우드 서비스의 하나로 국내 메카솔루션이라는 업체에서 사내 벤쳐 형태로 시작한 서비스입니다.

아직 베타 서비스이기는 하지만 한글로 된 Interface를 제공하기 때문에 아두이노 등 오픈 플랫폼으로 DIY 프로젝트를 시작하시는 분들에게는 좀더 쉽고 직관적인 사용이 가능할 것 같습니다.

그럼 본격적으로 스근하이에 대해서 알아보고, 아두이노와 이더넷 쉴드를 활용해서 IoT 서비스를 시도해 보겠습니다.

스근하이 IoT?

sgnhi

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

아직은 시작한지 얼마 되지 않은 베타 서비스라 타 Cloud 서비스에 비해 아직 부족한 면은 많지만 IoT를 처음 접하는 분들이 입문하기에는 충분할 것 같습니다.

현재는 개발 보드로부터 숫자(값)를 전송 받아 페이지에 수치와 그래프 형태로 보여주는 형태로만 구현이 되어있습니다. 아직은 역방향으로 개발보드를 제어한다거나 다른 형태의 값을 입력 받는 것은 구현이 안되어 있는 상태입니다. 좀 부족하기는 하지만 단순히 보드의 각종 센서를 연결해서 모니터링만 하는 기능을 구현한다면, 스근하이 정도면 충분 할 것으로 예상됩니다.

sgnhi-dashboard

sgnhi-sensor

sgnhi-mobile

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

이제 스근하이 IOT를 사용하는 방법에 대해서 알아보겠습니다.

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

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

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

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


sgnhi-register

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


sgnhi-sensor-register

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


sgnhi-code

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


 

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

필요한 부품

스근하이 IOT의 기본 예제는 DHT11 센서의 값을 모니터링 하는 예제로, 이번 튜토리얼에서도 동일한 센서를 활용해서 연결을 해보겠습니다.

  • Arduino UNO

  • Arduino Ethernet Shield

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

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

  • 점퍼 와이어


회로 구성

arduino_circuit

소스코드 작성하기

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

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

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

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


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

  • 아래는 스근하이에서 제공하는 예제 소스코드로. 이 예제를 참고해서 소스코드를 작성합니다.


arduino_library

  • 아두이노 스케치를 실행해서 아래와 같이 코드를 작성합니다. 이 소스코드는 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);
}

동작 결과

아래 그림들은 스근하이 계기판에서 확인 한 값들입니다.

sgnhi-monitoring

sgnhi-monitoring-1

글출처 : OSHW Alchemist