일단은 mysql 설치부터 해야한다

보면 위에 

sudo apt-get install mysql-server mysql-client

이거 쳐주고 띄어쓰기 주의!!

 

Y 만 눌러주면 설치 잘해줌

 

 

 

 

다시하면 설치되있어서 이리뜸

 

 

이제 소두를 이용해서 mysql 를 실행하자

 

 

 

database 들중에서 

 

use mysql;

을 사용하여 들어간다!

 

 

그리고 좀봄

저기 유저가 보인다 저기로그인 정보가 있을것이다

함불러와 보자 

 

정말 보기힘들지마 

authentication_string 이 암호다!

게불러오자

난 암호가 설정해줘서 이렇게 암호가 있다고 나온다

 

암튼 암호 바꾸기 시작해보자 

 

update user set authentication_string=password('1234') where user='root';

 

바뀜

리플레쉬 한번 해주고

 

flush privileges;

 

나가자

이거나 exit;

 

이거  quit;

암거나 둘다됨

 

그럼 이제 인터넷이 연결될 수 있게

 

하 /....  파일부터 찾자 안나오더라 한번에 

mysql 에서 mysqld.cnf를 찾아야한다

찾움

참고 위치

cd /etc/mysql/mysql.conf.d/

 

 

이제 vi 로 들어가서 좀 지우자

#붙이면 주석 처리되서

실행이 안되게 된다

 

수정이 안된다...

 

 

관리자 권한으로 해야한다

 

sudo vi mysqld.cnf

 

 

 

수정하고 그럼 이제  다시시작

 

sudo service mysql restart

 

 

이제 준비는 완료하엿다

mysql 관리자 권한만 수정하면 

 

하고싶은데로 할수 있다

 

 

 

mysql 들어가서 

 

grant all privileges on *.* to root@localhost identified by '1234';

권한 설정 하는거임 

 

 

끝 쓰면됨

 

 

 

 

 

블로그 이미지

Or71nH

,

 

                            센서                 

                 0~1023    |

server --------------- client

   |       1         0....*     |

   |                            |

   |                          stdoot

  DB

 

양방향 서버 

 

클라이언트 소켓을 

 

하프 클로우스 로 상대방이 끊었을떄 나옴

fgets() 엔터키ㄹ떄까지 기다림

 

 

 

이제 서버를 만들고 받을 준비를 해보자

 

 

#include <stdio.h>
#include <pthread.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <string.h>


#define BUF_SIZE 100
#define MAX_CLNT 256

void * handle_clnt(void * arg);
void send_msg(char * msg, int len);
void error_handling(char * msg);

int clnt_cnt=0;
int clnt_socks[MAX_CLNT];
pthread_mutex_t mutx;

int main(int argc, char *argv[])
{
	int serv_sock, clnt_sock;
	struct sockaddr_in serv_adr, clnt_adr;
	int clnt_adr_sz;
	pthread_t t_id;
	if(argc!=2) {
	printf("Usage : %s <port>\n", argv[0]);
	exit(1);
	}

	pthread_mutex_init(&mutx, NULL);
	serv_sock=socket(PF_INET, SOCK_STREAM, 0);

	memset(&serv_adr, 0, sizeof(serv_adr));
	serv_adr.sin_family=AF_INET;
	serv_adr.sin_addr.s_addr=htonl(INADDR_ANY);
	serv_adr.sin_port=htons(atoi(argv[1]));

	if(bind(serv_sock, (struct sockaddr*) &serv_adr, sizeof(serv_adr))==-1)
		error_handling("bind() error");

	if(listen(serv_sock, 5)==-1)
		error_handling("listen() error");

	while(1)
	{
		clnt_adr_sz=sizeof(clnt_adr);
		clnt_sock=accept(serv_sock, (struct sockaddr*)&clnt_adr,&clnt_adr_sz);

		pthread_mutex_lock(&mutx);
		clnt_socks[clnt_cnt++]=clnt_sock;
		pthread_mutex_unlock(&mutx);

		pthread_create(&t_id, NULL, handle_clnt, (void*)&clnt_sock);
		pthread_detach(t_id);
		printf("Connected client IP: %s \n", inet_ntoa(clnt_adr.sin_addr));
	}
	close(serv_sock);
	return 0;
}

void * handle_clnt(void * arg)
{
	int clnt_sock=*((int*)arg);
	int str_len=0, i;
	char msg[BUF_SIZE];

	while((str_len=read(clnt_sock, msg, sizeof(msg)))!=0)
		send_msg(msg, str_len);

	pthread_mutex_lock(&mutx);
	for(i=0;i<clnt_cnt; i++)
	{
		if(clnt_sock==clnt_socks[i])
		{
			while(i++<clnt_cnt-1)
				clnt_socks[i]=clnt_socks[i+1];
			break;
		}
	}
	clnt_cnt--;
	pthread_mutex_unlock(&mutx);
	close(clnt_sock);
	return NULL;
}

void send_msg(char * msg, int len) 
{
	int i;
	pthread_mutex_lock(&mutx);
	for (i=0; i<clnt_cnt; i++)
		write(clnt_socks[i], msg, len);

	pthread_mutex_unlock(&mutx);
}

void error_handling(char * message)
{
	fputs(message, stderr);
	fputc('\n', stderr);
	exit(1);
}

그리고 

접속할 유저들을 모집해보자

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <pthread.h>

#define BUF_SIZE 100
#define NAME_SIZE 20 

void * send_msg(void * arg);
void * recv_msg(void * arg);
void error_handling(char * msg);

char name[NAME_SIZE]="[DEFAULT]";
char msg[BUF_SIZE];

int main(int argc, char *argv[])
{
	int sock;
	struct sockaddr_in serv_addr;
	pthread_t snd_thread, rcv_thread;
	void * thread_return;
	if(argc!=4) {
		printf("Usage : %s <IP> <port> <name>\n", argv[0]);
		exit(1);
	}

	sprintf(name, "[%s]",argv[3]);
	sock=socket(PF_INET, SOCK_STREAM, 0);

	memset(&serv_addr, 0, sizeof(serv_addr));
	serv_addr.sin_family=AF_INET;
	serv_addr.sin_addr.s_addr=inet_addr(argv[1]);
	serv_addr.sin_port=htons(atoi(argv[2]));

	if(connect(sock, (struct sockaddr*)&serv_addr, sizeof(serv_addr))==-1)
		error_handling("connect() error");

	pthread_create(&snd_thread, NULL, send_msg, (void*)&sock);
	pthread_create(&rcv_thread, NULL, recv_msg, (void*)&sock);
	pthread_join(snd_thread, &thread_return);
	pthread_join(rcv_thread, &thread_return);
	close(sock);
	return 0;
}

void * send_msg(void * arg) 
{
	int sock=*((int*)arg);
	char name_msg[NAME_SIZE+BUF_SIZE];
	while(1)
	{
		fgets(msg, BUF_SIZE, stdin);
		if(!strcmp(msg,"q\n")||!strcmp(msg,"Q\n"))
		{
			close(sock);
			exit(0);
		}
		sprintf(name_msg,"%s %s", name, msg);
		write(sock, name_msg, strlen(name_msg));
	}
	return NULL;
}

void * recv_msg(void * arg)
{
	int sock= *((int*)arg);
	char name_msg[NAME_SIZE+BUF_SIZE];
	int str_len;
	while(1)
	{
		str_len=read(sock, name_msg, NAME_SIZE+BUF_SIZE-1);
		if(str_len==-1)
			return (void*)-1;
		name_msg[str_len]=0;
		fputs(name_msg, stdout);
	}
	return NULL;
}

void error_handling(char * message)
{
	fputs("message", stderr);
	fputc('\n', stderr);
	exit(1);
}

되긴 됫는데 복잡하게 체팅이 보여 내가보낸것도 나한테오고 ,,

 

수정좀 해야겟움

블로그 이미지

Or71nH

,

## 인덕터의 개요
• 인덕터

– 전류의 자기작용을 효과적으로 나타나게 만들기 위해 사용
– 코일(Coil)
– 구리선을 서로 단락되지 않게 용수철 형태로 감아서 만듦
– 대표적인 예 : 변압기나 전동기에 사용되는 규소 강판
• 인덕턴스
– 인덕터가 가지고 있는 성질
– 단위 : [H]
• 유도성 인덕턴스(리액턴스) : 주파수에 대하여 가지는 저항 값

 

 

 

 

## 인덕터의 종류
• 주파수에 따라 : 저주파 코일, 고주파 코일
• 용도에 따라 : 동조 코일, 쵸크 코일, 발진코일, 전원 트랜스 등
• 코일 종류에 따라 : 자심 코일, 성층 철심 코일, 공심 코일, 패라이트 코일 등

## 트렌스 기호

인덕터의 기호와 기능 

1) 인덕터
• 입력 전원용 필터나 스위칭 전원의 출력 필터로 사용 

2) 가변 인덕터
• 인덕턴스의 값을 변화시킬 수 있음
• OSC, IFT 등 

3) SMD 인덕터
• 휴대용, 초소형 전자기기의 고주파용으로 사용 

4) 상호 인덕턴스(트랜스포머)
• 녹색 : IPT(Input Trans, 입력 트랜스)
• 적색 : OPT(OutPut Trans, 출력트랜스)

 

 

1) 인덕터의 특성
• 인덕턴스 : 상호 인덕턴스(Mutual inductance), 자기 인덕턴스(Self Inductance)
• 코일에는 선재를 많이 감을수록 코일의 성질이 강해지고 용량 값이 커짐
• 내부에 아무것도 넣지 않은 공심으로 하는 것보다는 철심에 감거나 패라이트 코어라 부르는 철 분말을 압축, 응고시켜 감은 것이 보다 큰 용량 값을 얻을 수 있음


• 상호 인덕턴스
  – 전류가 흐르는 코일에 다른 코일을 가까이 했을 경우, 상호 유도 작용(Mutual induction)에 의해 접근 시킨 코일에 교류 전압 발생
  – 상호 유도 작용의 정도
  – 단위 : [H]

 


• 자기 인덕턴스
  – 코일이 하나만 있는 경우에도 자신이 발생하는 자속의 변화가 자신에게 영향을 주게 됨
  – 자기 유도 작용의 정도
  – 단위 : H 사용

 

 

## 인덕터의 분류
• 주파수에 따른 분류
  – 저주파 코일
  – 고주파 코일

 

• 용도에 따른 분류
  – 잡음 방지용 코일 : 전원이나 신호 선에 콘덴서와 병합, 잡음의 진입 방지
  – 동조 코일
  – 쵸크 코일 : 회로 내에서 교류 성분 여과(filtering)
  – 고주파용 쵸크 코일 : 고주파에 대하여 높은 임피던스를 가지며 회로 내에서 고주파 전류를 저지하고 직류나 저주파에 대하여 높은 임피던스를 가져야 하므로 크기가 비교적 큼
  – 발진 코일
  – 전원 트랜스 등

## 입출력 트랜스 기호

입출력 트랜스 기호

강한 전압  -----> 전원 트랜스 -----> 적당한 전압  으로 전환

 

 

 

 

## 코일의 특성 

1) 역기전력 작용
• 전류의 변화를 안정시키려고 하는 성질
  – 코일을 지나는 자속 증가 : 자속을 감소시키는 방향으로 역기전력 발생
  – 코일을 지나는 자속 감소 : 자속을 증가시키는 방향으로 유도 기전력 발생
  – 자신의 발생 원인이 되는 자속의 변화를 방해하려는 방향으로 발생(렌츠의 법칙)


• 상호 유도 작용
  – 변압기(transformer)에 사용되는 원리 : 코일의 상호 유도 작용 이용
  – 두 코일을 가까이 하면 한쪽 코일의 전력을 다른 쪽 코일에 전달 가능
  – 1차 측 권수와 2차 측 권수의 비율에 따라 2차 측의 전압 변화

 


• 공진 작용
  – 회로 : L 과 C 로 구성
  – 기능 : 특성 주파수의 교류 전류가 흐르지 않거나 또는 흐르기 쉽게 됨
  – 어떤 특정한 주파수만을 통과시키기 위하여 사용되는 필터회로에 이용
  – 라디오의 방송국을 선택하는 튜너는 이 성질을 이용해 특정한 주파수만 선택
  – 동조회로

 

 

## 잡음방지용 코일

• 각 색 점에 맞는 유효숫자를 색 저항 판독표에서 찾아 대입

 

 

 

 

## 쵸크 코일

• 각 색 대에 맞는 유효숫자를 색 저항 판독표에서 찾아 대입

 

블로그 이미지

Or71nH

,

콘덴서(커패시터)의 개요
• 두 전극판 사이에 유전체(절연체)를 사이에 두어 각각 전극 판에 +전기와 - 전기가 충전되며, 충전된 전기가 저항 R을 통하여 방전할 수 있는 회로
• 전하를 정해진 용량만큼 저장하고 다시 이 전하를 방전
• 직류 차단과 교류 통과, 축전지, 필터 회로 등에 활용

콘덴서(커패시터)의 종류와 기호
• 세라믹 콘덴서[Ceramic Condenser]
– 유전율이 높은 산화티탄이나 티탄산바륨 등의 자기를 유전체로 하는 소자
– 극성이 없음


• 마일러 콘덴서[Mylar Condenser]
– 전하를 저장하는 기능
– 교류 회로에서 공진 소자로 사용되고 교류 신호만 통과 시킴
– 저주파 및 고주파 특성 우수


• 전해 콘덴서[Electrolytic Condenser] : 전하를 일정한 방향으로 저장, +, - 극성 존재


• 탄탈 콘덴서(TC)[Tantalum Electrolytic Condenser]
– 전해 콘덴서에 비해 충·방전이 빠르며, 온도 범위가 넓고 안정성과 수명이 뛰어남
– 누설 전류가 적음
– 전해 콘덴서에 비해 내압이 낮고 용량이 작음


• 반고정 콘덴서[Trimmer] : 고주파 회로나 발진 회로의 미세 조정에 사용


• 가변 콘덴서[Varicon]
– 연속적으로 용량 변화 가능
– 송수 진기나 발진기의 동조 회로에 사용
– 라디오 방송 주파수를 선택할 때 사용

 

 

 

1) 콘덴서(커패시터)의 종류와 규격
• 가변 콘덴서(Varicon)
• 고정 콘덴서
  – 종이 콘덴서
  – 전해 콘덴서
  – 세라믹 콘덴서
  – 마일러 콘덴서
  – 탄탈 콘덴서
  – 폴리에스테르 콘덴서
• 반고정 콘덴서(Trimmer) 

 

2) 전해 콘덴서
• 극성(+/-)이 있음
• 소형 알루미늄 전해 콘덴서에는 (-) 극성을 표시하는 띠가 있는 것이 일반적임
• (-)극 리드선의 길이를 짧게 하여 잘못 삽입되는 것을 방지 

3) 탄탈 콘덴서
• 전극에 ‘탄탈륨’ 사용
• 비교적 큰 용량을 얻을 수 있음
• 온도 특성(온도의 변화에 따라 용량이 변화는 특성) 주파수 특성 우수
• 정밀 특성 및 온도 특성 회로에 많이 사용
• (+),(-)극성 구분 : 보통 부품 평면에 (-) 극 쪽 표기, 리드선의 길이가 긴 쪽이 (+), 짧은 쪽이 (-) 극

4) 고정 콘덴서
• 세라믹 콘덴서
  – 극성이 없고 온도에 대한 안정성이 좋음 : 온도 보상 회로 사용
  – 인덕턴스가 적어 고주파 특성 양호 : 고주파의 바이패스 회로 사용
• 마일러 콘덴서
  – 얇은 폴리에스테르(polyester) 필름을 양측에서 금속으로 삽입하여, 원통형으로 감은 것
  – +,- 극성이 없음
  – 고주파 신호 전달용으로 사용
• 마이카 콘덴서
  – 전기적 특성이 좋으며 내압이 높음
  – 특히 온도 계수가 좋아서 고주파 정밀 회로에 사용
• 칩 콘덴서
  – 첨단 정밀 회로용
  – 소형으로 만들어져 리드 없이 회로와 접속

 

 

## 적층형 콘덴서 판독하기

 

1   2   3 

6   5   4

 

위와 같이 순서가 되며

식대와 같이 4개를 이용하여 산출한다

 

 

## 원통형 콘덴서 판독하기

 

 

 

전에 4색대와 같으며 5색대는 온도 계수를 표시한다

 

 

 

## 전해 콘덴서 규격 읽기
• 표면에 그려진 극성 표시방법이나 리드 선의 길이를 관찰하여 극성 구분

 

## 세라믹 콘덴서 규격 읽기

• 표면에 기록된 숫자와 문자를 보고 콘덴서의 용량과 내압, 허용 오차 판독

 

## 마일러 콘덴서 규격 읽기

• 표면의 숫자와 문자를 보고 용량과 내압, 허용 오차 판독

 

 

 

 

## 콘덴서(커패시터) 시험 방법
• 멀티 테스터를 이용하여 콘덴서의 양부 판정
• 저항계(R)에 위치하고 테스터의 리드를 접촉시키는 순간에 계측기 바늘이 올라갔다가 ∞(무한대)의 위치로 되돌아오면 정상으로 판별 

## 콘덴서의 특성 곡선

 

 

 

 

 

 

 

 

 

 

 

 

 

블로그 이미지

Or71nH

,

## 저항, 전압과 전류 

## 저항

• 전기 도선은 금속으로 만드는데, 금속 안에서 전자들이 자유롭게 움직일 수 있기 때문
• 금속 안에는 전자를 잡아 끄는 양의 전하를 가진 원자핵들이 있음
• 공간에 주기적으로 배치되어 격자를 이루고 있는 금속의 원자들은 최외각 전자들을 쉽게 놓아주는 특징이 있음
• 저항
  – 자유전자들이 금속 도선 안을 온갖 방향으로 돌아다님.
  – 도선을 따라 일정한 방향으로 흐르는 순 전류가 없는 상태 2) 전압과 전류
• 전류
  – 양의 전하는 전위가 낮은 곳으로, 음의 전하는 전위가 높은 곳
  – 양쪽의 전위 차이가 없어질 때까지 움직임
• 물체가 위에서 아래로 떨어지는 이유 : 중력에 의한 위치에너지를 줄이기 위함
• 전하가 이동하는 이유 : 전기적인 위치에너지를 줄이기 위해 , 전위가 높은 곳에서 낮은 곳으로 이동함
• 전압 : 음의 전하가 많은 곳은 전위가 낮고, 양의 전하가 많은 곳은 전위가 높음

 

## 옴의 법칙

• 전류는 저항 양단에 가한 전압 또는 전위차에 비례, 저항에 반비례하는 법칙
• 전류의 세기는 두 점 사이의 전위차에 비례, 저항에 반비례하는 법칙 

##직렬연결된 저항의 합성 값

전체저항 Rt = R₁ + R₂ + R₃

• 저항 값은 증가함
• 전류는 옴의 법칙에 의하여 점점 작게 흐르게 됨 

 

## 병렬 연결된 저항의 합성 값 

병렬 연결

• 저항 값은 감소함


• 전류는 옴의 법칙에 의하여 점점 크게 흐르게 됨 

 

 

키르히호프의 법칙

• 임의의 복잡한 회로를 흐르는 전류를 구할 때 사용
• 전류에 관한 제1법칙과 전압에 관한 제2법칙
• 폐 회로망에서 1개 이상의 전원이 저항이나 임피던스에 접속되어 있을 때, 전류 법칙(제1법칙)과 전압 법칙(제2법칙)을 이용하여 각 저항에 흐르는 전류 값을 계산

 

 

## 제1법칙(전류의 법칙)

 

키르히호프의 제1법칙

– 접합점법칙 또는 전류 법칙
– 회로망 중 임의의 접속점(마디)에 들어가는 전류의 대수합은 그 접속점으로부터 나오는 전류의 대수합과 같음
– 근거 : 전하가 접합점에서 저절로 생기거나 없어지지 않는다는 전하 보존법칙

 

 

## 제2법칙(전압의 법칙)

키르히호프의 제2법칙

• 폐회로 법칙, 고리 법칙, 전압 법칙(근거 : 에너지 보존 법칙)
• 폐회로에서 기전력의 대수합은 각 부의 전압 강하의 대수합과 같음
• 직류와 교류 모두 적용 가능
• 저항 외에 인덕턴스, 콘덴서를 포함하거나 저항을 임피던스로 바꿀 수 있음
• 복잡한 회로망의 해석에 많이 쓰임

 

 

 

블로그 이미지

Or71nH

,