SlideShare une entreprise Scribd logo
1  sur  66
아두이노로 배우는 피지컬 컴퓨팅(중급)
부산전자공고 부설 전자계열공동실습소
김기태
목차
차시 교육 내용
(01차시) 아두이노 HC-06 블루투스 모듈 사용하기
(02차시) 아두이노와 앱인벤터를 통한 블루투스 모듈 연동
(03차시) 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅰ
(04차시) 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅱ
(05차시) 아두이노 IoT 통한 LED 제어Ⅰ
(06차시) 아두이노 IoT 통한 LED 제어Ⅱ
실습부품
01. 아두이노 1개
02. 아두이노케이블 1개
03. 브레드보드(긴것) 1개
04. 점퍼케이블 F/F 6개
실습부품
05. 점퍼케이블 F/M 3개
06. SW(Push버튼) 1개
07. 330저항 1개
08. 1채널 릴레이 1개
실습부품
09. 조명 소켓(E26타입) 1개
10. 220V 전원 코드선 1개
11. 조명 1개
12. 블루투스 모듈(HC-06) 1개
소스코드 저장소
http://gist.github.com/taesamja
mid_02_ardu.ino ~ mid_24_py.py
1. 아두이노 HC-06 블루투스 모듈 사용하기
1. 아두이노 HC-06 블루투스 모듈 사용하기
1. 아두이노 HC-06 블루투스 모듈 사용하기
1. 아두이노 HC-06 블루투스 모듈 사용하기
1. 아두이노 HC-06 블루투스 모듈 사용하기
1. 아두이노 HC-06 블루투스 모듈 사용하기
1. 아두이노 HC-06 블루투스 모듈 사용하기
1. 아두이노 HC-06 블루투스 모듈 사용하기
아두이노 스케치 코드
#include <SoftwareSerial.h>
int rx=2;
int tx=3;
SoftwareSerial BTSerial(rx, tx);
void setup() {
Serial.begin(9600);
BTSerial.begin(9600);
}
void loop() {
if(BTSerial.available())
Serial.write(BTSerial.read());
if(Serial.available())
BTSerial.write(Serial.read());
}
1. 아두이노 HC-06 블루투스 모듈 사용하기
동작설명
# 시리얼모니터 창을 통한 HC-06 모듈 환경설정
① 아두이노 시리얼 모니터 창의 맨 밑에 “line ending 없음”으로 설정.
② 아두이노 시리얼 모니터 창 입력에 다음 순서대로 입력.
▷ AT ⇒ OK : 블루투스 통신 준비가 됨.
▷ AT+NAMEtae01⇒ OKsetname : 블루투스 이름을 “tae01"로 설정
▷ AT+PIN1234⇒ OKsetPin : 블루투스 비밀번호를 “1234”로 설정
▷ AT+BAUD4⇒ OK9600 : 블루투스 통신속도를 “9600bps"로 설정
(※ 참고 : BAUD1=1200, 2=2400, 3=4800, 4=9600,
BAUD5=19200, 6=38400, 7=57600, 8=115200 )
2. 아두이노와 앱인벤터를 통한 블루투스 모듈 연동
아두이노 스케치 코드
#include <SoftwareSerial.h>
int rx=2; int tx=3;
SoftwareSerial BTSerial(rx, tx);
const int ledPin = 13;
void setup() {
BTSerial.begin(9600);
pinMode(ledPin, OUTPUT);
}
void loop() {
if(BTSerial.available()) {
char ind = BTSerial.read();
if(ind == 'H')
digitalWrite(ledPin, HIGH);
if(ind == 'L')
digitalWrite(ledPin, LOW);
}
}
2. 아두이노와 앱인벤터를 통한 블루투스 모듈 연동
앱인벤터 주소 : http://ai2.appinventor.mit.edu
http://ai2.appinventor.mit.edu
2. 아두이노와 앱인벤터를 통한 블루투스 모듈 연동
2. 아두이노와 앱인벤터를 통한 블루투스 모듈 연동
앱인벤터 디자인
2. 아두이노와 앱인벤터를 통한 블루투스 모듈 연동
앱인벤터 블럭
2. 아두이노와 앱인벤터를 통한 블루투스 모듈 연동
스마트폰과 HC-06 블루투스 모듈 페어링 과정
1. 스마트폰에서 블루투스 기능 활성화
2. 아두이노와 앱인벤터를 통한 블루투스 모듈 연동
스마트폰과 HC-06 블루투스 모듈 페어링 과정
2. 스마트폰과 HC-06 블루투스 모듈 페어링
2. 아두이노와 앱인벤터를 통한 블루투스 모듈 연동
아두이노, 블루투스 모듈, 스마트폰과의 연동 동작설명
3. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅰ
3. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅰ
3. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅰ
3. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅰ
[ 접점식 릴레이 ] [ 비 접점식 릴레이 ]
3. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅰ
릴레이와 푸쉬버튼을 이용한 AC220V 전등 제어
3. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅰ
릴레이와 푸쉬버튼을 이용한 AC220V 전등 제어 회로도
3. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅰ
릴레이와 아두이노를 활용한 AC220V 전등 제어
3. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅰ
릴레이와 아두이노를 활용한 AC220V 전등 제어 회로도
3. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅰ
릴레이와 아두이노를 활용한 AC220V 전등 제어 아두이노 코드
int light = 9;
void setup() {
Serial.begin(9600);
pinMode(light, OUTPUT);
}
void loop() {
if(Serial.available()) {
char ind = Serial.read();
if(ind == 'H' || ind == 'h')
digitalWrite(light, HIGH);
if(ind == 'L' || ind == 'l')
digitalWrite(light, LOW);
}
}
3. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅰ
릴레이와 아두이노를 활용한 AC220V 전등 제어 동작
4. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅱ
릴레이, 블루투스, 아두이노를 활용한 AC220V 전등 제어
4. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅱ
릴레이, 블루투스, 아두이노를 활용한 AC220V 전등 제어 회로도
4. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅱ
릴레이, 블루투스, 아두이노를 활용한 AC220V 전등 제어 아두이노 코드
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(2, 3);
// 2번:Rx -> HC-06:Tx,
// 3번:Tx -> HC-06:Rx
const int ledPin = 9;
char indata;
void setup() {
BTSerial.begin(9600);
pinMode(ledPin, OUTPUT);
}
void loop() {
if(BTSerial.available()) {
indata = BTSerial.read();
if(indata == 'H')
digitalWrite(ledPin, HIGH);
if(indata == 'L')
digitalWrite(ledPin, LOW);
}
}
4. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅱ
앱인벤터 디자인
4. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅱ
앱인벤터 블럭
4. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅱ
아두이노, 블루투스 모듈, 스마트폰과의 연동 동작설명
5. 아두이노 IoT 통한 LED 제어Ⅰ
5. 아두이노 IoT 통한 LED 제어Ⅰ
https://www.youtube.com/watch?v=deolstthDr4&t=4s
https://www.youtube.com/watch?v=oYLi1eWBUvU
https://www.youtube.com/watch?v=RKT1wsG4BmE
5. 아두이노 IoT 통한 LED 제어Ⅰ
파이선 설치
http://www.python.org
5. 아두이노 IoT 통한 LED 제어Ⅰ
파이선 설치
5. 아두이노 IoT 통한 LED 제어Ⅰ
파이선 환경설정
[제어판]-[시스템및보안]-[시스템]-[설정변경]-[고급]-[환경변수]-[시스템변수]의
“Path"항목 편집을 클릭하여 "C:Python27"추가 입력한다.
5. 아두이노 IoT 통한 LED 제어Ⅰ
윈도우 커맨드 창
python –m pip install –U pip setuptools
pip 설치
시작 – 실행 – cmd 입력
5. 아두이노 IoT 통한 LED 제어Ⅰ
파이선 시리얼 패키지 설치(pyserial)
python –m pip install pyserial
5. 아두이노 IoT 통한 LED 제어Ⅰ
아두이노와 파이선 시리얼 통신 : 아두이노 코드
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("Hello World");
delay(1000);
}
5. 아두이노 IoT 통한 LED 제어Ⅰ
아두이노와 파이선 시리얼 통신 : 파이선 코드
# python 2.7 version
from serial import Serial
ser = Serial('COM6', 9600)
while 1:
print ser.readline()
5. 아두이노 IoT 통한 LED 제어Ⅰ
아두이노와 파이선 시리얼 통신 : 동작
5. 아두이노 IoT 통한 LED 제어Ⅰ
파이선과 간단한 웹서버 구축 : 파이선 코드
# python 2.7 version
from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler
class MyHandler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header("Content-type", "text/html")
self.end_headers()
self.wfile.write("Hello world")
if __name__ == '__main__':
server = HTTPServer(('',8888), MyHandler)
print "Started WebServer on port 8888..."
print "Press ^C to quit webserver"
server.serve_forever()
5. 아두이노 IoT 통한 LED 제어Ⅰ
파이선과 간단한 웹서버 구축 : 동작
5. 아두이노 IoT 통한 LED 제어Ⅰ
아두이노 IoT통신을 활용한 제어 구성도
5. 아두이노 IoT 통한 LED 제어Ⅰ
아두이노 IoT통신을 활용한 제어 회로도
5. 아두이노 IoT 통한 LED 제어Ⅰ
아두이노 IoT통신을 활용한 제어 : 아두이노 코드
int led = 13;
void setup() {
Serial.begin(9600);
pinMode(led, OUTPUT);
}
void loop() {
if(Serial.available()) {
char indata = Serial.read();
if(indata == 'H')
digitalWrite(led, HIGH);
if(indata == 'L')
digitalWrite(led, LOW);
}
}
5. 아두이노 IoT 통한 LED 제어Ⅰ
아두이노 IoT통신을 활용한 제어 : 파이선 코드
# python 2.7 version
import BaseHTTPServer
from serial import Serial
ser = Serial('COM6')
class MyHandler(BaseHTTPServer.BaseHTTPRequestHandler):
def do_POST(self):
self.send_response(200)
self.send_header('Content-type', 'text/html')
self.end_headers()
length = int(self.headers.getheader('content-length'))
data = self.rfile.read(length)
print data
if data == 'H':
ser.write('H')
elif data == 'L':
ser.write('L')
return
5. 아두이노 IoT 통한 LED 제어Ⅰ
아두이노 IoT통신을 활용한 제어 : 파이선 코드
print('Starting server...')
server_address = ('', 9999)
server = BaseHTTPServer.HTTPServer(server_address, MyHandler)
print('Running server...')
server.serve_forever()
5. 아두이노 IoT 통한 LED 제어Ⅰ
아두이노 IoT통신을 활용한 제어 : 앱인벤터 디자인
5. 아두이노 IoT 통한 LED 제어Ⅰ
아두이노 IoT통신을 활용한 제어 : 앱인벤터 블럭
5. 아두이노 IoT 통한 LED 제어Ⅰ
아두이노 IoT통신을 활용한 제어 : 동작
아두이노 IoT통신을 활용한 제어 회로도
6. 아두이노 IoT 통한 LED 제어Ⅱ
아두이노 IoT통신을 활용한 제어 : 아두이노 코드
int light = 9;
void setup() {
Serial.begin(9600);
pinMode(light, OUTPUT);
}
void loop() {
if(Serial.available()) {
char indata = Serial.read();
if(indata == 'H')
digitalWrite(light, HIGH);
if(indata == 'L')
digitalWrite(light, LOW);
}
}
6. 아두이노 IoT 통한 LED 제어Ⅱ
아두이노 IoT통신을 활용한 제어 : 파이선 코드 3.5버전
6. 아두이노 IoT 통한 LED 제어Ⅱ
# python 3.5 version
from http.server import BaseHTTPRequestHandler, HTTPServer
from serial import Serial
ser = Serial('COM9')
class MyHandler(BaseHTTPRequestHandler):
def do_POST(self):
self.send_response(200)
self.send_header('Content-type','text/html')
self.end_headers()
print(self.headers)
data=self.rfile.read(1)
print(data)
ser_data = data.decode()
print(ser_data)
if ser_data == 'H':
ser.write(data)
elif ser_data == 'L':
ser.write(data)
return ()
아두이노 IoT통신을 활용한 제어 : 파이선 코드 3.5버전
6. 아두이노 IoT 통한 LED 제어Ⅱ
print('starting server...')
server_address = ('', 9999)
httpd = HTTPServer(server_address, MyHandler)
print('running server...')
httpd.serve_forever()
아두이노 IoT통신을 활용한 제어 : 앱인벤터 디자인
6. 아두이노 IoT 통한 LED 제어Ⅱ
아두이노 IoT통신을 활용한 제어 : 앱인벤터 블럭
6. 아두이노 IoT 통한 LED 제어Ⅱ
아두이노 IoT통신을 활용한 제어 : 동작
6. 아두이노 IoT 통한 LED 제어Ⅱ

Contenu connexe

En vedette

#아두이노 초급연수
#아두이노 초급연수#아두이노 초급연수
#아두이노 초급연수gongdigi24
 
코딩클럽 왕초보 아두이노따라잡기 1탄
코딩클럽 왕초보 아두이노따라잡기 1탄코딩클럽 왕초보 아두이노따라잡기 1탄
코딩클럽 왕초보 아두이노따라잡기 1탄Eunhee Ha
 
아두이노 배워보기 - 1강
아두이노 배워보기 - 1강아두이노 배워보기 - 1강
아두이노 배워보기 - 1강Junseong Kim
 
창조경제 IoT 해커톤 교육 4일차
창조경제 IoT 해커톤 교육 4일차창조경제 IoT 해커톤 교육 4일차
창조경제 IoT 해커톤 교육 4일차유명환 FunFun Yoo
 
손으로 만드는 아두이노
손으로 만드는 아두이노손으로 만드는 아두이노
손으로 만드는 아두이노Kisoon Eom
 
Aperture : 5. 초음파센서를 이용한 거리 측정하기
Aperture : 5. 초음파센서를 이용한 거리 측정하기Aperture : 5. 초음파센서를 이용한 거리 측정하기
Aperture : 5. 초음파센서를 이용한 거리 측정하기Hyemin Song
 
Aperture : 2. 브레드보드를 이용해서 led 켜보기
Aperture : 2. 브레드보드를 이용해서 led 켜보기Aperture : 2. 브레드보드를 이용해서 led 켜보기
Aperture : 2. 브레드보드를 이용해서 led 켜보기Hyemin Song
 
Aperture : 7. 7세그먼트를 이용해 숫자 출력하기
Aperture : 7. 7세그먼트를 이용해 숫자 출력하기Aperture : 7. 7세그먼트를 이용해 숫자 출력하기
Aperture : 7. 7세그먼트를 이용해 숫자 출력하기Hyemin Song
 
1강. 아두이노 기초 - 메이커스쿨
1강. 아두이노 기초 - 메이커스쿨1강. 아두이노 기초 - 메이커스쿨
1강. 아두이노 기초 - 메이커스쿨Josh Park
 
Aperture : 6. 피에조 부저를 이용해 멜로디 연주하기
Aperture : 6. 피에조 부저를 이용해 멜로디 연주하기Aperture : 6. 피에조 부저를 이용해 멜로디 연주하기
Aperture : 6. 피에조 부저를 이용해 멜로디 연주하기Hyemin Song
 
[아두이노 워크샵 1차] 아두이노 소개 / LED / 피에조 부저 / 버튼
[아두이노 워크샵 1차] 아두이노 소개 / LED / 피에조 부저 / 버튼[아두이노 워크샵 1차] 아두이노 소개 / LED / 피에조 부저 / 버튼
[아두이노 워크샵 1차] 아두이노 소개 / LED / 피에조 부저 / 버튼Codingclub
 
아두이노 4강 maker_school
아두이노 4강 maker_school아두이노 4강 maker_school
아두이노 4강 maker_schoolJosh Park
 
강의자료 코딩클럽 아두이노 워크샵-2015.4.11
강의자료 코딩클럽 아두이노 워크샵-2015.4.11강의자료 코딩클럽 아두이노 워크샵-2015.4.11
강의자료 코딩클럽 아두이노 워크샵-2015.4.11SongSup Shin
 
아두이노 5강 maker_school
아두이노 5강 maker_school아두이노 5강 maker_school
아두이노 5강 maker_schoolJosh Park
 
[JCLP Season 01] Maker Project Day 1 - 1
[JCLP Season 01] Maker Project Day 1 - 1[JCLP Season 01] Maker Project Day 1 - 1
[JCLP Season 01] Maker Project Day 1 - 1Junhyuk Lee
 
신간안내 말하고 듣고 대화하는 Physical computing 아두이노
신간안내 말하고 듣고 대화하는 Physical computing 아두이노신간안내 말하고 듣고 대화하는 Physical computing 아두이노
신간안내 말하고 듣고 대화하는 Physical computing 아두이노sookmyungvisual
 
[알고리즘 스터디 3주차]기수정렬/계수정렬/버킷정렬
[알고리즘 스터디 3주차]기수정렬/계수정렬/버킷정렬[알고리즘 스터디 3주차]기수정렬/계수정렬/버킷정렬
[알고리즘 스터디 3주차]기수정렬/계수정렬/버킷정렬Codingclub
 
Aperture : 8. 스위치를 이용한 led 제어하기
Aperture : 8. 스위치를 이용한 led 제어하기Aperture : 8. 스위치를 이용한 led 제어하기
Aperture : 8. 스위치를 이용한 led 제어하기Hyemin Song
 
아두이노 1강 maker_school
아두이노 1강 maker_school아두이노 1강 maker_school
아두이노 1강 maker_schoolJosh Park
 
개앞맵시 '건방진' 사용 설명서
개앞맵시 '건방진' 사용 설명서개앞맵시 '건방진' 사용 설명서
개앞맵시 '건방진' 사용 설명서복연 이
 

En vedette (20)

#아두이노 초급연수
#아두이노 초급연수#아두이노 초급연수
#아두이노 초급연수
 
코딩클럽 왕초보 아두이노따라잡기 1탄
코딩클럽 왕초보 아두이노따라잡기 1탄코딩클럽 왕초보 아두이노따라잡기 1탄
코딩클럽 왕초보 아두이노따라잡기 1탄
 
아두이노 배워보기 - 1강
아두이노 배워보기 - 1강아두이노 배워보기 - 1강
아두이노 배워보기 - 1강
 
창조경제 IoT 해커톤 교육 4일차
창조경제 IoT 해커톤 교육 4일차창조경제 IoT 해커톤 교육 4일차
창조경제 IoT 해커톤 교육 4일차
 
손으로 만드는 아두이노
손으로 만드는 아두이노손으로 만드는 아두이노
손으로 만드는 아두이노
 
Aperture : 5. 초음파센서를 이용한 거리 측정하기
Aperture : 5. 초음파센서를 이용한 거리 측정하기Aperture : 5. 초음파센서를 이용한 거리 측정하기
Aperture : 5. 초음파센서를 이용한 거리 측정하기
 
Aperture : 2. 브레드보드를 이용해서 led 켜보기
Aperture : 2. 브레드보드를 이용해서 led 켜보기Aperture : 2. 브레드보드를 이용해서 led 켜보기
Aperture : 2. 브레드보드를 이용해서 led 켜보기
 
Aperture : 7. 7세그먼트를 이용해 숫자 출력하기
Aperture : 7. 7세그먼트를 이용해 숫자 출력하기Aperture : 7. 7세그먼트를 이용해 숫자 출력하기
Aperture : 7. 7세그먼트를 이용해 숫자 출력하기
 
1강. 아두이노 기초 - 메이커스쿨
1강. 아두이노 기초 - 메이커스쿨1강. 아두이노 기초 - 메이커스쿨
1강. 아두이노 기초 - 메이커스쿨
 
Aperture : 6. 피에조 부저를 이용해 멜로디 연주하기
Aperture : 6. 피에조 부저를 이용해 멜로디 연주하기Aperture : 6. 피에조 부저를 이용해 멜로디 연주하기
Aperture : 6. 피에조 부저를 이용해 멜로디 연주하기
 
[아두이노 워크샵 1차] 아두이노 소개 / LED / 피에조 부저 / 버튼
[아두이노 워크샵 1차] 아두이노 소개 / LED / 피에조 부저 / 버튼[아두이노 워크샵 1차] 아두이노 소개 / LED / 피에조 부저 / 버튼
[아두이노 워크샵 1차] 아두이노 소개 / LED / 피에조 부저 / 버튼
 
아두이노 4강 maker_school
아두이노 4강 maker_school아두이노 4강 maker_school
아두이노 4강 maker_school
 
강의자료 코딩클럽 아두이노 워크샵-2015.4.11
강의자료 코딩클럽 아두이노 워크샵-2015.4.11강의자료 코딩클럽 아두이노 워크샵-2015.4.11
강의자료 코딩클럽 아두이노 워크샵-2015.4.11
 
아두이노 5강 maker_school
아두이노 5강 maker_school아두이노 5강 maker_school
아두이노 5강 maker_school
 
[JCLP Season 01] Maker Project Day 1 - 1
[JCLP Season 01] Maker Project Day 1 - 1[JCLP Season 01] Maker Project Day 1 - 1
[JCLP Season 01] Maker Project Day 1 - 1
 
신간안내 말하고 듣고 대화하는 Physical computing 아두이노
신간안내 말하고 듣고 대화하는 Physical computing 아두이노신간안내 말하고 듣고 대화하는 Physical computing 아두이노
신간안내 말하고 듣고 대화하는 Physical computing 아두이노
 
[알고리즘 스터디 3주차]기수정렬/계수정렬/버킷정렬
[알고리즘 스터디 3주차]기수정렬/계수정렬/버킷정렬[알고리즘 스터디 3주차]기수정렬/계수정렬/버킷정렬
[알고리즘 스터디 3주차]기수정렬/계수정렬/버킷정렬
 
Aperture : 8. 스위치를 이용한 led 제어하기
Aperture : 8. 스위치를 이용한 led 제어하기Aperture : 8. 스위치를 이용한 led 제어하기
Aperture : 8. 스위치를 이용한 led 제어하기
 
아두이노 1강 maker_school
아두이노 1강 maker_school아두이노 1강 maker_school
아두이노 1강 maker_school
 
개앞맵시 '건방진' 사용 설명서
개앞맵시 '건방진' 사용 설명서개앞맵시 '건방진' 사용 설명서
개앞맵시 '건방진' 사용 설명서
 

Similaire à 아두이노로 배우는 피지컬 컴퓨팅(중급)

Test-SDIC2018-2(answer)
Test-SDIC2018-2(answer)Test-SDIC2018-2(answer)
Test-SDIC2018-2(answer)Yong Heui Cho
 
TestSDIC2015-1(Answer)
TestSDIC2015-1(Answer)TestSDIC2015-1(Answer)
TestSDIC2015-1(Answer)Yong Heui Cho
 
140918 IOT hub 컨셉 및 라인업_1.0
140918 IOT hub 컨셉 및 라인업_1.0140918 IOT hub 컨셉 및 라인업_1.0
140918 IOT hub 컨셉 및 라인업_1.0Seung Min Shin
 
메이커 페어 서울 2018 - 측우자격루(개발자용)
메이커 페어 서울 2018 - 측우자격루(개발자용)메이커 페어 서울 2018 - 측우자격루(개발자용)
메이커 페어 서울 2018 - 측우자격루(개발자용)JongyoonWon1
 
아두이노 bluetooth
아두이노 bluetooth아두이노 bluetooth
아두이노 bluetoothJungHoon Lee
 
스마트 어항 도우미 최종 ppt.pptx
스마트 어항 도우미 최종 ppt.pptx스마트 어항 도우미 최종 ppt.pptx
스마트 어항 도우미 최종 ppt.pptxssusera326a1
 
2020.07.14 PWJ SunTechI IoT 소개자료 (최종) (2).pptx
2020.07.14 PWJ SunTechI IoT 소개자료 (최종) (2).pptx2020.07.14 PWJ SunTechI IoT 소개자료 (최종) (2).pptx
2020.07.14 PWJ SunTechI IoT 소개자료 (최종) (2).pptxRinandarMuslimin
 
오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdf
오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdf오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdf
오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdfTae wook kang
 
ARTIK 710 IoT class
ARTIK 710 IoT class ARTIK 710 IoT class
ARTIK 710 IoT class 정출 김
 
라즈베리파이와 자바스크립트로 IoT 시작하기
라즈베리파이와 자바스크립트로 IoT 시작하기라즈베리파이와 자바스크립트로 IoT 시작하기
라즈베리파이와 자바스크립트로 IoT 시작하기Circulus
 
창조경제 IoT 해커톤 교육 2일차 교육 자료
창조경제 IoT 해커톤 교육 2일차 교육 자료창조경제 IoT 해커톤 교육 2일차 교육 자료
창조경제 IoT 해커톤 교육 2일차 교육 자료유명환 FunFun Yoo
 
라즈베리파이로 보일러 제어하기
라즈베리파이로 보일러 제어하기라즈베리파이로 보일러 제어하기
라즈베리파이로 보일러 제어하기Tai Hoon KIM
 
TestSDIC2015-2(Answer)
TestSDIC2015-2(Answer)TestSDIC2015-2(Answer)
TestSDIC2015-2(Answer)Yong Heui Cho
 
Beacon ble.-leejunwoo@gmail.com
Beacon ble.-leejunwoo@gmail.comBeacon ble.-leejunwoo@gmail.com
Beacon ble.-leejunwoo@gmail.comJunwoo Lee
 
NodeMcu로 시작하는 사물인터넷 DIY
NodeMcu로 시작하는 사물인터넷 DIYNodeMcu로 시작하는 사물인터넷 DIY
NodeMcu로 시작하는 사물인터넷 DIYHakyong Kim
 
Start io t_with_raspberrypi
Start io t_with_raspberrypiStart io t_with_raspberrypi
Start io t_with_raspberrypiYeonah Ki
 
Vr cctv 제작 ver1
Vr cctv 제작 ver1Vr cctv 제작 ver1
Vr cctv 제작 ver1병재 김
 
한글시계웍샵_ SW
한글시계웍샵_ SW한글시계웍샵_ SW
한글시계웍샵_ SW영광 송
 
TestSDIC2016-1(answer)
TestSDIC2016-1(answer)TestSDIC2016-1(answer)
TestSDIC2016-1(answer)Yong Heui Cho
 

Similaire à 아두이노로 배우는 피지컬 컴퓨팅(중급) (20)

Test-SDIC2018-2(answer)
Test-SDIC2018-2(answer)Test-SDIC2018-2(answer)
Test-SDIC2018-2(answer)
 
TestSDIC2015-1(Answer)
TestSDIC2015-1(Answer)TestSDIC2015-1(Answer)
TestSDIC2015-1(Answer)
 
140918 IOT hub 컨셉 및 라인업_1.0
140918 IOT hub 컨셉 및 라인업_1.0140918 IOT hub 컨셉 및 라인업_1.0
140918 IOT hub 컨셉 및 라인업_1.0
 
메이커 페어 서울 2018 - 측우자격루(개발자용)
메이커 페어 서울 2018 - 측우자격루(개발자용)메이커 페어 서울 2018 - 측우자격루(개발자용)
메이커 페어 서울 2018 - 측우자격루(개발자용)
 
아두이노 bluetooth
아두이노 bluetooth아두이노 bluetooth
아두이노 bluetooth
 
스마트 어항 도우미 최종 ppt.pptx
스마트 어항 도우미 최종 ppt.pptx스마트 어항 도우미 최종 ppt.pptx
스마트 어항 도우미 최종 ppt.pptx
 
2020.07.14 PWJ SunTechI IoT 소개자료 (최종) (2).pptx
2020.07.14 PWJ SunTechI IoT 소개자료 (최종) (2).pptx2020.07.14 PWJ SunTechI IoT 소개자료 (최종) (2).pptx
2020.07.14 PWJ SunTechI IoT 소개자료 (최종) (2).pptx
 
Moving cleaner
Moving cleanerMoving cleaner
Moving cleaner
 
오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdf
오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdf오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdf
오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdf
 
ARTIK 710 IoT class
ARTIK 710 IoT class ARTIK 710 IoT class
ARTIK 710 IoT class
 
라즈베리파이와 자바스크립트로 IoT 시작하기
라즈베리파이와 자바스크립트로 IoT 시작하기라즈베리파이와 자바스크립트로 IoT 시작하기
라즈베리파이와 자바스크립트로 IoT 시작하기
 
창조경제 IoT 해커톤 교육 2일차 교육 자료
창조경제 IoT 해커톤 교육 2일차 교육 자료창조경제 IoT 해커톤 교육 2일차 교육 자료
창조경제 IoT 해커톤 교육 2일차 교육 자료
 
라즈베리파이로 보일러 제어하기
라즈베리파이로 보일러 제어하기라즈베리파이로 보일러 제어하기
라즈베리파이로 보일러 제어하기
 
TestSDIC2015-2(Answer)
TestSDIC2015-2(Answer)TestSDIC2015-2(Answer)
TestSDIC2015-2(Answer)
 
Beacon ble.-leejunwoo@gmail.com
Beacon ble.-leejunwoo@gmail.comBeacon ble.-leejunwoo@gmail.com
Beacon ble.-leejunwoo@gmail.com
 
NodeMcu로 시작하는 사물인터넷 DIY
NodeMcu로 시작하는 사물인터넷 DIYNodeMcu로 시작하는 사물인터넷 DIY
NodeMcu로 시작하는 사물인터넷 DIY
 
Start io t_with_raspberrypi
Start io t_with_raspberrypiStart io t_with_raspberrypi
Start io t_with_raspberrypi
 
Vr cctv 제작 ver1
Vr cctv 제작 ver1Vr cctv 제작 ver1
Vr cctv 제작 ver1
 
한글시계웍샵_ SW
한글시계웍샵_ SW한글시계웍샵_ SW
한글시계웍샵_ SW
 
TestSDIC2016-1(answer)
TestSDIC2016-1(answer)TestSDIC2016-1(answer)
TestSDIC2016-1(answer)
 

아두이노로 배우는 피지컬 컴퓨팅(중급)

  • 1. 아두이노로 배우는 피지컬 컴퓨팅(중급) 부산전자공고 부설 전자계열공동실습소 김기태
  • 2. 목차 차시 교육 내용 (01차시) 아두이노 HC-06 블루투스 모듈 사용하기 (02차시) 아두이노와 앱인벤터를 통한 블루투스 모듈 연동 (03차시) 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅰ (04차시) 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅱ (05차시) 아두이노 IoT 통한 LED 제어Ⅰ (06차시) 아두이노 IoT 통한 LED 제어Ⅱ
  • 3. 실습부품 01. 아두이노 1개 02. 아두이노케이블 1개 03. 브레드보드(긴것) 1개 04. 점퍼케이블 F/F 6개
  • 4. 실습부품 05. 점퍼케이블 F/M 3개 06. SW(Push버튼) 1개 07. 330저항 1개 08. 1채널 릴레이 1개
  • 5. 실습부품 09. 조명 소켓(E26타입) 1개 10. 220V 전원 코드선 1개 11. 조명 1개 12. 블루투스 모듈(HC-06) 1개
  • 7. 1. 아두이노 HC-06 블루투스 모듈 사용하기
  • 8. 1. 아두이노 HC-06 블루투스 모듈 사용하기
  • 9. 1. 아두이노 HC-06 블루투스 모듈 사용하기
  • 10. 1. 아두이노 HC-06 블루투스 모듈 사용하기
  • 11. 1. 아두이노 HC-06 블루투스 모듈 사용하기
  • 12. 1. 아두이노 HC-06 블루투스 모듈 사용하기
  • 13. 1. 아두이노 HC-06 블루투스 모듈 사용하기
  • 14. 1. 아두이노 HC-06 블루투스 모듈 사용하기 아두이노 스케치 코드 #include <SoftwareSerial.h> int rx=2; int tx=3; SoftwareSerial BTSerial(rx, tx); void setup() { Serial.begin(9600); BTSerial.begin(9600); } void loop() { if(BTSerial.available()) Serial.write(BTSerial.read()); if(Serial.available()) BTSerial.write(Serial.read()); }
  • 15. 1. 아두이노 HC-06 블루투스 모듈 사용하기 동작설명 # 시리얼모니터 창을 통한 HC-06 모듈 환경설정 ① 아두이노 시리얼 모니터 창의 맨 밑에 “line ending 없음”으로 설정. ② 아두이노 시리얼 모니터 창 입력에 다음 순서대로 입력. ▷ AT ⇒ OK : 블루투스 통신 준비가 됨. ▷ AT+NAMEtae01⇒ OKsetname : 블루투스 이름을 “tae01"로 설정 ▷ AT+PIN1234⇒ OKsetPin : 블루투스 비밀번호를 “1234”로 설정 ▷ AT+BAUD4⇒ OK9600 : 블루투스 통신속도를 “9600bps"로 설정 (※ 참고 : BAUD1=1200, 2=2400, 3=4800, 4=9600, BAUD5=19200, 6=38400, 7=57600, 8=115200 )
  • 16. 2. 아두이노와 앱인벤터를 통한 블루투스 모듈 연동 아두이노 스케치 코드 #include <SoftwareSerial.h> int rx=2; int tx=3; SoftwareSerial BTSerial(rx, tx); const int ledPin = 13; void setup() { BTSerial.begin(9600); pinMode(ledPin, OUTPUT); } void loop() { if(BTSerial.available()) { char ind = BTSerial.read(); if(ind == 'H') digitalWrite(ledPin, HIGH); if(ind == 'L') digitalWrite(ledPin, LOW); } }
  • 17. 2. 아두이노와 앱인벤터를 통한 블루투스 모듈 연동 앱인벤터 주소 : http://ai2.appinventor.mit.edu http://ai2.appinventor.mit.edu
  • 18. 2. 아두이노와 앱인벤터를 통한 블루투스 모듈 연동
  • 19. 2. 아두이노와 앱인벤터를 통한 블루투스 모듈 연동 앱인벤터 디자인
  • 20. 2. 아두이노와 앱인벤터를 통한 블루투스 모듈 연동 앱인벤터 블럭
  • 21. 2. 아두이노와 앱인벤터를 통한 블루투스 모듈 연동 스마트폰과 HC-06 블루투스 모듈 페어링 과정 1. 스마트폰에서 블루투스 기능 활성화
  • 22. 2. 아두이노와 앱인벤터를 통한 블루투스 모듈 연동 스마트폰과 HC-06 블루투스 모듈 페어링 과정 2. 스마트폰과 HC-06 블루투스 모듈 페어링
  • 23. 2. 아두이노와 앱인벤터를 통한 블루투스 모듈 연동 아두이노, 블루투스 모듈, 스마트폰과의 연동 동작설명
  • 24. 3. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅰ
  • 25. 3. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅰ
  • 26. 3. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅰ
  • 27. 3. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅰ [ 접점식 릴레이 ] [ 비 접점식 릴레이 ]
  • 28. 3. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅰ 릴레이와 푸쉬버튼을 이용한 AC220V 전등 제어
  • 29. 3. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅰ 릴레이와 푸쉬버튼을 이용한 AC220V 전등 제어 회로도
  • 30. 3. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅰ 릴레이와 아두이노를 활용한 AC220V 전등 제어
  • 31. 3. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅰ 릴레이와 아두이노를 활용한 AC220V 전등 제어 회로도
  • 32. 3. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅰ 릴레이와 아두이노를 활용한 AC220V 전등 제어 아두이노 코드 int light = 9; void setup() { Serial.begin(9600); pinMode(light, OUTPUT); } void loop() { if(Serial.available()) { char ind = Serial.read(); if(ind == 'H' || ind == 'h') digitalWrite(light, HIGH); if(ind == 'L' || ind == 'l') digitalWrite(light, LOW); } }
  • 33. 3. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅰ 릴레이와 아두이노를 활용한 AC220V 전등 제어 동작
  • 34. 4. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅱ 릴레이, 블루투스, 아두이노를 활용한 AC220V 전등 제어
  • 35. 4. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅱ 릴레이, 블루투스, 아두이노를 활용한 AC220V 전등 제어 회로도
  • 36. 4. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅱ 릴레이, 블루투스, 아두이노를 활용한 AC220V 전등 제어 아두이노 코드 #include <SoftwareSerial.h> SoftwareSerial BTSerial(2, 3); // 2번:Rx -> HC-06:Tx, // 3번:Tx -> HC-06:Rx const int ledPin = 9; char indata; void setup() { BTSerial.begin(9600); pinMode(ledPin, OUTPUT); } void loop() { if(BTSerial.available()) { indata = BTSerial.read(); if(indata == 'H') digitalWrite(ledPin, HIGH); if(indata == 'L') digitalWrite(ledPin, LOW); } }
  • 37. 4. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅱ 앱인벤터 디자인
  • 38. 4. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅱ 앱인벤터 블럭
  • 39. 4. 아두이노 블루투스 통신을 이용한 릴레이 제어Ⅱ 아두이노, 블루투스 모듈, 스마트폰과의 연동 동작설명
  • 40. 5. 아두이노 IoT 통한 LED 제어Ⅰ
  • 41. 5. 아두이노 IoT 통한 LED 제어Ⅰ https://www.youtube.com/watch?v=deolstthDr4&t=4s https://www.youtube.com/watch?v=oYLi1eWBUvU https://www.youtube.com/watch?v=RKT1wsG4BmE
  • 42. 5. 아두이노 IoT 통한 LED 제어Ⅰ 파이선 설치 http://www.python.org
  • 43. 5. 아두이노 IoT 통한 LED 제어Ⅰ 파이선 설치
  • 44. 5. 아두이노 IoT 통한 LED 제어Ⅰ 파이선 환경설정 [제어판]-[시스템및보안]-[시스템]-[설정변경]-[고급]-[환경변수]-[시스템변수]의 “Path"항목 편집을 클릭하여 "C:Python27"추가 입력한다.
  • 45. 5. 아두이노 IoT 통한 LED 제어Ⅰ 윈도우 커맨드 창 python –m pip install –U pip setuptools pip 설치 시작 – 실행 – cmd 입력
  • 46. 5. 아두이노 IoT 통한 LED 제어Ⅰ 파이선 시리얼 패키지 설치(pyserial) python –m pip install pyserial
  • 47. 5. 아두이노 IoT 통한 LED 제어Ⅰ 아두이노와 파이선 시리얼 통신 : 아두이노 코드 void setup() { Serial.begin(9600); } void loop() { Serial.println("Hello World"); delay(1000); }
  • 48. 5. 아두이노 IoT 통한 LED 제어Ⅰ 아두이노와 파이선 시리얼 통신 : 파이선 코드 # python 2.7 version from serial import Serial ser = Serial('COM6', 9600) while 1: print ser.readline()
  • 49. 5. 아두이노 IoT 통한 LED 제어Ⅰ 아두이노와 파이선 시리얼 통신 : 동작
  • 50. 5. 아두이노 IoT 통한 LED 제어Ⅰ 파이선과 간단한 웹서버 구축 : 파이선 코드 # python 2.7 version from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler class MyHandler(BaseHTTPRequestHandler): def do_GET(self): self.send_response(200) self.send_header("Content-type", "text/html") self.end_headers() self.wfile.write("Hello world") if __name__ == '__main__': server = HTTPServer(('',8888), MyHandler) print "Started WebServer on port 8888..." print "Press ^C to quit webserver" server.serve_forever()
  • 51. 5. 아두이노 IoT 통한 LED 제어Ⅰ 파이선과 간단한 웹서버 구축 : 동작
  • 52. 5. 아두이노 IoT 통한 LED 제어Ⅰ 아두이노 IoT통신을 활용한 제어 구성도
  • 53. 5. 아두이노 IoT 통한 LED 제어Ⅰ 아두이노 IoT통신을 활용한 제어 회로도
  • 54. 5. 아두이노 IoT 통한 LED 제어Ⅰ 아두이노 IoT통신을 활용한 제어 : 아두이노 코드 int led = 13; void setup() { Serial.begin(9600); pinMode(led, OUTPUT); } void loop() { if(Serial.available()) { char indata = Serial.read(); if(indata == 'H') digitalWrite(led, HIGH); if(indata == 'L') digitalWrite(led, LOW); } }
  • 55. 5. 아두이노 IoT 통한 LED 제어Ⅰ 아두이노 IoT통신을 활용한 제어 : 파이선 코드 # python 2.7 version import BaseHTTPServer from serial import Serial ser = Serial('COM6') class MyHandler(BaseHTTPServer.BaseHTTPRequestHandler): def do_POST(self): self.send_response(200) self.send_header('Content-type', 'text/html') self.end_headers() length = int(self.headers.getheader('content-length')) data = self.rfile.read(length) print data if data == 'H': ser.write('H') elif data == 'L': ser.write('L') return
  • 56. 5. 아두이노 IoT 통한 LED 제어Ⅰ 아두이노 IoT통신을 활용한 제어 : 파이선 코드 print('Starting server...') server_address = ('', 9999) server = BaseHTTPServer.HTTPServer(server_address, MyHandler) print('Running server...') server.serve_forever()
  • 57. 5. 아두이노 IoT 통한 LED 제어Ⅰ 아두이노 IoT통신을 활용한 제어 : 앱인벤터 디자인
  • 58. 5. 아두이노 IoT 통한 LED 제어Ⅰ 아두이노 IoT통신을 활용한 제어 : 앱인벤터 블럭
  • 59. 5. 아두이노 IoT 통한 LED 제어Ⅰ 아두이노 IoT통신을 활용한 제어 : 동작
  • 60. 아두이노 IoT통신을 활용한 제어 회로도 6. 아두이노 IoT 통한 LED 제어Ⅱ
  • 61. 아두이노 IoT통신을 활용한 제어 : 아두이노 코드 int light = 9; void setup() { Serial.begin(9600); pinMode(light, OUTPUT); } void loop() { if(Serial.available()) { char indata = Serial.read(); if(indata == 'H') digitalWrite(light, HIGH); if(indata == 'L') digitalWrite(light, LOW); } } 6. 아두이노 IoT 통한 LED 제어Ⅱ
  • 62. 아두이노 IoT통신을 활용한 제어 : 파이선 코드 3.5버전 6. 아두이노 IoT 통한 LED 제어Ⅱ # python 3.5 version from http.server import BaseHTTPRequestHandler, HTTPServer from serial import Serial ser = Serial('COM9') class MyHandler(BaseHTTPRequestHandler): def do_POST(self): self.send_response(200) self.send_header('Content-type','text/html') self.end_headers() print(self.headers) data=self.rfile.read(1) print(data) ser_data = data.decode() print(ser_data) if ser_data == 'H': ser.write(data) elif ser_data == 'L': ser.write(data) return ()
  • 63. 아두이노 IoT통신을 활용한 제어 : 파이선 코드 3.5버전 6. 아두이노 IoT 통한 LED 제어Ⅱ print('starting server...') server_address = ('', 9999) httpd = HTTPServer(server_address, MyHandler) print('running server...') httpd.serve_forever()
  • 64. 아두이노 IoT통신을 활용한 제어 : 앱인벤터 디자인 6. 아두이노 IoT 통한 LED 제어Ⅱ
  • 65. 아두이노 IoT통신을 활용한 제어 : 앱인벤터 블럭 6. 아두이노 IoT 통한 LED 제어Ⅱ
  • 66. 아두이노 IoT통신을 활용한 제어 : 동작 6. 아두이노 IoT 통한 LED 제어Ⅱ