UECSノード開発用ミドルウェア(UARDECS Ver0.1)使用方法 その3

Writen by Ken-ichiro Yasuba

since 2013. 4. 17.

スケッチの例

スケッチをArduinoIDEの開発画面にコピーしてArduinoEthernetに転送すれば,とりあえずノードとして動作する.

#include <SPI.h>
#include <Ethernet.h>
#include <avr/pgmspace.h>
#include <avr/wdt.h>
#include <CCM.h>
#include <EEPROM.h>
#include <EthernetManager.h>

#define NONE -1
#define A_1S_0 0
#define A_1S_1 1
#define A_10S_0 2
#define A_10S_1 3
#define A_1M_0 4
#define A_1M_1 5
#define S_1S_0 6
#define S_1M_0 7
#define B_0 8
#define B_1 9

#define UECSSHOWDATA 0
#define UECSINPUTDATA 1
#define UECSSELECTDATA 2
#define UECSSHOWSTRING 3

const byte U_InitPin = 3;
const char PROGMEM U_name[] = "UARDECS Node v.1.0";
const char PROGMEM U_vender[] = "XXXXXX Co.";
const char PROGMEM U_uecsid[] = "00000000";
const char PROGMEM U_footnote[] = "If you have any question, please contact Yasuba.";
const int U_footnoteLetterNumber = 48;
char U_nodename[20] = "Sample";
const int U_MAX_CCM = 2;
const int U_HtmlLine = 3;
UECSCCM U_ccmList[U_MAX_CCM];
UECSOriginalAttribute U_orgAttribute;
//////////////////////////////////
// html page1 setting
//////////////////////////////////

const char PROGMEM NAME0[] = "Temperature";
const char PROGMEM NAME1[] = "UserSwitch";
const char PROGMEM NAME2[] = "SetTemp";

const char PROGMEM UECSOFF[] = "OFF";
const char PROGMEM UECSON[] = "ON";
const char PROGMEM UECSAUTO[] = "AUTO";
PROGMEM const char *stringONOFFAUTO[]={
UECSOFF,
UECSON,
UECSAUTO,
};
PROGMEM const char CENT[] = "C";
PROGMEM const char NONES[] = "";
PROGMEM const char note1[]= "Set the aime temp";
signed long InAirTemp;
signed long setSamp0;
signed long setSamp1;
const char** dummy = NULL;

struct UECSUserHtml U_html[U_HtmlLine]={
{NAME0, UECSSHOWDATA, CENT, NONES, dummy, 0, &(InAirTemp), 0, 0, 1},
{NAME1, UECSSELECTDATA, NONES, NONES, stringONOFFAUTO, 3, &(setSamp0), 0, 0, 0},
{NAME2, UECSINPUTDATA, CENT, note1, dummy, 0, &(setSamp1), 100, 400, 1},
};

//////////////////////////////////
// UserCCM setting
//////////////////////////////////

const char PROGMEM ccmNameTemp[] = "AirTemp";
const char PROGMEM ccmTypeTemp[] = "InAirTemp";
const char PROGMEM ccmUnitTemp[] = "C";

const char PROGMEM ccmNameCnd[] = "NodeCondition";
const char PROGMEM ccmTypeCnd[] = "cnd.xXX";
const char PROGMEM ccmUnitCnd[] = "";


void UserInit(){
U_orgAttribute.mac[0] = 0x90;
U_orgAttribute.mac[1] = 0xA2;
U_orgAttribute.mac[2] = 0xDA;
U_orgAttribute.mac[3] = 0x0D;
U_orgAttribute.mac[4] = 0x29;
U_orgAttribute.mac[5] = 0x71;
UECSsetCCM(false, 0, ccmNameTemp, ccmTypeTemp, ccmUnitTemp, 30, 1, A_10S_0);
UECSsetCCM(true, 1, ccmNameCnd, ccmTypeCnd, ccmUnitCnd, 30, 0, A_1M_1);
}

void setSendP1Page(){
}

void UserEvery1min(){
InAirTemp = U_ccmList[0].value;
U_ccmList[1].value = 111;
}

void UserEveryLoop(){
}


void loop(){
UECSloop();
}


void setup(){
UECSsetup();
}

ノードに搭載したhttpサーバーへのブラウザからのアクセス時の画面



図 3−1 ノードのTopページへアクセスした様子
このページは2つのページへのリンクが張ってある.


図3−2 通信文の受信状況とノードへの環境制御に関する各種値を設定する画面


図3−3 LAN,UECS固有のパラメータ,ノードの名称(英語のみ)に関する設定


最初へ 前のページへ 次のページへ