카테고리 없음

아두이노 1차시

도민혁 2022. 4. 22. 09:35

iot란 무엇인가..?

 

이탈리아 북부에서 it를 융합해 가르치던 마시모 반지(Massimo Banzi)교수가 학교의 교육목적에 맞게 공학도가 아닌 예술 학도라도 접근하기 쉽고 저렴한 전자교육용 제품을 고민하여 아두이노를 탄생시켰다.

 

아두이노는 다양한 스위치나 센서로부터 입력 값을 받아들여 led나 모터와 같은 전자 장치들로 출력을 제어함으로써 환경과 상호작용이 가능한 물건을 만들어 낼 수 있다.

 

아두이노는 c++을 기반으로 하고있다.

KakaoTalk_20220422_060643377.mp4
7.70MB

 

 

iot = internet of things

사물인터넷은 사물에 센서를 부착해 실시간으로 데이터를 인터넷으로 주고받는 기술이나 환경을 일컫는다. 지금도 인터넷에 연결된 사물은 주변에서 적잖게 볼 수 있다. 하지만 사물인터넷이 여는 세상은 이와 다르다.

지금까진 인터넷에 연결된 기기들이 정보를 주고받으려면 인간의 ‘조작’이 개입돼야 했다. 사물인터넷 시대가 열리면 인터넷에 연결된 기기는 사람의 도움 없이 서로 알아서 정보를 주고 받으며 대화를 나눌 수 있다. 블루투스나 근거리무선통신(NFC), 센서데이터, 네트워크가 이들의 자율적인 소통을 돕는 기술이 된다.

 

센서, 사물 간 대화를 위한 필수요소

사람이 누군가와 대화를 하기 위해 상대방의 얼굴을 바라보거나 이름을 물어보듯, 사물도 서로 대화를 나누려면 상대 기기 아이디나 IP주소를 알아야 한다. 기기끼리 통성명을 나눈 다음에는 어떤 대화를 나눌 것인지 화제를 찾아야 한다. 사람도 대화할 때 뭔가 공통의 관심사를 꺼내서 대화를 나누지 않는가.

사물인터넷에선 모든 물리적 센서 정보가 화제거리다. 온도, 습도, 열, 가스, 조도, 초음파 센서부터 원격감지, SAR, 레이더, 위치, 모션, 영상센서 등 유형 사물과 주위 환경으로부터 정보를 바탕으로 사물 간 대화가 이뤄진다.

화제거리만 있으면 상대방과 자유롭게 대화를 나눌 수 있는 사람과 달리, 사물끼리 통신을 하려면 몇 가지 기술이 더 필요하다. 사물끼리 통신을 주고 받을 수 있는 통로, 사물끼리 공통적으로 사용할 수 있는 언어가 필요하다. 센싱 기술, 유·무선 통신 및 네트워크 인프라, IoT 서비스 인터페이스 기술 등이 그것이다. 이 기술을 활용해야 비로소 사물간 온도나 습도, 위치나 열 같은 정보를 주고받을 수 있다.

센싱 기술은 사물끼리 통신할 수 있는 통로 역할을 한다. 정보를 수집·처리·관리하고 정보가 서비스로 구현되기 위한 환경을 지원한다. 이를 위한 기술로는 근거리 통신기술(WPAN, WLAN 등), 이동통신기술(2G, 3G 등)과 유선통신기술(이더넷, BcN 등) 같은 유·무선 통신 및 네트워크 인프라 기술이 있다.

 

 

 

아두이노의 종류

 

 

 

 

 

아두이노 우노

 

 

아두이노(Arduino)는 대중적으로 가장 많이 사용되고 있는 오픈 소스 하드웨어로 다양한 웨어러블 컴퓨터 프로토타입 개발 및 차세대 디지털 기기 발명에 활용되고 있다. 아두이노 우노(Arduino Uno)는 그 중에서도 가장 널리 사용되는 아두이노 시리즈로 알려져 있다.

 

 

 

 

아두이노 마이크로

 

아두이노(Arduino)는 대중적으로 가장 많이 사용되고 있는 오픈 소스 하드웨어로 다양한 웨어러블 컴퓨터 프로토타입 개발 및 차세대 디지털 기기 발명에 활용되고 있다. 이 중 아두이노 마이크로(Arduino Micro)는 추가 프로세서의 필요 없이 USB 인터페이스를 지원한다.

 

 

 

 

아두이노 나노

아두이노 우노(uno)및 이의 축소형인 아두이노 나노(Nano)이다.

 

 

 

 

 

 

아두이노 메가

 

 

 

 

##아두이노 우노

 

 

 

 

 

 

 

 

 

아두이노 

아날로그,디지털 신호

 

 

 

아날로그는 외부적인 원인에 의하여 연속적으로 변하는 물리량을 나타내는 것으로, 온도계의 수은주나 시계의 바늘 위치,빛이나 소리 등을 들 수 있다.

-- 특정 상태에 대하여 무한한 신수 값을 가짐--

 

디지털은 불연속적인 제한된 값 만을 가진다.

--0.1로 이루어진 값을 출력하거나 입력을 받음--

 

 

 

 

 

 

옴의 법칙

V=IR

V = 전압         전압은 전류와 저항에 비례

I = 전류          전류는 전압에 비례하고 저항에 반비례

R = 저항         저항은 전압에 비례하고 전류에 반비례

 

전류의 세기(I) = 전압(V) / 전기 저항(R)

 

 

 

 

 

아두이노 브레드보드(빵판)

 

 

- 브레드보드 내부에서 세로로 모두 연결되어 있음.

- (-)는 아두이노보드에서는 GND와 연결하고, 부품들의 -와 연결하며, 보통 파란색 또는 검정색으로 표시함.

- (+)는 아두이노보드에서 5v,3.3V,와 연결하고 일반 부품들의 +와 연결하며 보통 빨간색으로 표시함.

 

긴 가로선엔 전원을 연결, 세로선에는 센서와 아두이노를 연결

 

 

 

 

 

 

 

 

라즈베리파이

라즈베리 파이는 영국 잉글랜드의 라즈베리 파이 재단이 학교와 개발도상국에서 기초 컴퓨터 과학의 교육을 교육의 증진시키기 위해 개발한 컴퓨터이다.

 

라즈베리파이의 운영체제는 리눅스이며 rasbion이라는 데비안 계열의 운영체제이다.

 

 

 

 

 

라즈베리파이 종류

 

 

 

 

 

 

 

led 3개를 사용하여 동시에 3초씩마다 켜지게 하기

 

 

 

코드 설명

 

일단 led3개를 실행을 시켜 줄 거기 때문에 #define을 쓴다음 led이름을 입력해주고 그 뒤에 led선에 꼽은 번호를 입력해준다.

void setup으로 아두이노를 실행을 시켜준다.

 

그다음 pinMode(led(이름),OUTPUT); 을 쓴다 이유는 pinMode를 출력으로 설정해야하기 때문, (INPUT은 입력)

 

void loop로 반복을 해준다 

while을 써도 좋고 안써도 좋은데 while을 쓸 경우, (1)을 써줘야 한다 (참일 경우 반복)

 

그 아래 코드에 digitalWrite(led(이름), HIGH); //led 켜기

delay(3000);을 써준다. 이 뒤에 숫자는 1000이면 1초이기 때문에 나는 3초는 켰다 꺼졌다 반복을 해야하기 때문에 3000을 써줘야 한다.(만약 0.1초시 100)

3개를 반복을 해줘야 하기 때문에 digitalWrite(led(이름), HIGH); //led 3개를 써준다.

 

그다음 digitalWrite(led(이름), LOW);//led 끄기

delay(3000); //3초 기다리기

 

 

회로도

 

빵판에 led를 꼽은 후 레지스터를 led의 긴쪽에 세로로 연결한다.

그 다음 선을 세로로 꼽은 후 우노의 번호중 아무거나에 꼽는다.

또 하나의 선을 연결해야하는데, led아래에 GND한테 또 꼽아줘야한다.

실행영상

 

KakaoTalk_20220422_060643377.mp4
7.70MB