PIR센서
적외선을 통해 발산하는 물체의 움직임을 감지하는 센서이다.
움직이는 물체가 감지되면 HIGH값을 반환하고 그렇지 읺으면 LOW 값을 반환한다.
ex)현관 센서등
void setup()
{
Serial.begin(9600);
pinMode(7, INPUT);
pinMode(8, OUTPUT);
}
void loop()
{
int val = digitalRead(7);
Serial.println("val=" + (String)val);
if(val==HIGH){
digitalWrite(8,HIGH);
}else{
digitalWrite(8,LOW);
}
delay(100);
}
펄스 폭 변조(PWM)
디지털 신호를 아날로그 신호처럼 표현하기 위한 기법 디지털 신호 중 HIGH값의 비율(듀티 사이클)을 변경해가며 아날로그처럼 다양한 신호를 만들어낸다.
LOW를 지속하는 것 0% 듀티 사이클
HIGH를 지속하는 것 100% 듀티 사이클
analogWrite()
//0~255값을 출력
//analogWrite() ==> 2^8까지
#define LED 9
void setup()
{
Serial.begin(9600);
pinMode(9, OUTPUT);
}
void loop()
{
for(int i=0;i<256;i++)
{
analogWrite(LED,i);
Serial.println(i);
delay(20);
}
for(int i=255;i>=0;i--)
{
analogWrite(LED,i);
Serial.println(i);
delay(20);
}
}
분압기
void setup()
{
Serial.begin(9600);
pinMode(11,OUTPUT);
}
void loop()
{
//analogRead(아날로그 입력단자)
//analogRead()를 이용해 입력받을 수 있는 값
//2의 10승 0~1024범위의 값을 입력받을 수 있다.
int val = analogRead(A5);
Serial.println(val);
//analogWrite는 0 ~ 255를 출력한다
analogWrite(11,val/4);
delay(200);
}
LED 깜빡 예제
void setup()
{
Serial.begin(9600);
pinMode(13,OUTPUT);
}
void loop()
{
int val = analogRead(A2);
Serial.println(val);
//val에 따라서 delay시간을 0~2000초까지 조절해보자
int time = (int)(val/1023.0*2000.0);
digitalWrite(13,HIGH);
delay(time);
digitalWrite(13,LOW);
delay(time);
}
조도센서 (스마트 가로등)
void setup()
{
Serial.begin(9600);
pinMode(12,OUTPUT);
}
void loop()
{
//조도 센서값 측정
//스마트 가로등
int val = analogRead(A0);
Serial.println(val);
if(val>110){
digitalWrite(12,HIGH);
}else{
digitalWrite(12,LOW);
}
delay(200);
}
RGB LED
void setup()
{
Serial.begin(9600);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
}
void loop()
{
int red = random(256)+0;
int green = random(256)+0;
int blue = random(256)+0;
analogWrite(11, red);
analogWrite(10, green);
analogWrite(9, blue);
delay(100);
}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
Object Privileges(객체 권한)
객체 권한은 유저가 소유하고 있는 특정한 객체를 다른 사용자들이
엑세스 하거나 조작 할 수 있게 하기 위해서 생성을 합니다.
- 테이블이나 뷰, 시퀀스, 프로시저, 함수, 또는 패키지 중 지정된
한 오브젝트에 특별한 작업을 수행 할 수 있게 합니다.
- Object 소유자는 다른 사용자에게 특정 Object Privileges를 부여 할 수 있습니다.
- PUBLIC으로 권한을 부여하면 회수할 때도 PUBLIC으로 해야 합니다.
- Object Privileges는 Object Type에 따라서 다릅니다.
- 기본적으로 소유한 오브젝트에 대한 모든 권한이 자동적으로 획득됩니다
- WITH GRANT OPTION 옵션은 '롤' 에 권한을 부여할 때는 사용할 수 없습니다
-구문(Syntax)
GRANT object_privilege [column] ON object
TO {user[,user] | role |PUBLIC]
[WITH GRANT OPTION]
- object_privilege : 부여할 객체 권한의 이름
- object : 객체명
- user, role : 부여할 사용자 이름과 다른 데이터 베이스 역할 이름
- PUBLIC : 오브젝 권한, 또는 데이터베이스 역할을 모든 사용자에게 부여할 수 있습니다.
- WITH GRANT OPTION : 권한을 부여 받은 사용자도 부여 받은 권한을 다른 사용자 또는 역할로
부여할 수 있게 됩니다. Object 권한 부여 문법
오브젝 권한 부여 예제
SQL>GRANT SELECT, INSERT
ON emp
TO scott
WITH GRANT OPTION.
권한이 부여되었습니다.
*설명 : scott 사용자에게 emp테이블을 SELECT, INSERT할 수 있는 권한을 부여했습니다.
scott 사용자도 다른 사용자에게 그 권한을 부여 할 수 있습니다.
Object 권한의 박탈
- 객체 권한의 철회는 그 권한을 부여한 부여자만이 수행할수 있습니다.
- CASCADE CONSTRAINTS : 이 명령어의 사용으로 REFERENCES객체 권한에서 사용된
참조 무결성 제한을 같이 삭제 할 수 있습니다.
- WITH GRANT OPTION 으로 객체 권한을 부여한 사용자의 객체 권한을 철회하면, 권한을
부여받은 사용자가 부여한 객체 권한 또한 같이 철회되는 종속철회가 발생합니다.
오브젝 권한 철회 예제
SQL>REVOKE SELECT, INSERT
ON emp
FROM scott
*설명 : scott 사용자에게부여한 emp테이블에 대한 SELECT, INSERT권한이 회수 됩니다..
만약 scott사용자가 다른 사용자에게 SELECT, INSERT권한을 부여했으면..
그 권한들도 같이 철회가 됩니다.
WITH GRANT OPTION을 사용하여 객체 권한 취소
WITH GRANT OPTION을 사용하여 부여한 객체 권한을 취소하면 취소 작업이 연쇄적으로 수행 됩니다.
conn scott/tiger
grant select on member to storm
with grant option;
conn storm/tiger
select name from scott.member;
grant select on member to king
with grant option;
revoke select on member from storm;
-- storm 에 권한을 뺏으면 king에 권한도 뺏긴다.
ROLE의 생성
문법
ROLE의 부여 순서
① ROLE의 생성 : CREATE ROLE manager
② ROLE에 권한 부여 : GRANT create session, create table TO manager
③ ROLE을 사용자 또는 ROLE에게 부여 : GRANT manager TO scott, test;
CREATE ROLE manager
grant create session, create table,
create view, create synonym,
create user, alter user, drop user to manager;
revoke myrole from storm;
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
system에서하고
select * from dba_sys_privs
where grantee='CONNECT';
select * from dba_sys_privs
where grantee='RESOURCE';
GRANT DBA TO SCOTT;
'개발자 > 국비지원 SW' 카테고리의 다른 글
국비지원 34일차 - LCD, PIEZO, JDBC, PL/SQL, DECLARE, 반복문, EXIT조건 (0) | 2020.06.02 |
---|---|
국비지원 33일차 - DC 모터, Servo 모터, 초음파 센서, PL/SQL (0) | 2020.06.01 |
국비지원 31일차 - 배열 포인터, 구조체, 인덱스, 시스템 권한 (0) | 2020.05.28 |
국비지원 30일차 - string, 문자열 함수, 포인터, pass by value, pass by reference, VIEW, SYNONYM (0) | 2020.05.27 |
국비지원 29일차 - C 배열, 배열의 크기, DELETE문, TCL, SAVEPOINT, SEQUENCE (0) | 2020.05.26 |