위즈네트 아카데미

TUTORIAL

튜토리얼

Home  > 튜토리얼

Axeda 서비스를 이용한 기름양 측정기

WIZnet Academy 2016.03.29 15:28 조회 수 : 34

Axeda는 세계 각지의 기계와 센서 데이터를 수집하고 체계화하기 위한 IoT 솔루션을 제공하는 기업입니다. 150개 이상의 고객사를 향해 매일 수억 개의 규모의 데이터를 처리하고 있으며, 크게 3가지 서비스를 제공하고 있습니다.

  1. ‘Axeda Machine Cloud Service’는 기기간 통신(M2M) 및 IoT 연결 서비스 소프트웨어 에이전트 툴킷으로 구성되어 있으며, 기업의 제품과 클라우드 보안 연결을 거의 모든 통신 방법(이동통신 네트워크, 인터넷, 무선 LAN, 유선통신 등)에서 제공한다.

  2. ‘Axeda Connected Content Application’은 대량의 연결된 제품에 콘텐츠 전송을 안전하고 확실하고 효율적으로 실현하고 소프트웨어 업데이트 및 보안 패치의 원격 설치를 자동화 한다.

  3. ‘Axeda Connected Service Application’은 PTC의 서비스 라이프 사이클 관리(SLM) 솔루션을 보완하고 Axeda 플랫폼에 연결된 장치의 문제를 원격으로 확인, 진단, 수리하는 다양한 툴과 Web 기반의 그래픽 인터페이스를 현장 서비스 및 기술 지원 부서에 제공한다.


 

Go to the staging page on your Axeda Toolbox account


toolbox.axeda.com에 회원 가입 후, 아래 그림과 깉이 AXEDA READY 아이콘을 선택하고 mbed LPC1768 Device를 선택합니다.

axeda-1

axeda-2

본 포스팅 예제에서는 WIZwiki-W7500 Board를 사용하지만, 아직 Axeda에는 WizWik-W7500 Board지원이 안되는 관계로 LPC1768의 ToolBox를 사용한다.

원하는 Device Name을 입력하고 Go 버튼을 누르면 아래 그림과 같은 화면을 볼수 있습니다.  Serial Number는 Axeda Example Code를 수행 할 때 필요하므로 메모장 같은 곳에 복사해서 사용할 수 있도록 합니다.

axeda-7

Materials


아래 하드웨어에 대한 자세한 내용은 Link를 참고하십시오.

WIZwiki-W7500 ( MCU Platform)


axeda-3

WizFi250-EVB (Wi-Fi Shield)

wizfi250

Sensor Shield

sensor

Hardware Configuration

sensor_250

Compile AxedaGo-WizFi250 Example onto Wizwiki-W7500 Board


아래 주소에 접속하면 WizFi250 Axeda Example Code를 이용 할 수 있습니다.
Link for AxedaGo-WizFi250 Example

 

axeda-4

AxedaGo-WizFi250 Example을 컴파일 하기 전, Axeda Tool box 에서 얻은 Serial Number를 아래 코드에 추가합니다.

axeda-5

 

코드를 컴파일 한 후, 생성된 바이너리를 WIZwiki-W7500 Board에 Upload 합니다.

Source Code


#include <stdio.h>
#include "mbed.h"
#include "WizFi250Interface.h"

#define SECURE WizFi250::SEC_AUTO
#define SSID "ssid"
#define PASS "key"

#if defined(TARGET_WIZwiki_W7500)
WizFi250Interface wizfi250(D1,D0,D7,D8,PA_12,NC,115200);
Serial pc(USBTX,USBRX);
#endif

AnalogIn pot1(A0);
TCPSocketConnection sock;

DigitalOut led1(LED1);
DigitalOut led2(LED2);
DigitalOut led3(LED3);
DigitalOut led4(LED4);

int main()
{
char *MODEL = "mbed";
char *SERIAL_NUM = "serial number";
float DEADBAND = 0.03;

int http_cmd_sz=800;
char http_cmd[http_cmd_sz];
int buffer_sz=300;
char buffer[buffer_sz];
int returnCode = 0;

led1 = 1;
led2 = 1;
led3 = 1;
led4 = 1;

pc.baud(115200);

wizfi250.init();
returnCode = wizfi250.connect(SECURE, SSID, PASS);

if ( returnCode == 0 )
{
printf(" - WiFi Readyrn");
printf("IP Address is %srn", wizfi250.getIPAddress());
led1 = returnCode;
}
else
{
printf(" - Could not initialize WiFi - endingrn");
return 0;
}

float oil_level = 0.0;
float oldPotVal = -2.0;

while(1) {
oil_level = pot1.read();

if ( abs(oil_level - oldPotVal) < DEADBAND)
{
continue;
}
else
{
oldPotVal = oil_level;
printf("Sending Value for well1 %.2fnr", oil_level);
sock.connect("toolbox-connect.axeda.com", 80);

snprintf(http_cmd, http_cmd_sz, "POST /ammp/data/1/%s!%s HTTP/1.1rnContent-Type: application/jsonrnContent-Length: 65rnrn{"data":[{"di":{"oil_level":%.2f}}]}rnrn", MODEL, SERIAL_NUM, oil_level);
sock.send_all(http_cmd, http_cmd_sz-1);

while ( (returnCode = sock.receive(buffer, buffer_sz-1)) > 0)
{
buffer[returnCode] = '';
printf("Received %d chars from server:nr%sn", returnCode, buffer);
}

sock.close();
}
}
}

Test Result


Send data to the demo application


위 코드를 수행하면, WIZwiki-W7500은 WizFi250을 이용하여 Axeda Tool box에 센싱된 데이터를 송신합니다. Axeda Tool box는 Device가 송신한 데이터를 가지고 아래 그림과 같이 Mbed Widget을 만들어 줍니다. Sensor Shield의 A0의 Switch를 돌리면 Axeda의 mbed Widget도 변하는 것을 확인 할 수 있습니다.

axeda-6

Log message on Serial Terminal


[WizFi250: INFO]AT+MMAC=?
[WizFi250: INFO][OK]

[WizFi250: INFO]AT+WSET=0,wizohp
[WizFi250: INFO][OK]

[WizFi250: INFO]AT+WSEC=0,,wiznet218
[WizFi250: INFO][OK]

[WizFi250: INFO]AT+WJOIN
[WizFi250: INFO][OK]

[WizFi250: INFO]AT+WSTATUS
[WizFi250: INFO][OK]

[WizFi250: INFO]IP : 192.168.13.29
[WizFi250: INFO]Gateway : 192.168.13.1
[WizFi250: INFO]WizFi250 is successfully join to AP
- WiFi Ready
IP Address is 192.168.13.29
Sending Value for well1 0.54
[WizFi250: INFO]AT+FDNS=toolbox-connect.axeda.com,1000
[WizFi250: INFO][OK]

[WizFi250: DBG]216.34.120.52
[WizFi250: INFO]AT+SCON=O,TCN,216.34.120.52,80,,0
[WizFi250: INFO][OK]

[WizFi250: INFO]AT+SSEND=0,,,799
[WizFi250: INFO][OK]

[WizFi250: INFO]POST /ammp/data/1/mbed!nlr__kaizen8501_gmail_com___6245114 HTTP/1.1
Content-Type: application/json
Content-Length: 65

{"data":[{"di":{"oil_level":0.54}}]}



[WizFi250: DBG]receive readable : 1

Received 36 chars from server:
HTTP/1.1 200
Content-Length: 0

Demo Video


실 동작 데모를 영상으로 확인해 보겠습니다.