ARM DS-5 Workshop

Similar documents
Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

벤처연구사업(전동휠체어) 평가

고급 프로그래밍 설계

SBR-100S User Manual

PowerPoint 프레젠테이션

스마트 IoT 사물통신실습시스템사양 휴인스의 Smart IoT 설계시스템은 Gateway(Raspberry Pi) 와 8 종의센서, 7 종의액츄에이터, 다양한주변장비로구성된다. 5 종의설계 / 실습과제를통합시스템에서직접설계및실습할수있는환경을제공하고, 사용자가설계한시스템

임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

컴퓨터과학과 교육목표 컴퓨터과학과의 컴퓨터과학 프로그램은 해당분야 에서 학문적 기술을 창의적으로 연구하고 산업적 기술을 주도적으로 개발하는 우수한 인력을 양성 함과 동시에 직업적 도덕적 책임의식을 갖는 IT인 육성을 교육목표로 한다. 1. 전공 기본 지식을 체계적으로

Windows 8에서 BioStar 1 설치하기

Snort Install Manual Ad2m VMware libnet tar.gz DebianOS libpcap tar.gz Putty snort tar.gz WinSCP snort rules 1. 첫번째로네트워크설정 1) ifconf

안전을 위한 주의사항 제품을 올바르게 사용하여 위험이나 재산상의 피해를 미리 막기 위한 내용이므로 반드시 지켜 주시기 바랍니다. 2 경고 설치 관련 지시사항을 위반했을 때 심각한 상해가 발생하거나 사망에 이를 가능성이 있는 경우 설치하기 전에 반드시 본 기기의 전원을

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인

ARM DS-5 Workshop

로봇SW교육원 강의자료

ez-md+_manual01

DE1-SoC Board

VZ94-한글매뉴얼

untitled

라즈베리파이 프로그래밍_130912(최종).indd

Install stm32cubemx and st-link utility

PowerPoint 프레젠테이션

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

Microsoft Word - src.doc

ARM DS-5 Workshop

CAN-fly Quick Manual

슬라이드 1

1217 WebTrafMon II

MySQL-Ch10

Microsoft PowerPoint - User Manual pptx

1. GigE Camera Interface를 위한 최소 PC 사양 CPU : Intel Core 2 Duo, 2.4GHz이상 RAM : 2GB 이상 LANcard : Intel PRO/1000xT 이상 VGA : PCI x 16, VRAM DDR2 RAM 256MB

Mango220 Android How to compile and Transfer image to Target

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

Microsoft PowerPoint - 10Àå.ppt

01장

PowerPoint 프레젠테이션

10X56_NWG_KOR.indd


1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

Report Designer V3.0 사용설명서 2장

Microsoft PowerPoint - [Practice #1] APM InstalI.ppt

APOGEE Insight_KR_Base_3P11

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

Assign an IP Address and Access the Video Stream - Installation Guide

PowerPoint 프레젠테이션

istay

PowerPoint Presentation

소프트웨어설치 1. 소프트웨어설치및제거 ( 소스코드 ) 소스코드컴파일을이용한 S/W 설치 1. 소스코드다운로드 - 예 ) httpd tar.gz - 압축해제 : #tar xzvf httpd tar.gz - INSTALL 또는 README파일참조

ez-shv manual

Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: E-M

아래 항목은 최신( ) 이미지를 모두 제대로 설치하였을 때를 가정한다

untitled

USER Manual

본교재는수업용으로제작된게시물입니다. 영리목적으로사용할경우저작권법제 30 조항에의거법적처벌을받을수있습니다. [ 실습 ] 스위치장비초기화 1. NVRAM 에저장되어있는 'startup-config' 파일이있다면, 삭제를실시한다. SWx>enable SWx#erase sta

전자교탁 사양서.hwp

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

BY-FDP-4-70.hwp

歯AG-MX70P한글매뉴얼.PDF

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO

SBR-100S User Manual

Smart Power Scope Release Informations.pages

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

Orcad Capture 9.x

Microsoft Word - Windows_apahce_php_CUBRID2008

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

hd1300_k_v1r2_Final_.PDF

Microsoft Word ARM_ver2_0a.docx

1

PRO1_04E [읽기 전용]

VPN.hwp

Microsoft Word - eClipse_사용자가이드_

Solaris Express Developer Edition

Microsoft Word - Armjtag_문서1.doc

네트워크연결매뉴얼 SRP-Q300/302 감열식프린터 Rev

. PC PC 3 [ ] [ ], [ ] [ ] [ ] 3 [ ] [ ], 4 [ ] [ ], 4 [Internet Protocol Version 4 (TCP/IPv4)] 5 [ ] 6 [ IP (O)], [ DNS (B)] 7 [ ] 한국어 -

PowerPoint 프레젠테이션

Solaris System Administration

1. efolder 시스템구성 A. DB B. apache - mod-perl - PHP C. SphinxSearch ( 검색서비스 ) D. File Storage 2. efolder 설치순서 A. DB (MySQL) B. efolder Service - efolder

슬라이드 1

Report Designer V3.0 사용설명서 2장

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

System Recovery 사용자 매뉴얼

Microsoft PowerPoint - ch07.ppt

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

(SW3704) Gingerbread Source Build & Working Guide

운영체제실습_명령어

DBMS & SQL Server Installation Database Laboratory

TTA Verified : HomeGateway :, : (NEtwork Testing Team)

CL100B_manual_kor_m.0.2.indd

Network seminar.key

목차 제 1 장 inexio Touch Driver소개 소개 및 주요 기능 제품사양... 4 제 2 장 설치 및 실행 설치 시 주의사항 설치 권고 사양 프로그램 설치 하드웨

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper

Transcription:

Internet of Things ( 사물인터넷 ) 설계시스템 Last Updated 2015.12.02

참고자료 휴인스 Home : http://www.huins.com Smart IoT 블로그 : http://smartiot.tistory.com Putty 프로그램 : http://smartiot.tistory.com/5 스마트농장안드로이드앱 : http://smartiot.tistory.com/39

Gateway Raspberry Pi 라즈베리파이 & 개발환경 3

Raspberry Pi 라즈베리파이는영국의라즈베리파이재단이학교에서기초컴퓨터과학교육을증진시키기위해만든싱글보드컴퓨터. 라즈베리파이는그래픽성능이뛰어나고가격이저렴한장점 초기 Model A, 현재 Model A+, Model B+, Model B, Raspberry Pi 2 라즈베리파이재단로고 Raspberry Pi 1 Model A Raspberry Pi compute Module Raspberry Pi 1 Model A+ Raspberry Pi 2 Model B Raspberry Pi 2 Model B+ 4

Raspberry Pi 2 https://www.eleparts.co.kr/epxdvfc8 5

Arduino vs Raspberry Pi Micro Controller 성격 Micro Computer No 리눅스 Yes C 개발언어 C, C++, Java, Python, NodeJS, Ruby... No 카메라 Yes Limit 무선환경 Yes 6

Raspberry Pi B+ 구성 40 Pin GPIO Header Broadcom BCM2835 & 512MB RAM DSI Display Connector 4 USB Ports Micro SD Card Slot 10/100 Base T Ethernet Socket 5V Micro USB HDMI Monitor CSI Camera Connector 3.5mm jack Audio/composite video 7

Raspberry Pi B2 연결 외부장치를연결하거나센서및외부 H/W 를제어하는데사용 40 Pin GPIO Header Broadcom BCM2835 & 512MB RAM DSI Display Connector Micro SD Card Slot ( 후면 ) OS 설치및저장소로사용하는 Micro SD 카드 4 USB Ports USB 장치 ( 키보드, 마우스, 무선랜등 ) 를연결 10/100 Base T Ethernet Socket 5V Micro USB HDMI Monitor CSI Camera Connector 라즈베리파이용카메라모듈을연결하는데이용 3.5mm jack Audio/composite video 8

RPI2 Technical Specifications Broadcom BCM2836 Arm7 Quad Core Processor powered Single Board Computer running at 900MHz 1GB RAM 40pin extended GPIO 4 x USB 2 ports 4 pole Stereo output and Composite video port Full size HDMI CSI camera port for connecting the Raspberry Pi camera DSI display port for connecting the Raspberry Pi touch screen display Micro SD port for loading your operating system and storing data Micro USB power source 9

Raspberry Pi OS SNAPPY UBUNTU CORE RASPBMC 10

Why Rasbian Raspbian Raspbian 은 Debian Linux 계열임 가장인기있는 ubuntu linux 도 debian linux 계열 패키지지원및관련라이브러리들이풍부함 라즈베리파이 OS 중가장많이활용되고있음 관련블로그, 학습서, 고객지원이가장많은 OS 임 Raspbian Download http://downloads.raspberrypi.org/raspbian_latest 기타 OS 다운로드 http://www.raspberrypi.org/downloads/ 11

Micro SD Card Micro SD 카드준비 Rasbian 이미지크기가 2GB 정도이나, 설치및테스트를위해최소 8GB 이상의 Micro SD 카드를준비할것을권장 Class 4 가저렴한가격에형성되어있으나, 쓰기및읽기성능을위해 Class 10 혹은 UHS-I 스펙의 Micro SD 카드를이용할것을권장. Raspbian 설치후반드시 Expand Filesystem 을할것 ( 기본설정참고 ) MicroSD 카드를 Notebook 혹은 Desktop 의리더기를통해읽고쓰기위해서는반드시 SD Card Adaptor 가포함되어야함 Class 최소성능일반적인용도 Class 2 2 MB/s SD 영상기록 Class 4 4 MB/s HD 영상기록 Class 6 6 MB/s Full HD 영상기록 Class 10 10 MB/s 연속적인 HD 이미지기록 UHS-1 10 MB/s 실시간방송 UHS-3 30 MB/s Ultra HD 영상기록 12

라즈비안 wheezy 다운로드 라즈베리공식홈페이지에서라즈비안을다운받습니다. http://www.raspberrypi.org/downloads 13

win32diskimager 다운로드 win32diskimager 를다운받습니다. http://sourceforge.net/projects/win32diskimager/ 14

SD 카드에쓰기 Image 백업 win32diskimager 를실행해서 SD 카드에다운받은라즈비안을담습니다. 라즈비안 img 파일을선택해주고현재 SD 카드가연결되어있는드라이브를확인해준후에 write 버튼을눌러 SD 카드에라즈비안운영체제를넣어줍니다. 소요시간은 5 분내외입니다. - file 관리가윈도우와는틀린환경 - 용량이 56MB 로표시됨. 이것은나중에설정으로변경이가능하니신경을안써도됩니다. 백업은반대로저장될폴더이름과이미지파일이름을입력하고 Read 클릭하면저장됨. 15

개발환경구축방법 1. 직접연결 HDMI Monitor 2. 네트워크로연결하여 Wondow 에서작업 PC 유무선공유기 3. Ethernet Cable 한개를사용하여직접연결 Ethernet Cable PC / 노트북 16

개발환경 1 HDMI 모니터연결 Internet 공유기 HDMI 케이블 Ethernet 케이블 Gateway(R-Pi) USB 키보드 / 마우스 Micro USB 5V 전원 WiFi 동글사용시공유기설정을참고하여라즈베리파이 Wlan0 설정필요함. *UART to Serial 케이블연결환경삭제 2015. 12. 04 17

개발환경구축 2 - PC 와공유기연결 USB 키보드 / 마우스 Ethernet Cable 5V Micro USB 부엉이의 IP 주소를알아야함 - 공유기상태정보에서확인 - 윈도우 cmd 창에서 arp a 탐색기나네트워크에서접속 Id: pi Password: raspberry PC 18

개발환경구축 3 Lan Cable 직접연결 USB 키보드 Ethernet Cable 5V Micro USB PC 19

Lan Cable 직접연결 - PC/ 노트북연결 1. 인터넷연결공유설정 2. 제어판 > 네트워크및공유센터 어댑터설정변경 20

Lan Cable 직접연결 - PC/ 노트북연결 1. 무선네트워크연결아이콘을마우스반대편클릭 > 속성 2. LAN 케이블을라즈베리파이와 PC 로직접연결한다. 공유탭에서 다른네트워크사용자가이컴퓨터의인터넷연결을통해연결할수있도록허용 을체크하고확인클릭 PC 재부팅 윈도 PC 가정상적으로인터넷을공유할수있도록재부팅한다. 21

Lan Cable 직접연결 - PC/ 노트북연결 PC 의명령프롬프트실행하고아래명령어입력 >arp -a 여기에선 192.168.137.22 가라즈베리파이 IP 주소 SSH ( 또는 VNC) 접속 PuTTY 또는 VNC Viewer 를실행하고라즈베리파이에접속 22

Lan Cable 직접연결 - PC 연결 자동개인 IP 주소지정 (APIA) 범위의 IP 주소를확인 여기에선 169.254.74.67 의다음번호 169.254.74.68 을라즈베리파이 IP 주소로한다. 23

Lan Cable 직접연결 - PC 연결 SD 카드를 PC 에서읽어 cmdline.txt 수정 cmdline.txt 파일을열어가장마지막라인에 IP 주소를추가한다. rootwait 다음에아래의 IP 정보 ( 169.254.x.1 ~ 254 ) 를수동으로추가합니다. 맨뒤에 ip=169.254.74.68 추가 반드시맨뒤를지우고입력 저장후 SD 카드를라즈베리파이에넣고부팅후확인 24

터미널접속 (Putty) - 터미널접속 알아낸 ip 주소를 Host Name 에적고 SSH 를선택한후 Open 을눌러서접속합니다. Putty 는 SSH, Telnet 등의원격접속을위한 Opensource S/W 이다. 다운로드주소 http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe 1. 접속할라즈베리파이의 IP 를확인하고, 입력해준다. (SSH 접속은 22 포트활용 ) 3. login id ( 기본 : pi ) 와 password ( 기본 : raspberry) 를입력한다. 2. Open 을눌러주면, 라즈베리파이에접속된다. 25

Lan Cable 직접연결 - PC 연결 PuTTY 접속화면 id : pi password : raspberry 26

Xwindow 와터미널 X 윈도우 : 표준 GUI 로유닉스의기본윈도우시스템 리눅스의기본쉘 pi@raspberry~$ _ : Shell 프롬프트 27

무선랜설정 GUI 상태에서 아래의명령어를실행하여라즈베리파이의네트워크를확인한다. $ifconfig $startx 를실행하여 GUI 화면에서 Wi-Fi 설정유틸리티실행 [Scan] 실행 [PSK] 필드에비밀번호를입력하고 [connect] 하면네트워크에연결된다. 출처 :raspberry Pi Cookbook 28

Network 확인 유 / 무선네트워크연결확인 $ ifconfig 기본적으로우선이나무선하나만연결한다. pi@raspberrypi ~ $ ifconfig eth0 Link encap:ethernet HWaddr b8:27:eb:9d:c6:ca inet addr:192.168.1.251 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: 2001:470:67:77e:ba27:ebff:fe9d:c6ca/64 Scope:Global inet6 addr: fe80::ba27:ebff:fe9d:c6ca/64 Scope:Link inet6 addr: 2001:470:67:77e:cf11:8e13:e7cc:bbc/64 Scope:Global UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:22599 errors:0 dropped:98 overruns:0 frame:0 TX packets:736 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1599253 (1.5 MiB) TX bytes:93093 (90.9 KiB) lo wlan0 Link encap:local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:220 errors:0 dropped:0 overruns:0 frame:0 TX packets:220 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:17856 (17.4 KiB) TX bytes:17856 (17.4 KiB) eth0 유선네트워크정보 wlan0 무선네트워크정보 29

Rasbian 기본명령어 1 그래픽인터페이스 (x-window) 실행 $ startx 프로그램패키지목록업데이트 $ sudo apt-get update 설치된프로그램중버전업된프로그램업데이트 $ sudo apt-get upgrade OS 버전확인하기 $ cat /proc/version CPU 버전확인하기 $ cat /proc/cpuinfo 30

Rasbian 기본명령어 2 홈디렉토리 (/home/pi) $cd ~ 현재있는디렉토리? $pwd 상위디렉토리이동 $cd.. 파일목록 $ls 아래는 myfile.txt 생성후 myfile2.txt 이름으로복사 $ echo "hello" > myfile.txt $ ls myfile.txt $ cp myfile.txt myfile2.txt $ ls myfile.txt myfile2.txt 디렉토리생성 $mkdir new_directory 파일삭제 $rm 파일네임 Superuser do sudo 명령 $ps ax $sudo kill -9 PID $lsusb 복사 $cp 이름변경 $mv 파일내용보기 $more 파일네임 $cat 파일네임 31

Rasbian 기본명령어 OS 재부팅재부팅을위해다음두가지명령중하나를선택하여사용가능 $ sudo reboot $ sudo shutdown r now OS 종료종료를위해다음두가지명령중하나를선택하여사용가능 $ sudo halt $ sudo shutdown h now $ cd 폴더네임 $ cd 홈폴더로이동 파일편집 $ nano 파일네임.c -- 파일편집키보드화살표키로이동하고종료시 ctrl-x 후저장합니까? Y 누르고같은파일네임일경우 enter 입력후빠져나옴. 기본적인리눅스명령어몇개만잘다룰줄알면된다. 32

Rasbian 기본설정 Raspberry Pi 기본설정하기 $ sudo raspi-config 33

Rasbian 기본설정 Expand File System Raspbian 이설치된 SD 카드의파일시스템을확장하는기능. 기본배포판의 메모리를 4GB 만활용. 4GB 이상의 SD 카드를이용하는경우반드시설정. Change User Password 라즈베리파이초기암호는 raspberry 이고, CirculOS 의초기암호는 1234 임. 보안을위해사용자암호를변경하고자하는경우사용. Enable Boot to Desktop/Scratch 초기부팅시에윈도우환경 (X Window), Scratch 교육환경, Console 모드 로부팅할지여부선택. 메이커구성을위해서는 Console 로시작해야함. Internationalisation Options Change Locale 지역설정옵션. 한국어변환이가능하지만, 기본설정권장 Change Timezone 시간대를설정하는옵션. Asia 에서 Seoul 을설정. Change Keyboard Layout 키보드구성변경옵션. 변경이필요없음. 34

Rasbian 기본설정 Enable Camera 라즈베리파이에카메라를연결한경우사용을위해활성화하는옵션. 설치시 Enable 로변경해야함 Add to rastrack 전세계라즈베리파이이용자분포확인을위한옵션. 이름, 메일, 지역을입 력하면 Rastrack (www.rastrack.co.uk) 사이트에등록됨 Advanced Option 라즈베리파이의고급사용자설정화면. 뒷부분에서다룸 About raspi-config Change Locale 지역설정옵션. 한국어변환이가능하지만, 기본설정권장 Change Timezone 시간대를설정하는옵션. Asia 에서 Seoul 을설정. Change Keyboard Layout 키보드구성변경옵션. 변경이필요없음. 35

Rasbian 고급설정 9. Advanced Option 선택시보임 36

Rasbian 고급설정 Overscan 디스플레이화면에크기를맞출수있는기능을설정 Hostname 호스트이름을변경하는옵션 ( 기본값 : raspberrypi) Memory Split GPU 와 CPU 가사용할메모리를할당하는옵션. X 윈도우화면을사용하지 않고메이커보드로활용하는경우, GPU 메모리를 16MB 로설정하면된다. SSH Secure Shell 의약자로, 네트워크구성이된경우다른컴푸터에서터미널창 으로원격으로접속할수있음. Device Tree 리눅스상에서하드웨어를기술하기위한데이터구조. 기본적으로사용하지 않음. 37

Rasbian 고급설정 SPI (Serial Peripheral Interface Bus) GPIO 의 SPI 기능을활성화할지여부. SPI 사용을위해서는활성화해야함. I2C (Inter-Integrated Circuit) GPIO 의 I2C 기능을활성화할지여부. I2C 사용을위해서는활성화해야함. Serail Serial 을통해 Shell 에접근할수있을지여부. 기본적으로활용하지않음. Audio Audio 출력을 Audio 단자 (3.5mm) 혹은 HDMI 로할지설정하는옵션. 기본값 은 Auto 이지만, 라즈베리파이오디오실습을위해 3.5 mm 로설정할것 Update 라즈베리파이설정툴을최신버전으로업데이트하는기능 38

웹서버구축 APM (Apache, PHP, MySql) 설치 39

Apache 설치 Apache, MySQL, PHP5, phpmyadmin 순서로설치 1. 프로그램패키지목록업데이트 $ sudo apt-get update 2. 설치된프로그램중버전업된프로그램업데이트 $ sudo apt-get upgrade 3. apache2 설치 $sudo apt-get install apache2 설치후에아래의명령어를실행하면새로운폴더가생긴것을알수있습니다. $ls al /var/ /var/www/ 라는폴더인데이폴더는아파치웹서버가실행될때기본적으로보여주는폴더이다. 예를들어브라우저에 http:// 라즈베리파이의아이피주소 / 로접속했을때보여주는렉토리입니다. 크롬이나익스플로러에서부엉이 IP 주소입력시아래와같이나오면설치가잘된것. 아래의명령어를사용하여라즈베리파이가시작할때자동으로아파치를실행하도록해줍니다. $sudo update-rc.d apache2 defaults 40

MySQL 설치 아래의명령어를사용하여 mysql 을설치합니다. $sudo apt-get install mysql-server mysql-client libmysqlclient-dev 설치할때용량이어느정도필요한지나오고계속할것인지물어봅니다. 이때 y 를입력하고엔터를치시면됩니다. * install 중간에 password 를입력하라고나오는데이때입력하는비밀번호는 mysql 의비밀번호이기때문에혼동하지않도록합니다. mysql 이처음설치되면로컬에서만접속이되도록되어있습니다. 아래의명령어를사용하여환경설정파일을수정하는화면으로이동합니다. $sudo nano /etc/mysql/my.cnf 아래의구문을찾아서아래와같이수정하여줍니다. 변경전 - bind-address = 127.0.0.1 변경후 - #bind-address = 127.0.0.1 41

PHP 설치 아래의명령어를사용하여 php 를설치합니다. $sudo apt-get install php5-common php5 libapache2-mod-php5 설치할때용량이어느정도필요한지나오고계속할것인지물어봅니다. 이때 y 를입력하고엔터를치시면됩니다. 아래의파일을하나만들어서 phpinfo.php 라는이름으로저장. $sudo nano /var/www/html/phpinfo.php 를입력후, php 정보를볼수있도록코딩을합니다. <?pho phpinfo();?> Ctrl-x 누르고 y 누르고 Enter 치고나와서, 브라우저테스트아래의 url 로확인해봅니다. http:// 서버아이피 /phpinfo.php 42

phpmyadmin 설치 아래의명령어를사용하여 phpmyadmin 을설치합니다. $sudo apt-get install phpmyadmin 설치할때용량이어느정도필요한지나오고계속할것인지물어봅니다. 이때 y 를입력하고엔터를치시면됩니다. apache2 를체크후 OK MySQL 에접속할수있는 phpmyadmin 에접속할패스워드를입력 http://ip 주소 / phpmyadmin 43

phpmyadmin 접속 브라우저에서 http://192.168.1.246/ phpmyadmin 접속 설치할때사용자이름 설치할때패스워드 44

phpmyadmin 에서 Database 확인 브라우저에서 http://192.168.1.246/ phpmyadmin 접속 Database 45

/etc/network/interfaces 파일설정 아래의파일을편집하여무선네트워크설정을수정합니다. $sudo nano /etc/network/interfaces auto wlan0 iface wlan0 inet static address 원. 하. 는. 주소 netmask 255.255.255.0 gateway 공. 유. 기. 주소 wpa-ssid SSID 이름 " wpa-psk 비밀번호 " 예 ) ssid : huins_edu 비밀번호 : huind12345 46

삼바접속 삼바 (samba) 는 SMB(Server Message Block) 또는 CIFS (Common Internet File System) 로알려져있으며리눅스와윈도우간에파일및프린터를공유할수있게해주는프로그램이다. 삼바를통해리눅스서버를타운영체제와파일을공유할수있는파일서버로도사용할수있다. 1. 삼바설치우선삼바프로토콜및삼바서버, 클라이언트와관련된의존성패키지를다음의명령어를이용하여설치한다. $sudo apt-get install samba samba-common-bin 2. 삼바유저추가및패스워드설정다음의명령어로 pi 라는삼바유저를추가하자. 그러면패스워드를물어볼것이다. 자신이원하는패스워드를입력해준다. $sudo smbpassword a pi 3. 삼바설정다음의명령어로삼바설정파일을수정해주어야한다. 다른설정을변경할필요없이파일의제일하단에새로운유저 pi 에대한설정을추가한다. $sudo nano /etc/samba/smb.conf [pi] comment = rpi samba server by girin path = /home/pi valid user = pi writable = yes browseable = yes : 작업후 ctrl-x 누르고 y 누르고나오면저장된다. comment : 유저서버설정에대한코멘트로마음대로적는다. path : 공유할폴더를지정한다. 작업폴더인 /home/pi 를지정한다. valid user : 사용가능한유저를지정 writable : 쓰기를가능하게할것인지에대한옵션 browseable : 공유폴더의목록을보여주는옵션 47

삼바접속 Window 에서접속 4. 삼바재실행설정된내용이반영될수있도록삼바를재실행시켜준다. $sudo service samba restart 5. 공유폴더접속윈도우의탐색기혹은네트워크를열어서폴더주소칸에 \\192.168.1.238\ 과같이라즈베리파이의 IP 주소를적어주면아래와같이공유를설정해둔라즈베리파이폴더에접속할수있다. 여기에서새로운디렉토리를만들고, 파일의수정, 삭제, 복사, 이동이가능하게된다. 위치 : pi 아이디 : pi 패스워드 : raspberry 48

GPIO 내부

Raspberry Pi GPIO 50

Raspberry Pi GPIO 51

GPIO 제어와 Wiring Pi 설치 패키지관리서버로부터이용가능한프로그램패키지의목록을최신버전으로업데이트 $sudo apt-get update 컴퓨터에설치된프로그램이업데이트되었으면새로운버전으로설치하게해주는명령어 $sudo apt-get upgrade 1. 소스관리툴 git 를다운로드한다. ( 오픈소스 https://github.com/wiringpi/wiringpi 의소스를체크아웃하기위해서 ) $sudo apt-get install git-core 2. wiringpi 프로젝트를통째로받아온다. $git clone git://git.drogon.net/wiringpi 3. 빌드및설치를진행한다. $cd wiringpi $./build 4. 설치확인. $gpio -v $gpio readall pi@raspberrypi ~ $ gpio -v gpio version: 2.29 Copyright (c) 2012-2015 Gordon Henderson This is free software with ABSOLUTELY NO WARRANTY. For details type: gpio -warranty 설치확인 Raspberry Pi Details: Type: Model 2, Revision: 1.1, Memory: 1024MB, Maker: Sony [OV] Device tree is enabled. This Raspberry Pi supports user-level GPIO access. -> See the man-page for more details 52

GPIO Pin 과 wiringpi Pin 할당 gpio readall 53

GPIO Test $gpio -g mode 11 output $gpio -g write 11 1 $gpio -g write 11 0 $gpio -g mode 5 output $gpio -g write 5 1 $gpio -g write 5 0 $gpio -g mode 22 output $gpio -g write 22 1 $gpio -g write 22 0 54

$sudo nano /etc/rc.local 터미널에서편집기는 nano 편집기를사용한다. $nano 파일네임 - 으로편집파일을연다. $sudo nano /etc/rc.local # Print the IP address _IP=$(hostname -I) true gpio -g mode 11 output gpio -g write 11 1 gpio -g mode 22 output gpio -g write 22 1 이부분추가눈은좌, 우가 5 번, 11 번 바닥 RGB Led 는 22 번 (R,G,B 색은 17 번, 27 번, 22 번 ) if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi exit 0 종료시 CTRL-X 누르고, 저장하느냐? 저장하느냐? 질문에 Y 누르고, 파일이름은같이니까 Enter 누르고나온다. $reboot 하고결과를확인 http://fishpoint.tistory.com/1587 55

센서 & Actuator 실습 56

나노에디터 (nano editor) 사용법 실행 nano 파일이름.c 화살표키를눌러편집할곳으로이동하여편집. 저장 Ctrl+O 끝내기 Ctrl+X 하면, 정말로끝낼것인지를묻는화면에서 Y 를누르고저장하려는파일명을확인한후에엔터를누르고빠져나옴. 자르기와붙이기한줄자르기 : Ctrl+k 붙이기 : Ctrl+u 여러줄자르기 : Ctrl+^ 를누르고화살표로블럭을설정한후에 Ctrl+k 찾기 Ctrl+w 57

온도센서테스트 $sudo modprobe w1-gpio $sudo modprobe w1-therm $cd /sys/bus/w1/devices $ls $cd 28-xxxx (change this to match what serial number pops up) $cat w1_slave 58

온도센서소스코드 Python import os import glob import time os.system('modprobe w1-gpio') os.system('modprobe w1-therm') base_dir = '/sys/bus/w1/devices/' device_folder = glob.glob(base_dir + '28*')[0] device_file = device_folder + '/w1_slave' def read_temp_raw(): f = open(device_file, 'r') lines = f.readlines() f.close() return lines def read_temp(): lines = read_temp_raw() while lines[0].strip()[-3:]!= 'YES': time.sleep(0.2) lines = read_temp_raw() equals_pos = lines[1].find('t=') if equals_pos!= -1: temp_string = lines[1][equals_pos+2:] temp_c = float(temp_string) / 1000.0 temp_f = temp_c * 9.0 / 5.0 + 32.0 return temp_c, temp_f while True: print(read_temp()) time.sleep(1) 실행 $sudo python thermometer.py pi@raspberrypi ~$ sudo python thermometer.py (32.5, 90.5) (32.5, 90.5) (32.687, 90.8366) (32.937, 91.28659999999999)

온도센서소스코드 C nano ds1820.c 편집소스코드보기 pi@raspberrypi ~$ gcc -o ds1820 ds1820.c -lwiringpi pi@raspberrypi ~$ sudo./ds1820 pi@raspberrypi ~/sensortest $ sudo./ds1820 Device: 28-0415a1505eff Device: 28-0415a1505eff - Temp: 32.500 C 90.500 F Device: 28-0415a1505eff - Temp: 32.500 C 90.500 F Device: 28-0415a1505eff - Temp: 32.562 C 90.612 F

조도 ( 빛 ) 센서 Analog 출력연결 특징 1. 감도조절 ( 파란색가변저항조정 ) 밝기와주변빛의세기를감지 2. 출력 : 아날로그전압출력, 디지털스위치출력 (0, 1) 3. 온도측정범위 : -40~80 4. 습도측정오차 : ±2%RH 5. 온도측정오차 : ±0.5 6. 저전력소모 7. 부가회로가불필요 전기적특성 - 작동전압 : 3.3V ~ 5V DC - 출력 : 아날로그전압출력, 디지털스위치출력 (0, 1) - lm393 칩 - 측정조건 VDD = 5V, T = 25 - Pin Connection Pin 1 아날로그출력 Pin 2 디지털출력 Pin 3 - GND) Pin 4 - 전원 VCC 3.5~5.5V DC 노검적 AO DO G Vcc 노검적 NC(No Connection) 61

사운드 ( 음향 ) 센서 - 마이크 사양 크기 특징 32mm*17mm*15mm ( length*width*height) Chip LM393, 전기콘덴서마이크 작동전압 DC 3-6v 출력 아날로그 / 디지털 LED Power LED, Sensor Indicator LED 62

인체감지센서 사용전류 50μA 사용전압 3V ~ 5V 동작온도범위 0 ~+70 센서미감지시출력 (HIGH) 4V 센서감지시출력 (LOW) 0.4V 감지각도 110 Degree 감지거리 7M Size 28mm 36mm 무게 25g Calibration- 센서보정 Sensitivity Adjust 가변저항을왼쪽끝까지돌리면민감도가가장약하고, 오른쪽으로돌리면민감도가증가 Time Delay Adjust 가변저항은오른쪽으로돌리면하이가출력되는시간이길어지고, 왼쪽으로돌리면약 4 초후에로우로떨어지게된다. 63

초음파센서 (HC-SR04) vcc trig echo gnd Working Voltage Working Current Working Frequency Max Range Min Range MeasuringAngle Trigger Input Signal Echo Output Signal Dimension DC 5 V 15mA 40Hz 4m 2cm 15 degree 적어도 10uS 이상의 TTL pulse Input TTL lever signal and t he range in proportion 45*20*15mm 초음파센서 64

불꽃 (Flame) 센서 불꽃의파장 ( 주파수 ) 760nm ~ 1100nm 대역을감지하는센서 동작전압감지범위감지대역 ( 파장 ) 응답시간 : 인터페이스 : 크기 : 3.3V to 5V 20cm (4.8V) ~ 100cm (1V) 760nm ~ 1100nm 15usec 아날로그 / 디지탈 22x30mm 가시광선의범위 65

가스센서 MQ135 는내부에포함된히터와센서로맘모니아, 생활가스, 오염가스등을검출해낼수있는모듈 노검적 Vcc AO DO GND 적노검 NC(No Connection) 66

근접센서 적외선송 / 수광일체형전방감지센서모듈로물체감지시 HIGH/LOW TTL 신호를출력 Calibration- 센서보정 근접센서의사양 항목 특징 센서원리 적외선감지 검출거리 20 ~ 30mm 검출각도 중앙에서상하 35 비교기 LM393 입력전원 DC 3V ~ 5V 출력형태 디지털출력 ( 0, 1) 67

액츄에이터 스마트식물농장의액츄에이터는워터펌프, 팬, DC Motor, RGB Led 와같이 4 가지를사용한다. 토양이말라있을때물을뿌려주고, 실내농장의온도에따라환기팬을작동하고, 야간이나구름이낀날은청색과적색의식물 Led 를켜준다. 또한차양을올린다거나문을열기위해 DC 모터를사용하는것으로가정한다. 워터펌프 FAN DC Motor 식물 LED LED Bar( 전등 ) 부저 서보모터 68

워터펌프 DWP2760 워터펌프외관 워터펌프기구도면 전기적사양 정격전압구동전압전류최대입력 DC 12V DC 9V ~ DC15V 무부하시 280mA 이하 >14.5 PSI Water Flow 400(±20%)mL/Min at 90 소음 용도 수명 65dB 커피머신용, 90 뜨거운물사용가능 정격전류에서 50 초동작, 20 초멈춤이 1Cycle - 6,000 번 69

Fan KD1205PFS1 FAN 외관 FAN 기구도면 FAN 전기적사양 Size ( mm ) 50*50*10mm 정격전압 (VDC) 12 전류 (A) 0.1 기동전압 (V) 10.8~13.8 속도 (RPM) 5500 풍량 ( m3 /min) 0.29 풍압 (Pa) 36 소음 (db) 28 권장사용온도 ( ) 10~60 무게 (g) 20 Fan 70

DC Motor DC Motor 외관 DC Motor 기구도면 DC Motor 전기적사양 품명 마이크로 DC 모터 Rated Voltage(V) 12 No load speed(rpm) 9,100 No load current(ma) 60 Rated speed(rpm) 7800 Rated torque(gf. 츠 ) 20 Rated current(ma) 350 Size 23.8Φ ⅹ 30.5mm Noise level( 유 ) 55 DC Motor 71

RGB Led 1600 백만가지색표현 RGB LED 외관 RGB LED 전기적사양 품명 Rated Voltage(V) 표시색소비전류품번 RGB LED 12V 1600만 Red=2V/20mA GREEN=3.4V/20mA Blue=3.4V/20mA IWS-506-RGB-K3 72

LED Bar RGB LED 외관 ENG. N.O 120203002 Shape 8MM Round 5.0*5.4*1.6mm Surfa ce Mount LEDs Emitting Color White Lens Color Yellow Viewing Angle 117 Chip Material InGaN 회로도 73

서보모터 (Servo motor) 실습 서보모터외관 서보모터연결선 서보종류 아날로그서보 동작전압 4.8V ~ 6V 토크 (Kg.cm) 2.5Kg / cm 스피드 0.2ch/60도 크기 무게 (g) 50g 이하 기어재질 프라스틱 특징 표준서보 회전각 180도 (-90도 ~ +90도 ) 74

Smart_IoT 설계시스템 스마트농장시나리오실습 75

액츄에이터전체구동 전체포트번호설정 #define PUMP 21 // BCM_GPIO 5 #define FAN 22 // BCM_GPIO 6 #define DCMOTOR 23 // BCM_GPIO 13 #define RGBLEDPOWER 24 //BCM_GPIO 19 #define RED 27 //GPIO 16 #define GREEN 28 //GPIO 20 #define BLUE 29 //GPIO 21 핀모드설정 void Bpluspinmodeset(void) { pinmode (PUMP, OUTPUT); pinmode (FAN, OUTPUT); pinmode (DCMOTOR, OUTPUT); pinmode(rgbledpower, OUTPUT); pinmode(red, OUTPUT); pinmode(green, OUTPUT); pinmode(blue,output); } 구동코드 digitalwrite (PUMP, 1) ; // On digitalwrite (FAN, 1) ; // On digitalwrite(dcmotor, 1); //On digitalwrite(rgbledpower, 1);//On delay (5000) ; / / ms digitalwrite (PUMP, 0) ; // Off digitalwrite (FAN, 0) ; // Off digitalwrite(dcmotor, 0); //Off digitalwrite(rgbledpower, 0); //Off 76

액츄에이터전체구동소스컴파일 실행 -- 편집 소스코드편집 : $nano actu_all_on.c 편집후 ctrl-x 입력 y 치고엔터로나옴컴파일 : $gcc o actu_all_on actu_all_on.c -l wiringpi -pthread 실행 : $sudo./ actu_all_on 실행종료 : Ctrl-c ( 컨트롤 (Ctrl) 키를누르고 c 키를누른다. ) 77

스마트농장스토리프로그램순서도 프로그램 : farmstory.c 참고 78

스마트농장스토리프로그램실행 소스코드편집 : $nano farmstory.c 편집후 ctrl-x 입력 y 치고엔터로나옴컴파일 : $gcc o farmstory farmstory.c l wiringpi 실행 : $sudo./farmstory.c 실행종료 : Ctrl-c ( 컨트롤 (Ctrl) 키를누르고 c 키를누른다. ) 79

웹과모바일앱의구축절차비교 비교항목모바일웹앱 호환단말범위 제조사별브라우저, 해상도, 크기에따라별도지원 제조사별브라우저, 해상도, 크기에따라별도지원 호환브라우저 기획 디자인 개발 테스트 배포 웹표준, 신기술에따라적용범위상이 PC 보다좁은화면공간에서효과적인네비게이션설계가중요 PC 보다느린네트워크속도에따라고품질이미지사용제약고려 웹표준엄격한준수, 다수의브라우저호환개발에따라개발기간및스크립트제약을고려한설계, 기간산정필요 초기에정의한단말및브라우저별엄격한테스트진행 사용자의단말기 ( 모바일단말, PC 단말 ) 판단에따라모바일웹과 PC 웹으로의자동이동 안드로이드, IOS, 윈도우모바일에따라범위지정상이 OS 별인터페이스 UI 특징, 동작방식인지 OS 별인터페이스 UI 특징, 동작방식인지 적용 OS 개수별개발진행, OS 지원이 5 개일경우 5 개의앱을제작해야함 적용하기로한단말기별테스트및동일단말내의 OS 버전에따른호환성테스트진행 제작된 OS 별바이너리를개발하여앱스토어의등록절차에따라진행 앱스토어마다검수절차및항목이다르기때문에사전에항목에대한자체검수후등록을해야함 80

웹 ( 브라우져 ) 에서데이터베이스모니터링 스마트농장스토리 pi@raspberrypi ~ $ mysql -u root -p Enter password: root --- 보이지않는다. 데이터베이스확인 mysql> show databases; 사용할데이터베이스를 demofarmdb 라는이름으로생성한다. mysql> create database demofarmdb; Query OK, 1 row affected (0.00 sec) 데이터베이스사용 mysql> use demofarmdb; Database changed 테이블생성 - 시간, 온도, 습도, 조도데이터를저장하는테이블 mysql> create table temphumilight( time char(19) primary key, temperature int, humidity int, lightsensor int); Query OK, 0 rows affected (0.03 sec) 테이블확인 mysql> show tables; 81

데이터수동으로입력 mysql> insert into thl values(now(), 1, 2, 3); Query OK, 1 row affected (0.01 sec) mysql> select * from thl; +---------------------+-------------+----------+-------------+ time temperature humidity lightsensor +---------------------+-------------+----------+-------------+ 2015-07-02 17:51:05 1 2 3 +---------------------+-------------+----------+-------------+ 1 row in set (0.01 sec) 데이터지우기 mysql> delete from thl where time < now(); Query OK, 1 row affected (0.02 sec) mysql> select * from thl; Empty set (0.00 sec) 82

웹 ( 브라우져 ) 에서데이터베이스모니터링 모든데이터베이스와테이블을사용자가접근할수있도록변경하고, 설정을반영하라는명령어를실행 mysql> grant all privileges on *.* to root@localhost identified by 'root'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) 파일폴더이동 $cd demofarmdb demodb.cpp 파일을편집 $nano demodb.cpp ->ctrl-x 누르고 y 하고빠져나온다. 컴파일 $ g++ -o demodb demodb.cpp -lwiringpi -lmysqlclient 실행 $ sudo./demodb 데이터출력이안되면 51 라인수정 #define DBHOST "localhost 컴파일하고실행 83

2~3 초에한번씩저장한데이터를확인한다. pi@raspberrypi ~/demofarmdb $ mysql -u root -p Enter password: mysql> use demofarmdb; Database changed mysql> select * from thl; 브라우저에서 http://192.168.1.239/phpmyadmin/ 에접속 id : root password : root 접속하여데이터를확인 - 아래는이미작성되어있다. 웹에서실시간으로변하는데이터베이스를확인하기위한 php 파일을작성해야한다. 아래명령을사용하여 /var/www/ 폴더로이동하여 viewfarm.php 파일을작성한다. pi@raspberrypi ~ $ cd /var/www pi@raspberrypi /var/www $ 이동하여파일을확인 pi@raspberrypi /var/www $sudo nano viewfarm.php 84

실시간으로변하는데이터베이스화면을보기위하여라즈베리파이에서작업폴더로이동후 demnofarmdb 폴더로이동하여 demodb 를실행한다. pi@raspberrypi ~ $ cd demofarmdb pi@raspberrypi ~/demofarmdb $ pi@raspberrypi ~/demofarmdb $sudo./demodb 실행 브라우져에서 http:// 라즈베리파이 IP 주소 /viewfarm.php 에접속하여센서데이터를확인 85

스마트폰브라우저에서확인 스마트폰브라우져에서 http://192.168.1.239/viewfarm.php 에접속하여센서데이터를확인 86

웹 ( 브라우져 ) 에서스마트농장액츄에이터제어 라즈베리파이를브라우저를통해원격제어하는방법중에가장간단한방법을실습해보자. 서버는파이썬을기반으로한 SimpleHTTPServer 구현하고, 클라이언트는부라우저의메시지전송방식중에하나인 POST 방식을이용하여웹서버를경유하여스마트농장액츄에이터를제어하게된다. 우선작업폴더를생성하고이동하여작업한다. $mkdir farmactubrowser $cd farmactubrowser pi@raspberrypi ~/farmactubrowser $ ls controlserver.py index.html pi@raspberrypi ~/farmactubrowser $ 파이썬서버프로그램을실행하자. 명령은 $ sudo python controlserver.py 87

PC 에서브라우저주소줄에아래와같이입력한다. http://192.168.1.239:8002 88

스마트폰의크롬브라우저를띄워주소창에 PC 에서입력하였던주소와같은주소를입력한다. http://192.168.1.239:8002 89

카메라구동테스트 카메라모듈사양 센서 PCB 크기무게해상도지원비디오모드 OmniVision OV5647(8.5 x 8.5 x 5mm) 25 x 20 x 9 mm 3 g 5 Megapixels 1080p30, 720p60 and 640x480p60/90 영상 / 스팅지원정지영상캡처 2592 1944 초당 30프레임의 1080p 지원초당 60프레임의 720p 지원초당 90프레임의 640x480p 지원 $sudo apt-get update $sudo apt-get upgrade $sudo raspi-config - 카메라의설정값은 disable 디폴트. Enable 시켜준다. $sudo apt-get install mplayer netcat ffmpeg gpac - 부가적인패키지를설치 명령을실행하고 24M 의공간이필요하다는메시지가나오면 Y 입력하여설치를진행한다. 90

카메라캡쳐 jpg 포맷으로이미지를캡처하려면다음과같이입력한다. $raspistill -o image.jpg $ls 명령어로 image.jpg 파일이생성된것을볼수있다. 이번에는 h264 포맷으로 5 초동안동영상을캡처해보는명령이다. $raspivid -o video.h264 fps 30 t 10000 -o : 출력파일이름 -t : 촬영시간밀리세컨드 (10000 = 10 초 ) -fps : 초당프레임 $ls 명령어로확인하면 video.h264 파일이생성되었다. 10 초로늘리려면다음과같이입력한다. $raspivid -o video.h264 -t 10000 라즈베리파이카메라프로그램은 H264 포맷을사용하고있기에별도의프로그램으로보거나일반적인동영상파일로변환하려면별도로파일을변환시켜줘야한다. 다음의명령어는 ffmpeg 을이용하여 H264 포맷을 mkv 포맷으로변환시키는예제다. $ffmpeg r 30 i video.h264 vcodec copy video.mkv 확인해보면 video.mkv 파일이생성되었다. 다음의명령어로도가능하다. $MP4Box add video.h264 video.mp4 $raspivid less $raspistill less 91

동영상스트리밍 카메라모듈을이용하여 mjpg-stream 을구현한다. 속도가많이느린편이지만현장상황을웹을이용하여모니터링하기에는무리가없다. 웹스트리밍또는기타외부기기에서라즈베리파이카메라모듈을이용한웹스트리밍서비스를하기위해선 mjpg-stream 이가장최적화되어있다. Mjpg-stream 컴파일을위해아래영상관련라이브러리및 cmake 패키지를설치해 주도록한다. $udo apt-get install git cmake libjpeg8-dev imagemagick -y videodev2.h 헤더파일링크 gksmsep[ mjpg-streamer 를컴파일진행시에는 요구하는 videodev.h 헤더파일을변경된 videodev2.h 파일로링크하자. $ sudo ln -s /usr/include/linux/videodev2.h /usr/include/linux/videodev.h mjpg-streamer 다운로드및컴파일하기 $ git clone https://github.com/liamfraser/mjpg-streamer 92

동영상스트리밍 Test $cd ~/mjpg-streamer/mjpg-streamer-experimental pi@raspberrypi ~/mjpg-streamer/mjpg-streamer-experimental $ make clean all 앞의과정들을통해 mjpg-streamer 를실행할수있는환경이갖추어졌으니, 마지막으로파이캠에서 mjpgstreamer 를이용할수있도록자동스크립트를작성하고명령어를입력해웹스트리밍을구현해보자. $ pi@raspberrypi ~ $cd ~ $ pi@raspberrypi ~ $sudo nano mjpg.sh export STREAMER_PATH=$HOME/mjpg-streamer/mjpg-streamer-experimental export LD_LIBRARY_PATH=$STREAMER_PATH $STREAMER_PATH/mjpg_streamer -i "input_raspicam.so -d 200" -o "output_http.so -w $STREAMER_PATH/www" CTRL-X 를누르고 Y 누르고 Enter 저장하고나온다. $ pi@raspberrypi ~ $sh mjpg.sh $ pi@raspberrypi ~ $sh mjpg.sh 확인주소 : http:// 라즈베리파이아이피 :8080 종료 Ctrl -c 93

스마트농장서버실행 Test pi@raspberrypi ~ $ cd iot_farmserver pi@raspberrypi ~/iot_farmserver $ cd output pi@raspberrypi ~/iot_farmserver/output $ ls mjpg.sh server_farm 서버실행 : $sudo./server_farm pi@raspberrypi ~/iot_farmserver/output $ sudo./server_farm validate database... iot_send_query : query - CREATE TABLE IF NOT EXISTS tfarmsensorvalue (id INT AUTO_INCRE....) iot_send_query : query - CREATE TABLE IF NOT EXISTS tfarmsensorcheck (id INT AUTO_INCRE....) data: 1 validate setting data... : 1 starting server... Humidity = 52.90 % Temperature = 25.80 *C Humidity = 52 Temperature = 25 Temperature = 25 Data not good, skip Humidity = 52.80 % Temperature = 25.80 *C Humidity = 52 Temperature = 25 Humidity = 52 SensorInterruptLoop : write to DB - INSERT INTO tfarmsensorvalue values (null,now(), now(), 25.000000, 52.000000, 0) iot_insert_data_from_db : query - INSERT INTO tfarmsensorvalue values (null,now(), now(), 25.000000, 52.000000, 0) 실행종료 : ctrl - x 94

스마트농장 Database 설계 DB Name : iotfarm Table : tfarmsensorvalue 센서값저장테이블 1 분마다센서값을저장한다. 날짜 day / 조도 int / 온도 float / 습도 float Table : tfarmsensorcheck 센서정상 / 불량저장테이블 센서정상불량확인하여저장 10 분마다. 날짜 day / 조도센서 ( 정상, 오류 ) / 온도센서 ( 정상, 오류 ) / 습도센서 ( 정상, 오류 ) Table : tfarmactuoperate 액츄에이터동작상태 ( 동작중 / 정지중 ) 액츄동작시데이터베이스업데이트하고, 동작끝날때업데이트 날짜 day / pump(on,stop) / fan(on, stop) / dcmotor(on, stop) / rgbled(on, stop) Table : tfarmactucheck 액츄에이터가정상 / 불량저장데이블 액츄에이터정상불량기록 현재는모두정상 pump(normal, fail), fan(normal, fail), dcmotor(normal, fail), rgbled(normal, fail) Table : tfarmsetting 설정값저장테이블 Now(), 매일 /2 일 /3 일 (0,1,2) 95

스마트농장 User Interface 설계 96

Android App 개발 이클립스개발환경 File Import 선택 Existing Projects into Workspace Zip 파일혹은프로젝트파일선택 Activity_main.xml 파일 Layout 파일편집 97

Android App 개발 MainActivity.java 파일 스마트폰에서실행 98

스마트농장앱다운로드설치 Smart IoT 블로그 : http://smartiot.tistory.com 스마트팜앱 : http://smartiot.tistory.com/39 99

스마트농장전체실습연결도 Wire Ethernet 카메라 Internet Router Gateway(R-Pi) WiFi 동글사용시공유기설정을참고하여라즈베리파이 Wlan0 설정필요함. - 같은네트워크에접속되어야함 할당받은 ip 주소 : 교육실 : ssid : iptime key : 12345678 100

스마트농장실습과스마트폰앱 Test $sudo./s-farm 으로동영상스트리밍서버와스마트팜서버를동시에실행 스마트농장시스템서버실행 1. 스마트팜서버실행 백그라운드실행 pi@raspberrypi ~/iot_farmserver/output $ sudo./server_farm & 2. 동영상스트리밍서버실행 $sh mjpg.sh export STREAMER_PATH=/home/pi/mjpg-streamer/mjpg-streamer-experimental export LD_LIBRARY_PATH=$STREAMER_PATH $STREAMER_PATH/mjpg_streamer -i "input_raspicam.so -d 200" -o "output_http.so -$ 101

스마트농장앱실행 1 102

스마트농장앱실행 2 103

참고자료 [1] ( 주 ) 휴인스 : http://www.huins.com [2] ( 주 ) 휴인스 IoT Blog : smartiot.tistory.com [3] 라즈베리파이활용백서 : 실전프로젝트 20 - 이재상표윤석지음, 비제이퍼블릭 [4] 라즈베리파이산딸기마을카뮤니티 http://www.rasplay.org/ [5] 리눅스와함께하는라즈베리파이 피터멤브리, 배장열옮김, 제이펍 [6] ITU-T Internet Report The Internet of Things Executive Summary, Nov. 2005. [7] 민경식, Net Term, 인터넷 & 시큐리티이슈, 사물인터넷 (Internet of Things), 2012. [8] 전자부품연구원 (KETI), IoT(Internet of Things) Presentation Design, Nov. 2012. [9] 이준섭, TTA 표준화교육, 스마트통신시장의핵심열쇠 M2M, M2M/IoT Standardization in ITU-T, Oct. 23, 2012. [10] ITU-T, ITU-T SG13, Y.WoT, Framework of Web of Things, Oct. 10, 2011. [11] ITU-T, ITU-T SG13, Y.2060, Overview of the Internet of Things, July 04, 2012. [12] IETF, Draft-lee-iot-problem-statement-05.txt [13] JP Vasseur, IETF 77, Internet Area Meeting, The Internet of Things, March 2010. [14] Internet of Things - Feb 6.2013, Yim Hyung-jun, Database Systems Lab. Dept. of Computer Engineering Chungnam National University [15] 사물인터넷 (IoT) 분야의주요임베디드 SW 기술 - MDS 테크놀로지 장성균 (2014/07/24) [16] 사물인터넷글로벌생태계구축및서비스활성화를위한개방형 IoT 소프트웨어플랫폼기술 - 2013. 10. 25, 김재호 (jhkim@keti.re.kr), 전자부품연구원 [17] Opensource H/W + Node js 로 IoT 따라잡기 Circulus 감사합니다. 105

IoT Predictions IoT and the Cloud. 향후 5 년이내에 IoT 데이터의 90% 이상이서비스제공플랫폼주도. 클라우드컴퓨팅은 IoT Data Blending 을지원복잡도를감소시킴. IoT and security. 향후 2 년이내에네트워크의 90% 가 IoT 기반보완위반점을갖는다. Chief Information Security Officers (CISOs) 는새로운정책을적용해야한다. IoT at the edge. 2018 년까지 IoT 가생성하는데이터의 40% 가저장, 처리, 분석되어네트워크의선두에서적용된다. IoT and network capacity. 3 년이내에네트워크의 50% 가 IoT 기기들로용량초과되며, 10% 제한된네트워크들만이여유가있을것이다. IoT and non-traditional infrastructure. 2017 년까지데이터센터와기업의 90% 가비전통적인새로운사업모델에적용될것이다. BYOD(Briing your own device) device categories. IoT and vertical diversification. 오늘날 50% 이상의 IoT 활동이생산, 물류, 스마트시티, 소비자활동이지만 5 년안에산업 IoT 가주도권을잡을것이다. IoT and the Smart City. Competing to build innovative and sustainable smart cities, local government will represent more than 25% of all government external spending to deploy, manage, and realize the business value of the IoT by 2018. IoT and embedded systems. By 2018, 60% of IT solutions originally developed as proprietary, closed-industry solutions will become open-sourced allowing a rush of vertical-driven IoT markets to form. IoT and wearables. Within five years, 40% of wearables will have evolved into a viable consumer mass market alternative to smartphones. IoT and millennials. By 2018, 16% of the population will be Millennials and will be accelerating IoT adoption due to their reality of living in a connected world. https://datafloq.com/read/internet-of-things-more-than-smart-things/1060 106