"Mobius"의 두 판 사이의 차이

오픈소스 비즈니스 컨설팅
둘러보기로 가기 검색하러 가기
잔글 ("Mobius" 문서를 보호했습니다 ([편집=관리자만 허용] (무기한) [이동=관리자만 허용] (무기한)))
 
(같은 사용자의 중간 판 24개는 보이지 않습니다)
1번째 줄: 1번째 줄:
Mobius
+
Mobius는 전자부품연구원이 개발한 oneM2M 기반의 IoT 소프트웨어 이다.
 +
 
 +
* 홈페이지 : [https://github.com/IoTKETI/Mobius Mobius GitHub]]
 +
* 가이드
 +
:* https://github.com/IoTKETI/Mobius/wiki/Mobius_v2.0.0_KR_Linux
 +
* 커뮤니티
 +
:* http://open-iot.net/board/mobius
 +
 
 +
== Mobius 개요 ==
 +
 
 +
연혁
 +
* 1.0 : 2015년 1월
 +
* 2.0 : 2017년 7월
 +
 
 +
== CentOS에서 Mobius 설치 ==
 +
 
 +
=== VirtualBox 가상 서버 생성 ===
 +
 
 +
mkdir -p /work/vagrant/OBCon-SCADA
 +
cd  /work/vagrant/OBCon-SCADA
 +
vi  Vagrantfile
 +
    Vagrant.configure("2") do |config|
 +
      config.vm.box = "centos/7"
 +
      config.vm.network "forwarded_port", guest: 7577, host: 7577
 +
      config.vm.network "forwarded_port", guest: 7578, host: 7578
 +
      config.vm.network "forwarded_port", guest: 7579, host: 7579
 +
      config.vm.network "forwarded_port", guest: 7582, host: 7582
 +
      config.vm.network "forwarded_port", guest: 1883, host: 1883
 +
      config.vm.network "forwarded_port", guest: 8883, host: 8883
 +
      config.vm.network "forwarded_port", guest: 3306, host: 3306
 +
      config.vm.network "forwarded_port", guest: 80, host: 80
 +
      config.vm.network "forwarded_port", guest: 443, host: 443
 +
      config.vm.network "forwarded_port", guest: 22, host: 2022
 +
      config.vm.provider "virtualbox" do |vb|
 +
        vb.name = "SuiteCRM"
 +
        vb.memory = "3072"
 +
        vb.cpus = "4"
 +
      end
 +
    end
 +
vagrant  init
 +
 +
vagrant  up
 +
vagrant  ssh
 +
 
 +
* SSH 접속을 위한 Private key 파일 : /work/vagrant/OBCon-SCADA/.vagrant/machines/default/virtualbox/private_key
 +
 
 +
=== 사전 준비 사항 ===
 +
 
 +
* CentOS 7 초기 환경 설정
 +
* MariaDB 설치
 +
 
 +
기타 준비 사항
 +
* PHP 7.1 설치
 +
* [[Nginx]] 설치
 +
* [[SuiteCRM]] 설치
 +
 
 +
=== Mosquitto 설치 ===
 +
 
 +
yum -y install mosquitto mosquitto-devel php71-php-pecl-mosquitto
 +
 +
systemctl enable  mosquitto.service
 +
systemctl restart mosquitto.service
 +
systemctl status  mosquitto.service
 +
 +
#--- Mosquitto 설치 확인
 +
mosquitto_sub -h localhost -t /mytopic/1
 +
mosquitto_pub -h localhost -t /mytopic/1 -m "Hello MQTT test"
 +
 +
vi  /etc/mosquitto/mosquitto.conf
 +
    listener 8883                                                      #--- SSL 적용시 사용
 +
    cafile  /etc/mosquitto/ca_certificates/ca-crt.pem
 +
    certfile /etc/mosquitto/certs/server-crt.pem
 +
    keyfile  /etc/mosquitto/certs/server-key.pem
 +
 +
    password_file  /etc/mosquitto/pwfile.example                      #--- 인증용 Password 파일
 +
    acl_file      /etc/mosquitto/aclfile.example                      #--- ACL 파일
 +
 
 +
=== Mobius 설치 ===
 +
 
 +
#--- Node.js 설치
 +
yum -y install nodejs
 +
 +
#--- Mobius 설치 ( https://github.com/IoTKETI/Mobius )
 +
#---    설치 파일을 다운로드하여 /work/appl/mobius 폴더에 저장 한다.
 +
mkdir -p /work/install
 +
cd  /work/install
 +
wget  https://codeload.github.com/IoTKETI/Mobius/zip/master  -O  Mobius-master.zip
 +
unzip Mobius-master.zip
 +
mkdir -p /work/appl
 +
mv Mobius-master mobius
 +
mv mobius /work/appl
 +
 +
#---    Mobius 데이터베이스를 생성하고 환경을 설정 한다.
 +
cd /work/appl/mobius
 +
npm install
 +
mysql -uroot -p mysql                        #--- mobius 사용자 생성, mobiusdb 데이터베이스 생성
 +
    show databases;
 +
    create database mobiusdb;
 +
    grant all privileges on mobiusdb.* to mobius@localhost identified by '비빌번호';
 +
    flush privileges;
 +
 +
    select Host, User, Password from user order by User, Host;
 +
    select Host, Db, User from db order by User, Db, Host;
 +
    exit
 +
 +
mysql -uroot -p mobiusdb < mobius/mobiusdb.sql
 +
mysql -umobius -p mobiusdb
 +
    show tables;
 +
    exit
 +
 +
vi  conf.js                                          #--- mobius.js 파일 참조
 +
    {
 +
        "csebaseport": "7579",
 +
        "dbuser": "mobius",
 +
        "dbpass": "비밀번호"
 +
    }
 +
 +
vi  mobius.js
 +
    global.usedbhost            = 'localhost';
 +
    global.usedbuser            = conf.dbuser;
 +
    global.usedbpass            = conf.dbpass;
 +
 +
    global.usesecure            = 'enable';          #--- SSL 적용시
 +
#--- SSL 적용시 /work/appl/mobius 폴더에 ca-crt.pem, server-crt.pem, server-key.pem 파일을 생성 한다.
 +
 +
vi  app.js                                  #--- Database User 지정
 +
    db.connect(usedbhost, 3306, usedbuser, usedbpass, function (rsc) {    #--- 435 line
 +
    db.connect(usedbhost, 3306, usedbuser, usedbpass, function (rsc) {    #--- 491 line
 +
    db.connect(usedbhost, 3306, usedbuser, usedbpass, function (rsc) {    #--- 523 line
 +
 +
nohup node mobius.js &
 +
 
 +
=== 설치 테스트 ===
 +
 
 +
* http://developers.iotocean.org/archives/module/onem2m-api-testing 사이트에서 "DOWNLOAD" 메뉴를 선택 한다. 
 +
* "PostManScript-v2.0.zip" 링크를 선택하여 "oneM2M-API-Testing-2.0.0.zip" 파일을 다운로드 한다. 
 +
:* https://github.com/IoTKETI/oneM2M-API-Testing
 +
:* wget https://codeload.github.com/IoTKETI/oneM2M-API-Testing/zip/v2.0.0  -O  oneM2M-API-Testing-2.0.0.zip
 +
 
 +
* 다운로드 받은 파일을 Postman을 실행한 후 "Import" 메뉴를 사용하여 등록 한다. 
 +
* 우측 상단에 있는 "Management Environment"를 선택 한다.
 +
* "Add" 버튼을 눌러 "OBCon-Mobius"를 추가 한다.
 +
:* mp_url : http://scada.obcon.co.kr:7579
 +
:* cb : Mobius
 +
* "OBCon-Mobius" Environment를 선택한 후 URL별로 테스트를 진행 한다
 +
 
 +
== Rasberry Pi에 &Cube 설치 ==
 +
 
 +
=== Node.js 설치 ===
 +
 
 +
* Node.js 8.9.4
 +
* npm 6.4.1
 +
 
 +
# yum list | grep nodejs
 +
# yum -y install nodejs
 +
 +
yum -y install which wget
 +
uname -m                                                    #--- ARM 아키텍처 확인
 +
mkdir -p /work/install
 +
cd /work/install
 +
#--- https://nodejs.org/dist/
 +
# wget https://nodejs.org/dist/v10.9.0/node-v10.9.0-linux-armv7l.tar.xz
 +
# tar -xvf node-v10.9.0-linux-armv7l.tar.xz
 +
# cd node-v10.9.0-linux-armv7l
 +
wget https://nodejs.org/dist/v8.9.4/node-v8.9.4-linux-armv7l.tar.xz
 +
tar -xvf node-v8.9.4-linux-armv7l.tar.xz
 +
cd node-v8.9.4-linux-armv7l
 +
 +
/usr/bin/rm CHANGELOG.md LICENSE README.md
 +
/usr/bin/cp -R * /usr/local/
 +
 +
npm i -g npm
 +
 +
node -v
 +
npm -v
 +
 
 +
=== &Cube 설치 ===
 +
 
 +
mkdir -p /work/install
 +
cd /work/install
 +
wget https://codeload.github.com/IoTKETI/nCube-Thyme-Nodejs/zip/2.3.2
 +
 +
mv 2.3.2 nCube-Thyme-Nodejs-2.3.2.zip
 +
unzip nCube-Thyme-Nodejs-2.3.2.zip
 +
 +
mkdir -p /work/appl
 +
mv nCube-Thyme-Nodejs-2.3.2 /work/appl/ncube
 +
 +
cd /work/appl/ncube
 +
npm install
 +
 +
vi  conf.js
 +
    cse.host = 'scada.obcon.co.kr';
 +
    cse.port = '7579';
 +
    cse.name = 'Mobius';
 +
    cse.id = '/Mobius2'
 +
    cse.mqttport = '1883';
 +
    cse.wsport = '7577';
 +
 +
    ae.name = 'light';
 +
    ae.appid = 'light';
 +
    ae.port = '9727';
 +
    ae.bodytype = 'json';
 +
 +
# vi  aei.json
 +
#    "id": "S"             #--- AE ID를 만들기 위한 prefix
 +
 +
node  thyme.js
  
 
== 참고 문헌 ==
 
== 참고 문헌 ==
 +
 +
* [[SCADA]], [[OCEAN]], [[oneM2M]], [[Modbus]]
 +
 +
* https://github.com/IoTKETI/Mobius/wiki/Mobius_v2.0.0_KR_Windows
  
 
[[Category: IoT]]
 
[[Category: IoT]]

2018년 9월 28일 (금) 15:24 기준 최신판

Mobius는 전자부품연구원이 개발한 oneM2M 기반의 IoT 소프트웨어 이다.

  • 커뮤니티

Mobius 개요

연혁

  • 1.0 : 2015년 1월
  • 2.0 : 2017년 7월

CentOS에서 Mobius 설치

VirtualBox 가상 서버 생성

mkdir -p /work/vagrant/OBCon-SCADA
cd  /work/vagrant/OBCon-SCADA
vi  Vagrantfile
    Vagrant.configure("2") do |config|
      config.vm.box = "centos/7"
      config.vm.network "forwarded_port", guest: 7577, host: 7577
      config.vm.network "forwarded_port", guest: 7578, host: 7578
      config.vm.network "forwarded_port", guest: 7579, host: 7579
      config.vm.network "forwarded_port", guest: 7582, host: 7582
      config.vm.network "forwarded_port", guest: 1883, host: 1883
      config.vm.network "forwarded_port", guest: 8883, host: 8883
      config.vm.network "forwarded_port", guest: 3306, host: 3306
      config.vm.network "forwarded_port", guest: 80, host: 80
      config.vm.network "forwarded_port", guest: 443, host: 443
      config.vm.network "forwarded_port", guest: 22, host: 2022
      config.vm.provider "virtualbox" do |vb|
        vb.name = "SuiteCRM"
        vb.memory = "3072"
        vb.cpus = "4"
      end
    end
vagrant  init

vagrant  up
vagrant  ssh
  • SSH 접속을 위한 Private key 파일 : /work/vagrant/OBCon-SCADA/.vagrant/machines/default/virtualbox/private_key

사전 준비 사항

  • CentOS 7 초기 환경 설정
  • MariaDB 설치

기타 준비 사항

Mosquitto 설치

yum -y install mosquitto mosquitto-devel php71-php-pecl-mosquitto

systemctl enable  mosquitto.service
systemctl restart mosquitto.service
systemctl status  mosquitto.service

#--- Mosquitto 설치 확인
mosquitto_sub -h localhost -t /mytopic/1
mosquitto_pub -h localhost -t /mytopic/1 -m "Hello MQTT test"

vi  /etc/mosquitto/mosquitto.conf
    listener 8883                                                      #--- SSL 적용시 사용
    cafile   /etc/mosquitto/ca_certificates/ca-crt.pem 
    certfile /etc/mosquitto/certs/server-crt.pem 
    keyfile  /etc/mosquitto/certs/server-key.pem 

    password_file  /etc/mosquitto/pwfile.example                       #--- 인증용 Password 파일
    acl_file       /etc/mosquitto/aclfile.example                      #--- ACL 파일

Mobius 설치

#--- Node.js 설치
yum -y install nodejs

#--- Mobius 설치 ( https://github.com/IoTKETI/Mobius )
#---     설치 파일을 다운로드하여 /work/appl/mobius 폴더에 저장 한다.
mkdir -p /work/install
cd  /work/install
wget  https://codeload.github.com/IoTKETI/Mobius/zip/master  -O  Mobius-master.zip
unzip Mobius-master.zip
mkdir -p /work/appl
mv Mobius-master mobius 
mv mobius /work/appl

#---     Mobius 데이터베이스를 생성하고 환경을 설정 한다.
cd /work/appl/mobius
npm install
mysql -uroot -p mysql                         #--- mobius 사용자 생성, mobiusdb 데이터베이스 생성
    show databases;
    create database mobiusdb;
    grant all privileges on mobiusdb.* to mobius@localhost identified by '비빌번호';
    flush privileges;

    select Host, User, Password from user order by User, Host;
    select Host, Db, User from db order by User, Db, Host;
    exit

mysql -uroot -p mobiusdb < mobius/mobiusdb.sql
mysql -umobius -p mobiusdb
    show tables;
    exit

vi  conf.js                                           #--- mobius.js 파일 참조
    {
        "csebaseport": "7579",
        "dbuser": "mobius",
        "dbpass": "비밀번호"
    }

vi  mobius.js
    global.usedbhost            = 'localhost';
    global.usedbuser            = conf.dbuser;
    global.usedbpass            = conf.dbpass;

    global.usesecure            = 'enable';           #--- SSL 적용시
#--- SSL 적용시 /work/appl/mobius 폴더에 ca-crt.pem, server-crt.pem, server-key.pem 파일을 생성 한다.

vi  app.js                                  #--- Database User 지정
    db.connect(usedbhost, 3306, usedbuser, usedbpass, function (rsc) {    #--- 435 line
    db.connect(usedbhost, 3306, usedbuser, usedbpass, function (rsc) {    #--- 491 line
    db.connect(usedbhost, 3306, usedbuser, usedbpass, function (rsc) {    #--- 523 line

nohup node mobius.js &

설치 테스트

  • 다운로드 받은 파일을 Postman을 실행한 후 "Import" 메뉴를 사용하여 등록 한다.
  • 우측 상단에 있는 "Management Environment"를 선택 한다.
  • "Add" 버튼을 눌러 "OBCon-Mobius"를 추가 한다.
  • "OBCon-Mobius" Environment를 선택한 후 URL별로 테스트를 진행 한다

Rasberry Pi에 &Cube 설치

Node.js 설치

  • Node.js 8.9.4
  • npm 6.4.1
# yum list | grep nodejs
# yum -y install nodejs

yum -y install which wget
uname -m                                                    #--- ARM 아키텍처 확인
mkdir -p /work/install
cd /work/install
#--- https://nodejs.org/dist/
# wget https://nodejs.org/dist/v10.9.0/node-v10.9.0-linux-armv7l.tar.xz
# tar -xvf node-v10.9.0-linux-armv7l.tar.xz
# cd node-v10.9.0-linux-armv7l
wget https://nodejs.org/dist/v8.9.4/node-v8.9.4-linux-armv7l.tar.xz
tar -xvf node-v8.9.4-linux-armv7l.tar.xz
cd node-v8.9.4-linux-armv7l 

/usr/bin/rm CHANGELOG.md LICENSE README.md
/usr/bin/cp -R * /usr/local/

npm i -g npm

node -v
npm -v

&Cube 설치

mkdir -p /work/install
cd /work/install
wget https://codeload.github.com/IoTKETI/nCube-Thyme-Nodejs/zip/2.3.2

mv 2.3.2 nCube-Thyme-Nodejs-2.3.2.zip
unzip nCube-Thyme-Nodejs-2.3.2.zip

mkdir -p /work/appl
mv nCube-Thyme-Nodejs-2.3.2 /work/appl/ncube

cd /work/appl/ncube
npm install

vi  conf.js
    cse.host = 'scada.obcon.co.kr';
    cse.port = '7579';
    cse.name = 'Mobius';
    cse.id = '/Mobius2'
    cse.mqttport = '1883';
    cse.wsport = '7577';

    ae.name = 'light';
    ae.appid = 'light';
    ae.port = '9727';
    ae.bodytype = 'json';

# vi  aei.json
#    "id": "S"				            #--- AE ID를 만들기 위한 prefix

node  thyme.js

참고 문헌