//구글광고

아두이노 윤(yun)을 활용한 문자알림가능한 웹페이지형 온습도계 만들기 5

서버세팅(4)



1. 아두이노 윤의 wifi 세팅과 초기 패스워드 설정

2. 아두이노 윤 ssh 접속  

3. mysql 서버 설치 및 설정

4. php5 설치

5. php- mysql-  python 연동모듈 설치




4. php5 설치


혹시 중간에 접속을 끊고 다시 시작한다면 opkg update 를 수행해 주자.

php 모듈을 설치 한다.



opkg install php5 php5-cgi 

 






php 파일을 사용하기 위해 몇가지 설정을 한다.
vi 에디터를 이용해 설정을 변경할 것이다.


vi /etc/config/uhttpd 

 








이렇게 편집창이 뜰것이다.

 





아래로 화살표를 내려 # list interpreter ".php=/usr/bin/php-cgi"

행을 찾아간다 




해당 행의 # 위에서 x 키를 누르면 #표시가 지워진다 





esc를 누르고 :wq 엔터 를 입력한다. 




이렇게 저장해서 밖으로 빠져나올 것이다. 





이제 httpd 를 재시작한다.

 /etc/init.d/uhttpd restart 






5. php- mysql-  python 연동모듈 설치


이제 연동 모듈들을 설치한다.

 opkg install php5-mod-mysql 





php.ini 에 mysql 을 설정한다.


sed -i 's,;extension=mysql.so,extension=mysql.so,g' /etc/php.ini 

 





python 에서 mysql 에 접속하기 위한 커넥터를 설치한다.


opkg install python-mysql 

 



ftp 설치


opkg install vsftpd openssh-sftp-server

 





이것으로 기본 세팅을 마친다.


아두이노 윤(yun)을 활용한 문자알림가능한 웹페이지형 온습도계 만들기 4

서버세팅(3)



1. 아두이노 윤의 wifi 세팅과 초기 패스워드 설정

2. 아두이노 윤 ssh 접속  

3. mysql 서버 설치 및 설정

4. php5 설치

5. python 과 mysql 연동 모듈 설치

6. php와 mysql 연동 모듈 설치




3. mysql 서버 설치 및 설정



패키지들을 설치 하기 전에 저장소 업데이트를 해준다.



opkg update 

 



이제 mysql 서버를 설치하자



opkg install libpthread libncurses libreadline mysql-server 

 






mysql 관련 환경을 설정해준다.



sed -i 's,^datadir.*,datadir         = /srv/mysql/,g' /etc/my.cnf 


sed -i 's,^tmpdir.*,tmpdir          = /tmp/,g' /etc/my.cnf 


mkdir -p /srv/mysql 

 






mysql db 를 생성해준다.(호스트 네임 관련 오류가 발생하니까 반드시 --force옵션으로 해주자 )



mysql_install_db --force 


 




init.d 에 자동 실행과 관련된 설정을 추가 해준다.



/etc/init.d/mysqld start 


/etc/init.d/mysqld enable 


 




mysql 패스워드를 설정한다. 여기선 arduino 로 하겠다.



mysqladmin -u root password 'arduino' 


 



이것으로 mysql 설치 및 설정은 끝났다.


아두이노 윤(yun)을 활용한 문자알림가능한 웹페이지형 온습도계 만들기 3

서버세팅(2)



1. 아두이노 윤의 wifi 세팅과 초기 패스워드 설정

2. 아두이노 윤 ssh 접속  

3. mysql 서버 설치 및 설정

4. php5 설치

5. python 과 mysql 연동 모듈 설치

6. php와 mysql 연동 모듈 설치





2. 아두이노 윤 ssh 접속


아두이노 윤으로 ssh 접속하여 서버 구성요소들을 설치 진행하여야 한다.

프리웨어 ssh 접속기로 putty 를 사용하여 진행하였다 
여기서 다운받을 수 있다.


 1) putty 를 실행한다.

 2) Host Name 에 arduino.local 을 입력 아래의 Open 버튼을 클릭해서 접속한다.


..

( 만약 arduino.local 로 접속이 안되면, http://kimazfactory.tistory.com/24 을 참조하여 해결하도록 하자. )



3) login as : 창이 뜨면 root 를 입력한다.




4) password 를 묻는 질문에는 이전에 설정했던 암호를 넣어준다.

아래와 같은 접속 환경이 나오면 완료










아두이노 윤(yun)을 활용한 문자알림가능한 웹페이지형 온습도계 만들기 2

서버세팅(1)


본 실습을 위해 아두이노 윤의 리눅스 (openwrt) 에  몇가지 세팅을 하여야 한다. 그중 서버 세팅에 대해 알아보자


세팅할 모든 구성요소를 나열하자면 다음과 같다.


1. 아두이노 윤의 wifi 세팅과 초기 패스워드 설정

2. 아두이노 윤 ssh 접속  

3. mysql 서버 설치 및 설정

4. php5 설치

5. python 과 mysql 연동 모듈 설치

6. php와 mysql 연동 모듈 설치




이제 순서대로 진행해보자.


1. 아두이노 윤의 wifi 세팅과 초기 패스워드 설정


아두이노 yun 에 전원은 연결하고  무선 네트워크를 검색해보면 Arduino Yun-XXXXXXXXXX 형태의 AP가 검색되면 거기로 접속하자.
( 이때 인터넷은 끊어짐으로 주의하자. )



접속한 다음, 인터넷창에 192.168.240.1 로 접속하면 아래의 화면이 나타난다.


기본 패스워드인 arduino 를 입력하고 LOG-IN 버튼을 클릭해서 로그인하자.




접속되었으면 CONFIGURE 버튼을 클릭한다.


TIMEZONE을 Asia/Seoul 로 변경해준다.
암호를 변경하고 싶으면 원하는 걸로 변경해준다. ( 단 본 예제에서 모든 암호는 arduino로 통일한다. )
연결할 wifi를 선택하고( 집에 쓰는 무선공유기 ) 암호가 있다면 정확하게 입력해준다. 

그리고 CONFIGURE & RESTART 버튼을 클릭하여 저장한다.



그러면 이러한 화면이 뜨면서 네트워크 설정을 시작한다.


잠시후면 네트워크 설정이 종료된다.


이제 무선 네트워크를 기존사용하던 무선네트워크로 접속한다.


 

- 여기까지 진행하면서 오류가 생길경우 해결방법

 여기까지 진행하면서 wifi 패스워드를 잘못입력하든지 해서 오류가 생긴경우 
 http://kimazfactory.tistory.com/23 글을 참조하여 초기화 한 뒤 다시 진행한다.



인터넷 주소창에 arduino.local 로 접속한다.





- 만약 arduino.local로 접속이 되지 않는다면

 http://kimazfactory.tistory.com/24 글을 참조하여 해결한다.


 





오라클 테이블별 사이즈 조회하기


1. 모든 유저별 테이블 단위 사이즈 조회하기(단위 MB)


아래 쿼리는 system 유저로 접속해서 수행하며 모든 테이블의 크기를 MB 단위로 표현해준다.


select owner, segment_name, bytes/1024/1024 from dba_segments where segment_type='TABLE'







2. 내 테이블만 조회 하기


아래 쿼리는 내가 접속한 유저의 테이블의 용량을 MB단위로 표현해준다.


select segment_name, bytes/1024/1024 from user_segments where segment_type='TABLE'

 






Arduino Yun 최초 설정 후, arduino.local로 접속하지 못할때 해결법


arduino yun 의 네트워크 설정 이후,



브라우저에서 arduino.local 을입력하면 접속이 된다.


하지만 맥에선 잘되나 윈도우에선 안되는 경우가 있다.


보통 이럴땐 공유기 관리자 화면에서 찾아서 접속하는 경우가 많다.


기본적인 문제 해결 방법으로 들어가보자


원인. arduino.local 은 bonjour 를 사용해서 주소를 해석하는데 윈도우에서 설치가 안되어 있다.

해결법. 링크의 프로그램을 설치하면 해결된다.

https://support.apple.com/kb/DL999?locale=ko_KR

에서 bonjour 서비스 프로그램을 설치하면

윈도우에서도 arduino.local로 접속할 수 있다.


이렇게 깔끔하게 접속된다.



'arduino' 카테고리의 다른 글

아두이노 윤 (Arduino yun) 공장 초기화 방법  (0) 2018.10.18
아두이노 윤(Arduino yun)에 대해  (0) 2018.08.17

아두이노 윤(arduino yun) 의 공장초기화 / 리셋 방법


아두이노 윤의 본격적인 실습에 앞서 실습하다보면 리셋할일이 참 많아 진다.
상황별 리셋 방법을 정리해보자


아두이노 윤에는 3개의 리셋 버튼이 있다. 상황별로 리셋 하는 방법을 정리해보자



상황 1. 리눅스(open wrt) 부분 재부팅

OpenWrt-Yun을 재부팅하는 AR9331을 재기동 하려면 3번 버튼을 한번 눌러주면 된다.


상황 2. 아두이노 sketch 부분 재부팅

아두이노 스케치 부분을 리셋 하고 싶으면, 1번 버튼을 두번 눌러주면, 32U4 가 재기동 되면서 스케치가 재시작 된다.



상황3. wifi 재부팅

wifi 연결을 재기동 하고 싶으면 2번 버튼을 눌러주면 파란색 wan 불이 깜빡 거리면서 wifi 가 재시작 된다.



상황4. wifi 설정 리셋 (상황 3과 다름)

상황 3과는 다르게 wifi 설정을 다 지우고 다시 설정하고 싶으면(공유기가 바뀌었다거나, 고장나서 접근이 안될 때 )
2번 버튼을 5초 이상 30초 미만으로 꾹 누르고 있으면 (이버튼이 은근히 꾹 누르기가 힘들다.)
AR9331 프로세서가 재부팅 되고나서 초기 wifi 설정 잡을때 처럼 Yún이 자체 Wi-Fi 네트워크 인 Arduino Yún-XXXXXXXXXXXXX를 시작한다.


그럼 다시 무선랜 목록에서 아두이노 윤 을 잡아서 접속한 다음


브라우저에 arduino.local 또는  192.168.240.1 입력하여 네트워크 wifi 설정 다시 변경 하면 된다.


네트워크 설정만 리셋 하는것이기 때문에 다른 내용들은 보관된다.


주로 wifi 공유기 고장났거나 다른데서 동작할때 사용한다.



상황 5. 완전 공장 초기화


모든 설정을 지우고 완전 공장 초기화를 하고 싶을땐 2번 버튼을 30초 이상 누른다.

이때엔 모든 설정이 지워지고 공장 초기화로 돌아간다.


 



아두이노 yun 을 이용한 문자알림 웹온습도계 만들기(1)


 회사 전산실에 에어컨이 시원찮아 계속 고장이 난다. 온도가 높아지면 서버들이 다 꺼지는데 큰 문제가 아닐 수 없다.


주말이나 야간에 누군가 조치하러 다녀가고 여간 골치가 아니다.


 FMS 솔루션을 도입하자니 우리 전산실 규모가 그정도는 아니고 오픈소스 하드웨어를 사용해서 저렴하게  온도가 올라가면 문자로 알려주면 정말 좋겠다 싶을때 만들면 좋은 초 심플 프로젝트 되시겠다.



1. 프로젝트 개요

아두이노(Arduino) yun 의 장점을 이용하여 온습도 데이터를 로깅하고 임계점 이상의 값에서 문자 메세지를 보내주는 심플한 프로젝트


2. 주요기능

- 웹으로 현재 온습도를 조회할 수 있다.
- 특정 온습도 이상이면 문자메세지로 알림을 받을수 있다.

3. 준비물

  - H/W(wifi환경이어야 한다.)

                               1. 아두이노 yun 보드


 

                                 2.AM2302 ( AOSONG 사 제품 - DHT22 ) 온습도계 센서


온습도계 센서 스팩


센서명

 AM2302 

 제조사

AOSONG 

 입력전원

3.3v ~ 5.5v DC 

 습도측정범위 

0에서 99.9% 

 온도측정범위 

-40에서 80 도 

 정밀도 

+- 2% 습도  +- 0.5 온도 

 출력 

디지털 1 와이어 

 수집시간 

2초에 1번 

측정에소요되는 전류 

 최대 2.5mA 

 크기

27mm 폭 x 58.75mm 높이 x 13.30mm 깊이 



이센서를 선택한 이유(장점)



1. 오픈소스 하드웨어 만들때 제일 불편한게 케이스임. 이건 하우징이 되어 있어서 만들때 깔끔함

(온습도 측정의 경우 표면온도 이기 때문에 온습도계를 아무데나 놓을순 없기 때문에 플라스틱 하우징으로 깔끔해서 선호 )


2. 가격이 적당히 저렴


3. 온습도 스팩 및 정밀도가 매우 우수함


4. 별도의 풀업저항을 연결할 필요없이 1가닥 와이어로 값을 센싱해올 수 있음. 

(저렴한 온습도 센서는 별도의 저항을 연결해서 배선해야 하지만 이제품은 다 내장 되어있음 )


5. 라이브러리 제공으로 아두이노에서 간단한 코드로 수치 해석 가능






                                3. 아두이노 yun 케이스



   
   - S/W
                            아두이노 개발툴 (  https://www.arduino.cc/en/Main/Software ) : 다운로드 하여 설치한다.



   AM2302(온습도센서) 라이브러리   

       https://github.com/adafruit/DHT-sensor-library 에서 DHT.h 파일을 다운로드 한다.
 
       

DHT.h




   - 기타
   SMS 연동 API
   ( 본 예제에서는 coolsms 의 API를 이용하므로 coolsms 에 회원가입해서 약간의 금액을 충전해야 함. )



4. 배선


                              1. 아두이노 yun 보드를 케이스에 안착시킨다.





                             2. 빨간선을 5V 에 , 검정선을 GND에 연결한다.


                                 

                              3. 노란선(데이터선)을 8번 핀에 연결한다.


 

                              4. 전선을 꾸깃꾸깃 정리 해서 케이스 뚜껑을 닫고 센서를 양면테잎으로 고정해준다.



                        이번강좌에서는 준비물과 하드웨어 배선까지 알아보았다.

                        다음 강좌에서 계속


Redo log 란?

- 오라클 데이터베이스에서 일어나는 모든 변화를 기록하는 파일이다.
- 최소 2그룹 1멤버의 구성이 필요하다.

오라클 redo log 파일은 오라클 데이터베이스에서 일어나는 모든 입력, 수정, 삭제 와 같은 트랜젝션이 발생할 경우
변경되는 내용을 벡터 형태로 기록하는 파일로써 오라클 데이터베이스의 트랜젝션 속도에 매우 영향을 미치는 중요한 파일이며
redo 라는 이름에서 알수 있듯이 복구를 위해 사용되는 파일이다.

redo log 파일은 일정 공간을 할당해 놓고 재사용하는 파일이며, 온라인백업(Online backup 혹은 Hot Backup) 을 위해 Archive log 모드로
데이터베이스를 운영하면 재사용되는 시점의 redo log  파일이 Archive log 파일로 복사된다.

데이터베이스의 모든 변경내역이 벡터 형태로 저장되기 때문에 Archive log 파일의 이빨이 빠지면 이빨 빠진데 까지만 복구된다는 말이 있는데,
이는 redo log 파일의 특징 때문이다.


관련뷰(view)

v$log
v$logfile



관리포인트

checkpoint not complete. 메세지가 자주 일어나는 경우 redo log 파일 크기를 키우거나 늘려주면 해결될 수 있다.

모든 데이터베이스 I/O 의 시작이므로 redo log 파일의 위치는 빠른 디스크에 두는 것이 좋다.

그룹당 멤버를 여러개 둘 수 있다. 멤버라는 것은 복사본이다. redolog 가 깨지면 데이터의 불완전 복구밖에 할 수 없기 때문에

중요한 부분이라 여러개의 복제본을 둔다. (보통은 2개정도 )

관련 명령어

alter database switch logfile;   // 강제 로그 스위치를 일으킨다. 

alter system checkpoint;


리두로그 그룹 추가 

alter database add logfile group 4
('/db/redo04.log','/db2/redo04.log') size 200m;

리두로그 그룹 삭제 

alter database drop logfile group 4;



추가와 삭제는 온라인 중에 가능하지만

관련뷰를 조회 해서 current 혹은 active 상태면 삭제할 수 없다.


새로운 그룹을 추가한다음에 alter system switch log file; 해서 로그 스위치를 일으킨 다음에

삭제하거나 그래도 사용중이라고 뜨면 checkpoint 를 발생시킨뒤 삭제하면 된다.


튜닝포인트

redo log 관련하여 성능의 개선이 되는지 여부를 확인하는 방법은 sysstat 에서 Execution 의 수를 비교해보면 알 수 있다.

예를들어 redo log 파일을 20메가로 했을경우와 극단적으로 20g를 했을 경우 트랜젝션이 밀집되는 시간에 redo log 파일의 크기를 변경해놓고

execution 수를 비교해보면 차이가 눈에 확 나타난다, 단 리두로그 파일의 크기가 커지면 check point 시의 시간이 오래걸리고

중간에 데이터베이스의 장애시 redo log 파일이 손상될 경우 증발되는 데이터가 커지기 때문에 주의를 요한다.

디스크중에 가장 빠른곳에 약간의 공간을 잡아서 redo log 파일을 배치해 두면 트랜젝션에서의 속도 향상을 체감 할 수 있다.


관련 장애 케이스

보통 데이터베이스에 redo01.log redo02.log 이렇게 생성해놓기 떄문에 윈도우 서버의 경우 드물게 정리 프로그램을 사용하여 log 파일을
전체 삭제 해버리는 경우가 발생할 수 있다. 보통은 지워지지 않으나(사용중이기 떄문에) 드물게 지워져서 장애를 유발하는 경우가 있어
일부는 redo01.rdo 형태로 파일명을 생성해 놓기도 한다.

linux , unix 등의 환경에서 개발자가 소스프로그램이나 import 데이터등을 업로드할때 공간이 부족해 보여서 log니까 지워도 상관없겠지 해서
지우는 경우도 간혹 발생한다.

현제 current redo log 를 삭제할 경우 현재 시점으로 복구는 불가능하니까 주의한다.


각종 보안 점검 후,

오라클 기동 불가 해결방법 모음


각종 보안 조치를 하다보면 오라클이 기동이 안될때가 있다

이러한 케이스들을 쭈욱 모아서 업데이트 할 예정이다.


케이스 1. 리스너(listener) 기동 불가


보통 보안점검 후 한참 있다가 DB 내릴일 있어서 내렸다가 올리면

리스너가 기동 안되는 경우가 많다.


대부분 바로 알아채기는 어려움


다음의 명령어를 oracle 유저로 수행해본다.

cat /etc/hosts 


해당 명령어의 결과가 나오면 다음으로 넘어가고 권한이 없다고 안열리면 권한을 풀어주자.




케이스 2. 아카이브 로그 full 


매우 드물게 아카이브 경로 권한을 뺏어서 안되는 경우가 있다.

아카이브 공간이 읽고쓰기가 잘 되는지 확인해보자


이 경우는 작업하고 잠시 있다가, 로그스위치가 발생할 때 hang 이 걸려있을 것이다.


해당 케이스는 bdump 에 alert_$ORACLE_SID.log 파일을 열어보면 archiver fail.. 등의 에러메세지가 나와있을 것이다.



df -k 

 


등의 명령어로 일단 여유공간이 충분한지 보고, 


alert log 에서 archive 관련 오류메세지가 없는지 확인해보자.




케이스 3. 사용자 기간 만료


데이터베이스 유저의 기간을 만료시키게 설정 할 경우 기간 만료로 서비스 하다가 중단되는 경우가 있다.
was로 커넥션 풀로 설정되어 있다면, 내리기 전까진 모르고 다시 기동할때 안된다던지
페이지에서 다이렉트 커넥트 부분에서 안된다던지의 증상이 나타난다.

sqlplus "/as sysdba" 로 접속한다.


select username, account_status from dba_users;

 

쿼리로 조회를 해본다.

사용자다 expired 혹은 lock 등의 상태로 나오면 풀어준다


lock 의 경우


alter user 유저명 account unlock;

 




케이스 4. 사용자 패스워드 대소문자 구분


보안을 강화 하다보면 오라클 parameter 에 case sensitive 를 true 로 해놓는 경우도 있다.

이럴경우 패스워드 대소문자를 가린다.


기존에 안해놓다가, 보안 강화후 해놓으면 접속이 안된다.


다음의 커멘드로 파라미터를 확인한다.

true 로 되어있으면 false로 바꾸던지 어플리케이션에서 대소문자 가려서 접속하자.


sqlplus "/as sysdba" 로 관리자로 접속하자.


show parameter case 

로 파라미터를 조회 하면


 

parameter                value

==========        =======

case_sensitive           true


로  나올것이다. 11g 기본값이 true 이기 때문에 무조건 true가 나쁜건 아니다.

password 대소문자 때문에 접속이 안될때 해주는 것이다.




케이스 5. 사용자 패스워드 실패 잠금


암호 10번 틀리면 잠기게 되어 있어서, 암호 틀려서 잠기는 경우도 많다.
낮은버전에서 그냥쓰다가 업그레이드 하거나 잘 쓰다가 보안지적사항 나와서 걸어놓고 처음 걸리면
이런 문제가 생길수 있다.

증상은 이전껀 잘되고 새로운건 안되는 경우
이미 커넥션 맺혀져 있는건 잘되고 새로 커넥션 맺는건 안될때 사용자 계정이 잠겼습니다 라는 에러메시지가 나온다

sqlplus "/as sysdba" 로 접속한다.


select username, account_status from dba_users;

 

쿼리로 조회를 해본다.

사용자다 expired 혹은 lock 등의 상태로 나오면 풀어준다


암호를 바꿔주거나 풀어주면 된다.



계속 케이스 나올때마다 업데이트 할 예정이다.

+ Recent posts