주신영대표 스마트쉐어 - visual c#...
TRANSCRIPT
Windows 8.1과 라즈베리파이를 연결하는 프레임 워크
- 주신영 대표 / 스마트쉐어- Visual C# MVP
3월의 주제
사물인터넷과Windows 8 앱의 연결!
사물인터넷(Internet of Things)
IOT?
느낌 아니까~
2008~2010
방송통신망 기반 IP-USN 통합 시험환경 구축 사업한국정보사회진흥원(NIA)
IP-USN 연계검증 선도사업(춘천, SKT M2M)
사물지능 통신 기반의 녹색도시 인프라 및통합관제시스템 구축(강릉, LGU+ M2M)
CDMA망을 이용한 USN센서의 웹 제어 화면 구축및 인증 프로세스 도입을 통한 범용 API개발(RFP)
Naming USN(Ubiquitous Sensor Network)
RFID-USN
IP-USN
WSN(Wireless Sensor Network)
사물통신
사물지능통신
M2M(Machine To Machine)
O2N : Object to Object Intelligent Network
사물인터넷
Internet of Things
뉴스에서..
2008년 숭례문
2008년 백운사
4대강 살리기
원격의료진료
이동통신사의 IOT(M2M) 플랫폼
센서
• 감지기
• <물리> [같은 말] 감지기(여러 가지 물리량(物理量), 곧 소리ㆍ빛ㆍ온도ㆍ압력 따위를 검출하는 소자(素子)). ‘감지기’로 순화.
• 화재 감지기
• 그 기계에는 도난 방지를 위한 감지기가 설치되어 있다.
• 직접 피측정 대상에 접촉하거나 그 가까이서 데이터를 알아내어 필요한 정보(情報)를 신호로 전달하는 장치를 총칭해서 센서(감지기)라 한다. 인간의 감각으로는 측정할 수 없는수치(數値)도 잴 수 있어 위험이 따르는 작업 기계에도 많이 부착하게 되었다. 산업용 로봇에는 없어서는 안되는 장치. 응용 범위가 확대됨에 따라 최근에는 인텔리전트 센서 등정보나 수치를 스스로 계산, 판단, 처리하는 보다 높은 기능의 센서도 개발되어 실용화되고 있는데, 가까운 예로 냉난방 기구의 온도 센서, 방범용 센서 등을 들 수 있다.
스마트폰과 센서
생활 속 센서
라즈베리파이(Raspberry Pi)
Device
라즈베리파이
영국의 라즈베리파이 재단에서 기초 컴퓨터 과학 교육용으로
만든 싱글 보드 컴퓨터
여러가지 리눅스 배포판 제공
파이썬(Python) – 라즈베리파이의 파이(Pi)
GPIO (General Purpose Input / Output)
SPI , I2C, UART 통신 등
CSI (Camera Serial Interface), 터치 모니터
모델 A 모델 B
목표 가격:[5] US$ 25 US$ 35[57]
SoC:[5] 브로드컴 BCM2835 (CPU, GPU, DSP, 그리고 SDR SDRAM)[3]
CPU: 700 MHz ARM1176JZF-S core (ARM11 계열)[3]
GPU:브로드컴 비디오코어 IV,[58] OpenGL ES 2.0, 1080p30 h.264/MPEG-4 AVC 높은 프로파일 디코더[3]
메모리 (SDRAM): 256 MB (GPU와 같이 사용)512 MB (GPU와 같이 사용) as of October 15, 2012
USB 2.0 ports:[10] 1 2 (내장 USB 허브 하나 제외)[53]
비디오 출력:[5]
컴포지트 RCA (PAL & NTSC), HDMI (rev 1.3 & 1.4),[59] 액정 디스플레이를 위한 디스플레이 시리얼 인터페이스[60][61] 640×350 부터 1920×1200 이상의 14개의 HDMI 해상도와 여러 PAL, NTSC 표준들[62]
오디오 출력:[5] 3.5 mm 잭, HDMI
내장 저장장치:[10] SD / MMC / SDIO 카드 슬롯
내장 네트워크:[5][10] None 10/100 이더넷 (RJ45)[53]
로우레벨 주변장치:8 × GPIO, UART, I²C 버스, 2개의 칩을 선택할 수 있는 SPI, +3.3 V, +5 V, 접지[58][63]
전력: 500 mA (2.5 W)[5] 700 mA (3.5 W)
전원:[5] MicroUSB에서 받는 5 볼트 혹은 GPIO 헤더
크기: 85.60×53.98mm[64]
무게: 45g[65]
계획중인 운영체제: Debian GNU/Linux, Fedora, Arch Linux ARM,[2] RISC OS[25]
주변기기
• USB Hub
키보드 + 마우스
• 유선 인터넷 연결
• 무선 USB 랜카드
• HDMI to VGA
• 블루투스 동글
• XBMC(XBOX Media Center)
RaspBMC
• Game Console
• Macintosh Classic
• RC Car
• Car Audio
Single-board computer
UDOO (http://www.udoo.org)
라즈베리파이 4대 + 아두이노 듀
인텔 갈릴레오(Intel Galileo)
Quark, Edison
아두이노(Arduino) + 라즈베리파이 대세
아두이노 호환보드
아두이노 IDE(Sketche) 사용
Linux, Android OS 기본 제공
OS 설치
RawImages 다운로드
또는 New Out of Box Software (NOOBS)
http://www.raspberrypi.org/downloads
Win32DiskImager
SD카드 4GB 이상
Raspbian(Debian)
USB 키보드, 마우스
HDMI
카메라
• CSI (Camera Serial Interface)
• UDOO
• 인텔 갈릴레오
• IPCamera, Streaming Server
GPIO & Dev
Things
GPIO
I2C 통신 설정
sudo nano /etc/modprobe.d/raspi-blacklist.conf
sudo nano /etc/modules
sudo apt-get install i2c-tools libi2c-dev python-smbus
sudo adduser pi i2c
sudo reboot
sudo i2cdetect -y 1
Python
IDLE (Python 2.7.3)
IDLE 3 (Python 3.2.3)
New Window
Run -> Run Module
GPIO는 Root권한 필요
sudo python name.py
Python Sample
import RPi.GPIO as GPIOimport time
GPIO.setmode(GPIO.BCM)
GPIO.setup(23,GPIO.OUT)
GPIO.output(23,True)
time.sleep(1)
GPIO.output(23,False)
GPIO.cleanup()
WiringPi
sudo apt-get install git-core
git clone git://git.drogon.net/wiringPi
cd wiringPi
./build
gpio readall
GPIO는 Root권한 필요
gcc -o name name.c –lwiringPi
sudo ./name
WiringPi Sample
#include <stdio.h>#include <wiringPi.h>
#define LED1 4 // BCM_GPIO 23
int main (void){
if (wiringPiSetup () == -1)return 1 ;
pinMode (LED1, OUTPUT) ;while(1){digitalWrite (LED1, 1) ; // Ondelay (1000) ;
digitalWrite (LED1, 0) ; // Offdelay (1000) ;
}return 0 ;
}
WebIOPi
https://code.google.com/p/webiopi/
Download WebIOPi-0.7.0.tar.gz
tar xvf WebIOPi-0.7.0.tar.gz
cd WebIOPi-0.7.0
sudo ./setup.sh
sudo /etc/init.d/webiopi start
sudo update-rc.d webiopi defaults
VisualGDB
http://visualgdb.com/tutorials/raspberry/
Visual Studio
C# & Mono
Mono
ECMA(유럽표준기술규약)에 공개된 마이크로소프트의
.NET Framework 문서를 기준으로 구현된 오픈소스
리눅스, BSD, Mac OS X, 오픈솔라리스,윈도우 지원
Xamarin – iOS, Android, Mac (Store)
Unity – iOS, Android, Windows, Mac, Linux, PS3, Wii, Xbox 360
MonoGame – Windows, iOS, Android, Mac, Linux,
Mono 설치
Raspbian(Debian) 기준
sudo apt-get install mono-runtime
sudo apt-get install monodevelop
dmcs name.cs
mono name.exe
Mono 개발툴
MonoDevelop
Xamarin Studio
Visual Studio (Windows)
PCL(Portable Class Library)
Windows, Windows Phone, Windows Store,
Sliverlight, Xamarin(iOS,Android)
Mono (Hello World)
Mono Basics(http://mono-project.com/Mono_Basics)
WiringPi.Net
https://github.com/danriches/WiringPi.Net
WiringPi 라이브러리 Wrapper
cc -shared wiringPi.o -o libwiringPi.so
cc -shared wiringPiI2C.o -o libwiringPiI2C.so
cc -shared wiringPiSPI.o -o libwiringPiSPI.so
WiringPi.Net Sample
GPIO.pinMode(LED1, (int)GPIO.GPIOpinmode.Output);
while(true){
GPIO.digitalWrite(LED1, 1); // OnThread.Sleep(1000);
GPIO.digitalWrite(LED1, 0); // OffThread.Sleep(1000);
}}
}}
using System;using System.Collections.Generic;using System.Text;using WiringPi;using System.Threading;
namespace gpiotest{
class MainClass{
const int LED1 = 4; // BCM_GPIO 23
public static void Main (string[] args){
if (Init.WiringPiSetup() == -1)return;
Service
Azure
BizSpark, DreamSpark 무료 사용 가능
Mobile Service
Data, Push, Authenticate,
SDK(Windows Store, Windows Phone, iOS, Android)
Web Site
Database, noSQL, blob
Virtual Machine
Hadoop
Media
ASP.NET
ASP.NET WebAPI
Open API, 모바일 서비스
RESTful (대세!)
XML, JSON
Self-hosting
Request, Response
디바이스 제어는?
ASP.NET SignalR
Real-Time Messaging
Push Notifications
WebSocket, Long Polling, Forever-Frame 등
Node.js
Windows Store, Windows Phone, Android(Native), Mono(Xamarin) SDK 제공
Self-hosting
Demo