'RASPBIAN'에 해당되는 글 7

  1. 2017.10.30 Thinger.io Client on raspberrypi with SenseHAT - 센서 데이터 획득 및 전송
  2. 2017.10.23 Thinger.io Client on raspberrypi - IoT서버에 접속하기
  3. 2017.10.23 Thinger.io Server on raspberrypi - IoT서버 설치
  4. 2017.10.19 jessie backport repository on RaspberryPi
  5. 2017.10.18 OpenHAB on raspberrypi
  6. 2017.10.16 SiteWhere on raspberrypi - IoT서버 설치
  7. 2017.10.16 Nginx + Mariadb + php + Adminer on RaspberryPi

Thinger.io Client on raspberrypi with SenseHAT - 센서 데이터 획득 및 전송

Sense HAT은 라즈베리재단의 공식 HAT(Hardware Attached on Top)으로 Astro Pi 프로젝트를 위해 고안되었다고 함

Sense HAT: https://www.raspberrypi.org/learning/addons-guide/sensehat/

Astro Pi: https://astro-pi.org/


탑재 파트

명세 

 ◾Gyroscope

 방향 측정 

 ◾Accelerometer

 가속도 측정 

 ◾Magnetometer

 지자기 측정 

 ◾Temperature sensor 

 대기 온도 측정

 ◾Barometric pressure sensor

 대기 압력 측정 

 ◾Humidity sensor

 공기중 수분 포화도 측정

 ◾joystick

 직접 입력용

 ◾LED matrix

 직접 표시용 (8X8, RGB)


공식 HAT이다 보니 가장 구하기가 쉽다.


오늘은 Sense HAT을 이용한 데이터 획득을 해보려고 한다. (우선, 가속도 데이터 부터)


[소스 수정]

지난번 포스팅한 Client 소스를 연다


nano src/main.cpp


아래 그림과 같이 수정한다.



Sense HAT은 RTIMULib 을 이용해 구동이 쉽게 이루어지므로 본 소스에서도 활용하였음.


[컴파일 환경 수정]


nano CMakeLists.txt


"target_link_libraries(thinger ${ADDITIONAL_LIBS})" 부분에서 RTIMULib 를 추가해 준다.


"target_link_libraries(thinger RTIMULib ${ADDITIONAL_LIBS})"


[실행]

./run.sh


컴파일이 끝나고, Dashboard에서 설정하면 다음과 같이 데이터를 획득하는 것이 보여진다.






Thinger.io Client on raspberrypi - IoT서버에 접속하기

서버에 설치했으므로 장치를 접속시켜 볼까합니다.

 

관련문서: http://docs.thinger.io/linux/

 

서버는 내버려 두고 다른 라즈베리파이를 구동합니다.

 

[라즈베리파이 최신화]

sudo apt-get update

sudo apt-get upgrade

 

[CMake와 Open SSL라이브러리 설치]

sudo apt-get install cmake libssl-dev -y

 

본격적으로 장치를 컴파일 합니다.

먼저 git에서 소스파일을 받아옵니다.

 

cd ~

git clone https://github.com/thinger-io/Linux-Client.git

cd Linux-Client

 

소스를 수정합니다.

nano src/main.cpp

 

USER_ID ,  DEVICE_ID , and  DEVICE_CREDENTIAL  부분을 수정합니다.

저는 test, raspberry, mv어쩌고저쩌고로 수정했습니다.  이 정보는 서버 콘솔과 동일해야 합니다.

 

먼저 콘솔로 들어가(test라는 아이디로 로긴했습니다.) Device를 누르시고,

 

 

 

 

Add Device 버튼을 눌러주세요.

 

Device credentials은 직접 작성하셔도 되고, Generate Random Credential 버튼을 눌러 만들어써도 됩니다.

 

콘솔에서 디바이스도 등록하고, 소스 수정도 저장(컨트롤+x, y, 엔터)합니다.

 

다음은 서버 정보를 수정합니다.

 

nano src/thinger/thinger_client.h

 

include를 지나 아래로 조금 내리시면 THINGER_SERVER 라는 항목을 서버 URL혹은 IP로 변경해주시면 됩니다.

수정하셨으면, 저장(컨트롤+x, y, 엔터)합니다.

 

 

[디바이스 기동 명령]

./run.sh

 

 

 

 

제가 깜빡하고 웹콘솔에서 Add Device 버튼을 안눌러서 인증이 1번 실패했습니다. ㅎㅎ

 

자 이제 콘솔에서 접속을 확인합니다.

메인페이지에서 디바이스 접속이 확인됩니다.

디바이스에서도 잘 뜨네요.

 

동작이 확인되셨으면, 해당 프로그램을 리눅스 데몬으로 등록합니다.

 

cd install/raspberry/
chmod +x install.sh
./install.sh

다른 서비스 처럼 사용하시면 됩니다.

sudo service thinger stop, start, restart

Thinger.io Server on raspberrypi - IoT서버 설치

IoT 서버인 Thinger.IO 를 라즈베리파이에 설치해 봅시다.

참고한 문서는 아래와 같습니다.

https://github.com/thinger-io/Docs/tree/gh-pages/deployment

 

 

[몽고DB 설치]

 

sudo apt-get install mongodb -y

 

 

[Snap 설치]

원래 배포를 우분투쪽 하므로 Snappy를 설치합니다.

 

sudo apt-get install snapd -y

 

 

[Thinger.IO 서버 설치]

 

sudo snap install thinger-maker-server

 

 

[Thinger.IO 서버 상태 확인]

 

sudo service snap.thinger-maker-server.thingerd status

 

 

 

[Thinger.IO 서버 접속]

 

웹브라우저에서 http://라즈베리파이IP 로 접속 하시면 아래와 같이 서비스 가동 모습을 볼 수있습니다.

 

 

계정 만들어 로긴하면

 

 

'Raspbian' 카테고리의 다른 글

Thinger.io Client on raspberrypi - IoT서버에 접속하기  (0) 2017.10.23
jessie backport repository on RaspberryPi  (0) 2017.10.19
OpenHAB on raspberrypi  (0) 2017.10.18

jessie backport repository on RaspberryPi

Backport는 안정된 환경에서 테스팅(대부분) 또는 불안정 (경우에 따라서는 보안 업데이트와 같은) 환경에서 재 컴파일 된 패키지로 데비안 안정적인 배포판에서 새로운 라이브러리(가능한 경우) 없이 실행할 수 있습니다.

 

제 경우에는 mosquitto-clients 설치시 디펜던시 오류가 발생하여 여러 방법을 찾아보게 되었습니다.

 

방법은 다음과 같습니다.

 

 

sudo nano /etc/apt/sources.list

 

제일 아랫줄에 아래의 두 줄을 삽입합니다.

# Backports repository
deb http://deb.debian.org/debian jessie-backports main contrib non-free

삽입 후 저장과 종료를 실행합니다. (커멘드: 컨트롤+x --> y --> 엔터)

 

sudo apt install dirmngr

 

sudo gpg --keyserver pgpkeys.mit.edu --recv-key 8B48AD6246925553

sudo gpg -a --export 8B48AD6246925553 | sudo apt-key add -

sudo gpg --keyserver pgpkeys.mit.edu --recv-key 7638D0442B90D010

sudo gpg -a --export 7638D0442B90D010 | sudo apt-key add -

 

sudo apt remove dirmngr

 

apt-get update

 

[그림 repo 등록 실패]

 

[그림 repo 등록 성공]

 

 

 

저의 문제도 해결되었습니다.

 

[그림 mosquitto-clients 설치 성공]

 

 

introduction: https://backports.debian.org/Instructions/

패키지 종류: https://packages.debian.org/jessie-backports/

 

'Raspbian' 카테고리의 다른 글

Thinger.io Server on raspberrypi - IoT서버 설치  (0) 2017.10.23
OpenHAB on raspberrypi  (0) 2017.10.18
SiteWhere on raspberrypi - IoT서버 설치  (0) 2017.10.16

OpenHAB on raspberrypi

JVM기반의 오픈소스 스마트홈 프레임워크로

모듈러 스택은 모든 IoT 기술 및 구성 요소를 "항목"으로 추상화하고 규칙, 스크립트 및 지속성 지원을 제공합니다.

OpenHAB은 다양한 웹 기반 UI를 제공하며 장치 상태를 저장하는 기능과 주요 Linux 해커 보드를 지원됩니다.

 

http://www.openhab.org/

 

1. 라즈베리파이용 OpenHABian 이미지 파일을 다운받습니다. (2017-10 현재, 1.3 버전)

   https://github.com/openhab/openhabian/releases

  

 

 

2. 다운받은 이미지 파일을 이미지 굽기 도구를 이용해 SD카드에 굽습니다.

   openhab에서는 https://etcher.io/ 를 예로 들었습니다.

   사용방법은 단순합니다.

   A. 다운받은 이미지를 선택합니다. B. 구울 SD를 선택합니다. C. 굽습니다.(Flash!)

 

 

 

  성격급하신 분들은 우측상단의 톱니바퀴(옵션버튼)를 눌러 '구운이미지 검증의 체크'를 해제합니다. 이거 오래 걸려요.

 

3. 굽기가 종료되면 SD를 라즈베리파이에 삽입하고 전원을 넣어줍니다.

   이때, 유선으로 인터넷을 연결해주세요. WiFi는 잘 못잡네요.

   그리고 기다리시면 됩니다. 인터넷에 연결에 최신버전의 openHAB으로 만들어줍니다.

   저의 경우는 약 45분 정도 걸렸네요.

   1.3버전으로 구동했지만 업데이트되어 2.1.0-1 버전의 OpenHAB을 사용할 수 있습니다.

 

4. 로그인을 할 수 있습니다.

   user / password 모두 openhabian 입니다.

  

 

 

4-1. WiFi 설정 (루트패스워드도 역시 openHABian 입니다)

 

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

 

다음과 같이 수정합니다.

가. Wifi 패스워드가 있는 경우

network={
    ssid="yourSSID"
    psk="Your_wifi_password"
}

 

나. Wifi 패스워드가 없는 경우

network={
    ssid="yourSSID"
    key_mgmt=NONE
}

 

다. SSID가 숨김인 경우

network={
    ssid="yourHiddenSSID"
    scan_ssid=1
    psk="Your_wifi_password"
}

 

수정을 완료하셨으면, 컨트롤+x를 누르고, y, 엔터 키를 입력하여 저장 후 nano를 종료합니다.

기타 다른 내용은 [링크]를 참조하세요.

 

 

5. 본격적인 사용 및 설정은 웹브라우저에서 http://openHABianPi:8080 으로 입장합니다.

 

 

 

 

 

 

 

 

SiteWhere on raspberrypi - IoT서버 설치

오픈 소스 IoT 플랫폼 SiteWhere는 장치 데이터의 처리, 저장, 처리 및 통합을 제공

Apache Tomcat 기반으로 제작

MongoDB 및 HBase 구현을 제공

해커 보드(Hackers board)와 쉽게 통합

 

 source: http://www.how2shout.com/tools/best-opensource-iot-platforms-develop-iot-projects.html

 

SiteWhere의 핵심 특징

1. 단일 인스턴스에서 여러가지 IoT 응용 프로그램 실행

2. 핵심 구성 프레임워크가 Spring

3. MQTT, AMQP, Stomp 등 다양한 장치 연결

4. 장치 추가시 자체 등록, REST 서비스, 일괄 처리 가능

5. Mule AnyPoint과 같은 3rd 파티 통합 지원

6. 기본 DBMS가 MongoDB

7. CoAP메세지(Eclipse Californium)

8. 이벤트데이터저장소(InfluxDB)

9. 가시화(Grafana)

10. 비관계형데이터저장소(HBase)

등 이라고 합니다.

 

자세한 내용은 [웹사이트]를 참고 하시기 바랍니다.

 

설치 방법은 아래의 링크를 따릅니다.

 

http://documentation.sitewhere.io/userguide/installation.html

 

[자바 설치]

sudo apt-get install openjdk-8-jdk -y

 

 

[몽고DB 설치]

sudo apt-get install -y mongodb

 

[HiveMQ MQTT Broker설치] 원문과 같습니다.

cd /opt
sudo wget --content-disposition https://s3.amazonaws.com/sitewhere-hivemq/hivemq-3.0.2.zip
sudo unzip hivemq-3.0.2.zip
sudo wget --content-disposition https://s3.amazonaws.com/sitewhere-hivemq/config.xml
sudo mv config.xml hivemq-3.0.2/conf
cd hivemq-3.0.2/bin
sudo ./run.sh &

 

[SiteWhere 설치] 원문에선 1.7.0인데 최신 안정화버전 1.12.0으로 설치합니다.

cd /opt
sudo wget https://s3.amazonaws.com/sitewhere/sitewhere-server-1.12.0.tgz
sudo tar -zxvf sitewhere-server-1.12.0.tgz
sudo mv sitewhere-server-1.12.0 /opt/sitewhere
sudo export SITEWHERE_HOME=/opt/sitewhere
cd /opt/sitewhere/bin
sudo sh startup.sh

 

 

 

 

서비스가 시작되었습니다.

 

최초 실행시 한참동안 설치가 진행됩니다. (라즈베리파이 3 기준 40분 걸립니다.)

 

http://라즈베리IP:8080/sitewhere/admin/

 

로 접속하시면 관리자 페이지가 실행됩니다.

 

기본 계정은     username: admin, password: password     으로 설정되어 있습니다.

 

보안을 위해 비밀번호는 꼭 변경하세요.

 

그 이후 자세한 내용은 아래의 링크를 참조하시기 바랍니다.

http://documentation.sitewhere.io/userguide/adminui/adminui.html

 

 

-------------------------------------------------------------------------------------------------------

라즈베리파이에서는 동작이 무리인듯 하네요.

PC나 서버에서 활용하세요. ㅠㅍㅜ

 

 

 

 

'Raspbian' 카테고리의 다른 글

jessie backport repository on RaspberryPi  (0) 2017.10.19
OpenHAB on raspberrypi  (0) 2017.10.18
Nginx + Mariadb + php + Adminer on RaspberryPi  (0) 2017.10.16

Nginx + Mariadb + php + Adminer on RaspberryPi

Nginx 가 나오고 PHP-FPM 이 나오면서 NPM으로 많이 운영한다고 해서 저도 그냥 그렇게 구축해 봅니다.

 

아래의 링크를 참조 했고요.

 

https://www.e-tinkers.com/2016/11/hosting-wordpress-on-raspberry-pi-part-2-install-nginx-php-and-mariadb/

 

명령어 위주로 갑니다.

 

[웹서버 설치]

sudo apt-get install nginx -y

 

[동작 확인]

sudo service nginx start

 

기본 웹페이지 경로는 "/var/www/html"입니다.

 

[설정] -- 원문이 워드프레스 용이므로 반드시 해야할 필요는 없을 것 같습니다.

sudo nano /etc/nginx/nginx.conf

 

1) multi_accept 의 주석처리 삭제하고 설정은 on: 매번 새로운 커넥션 연결

2) keepalive_timeout을 5로 변경: 유휴 연결을 기본 65에서 5초로 단축

3) server_tokens 의 주석처리 삭제, 설정은 off: 오류 표기시 엔진서버의 버전이 표기되지 않음

4) server_tokens의 다음 줄에 client_max_body_size 를 추가하고 설정은 16m

5) gzip_vary on 주석처리 삭제 : gzip 처리에 대한 결정시간 단축

6) gzip_proxied 주석처리 삭제, 설정은 any: gzip 처리에 대한 결정시간 단축

7) gzip_comp_level 주석처리 삭제, 설정은 5. ASCII 압축률 75% 상승, CPU점유율은 거의 그대로

8) gzip_http_version 1.1 주석처리 삭제: HTTP/1.0 and HTTP/1.1 둘다 사용가능해짐

9) 다음열에 gzip_min_length 256 추가: 기본값은 20바이트로 256바이트가 넘는 파일에서만 gzip을 수행하도록 변경

10) Google PageSpeed test 를 피하려면 아래의 MIME types으로 교체
    gzip_types
       application/atom+xml
       application/javascript
       application/json
       application/rss+xml
       application/vnd.ms-fontobject
       application/x-font-ttf
       application/x-web-app-manifest+json
       application/xhtml+xml
       application/xml
       font/opentype
       image/svg+xml
       image/x-icon
       text/css
       text/plain
       text/x-component;


이렇게하면 HTML 파일 형식 외에 JavaScript, CSS 및 SVG 파일 형식도 gzip으로 압축됩니다.

 

수정을 하셨으면 '컨트롤-x'를 눌러 종료하시고, 편집 내용을 저장할 것이냐고 묻는다면 'Y'를 저장 위치는 '엔터키'를 누르시면 됩니다.

 

[수정한 설정파일의 문법을 확인]

sudo nginx -t

 

잘 수정하셨으면 아래의 메시지가 등장합니다.

"nginx: the configuration file /etc/nginx/nginx.conf syntax is ok"
"nginx: configuration file /etc/nginx/nginx.conf test is successful"

아니라면 내용을 다시 확인해 주세요.

 

[웹서버 재실행]

sudo service nginx restart

 

[PHP-FPM 설치]

sudo apt-get install php5-fpm php5-mysqlnd php5-xmlrpc php5-curl php5-gd php5-imap php5-mcrypt -y

 

원문의 " php5-imagick "은 설치가 안되더라고요. 그래서 빼고 했습니다. 안되는 내용있으면 빼세요.

 

[웹서버에서 PHP 인식시키기]

sudo nano /etc/nginx/sites-available/default

 

[설정 내용]

"index index.html index.htm index.nginx-debian.html;"

 -->

"index index.php index.html index.htm;"

 

 

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
# location ~ \.php$ {

 -->

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;
#
# # With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
}

 

수정을 하셨으면 '컨트롤-x'를 눌러 종료하시고, 편집 내용을 저장할 것이냐고 묻는다면 'Y'를 저장 위치는 '엔터키'를 누르시면 됩니다.

 

[서버 설정 적용]

sudo service nginx reload

 

[PHP 동작확인]

sudo nano /var/www/html/index.php

 

<?php echo phpinfo(); ?>

윗 내용을 입력 하셨으면 '컨트롤-x'를 눌러 종료하시고, 편집 내용을 저장할 것이냐고 묻는다면 'Y'를 저장 위치는 '엔터키'를 누르시면 됩니다.

 

웹브라우저에서 서버의 IP를 입력하면 설치된 PHP 정보가 뜹니다.

안뜨면 설정을 뭔가 잘못하신겁니다.

 

[DB설정]

sudo apt-get install mariadb-server -y

 

파란창이 뜨면서 'root'계정의 패스워드를 입력하는 창이 뜹니다.

패스워드를 입력해주세요.

저는 이상하게 안뜨네요. 안뜨면 패스워드가 공란(blank)으로 들어가 있습니다.

mysql root 패스워드 변경 등으로 검색하시면 관련 자료 찾으실 수 있으실 겁니다.

[DB 보안성 강화]

sudo mysql_secure_installation

 

보안 강화를 위해 n, y, n, n, y를 입력하시면 됩니다. 자세한 내용은 원문의 스크린샷을 참조해주세요.

 

[db관리툴 설치]

그동안 phpmyadmin 많이 사용해 오셨을 듯합니다. 오랜 역사와 다양한 기능으로 사랑 받아왔습니다. 하지만 라즈베리파이에서 가볍게 사용하시려면 adminer를 추천해드립니다. (자세한 설명은 링크 참조)

단점은 한국어 버전이 없습니다.

 

adminer는 설치 형식이 아닌 단일 파일로 되어있어 웹사이트에서 다운받는 방식(2017. 10. 현재 4.3.1버전이 최신)

 

sudo mkdir /var/www/html/admin
cd /var/www/html/admin

sudo wget https://www.adminer.org/static/download/4.3.1/adminer-4.3.1-mysql-en.php

 

[실행]

브라우저에서 http://서버IP/admin/adminer.php

 

 

'Raspbian' 카테고리의 다른 글

jessie backport repository on RaspberryPi  (0) 2017.10.19
OpenHAB on raspberrypi  (0) 2017.10.18
SiteWhere on raspberrypi - IoT서버 설치  (0) 2017.10.16