176
W5500 Ethernet shield 보드 아두이노 파헤치기 1차 !

W5500 Ethernet shield 보드 아두이노파헤치기 1차wiznetacademy.com/.../02/Lecture_Note_Arduino_Ethernet.pdf · 2016. 2. 17. · W5500 Ethernet shield Feature • Arduino

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

  • W5500 Ethernet shield 보드

    아두이노 파헤치기 1차 !

    http://wizwiki.net/wiki/doku.php?id=osh:w5500_ethernet_shield:starthttp://wizwiki.net/wiki/doku.php?id=osh:w5500_ethernet_shield:starthttp://wizwiki.net/wiki/doku.php?id=products:wiz550io:starthttp://wizwiki.net/wiki/doku.php?id=products:wiz550io:start

  • 목차1. W5500 특징

    • Unattackable Hardwire TCP/IP Chip

    • IoT 최적화 chip

    • Arduino Enabled W5500 chip

    • Start-up을 꿈꾸십니까? - VAR products

    2. W5500 & W5500 Ethernet shield 소개

    3. Arduino 란?

    4. Arduino IDE 설치하기

    5. Peripheral 이론 및 실습

    • 디지털 입출력, 아날로그 입력 및 아날로그 응용 실습

  • W5500 특징

  • Unattackable Hardwire TCP/IP Chip

  • IoT 최적화 chiphttp://wiznetmuseum.com/application/

    http://wiznetmuseum.com/application/

  • Arduino Enabled W5500 chip

    W5100 W5500W5500

  • Start-up을 꿈꾸십니까? - VAR products

    http://wiznetmuseum.com/http://wiznetmuseum.com/

  • 목차1. W5500 특징

    • Unattackable Hardwire TCP/IP Chip

    • IoT 최적화 chip

    • Arduino Enable W5500 chip

    • Start-up을 꿈꾸십니까? - VAR products

    2. W5500 & W5500 Ethernet shield 소개

    3. Arduino 란?

    4. Arduino IDE 설치하기

    5. Peripheral 이론 및 실습

    • 디지털 입출력, 아날로그 입력 및 아날로그 응용 실습

  • W5500 & W5500 Ethernet shield 소개

  • W5500 Feature

    • Fully Hardware TCP/IP Ethernet Solution Chip !- WIZnet의 iEthernet chip 중 가장 저렴한 칩!

    • TCP, UDP, ICMP, IPv4, ARP, IGMP, PPPoE• Supports 8 independent sockets• Supports SPI Interface (SPI MODE 0, 3)• Internal 32Kbytes Memory for Tx/Rx Buffers• 10BaseT/100BaseTX Ethernet PHY embedded • 3.3V operation with 5V I/O signal tolerance • LED outputs (Full/Half duplex, Link, Speed, Active) • Package : 48LQFP

    W5500 System diagram

    http://wizwiki.net/wiki/doku.php?id=products:w5500:start

    http://wizwiki.net/wiki/doku.php?id=products:w5500:start

  • W5500 Ethernet shield Feature• Arduino Pin Compatible

    • Another board stackable

    • ARM mbed compatible operation

    • ARM mbed platform 보드 또한 사용 가능하다

    • Supports 3.3V / 5V

    • User Selectable GPIO pin

    • able to use different Modules by changing Chip Select

    • Stackable : Possible to stack different modules• http://wizwiki.net/wiki/doku.php?id=osh:w5500_ethernet_shield:startfeature

    • Support SD-card slot for storage

    • Support I2C, UART interface

    • Support IDE : Arduino IDE / KEIL / GCC / ARM mbed

    http://wizwiki.net/wiki/doku.php?id=osh:w5500_ethernet_shield:startfeature

  • WIZ550io Feature• Arduino Pin Compatible

    • ARM mbed compatible operation

    • ARM mbed platform 보드 또한 사용 가능하다

    • MAC 포함 모듈

    • 내부 IC에 MAC address 저장되어 있음.

    • Small Size

    • Supports 3.3V

    • Support SD-card slot for storage

    • Support I2C, UART interface

    • Support IDE : Arduino IDE / KEIL / GCC / ARM mbed

    • http://wizwiki.net/wiki/doku.php?id=products:wiz550io:start

    WIZ550io

    ioShield-A

    http://wizwiki.net/wiki/doku.php?id=products:wiz550io:start

  • 목차1. W5500 특징

    • Unattackable Hardwire TCP/IP Chip

    • IoT 최적화 chip

    • Arduino Enable W5500 chip

    • Start-up을 꿈꾸십니까? - VAR products

    2. W5500 & W5500 Ethernet shield 소개

    3. Arduino 란?

    4. Arduino IDE 설치하기

    5. Peripheral 이론 및 실습

    • 디지털 입출력, 아날로그 입력 및 아날로그 응용 실습

  • Arduino 란?

  • Arduino 란?• 단순한 IO 보드로 만들어진 임베디드 플랫폼이다.• 메인보드 위에 WiFi, Ethernet, Zigbee 등 다양한 통신모듈을 손 쉽게 연결이 가능하다.• 독자적인 통합개발환경(IDE)을 제공하여 간편한 펌웨어 업로드 등 SW 개발 지원한다.• 아두이노의 장점은 수많은 예제들과 라이브러리가 존재하기 때문에 각 센서를 손 쉽게 구현이 가능하다.• 또한 전자기술 경험이 없는 초급자들도 쉽게 사용할 수 있게 제작된 플랫폼이다.

  • Arduino IDE 설치하기

  • 2. Arduino 1.0.x를 클릭!

    1. Arduino IDE 설치하기

    1) Arduino.cc 접속해서 다운받기

    1. Download 클릭www.Arduino.cc

    http://www.arduino.cc/

  • Windows Installer 클릭해서다운로드 받는다 !

    1. Arduino IDE 설치하기

    2) ARDUINO 1.0.6 Version 다운로드 받기

  • 설치 후 실행하면 위와 같은 화면이 나온다.

    1. Arduino IDE 설치하기

    2) ARDUINO 1.0.6 Version 다운로드 받기

  • 2. Arduino Driver 설치하기

    1) Arduino는 IDE 설치하면 내부에 자체적으로 Driver를 제공한다.

    2) 보통은 Arduino IDE 설치 후 Arduino를 연결하면 아래 그림과 같이 Serial Port가 연결된다.

    다음과 같이 Arduino Mega 2560이COM Port 15로 연결된 것이 보인다.

  • 3. Arduino Driver 설치 에러 발생 #1 (COM port error)

    1) 만약 COM port 에러가 발생하면 보통은 아래와 같은 방법으로 해결이 가능하다.

    마우스 우 클릭하면화면 나와요!

    C:\Program Files (x86)\Arduino\drivers 경로를 선택한 뒤 다음(N)을 누르면 드라이버 설치된다.

    2

    1 3

    4

  • 3. Arduino Driver 설치 에러 발생 #2 (COM port error)

    1) 그럼에도 불구하고 도저히 Com port 문제가 해결되지 않을 때가 있다.

    2) 그런 경우에는 아래와 같이 진행한다.

    1. 제공 드린 파일 중 “utility”폴더의 ch341ser파일을 설치2. 설치하면 Driver가 잡히는 것을 확인할 수 있음

    3. 위 프로그램은 본래 아두이노 클론 보드 or 나노 보드를 사용하기 위해서 강제적으로 Driver를 연결해주는 프로그램입니다.

    4. 그래서 위 프로그램을 설치하면 장치관리자에서 Arduino Mega 2560이외에 다른 이름으로 나올 수 있습니다.

    5. 하지만 COM port는 정상적으로 연결되어 사용이 가능해진다는 점 알아주세요.6. 그렇게 추천하는 방법은 아닙니다만, 도저히 COM port가 안되는 경우 진행해주세요.

    7. 아래 링크 참조http://driz2le.tistory.com/104

    http://driz2le.tistory.com/104

  • 3. Arduino Driver 설치 에러 발생 #3

    1) 만약 INF 관련 설치 에러가 나올 경우 아래와 같이 진행한다.

    2) 아래와 같이 또 다른 문제가 발생 시 다음과 같이 진행해 주면 될 것이다.

    1. http://codens.info/453 으로 접속.1) mdmcpq.inf_amd64_neutral_fbc4a14a6a13d0c8.rar (64bit)2) mdmcpq.inf_x86_neutral_1b9e317b2982c778.rar (32bit)

    2. 위 두 파일 중 자신의 컴퓨터가 32/64 bit인지 확인한 뒤 알맞은 파일의 압축을 푼 뒤C:\Windows\System32\Drivers 경로에 복사

    3. 그리고 C:\Program Files (x86)\Arduino\drivers 경로로 접속해서 드라이버 재 설치1) 64bit의 경우 dpinst-amd64.exe 설치2) 32bit의 경우 dpinst-x86.exe 설치

    4. USB를 다시 연결 후 Reset버튼을 눌러본다.

    http://codens.info/453

  • 목차1. W5500 특징

    • Unattackable Hardwire TCP/IP Chip

    • IoT 최적화 chip

    • Arduino Enable W5500 chip

    • Start-up을 꿈꾸십니까? - VAR products

    2. W5500 & W5500 Ethernet shield 소개

    3. Arduino 란?

    4. Arduino IDE 설치하기

    5. Peripheral 이론 및 실습

    • 디지털 입출력, 아날로그 입력 및 아날로그 응용 실습

  • Peripheral 이론 및 실습

    디지털 입출력, 아날로그 입력 및 아날로그 응용 실습

  • Peripheral 이론Peripheral 이란?

    Peripheral은 칩 기준의 외부 장치들 X

    Ex) 외부 메모리, 모듈 등

    칩 내부에 존재하는 CPU core 기준 외부 장치들 O

    비슷한 말로는 입출력 장치(I/O device)라고 한다.

    Ex) GPIO, UART, PWM등

    Arduino Mega Block Diagram

  • W5500 Ethernet shield Pinout

    아두이노에서는 그림처럼 위 Pin들을 주로사용할 것 이다 !

    그래서 자세하게 설명된 W5500 Ethernet shield Pinout을 참고하자 !

  • 수강생 분들을 위해 선물을 준비했습니다 !

    이 강의의 모든 예제 실습은 제공 드린 파일에 전부 있습니다 !

    그러니 예제파일을 참고해주세요 !

  • Peripheral 이론 및 실습 #1

    GPIO Output/Input/EXTI, Analog Input/조도센서, PWM, UART, I2C, SPI

  • 1. 입출력(I/O)포트 / GPIO 포트 이론

    1) 위 포트를 입출력 포트라고 부르는 이유는 사용자가 임의의 프로그램을 작성하여 MCU의 I/O 핀을 입력이 가능한 핀으로만들거나, 출력이 가능한 핀으로 만들 수 있기 때문에 입출력포트라 칭한다.

    2) 그렇다면 GPIO(General Purpose IO)는? 말 뜻 그대로 일반적인 IO를 말한다. 입출력포트와 마찬가지로 입/출력이가능한 IO이다. 결국 두 포트는 같은 말이다.

    3) 그래서 GPIO는 다음과 같은 3가지 상태를 가진다.

    - 입력상태, 출력상태, High-Z(하이임피던스) 상태.

    1) 입력 상태(input)는 MCU입장에서 외부로 부터 ‘1’ or ‘0’상태를 받는 것을 말한다. Ex) Switch

    2) 출력 상태(output)는 MCU가 외부로 ‘1’ or ‘0’을 주는 것을 말한다. Ex) LED

    3) High-Z(하이임피던스)는 상대방의 출력을 그대로 받아들이는 상태를 말한다. 설명하자면, 상대방이 High(1)을 주면 MCU도 High가 되고, 상대방이 Low(0)을 주면 MCU도 Low가 되는 상태이다.

  • 2. GPIO Digital Output 실습

    1) 실습개요

    - Arduino Mega 보드에 Easy Module shield를 Stacking 하고 shield의 LED(D13)을

    Digital Output 으로 선언하고 ON/OFF 컨트롤 한다.

    Digital Pinout위 그림과 같이 보드를 연결 !!

  • 2. GPIO Digital Output 실습

    1) 실습하기 이전에 !! 아두이노 IDE 환경설정을 하자 !1. 도구(tools) -> Serial port ->

    Arduino Mega 2560에 연결된COM port에 연결한다.

    2. 도구(tools) -> Board 선택사용할 Board를 선택한다.Arduino Mega 2560 선택 !

    21

  • 2. GPIO Digital Output 실습

    1) Arduino IDE 실행

    1. Arduino IDE 실행2. File -> Examples -> Basics -> Blink 접속3. Blink 예제 실행

  • 2. GPIO Digital Output 실습

    2) Blink Example Code 설명

    코드 작성 후 보드에 다운로드 하기 !

  • 2. GPIO Digital Output 실습

    3) Digital Out 값은 ‘1’일 때 LED ON인 이유?

    “LED 다이오드 방향이 GND로 되어 있기 때문에 ‘1’(5v)을 출력해야 전위차가 생겨서 LED가 ON이 된다.”위 회로는 Easy Module Shield LED 회로이다.

    http://wizwiki.net/wiki/doku.php?id=products:wizwiki_w7500:start#technical_reference

  • 3. GPIO Digital Output 실습 응용

    1) 실습개요

    - Easy Module shield 회로도를 보고 RGB 회로를 보고 Digital Output 으로 선언하고

    순서대로 0.5초씩 ON/OFF 될 수 있게 실습 진행 !

    Easy Module Shield RGB 회로

  • 4. GPIO Digital Input 실습

    1) Digital Input 은 0v 또는 5v 의 외부전압을 ‘0’, ‘1’ 논리 값으로 인식

    2) 아래 회로를 보고 SW를 누르면 LED가 ON 될 수 있게 제작해보자.

    Easy Module Shield SW 회로

  • 4. GPIO Digital Input 실습

    3) 왜 스위치는 Input(입력)일까?

    “스위치를 Output(출력)으로 설정하면 SW를 아무리 눌렀다, 떼도 MCU가 인식을 할 수 없을 것이다.”

    왜냐하면, 외부 회로에서 어떻게 되든 상관없이 MCU에서는 ‘1’ or ‘0’출력 신호를 내보기만 하기 때문이다.

    그래서 MCU를 Input(입력)으로 설정해서 외부에서 회로적으로 ‘0’ or ‘1’이 되면 위 신호를 받아들여 MCU가 인식하게 된다.

    참고로 스위치 회로는 스위치가 눌리지 않을 때는 Pull up되어 있으니 ‘1’ 출력하다가 스위치가 눌리면 그 때 GND(‘0’)으로 신호가 바뀌어 검출되게 된다.

    http://wizwiki.net/wiki/doku.php?id=products:wizwiki_w7500:start#technical_reference

  • Falling Edge Rising Edge

    5. GPIO Input Interrupt 이론

    1) 외부에서 들어오는 전압 변화를 Interrupt 신호로 인식

    2) Interrupt 발생 시 handler 함수를 호출하고 수행 후 main 함수로 복귀

    3) Arduino Mega / Uno는 Interrupt 0번(D2), 1번(D3)을 사용한다.

    4) 즉, D2를 사용하면 인터럽트 0번이 동작하고 D3을 사용하면 인터럽트1번이 동작한다.

    5) 인터럽트 등록함수

    * void attachInterrupt(interrupt, ISR, mode)

    : interrupt: 인터럽트 번호, 핀 번호 아님! 아두이노 DUE 보드만 핀 번호로 사용. (int)

    : ISR: 인터럽트가 발생할 때 수행할 callback 함수

    : mode: 인터럽트가 수행될 조건

    - LOW : pin 이 LOW 상태일 때

    - CHANGE : pin 입력 값이 변경 될 때

    - RISING : LOW -> HIGH 로 변경 될 때

    - FALLING : HIGH -> LOW 로 변경 될 때

  • 5. GPIO Input Interrupt 이론

    - 주의 사항1. 인터럽트 callback 함수(ISR, Interrupt Service Routines)는 파라미터를 전달하거나 리턴할 수 없습니다.

    void xxx_callback() 형태가 됩니다.2. ISR 안에서는 delay() 함수를 사용할 수 없습니다.3. 그리고 milli-단위의 시각을 가져오는 함수인 millis() 를 사용하더라도 값이 증가하지 않습니다.

    delayMicroseconds() 의 경우에는 인터럽트에 독립적이므로 정상 동작합니다.4. ISR 안에서 Serial data를 읽을 경우 값이 소실됩니다.5. ISR 안에서 수정되는 전역 변수는 volatile 로 선언되어야 합니다.6. ISR 은 최대한 짧고 빠르게 수행되도록 작성해야 합니다. 7. 여러개의 ISR이 등록되어 있더라도 동시에 수행되지는 않습니다.8. 블루투스 모듈과의 통신을 위해 주로 사용되는 Software Serial 라이브러리의 경우 내부적으로 인터럽트를

    사용하는 것으로 알려져 있습니다. 따라서 UNO 보드의 경우 D2, D3 에 연결해야만 정상동작 합니다. 이를 회피하기 위해서 D0, D1 핀에 연결해서 Hardware Serial 로 동작시킬 수 있습니다.

  • 6. GPIO Input Interrupt 실습

    - Easy Module Shield의 회로도를 참고하여 평소에는 LED가 꺼져있는 상태이다가

    SW를 누르면 인터럽트가 동작하여 LED가 ON될 수 있게 실습 진행 !

    Easy Module Shield LED 회로

    Easy Module Shield SW 회로

  • 6. GPIO Input Interrupt 실습

    1) GPIO Input Interrupt 실습

    인터럽트 0번이 선언되었다는 것은,D2에서 Rising Edge가 발생하면 “blink” 함수가 인터럽트 동작을 한다는 것을 말한다.

  • Peripheral 이론 및 실습 #2

    GPIO Output/Input/EXTI, Analog Input/조도센서, PWM, UART, I2C, SPI

  • 1. ADC 이론

    ADC Circuit

  • ADC Pinout

    1. ADC 이론 - Analog Input Pinout

    1) Arduino Mega는 10bit 로 0v ~ 5v 를 샘플링

    2) ADC Pin Out. 6개 ADC Channel 중에서 선택해 사용

  • 2. Analog Input(ADC) 실습

    1) 가변저항 실습

    - 가변저항을 사용하여 변하는 아날로그 값을 Analog Input 으로 선언된 Pin 으로 입력 받고, LED 를 Digital Output

    으로 선언해서 (읽은 값 > 512 값) = LED OFF , (읽은 값 < 512 값) = LED ON 되게 구성하라

    Easy Module Shield 가변저항 회로

  • 2. Analog Input(ADC) 실습

    2) Analog Input 가변저항 Example Code 설명

  • 3. Analog Input(ADC) 응용 – 조도센서 (CDS 센서)

    CDS센서는 빛의 양에 따라 저항값이 변하며 포토레지스러, 일반적으로 광센서라 불린다.

    CDS센서(포토레지스터)의 저항값은 최소 수 ㏀에서 최대 수십 ㏁까지 변한다.

    포토레지스터는 가격이 저렴하여 간단하게 활용할 수 있지만 반응속도가 느리고 광량에

    따른 출력 특성이 정밀하지 않다는 단점이 있다.

    포토레지스터는 가시광선이 없는 어두운 곳에서는 절연체와 같이 전류가 흐르지 않다가 가시 광선이 닿으면 도체와 같이 전류가 흐른다. 즉, 어두운 곳에서는 높은 저항 값을 가지지만 밝은 곳에서는 저항 값이 낮아진다.

  • 3. Analog Input(ADC) 실습

    1) 조도센서 실습

    - 조도센서를 사용하여 변하는 아날로그 값을 Analog Input 으로 선언된 Pin 으로 입력 받고, LED 를 Digital Output

    으로 선언해서 (읽은 값 > 128 값) = LED OFF , (읽은 값 < 128 값) = LED ON 되게 구성하라

    Easy Module Shield 조도센서 회로

  • 3. Analog Input(ADC) 응용 - 조도센서

    6) 소스 코드

  • Peripheral 이론 및 실습 #3

    GPIO Output/Input/EXTI, Analog Input/조도센서, PWM, UART, I2C, SPI

  • 1. PWM 이론

    1) Pulse width modulation(PWM) 은 디지털 신호를 출력하면서도 아날로그 신호와 같은 효과를 얻을 수 있는 방식 ! 예로 LED 밝기 조절, 모터 속도 조절, Buzzer소리 등이 있다.

    2) PWM은 한 주기 내에서 ‘ON’과 ‘OFF’ 신호가 가지는 비율을 조절하는 방식으로 지속 시간은 신호가 ‘ON’ 상태인 시간, 듀티 사이클은‘ON’시간과 ‘OFF’시간의 비율을 나타낸다.

    3) 즉, 정해진 시간대역에서 펄스의 폭을 조정해서 Duty cycle 을 만든다

    duty cycle 계산 = 100% * (pulse width)/(pulse period)

    하지만 ! 아두이노에서는 50%Duty Cycle을 만들어 주는 함수가 존재 !

    진폭 변조 방식(Pulse Width Modulation)

  • PWM Pinout (Arduino Mega 기준)

    1. PWM 이론 - PWM Pinout

    1) PWM Pin Out. 원하는 PWM 채널을 선택해 사용

  • 1. PWM 실습

    1) 실습 개요

    - LED를 PWM 기능을 이용하여 밝기 제어를 해보자.

    Buzzer를 PWM 기능을 이용하여 음계 제어를 해보자.

    + SW로 제어하여 D2를 누르면 LED가 밝기 제어, D3을 누르면 Buzzer가 울리게 제작해보자.

  • 1. PWM 실습

    1) PWM LED & Buzzer 소스코드 Example

  • 1. PWM 실습

    1) PWM LED & Buzzer 소스코드 Example

    LED에서 0 ~ 255 값은 Hz가 아니다.Digital pin은 1bit로 표현되기 때문에 0 ~ 255 값으로 샘플링 된다.

    참고로 ADC는 Analog pin이며 10bit로 표현되기 때문에 0 ~ 1023값으로 샘플링 된다.

  • 2. UART(Serial 통신) 이론

    1) Universal Asynchronous serial Receiver and Transmitter(UART) 는 범용 비동기 통신이며, 병렬 및 직렬 방식으로 데이터를 전송한다.2) 직렬 통신(Serial) : 디바이스간 데이터의 흐름이 한 주기에 하나씩 전송되는 방식, 구현이 쉽지만 병렬통신에 비해 전송속도가 느리다.

    ex) USB3) 병렬 통신(Parallel) : 디바이스간 데이터의 흐름이 한 주기에 여러 개씩 전송되는 방식, 대량의 고속 데이터 전송이 요구될 경우 사용된다.

    ex) CPU Memory4) UART는 동기식과 비동기식이 존재한다.5) 동기식 직렬 통신 : 클럭을 이용하여 각 디바이스를 동기화하여 사용한다. 고속 통신이 가능하며, 클럭을 이용하기 때문에 클럭 선을 하나 추가해야하는

    단점이 있다.6) 비동기식 직렬통신 : 클럭 선이 없기 때문에 장점이 되지만 처리속도가 느리다. 그리고 클럭 동기 신호가 없으므로 시작신호를 붙여줘야하는 단점이 있다.7) UART는 기본적으로 비동기 통신을 지원하므로 Sender 와 Receiver 가 같은 Baud Rate 를 설정하여 통신해야 한다. (9600bps 는 1초에 9600bits 를 송수신 할 수 있다.)

    9600

    115200

  • 2. UART(Serial 통신) 실습

    - 실습 개요

    1) 아두이노 Serial 을 이용하여 “Hello World”를 출력해보자.

  • 2. UART(Serial 통신) 실습

    1) Hello world Example

    아두이노에서는 Serial.begin으로 초기화를진행 한 뒤에 사용한다.Baudrate 9600으로 설정한다.

    Print를 사용하여 Serial Message 출력한다.

  • 2. UART(Serial 통신) 실습

    2) Hello world Example 결과 화면 !

    컴파일 + 업로드

    Serial Monitor로시리얼 메시지 확인 !

    1. 메시지 출력되었는지 확인한다.2. Baudrate가 9600인지 확인한다.

    2

    1

  • 3. I2C 이론

    1) I2C 는 Serial 통신을 이용하여 master 와 slave 간의 동기식 시리얼 데이터 동작 프로토콜이다.

    - Serial clock(SCL) 과 Serial data(SDA)핀을 이용하여 데이터와 7bit 주소, 1bit ACK/non-ACK 를 전송한다.

    2) 아두이노에서는 일반적으로 많은 데이터 전송을 요구하지 않는 센서의 경우 I2C를 사용한다.

    3) I2C는 SPI에 비해 속도가 느리다는 단점이 있지만, 신호선 2개만 연결하면 사용할 수 있다는 장점이 있다.

    4) I2C는 반이중(Half-duplex)방식으로 송신과 수신이 동시에 이루어질 수 없기 때문에 양방향 통신인 경우 전송 속도가 더 느려진다.

  • 3. I2C 이론 - I2C Pinout

    1) I2C PinOut. SCL, SDA

    I2C Pinout (Arduino Mega 기준)

    D14, D15 사용

  • 3. I2C 실습

    1) 실습 개요

    - I2C 를 사용하여 OLED “Hello World” 문자열을 출력해보자.

    실습 시작하기 전에 !

    , 라이브러리를 추가한다.

    C:\Program Files (x86)\Arduino\libraries 경로에 , 라이브러리 추가

  • 3. I2C 실습

    1) 주의사항 !!

    반드시 ! 그림과 같이 잡고 연결해주세요 …

    손으로 LCD를 누르면서 연결하면 LCD가 고장나요 ㅠㅠ

  • 3. I2C 실습

    1) OLED 연결 방법 !

    OLED는 그림과 같이 구성되어 있다. 위 그림과 같이 알맞게 선을 연결한다.

  • 3. I2C 실습

    2) I2C Example Code

  • 3. I2C 실습

    2) I2C Example Code

  • 4. SPI 이론

    1) Serial Peripheral Interface Bus(SPI) 는 Master 와 Slave 간의 고속 동기식 시리얼 데이터 동작 프로토콜이다.

    2) SPI는 속도가 빠르며 전이중(full-duplex) 방식으로 양방향 통신. 하지만 활성 장치를 선택하기 위해 추가 연결이 필요하므로 여러장치를 연결하여 사용하기 위해서는 연결선이 증가하는 단점이 있다. 아두이노에서는 일반적으로 고속의 데이터 전송이 필요한 경우에는 SPI를 사용한다.

    3) 일반적으로 SPI는 Master측은 byte 단위로 데이터를 보내주고, Dummy byte를 전송해 Slave에게 Read 과정을 수행한다. SPI는1:N 통신이 가능하며, 한 개 이상의 slave 디바이스와 통신할 때, master 는 반드시 추가 slave에 해당 CS신호를 보내야 한다.

    4) SPI 프로토콜은 4개의 시리얼 버스를 사용한다.

    - MOSI(Master Out Slave In) , MISO(Master In Slave Out), SCLK, SS(Slave Slect)

  • 4. SPI 이론 - SPI Pinout

    1) SPI PinOut. SCLK, SSEL, MISO, MOSI

    I2C Pinout (Arduino Mega 기준)

    D11, D12, D13은 SPI 신호선D10은 W5500 CS pin

    D4는 SDcard CS pin

  • 4. SPI 실습

    1) 실습 개요

    - SDcard library 를 이용하여 구현한다.

    1. SD card에 ‘text.txt’ 생성하고 “Hello world” 메시지 기입한다. 그리고 그 메시지를 다시 읽어서

    시리얼 메시지로 확인해보자.

    - SD card 예제 중에 SD card 정보를 읽는 예제도 있습니다. 참고해주세요 !

  • 4. SPI 실습

    보드 연결 !!

    Easy Shield는 SDcard Slot이 없으므로 Ethernet shield를 사용합니다 !

  • 4. SPI 실습

    2) SPI SDcard Example Code 설명 - 1

  • 4. SPI 실습

    2) SPI SDcard Example Code 설명 - 2

  • 4. SPI 실습

    2) SPI SDcard Example Code 설명 - 3

  • W5500 Ethernet shield 보드

    아두이노 파헤치기 2차 !

    http://wizwiki.net/wiki/doku.php?id=osh:w5500_ethernet_shield:starthttp://wizwiki.net/wiki/doku.php?id=osh:w5500_ethernet_shield:starthttp://wizwiki.net/wiki/doku.php?id=products:wiz550io:starthttp://wizwiki.net/wiki/doku.php?id=products:wiz550io:start

  • 목차

    1. Web Client

    • Web Client로 날씨정보 확인하기

    • dweet.io를 이용하여 Cloud Server와 통신하자

    2. Web Server

    • Web Server로 LED 제어하기

    • Web Server로 ADC 제어하기

    • Web Server로 Network 정보 확인하기

  • IoT 를 위한 첫 걸음 !!

    Web Client 란?!

  • Web Client

    W5500 Ethernet shield

    www.openweathermap.org

    Server

    DHCP Server

    HTTP Request

    http://wizwiki.net/wiki/doku.php?id=osh:w5500_ethernet_shield:starthttp://wizwiki.net/wiki/doku.php?id=osh:w5500_ethernet_shield:start

  • HTTP/1.1 200 OK Response(+Return values)

    HTTP GET/POST Request e.g., + URI

    1. HTTP 개요

    1) HTTP 는 Client / Server 로 구성

    2) HTTP Server : Web Browser (www.openweathermap.org & Cloud Server)

    HTTP Client : W5500 Ethernet shield

    3) Web Client는 원하는 정보를 요청하고 Web Server는 요청된 정보를 Web Client로 전송

    W5500(HTTP Client)

    Web Browser(HTTP Server)

  • 1. HTTP Method

    1) GET

    • Web Server 의 값을 얻기 위한 방법

    • Web Client 가 Web Server의 Storage로 부터 Data 얻기

    2) POST

    • Web Server 에 변경된 값을 전달하기 위한 방법

    • Web Client에서 값 변경요청(Request), Device(Server)에서 요청을 받아 값을 변경 후 응답 메시지 전송

  • DHCP를 알고 넘어가자 !

    DHCP를 이용하여 IP를 할당 받을 수 있다.

  • 2. DHCP 란?

    1) DHCP는 사용자들이 보다 쉽게 인터넷을 하기 위해서 필요한 수단이다.2) 인터넷을 하기 위해서는 각 컴퓨터들은 고유한 IP 주소를 가져야 한다.3) 이러한 고유한 IP는 개수가 제한되어 있다. 즉, 무한한게 아니다.4) 그렇기 때문에 DHCP라는 것을 이용하여 더 많은 Device들이 인터넷이 가능하게 할 수 있게 한다.5) 가장 큰 예로 공유기를 들 수 있다.

    - 공유기 내부 DHCP에서는 사설IP로 192.168.xxx.xxx을 할당해준다.- 그렇다면 어떻게 외부에서 공유기 내부로 접속할 수 있을까? DDNS , 포트포워딩이라는 기능이 있기 때문이다 !- http://blog.naver.com/maker_leo/220105028576 참고해주세요~

    6) 이러한 DHCP는 인터넷에 접속하고 싶은 모든 컴퓨터에 네트워크 정보들을 임대해주고 그 네트워크 정보들을 관리한다.

    http://blog.naver.com/maker_leo/220105028576

  • 2. DHCP 동작원리

    1. Client -> Server : DHCP 서버를 찾는다

    2. Server -> Client : DHCP 서버의 응답

    3. Client -> Server : 유효한 IP 주소 요청

    4. Server -> Client : 유효한 IP 주소 할당

    5. Client -> Internet

    https://www.youtube.com/watch?v=V69UAnkoYHM

    https://www.youtube.com/watch?v=V69UAnkoYHM

  • IoT Device 를 제어해보자! #1

    1) 날씨 정보 확인하기 + Web Client

    2) 센서 제어하기 + Web Client + Cloud

  • 아두이노 환경설정 !

    1. 실습을 시작하기 이전에 ! Ethernet 라이브러리를 등록하자.- 밑에 경로 라이브러리가 최신 라이브러리이다.

    2. https://github.com/Wiznet/WIZ_Ethernet_Library 경로 접속3. Ethernet 라이브러리를 다운받자 !

    버튼 눌러 다운 받기 !

    https://github.com/Wiznet/WIZ_Ethernet_Library

  • 아두이노 환경설정 !여기서 중요한 점 !!1. Arduino IDE 1.0.x를 받았다면 Arduino IDE 1.0.x 폴더로 접속2. Arduino IDE 1.5.x이상의 버전을 받았다면, Arduino IDE 1.5.x 폴더로 접속한다. 3. Ethernet 폴더를 복사4. C:\Program Files (x86)\Arduino\libraries 경로로 접속5. 기존 Ethernet 라이브러리 제거6. 복사한 Ethernet 폴더를 붙여넣기

    지우고 새로 받은 Ethernet 라이브러리를 복사한다.

  • Web Client로 날씨정보 확인하기

    Weather Station , Web Client + DHCP

  • Weather Station 개요

    HTTP Request

    Check

    http://wizwiki.net/wiki/doku.php?id=osh:w5500_ethernet_shield:starthttp://wizwiki.net/wiki/doku.php?id=osh:w5500_ethernet_shield:start

  • 3. Weather Station

    1) Open weather Map

    전세계의 날씨정보를 제공해주는 서버

    www.openweathermap.org

    json, xml 형식의 API 를 제공

    http://www.openweathermap.org/http://www.openweathermap.org/http://www.openweathermap.org/

  • 3. Weather Station

    보드 연결 !!

    Ethernet shield를 Stacking하여예제를 실습합니다 !

    LAN cable은 공유기와 연결해주세요.

  • 3. Weather Station

    2) Server 에서 받은 Data

    Server 에서 받아온 Data

    Data 타입 : Xml

    Display 하기 위해필요한 날씨 정보들

    접속 URI - http://api.openweathermap.org/data/2.5/weather?q=seoul,kr&appid=2de143494c0b295cca9337e1e96b00e0&mode=xml

  • 3. Weather Station

    3) Code 설명 - 1

    “MAC 주소는 사람으로 치자면 주민등록번호와 같습니다.”

    따라서 MAC주소의 맨 뒷자리를 제공드린 KIT번호로 변경하고 업로드 해주세요 !

    그리고 MAC 주소는 “Hex”로 표현된다는 점 잊지마세요 !

    접속할 Server 주소

  • 3. Weather Station

    4) Code 설명 - 2

    DHCP로 동작하면 이 구문이 실행

    DHCP로 동작안하면 이 구문이 실행

  • 3. Weather Station

    9) Code 설명 - 3

    URI로 접속하여 날씨 정보 요청

  • 3. Weather Station

    5) Code 설명 - 4

  • 3. Weather Station

    6) Code 설명 - 5

    Input을 String으로 선언하여 Data를 넣는 이유는String이용하면 Data를 분석하기 쉽게 할 수 있다.

    “기본적으로 아두이노에서 제공하는 라이브러리는Arduino.cc의 Reference 메뉴를 참고.”

  • 3. Weather Station

    7) Code 설명 - 6

  • 3. Weather Station

    8) Code 설명 - 7

  • 8) Web Server로 부터 온 Data

    3. Cloud Service

    위와 같은 메시지가 도착했다면 정상적으로 Data를받아온 것 !

    만약 위 메시지를 받지 못했다면, MAC주소 설정 및DHCP로부터 정상적으로 IP를 받았는지 다시 확인 !

  • dweet.io를 이용하여 Cloud Server와 통신하자

    Web Client + DHCP + 온도 & 조도 센서

  • Cloud Server

    W5500 Ethernet shield

    DHCP Server

    Cloud Server

    http://wizwiki.net/wiki/doku.php?id=osh:w5500_ethernet_shield:starthttp://wizwiki.net/wiki/doku.php?id=osh:w5500_ethernet_shield:start

  • 1) dweet.io 의 Cloud service 이용하기 - 1

    4. “dweet.io” Cloud Service

    클릭

    dweet.io 접속1

    2

    https://dweet.io/

  • 2) dweet.io 의 Cloud service 이용하기 - 2

    4. “dweet.io” Cloud Service

    Cloud Server 에Things 의 DATA 를POST 하기 위해

    클릭!!

    Things 의 이름을 입력

    json 형식의 임의의 데이터 입력

    {

    “a0”:100 // 100은 임의의 값

    }

    12

    클릭

    3

    4

  • 3) dweet.io 의 Cloud service 이용하기 - 3

    4. “dweet.io” Cloud Service

    Cloud Server 로 저장할 Things 의 데이터를 보내는(POST) 형식

    Cloud Server 의 응답(GET) DATA 형식 ; json 타입

  • 4. “dweet.io” Cloud Service

    4) Server에서 받은 Data

    Server 에서 받아온 Data

    Data 타입 : json

  • 5) Code 설명 - 1

    4. “dweet.io” Cloud Service

    접속할 Server 주소

  • 6) Code 설명 - 2

    4. “dweet.io” Cloud Service

  • 8) Code 설명 - 4

    4. “dweet.io” Cloud Service

    이 계산 방식은 CDS(조도센서)예제에서 사용된 계산방식입니다. 만약 온도 센서를 테스트하고 싶으면 온도 센서에맞는 핀 설정과 계산 방법을 기재하시면 됩니다.

  • 7) Code 설명 - 3

    4. “dweet.io” Cloud Service

  • 8) Web Server로 부터 온 Data

    4. “dweet.io” Cloud Service

    위와 같은 메시지가 도착했다면 정상적으로Data를 받아온 것 !

    이제 Cloud로 접속하여 값을 확인해보자 !

  • 4. “dweet.io” Cloud Service

    9) Cloud Server 에서 데이터를 확인하자

    주소창에 아래 URI 직접 입력

    https://dweet.io/follow/nameYouwant?a1=

    dweet.io 에 입력한Things 의 이름

    실시간 업데이트되는 그래프

    만약, Cloud에서 이름을 test1234으로 만들었다면,https://dweet.io/follow/test1234?a1= 로 접속해야 한다.

    https://dweet.io/follow/nameYouwant?a1=https://dweet.io/follow/nameYouwant?a1=

  • 목차

    1. Web Client

    • Web Client로 날씨정보 확인하기

    • dweet.io를 이용하여 Cloud Server와 통신하자

    2. Web Server

    • Web Server로 LED 제어하기

    • Web Server로 ADC 제어하기

    • Web Server로 Network 정보 확인하기

  • IoT 를 위한 두 걸음 !!

    Web Server 란?!

  • 1. Embedded Web Server 개요

    W5500 Ethernet shield

    Web Browser

    HTTP Request

    HTTP Response

    http://wizwiki.net/wiki/doku.php?id=osh:w5500_ethernet_shield:starthttp://wizwiki.net/wiki/doku.php?id=osh:w5500_ethernet_shield:start

  • HTTP/1.1 200 OK Response(+Return values)

    HTTP GET/POST Request e.g., ‘set_dio, get_ain’

    2. HTTP 개요

    1) HTTP 는 Client / Server 로 구성

    • HTTP Server : W5500 Ethernet shield

    • HTTP Client : Web Browser

    2) Web Server는 Web Client의 요청에 의해 HTML Web page 등을 Web Browser 로 전송

    Web Browser(HTTP Client)

    W5500(HTTP Server)

  • 3. HTTP Method

    1) GET

    • Web Server 의 값을 얻기 위한 방법

    • Web Client 가 Web Server의 Storage or Sdcard DATA 얻기

    2) POST

    • Web Server 에 변경된 값을 전달하기 위한 방법

    • Web Client에서 값 변경요청(Request), Device(Server)에서 요청을 받아 값을 변경 후 응답 메시지 전송

  • 3. HTTP Method

    1) 아두이노 기본 예제 Web Server

    Web Client로 부터 온 메세지

    위 기본 예제는 단순히 Client가 접속하면정해진 문자열을 보여주는 것 밖에 없음.하지만 제공 드린 예제코드를 활용하면LED 및 기타 센서 컨트롤이 가능하다 !

  • IoT Device 를 제어해보자! #2

    1) LED 제어 + Web Server (POST)2) 가변저항 제어 + Web Server (GET)

    3) Web Server Network 정보 읽기 + Web Server (GET)

  • Web Server로 LED 제어하기

    1) LED 제어 + Web Server (POST)

  • 1. Web page 로 LED 제어하기

    HTTP Request

    HTTP Request

    http://wizwiki.net/wiki/doku.php?id=osh:w5500_ethernet_shield:starthttp://wizwiki.net/wiki/doku.php?id=osh:w5500_ethernet_shield:start

  • 2. IP 설정

    1) IP 설정 & 이더넷 케이블 연결(PC to W5500 Ethernet shield)

  • 2. IP 설정

    2) IP 설정 & 이더넷 케이블 연결(PC to W5500 Ethernet shield)

  • 2. IP 설정

    3) IP 설정 & 이더넷 케이블 연결(PC to W5500 Ethernet shield)

  • 3. Web page로 LED 제어하기 실습

    1) Web server 동작 하기

    제공 드린 예제 파일 중 “Web Exmaple”의 Web Server예제 코드 실행 !

    SD card를 W5500 Ethernet shield에 끼워 넣고 실행해서 구동해보자 !

    LAN Cable은 PC와 연결해주세요 !

  • 3. Web page로 LED 제어하기 실습

    2) Web server 동작 하기

  • 3. Web page로 LED 제어하기 실습

    3) Web server 업로드 에러 발생 시

  • ain_page.htm 호출

    wiznet_logo.png 호출

    3. Web page로 LED 제어하기 실습

    4) Web server 동작 과정 설명 (index.htm page)

    dio_page.htm 호출

    net_info.htm 호출

  • 3. Web page로 LED 제어하기 실습

    5) Web server 동작 과정 설명 (index.htm page)

    dio_page.htm 호출

  • dio_page.htm 호출

    3. Web page로 LED 제어하기 실습

    6) Web server 동작 과정 설명 (index.htm code)

  • 3. Web page로 LED 제어하기 실습

    7) Web server 동작 과정 설명 (dio_page.htm page)

    setDiostate(this) 호출

  • 3. Web page로 LED 제어하기 실습

    8) Web server 동작 과정 설명 (dio_page.htm code)

    pin = 5 val = 1로setDiostate(this) 호출

  • 3. Web page로 LED 제어하기 실습

    9) Web server 동작 과정 설명 (dio_page.html code)

    클라이언트로 “set_dio” 전송

  • Pin = 5 면led_blue에 value 값 적용

    “set_dio” 면 아래 코드 수행

    3. Web page로 LED 제어하기 실습

    10) Web server 동작 과정 설명 (Main Code)

    위 코드는 클라이언트로부터 받은 POST method를 인식하고Data 파싱한다.

  • 3. Web page로 LED 제어하기 실습

    11) Starter Kit 를 이용하여 회로 구성

    LEDEasy Module Shield와 D10 pin(SPI CS) 충돌이발생합니다. 그래서 박스 내부의 Starter Kit 활용 !

  • GND

    D5

    3. Web page로 LED 제어하기 실습

    12) Breadboard Layout

    GND

    D5D6D7

    +

    -

    +

    -

    +

    -

    D6

    D7

  • Web Server로 ADC 제어하기

    Analog Sensor (가변저항, 조도센서) + Web Server (GET)

  • 1. Web page로 Analog Sensor 값 받아오기

    HTTP Request

    HTTP Request

    HTTP Response

    http://wizwiki.net/wiki/doku.php?id=osh:w5500_ethernet_shield:starthttp://wizwiki.net/wiki/doku.php?id=osh:w5500_ethernet_shield:start

  • 2. ADC 이론

    ADC Circuit

  • ADC Pinout

    2. ADC 이론 - Analog Input Pinout

    1) Arduino Mega는 10bit 로 0v ~ 5v 를 샘플링

    2) ADC Pin Out. 6개 ADC Channel 중에서 선택해 사용

  • ain_page.htm 호출

    3. Web page로 Analog Sensor 값 받아오기 실습

    1) Web server 동작 과정 설명 - (index.htm page)

  • ain_page.htm 호출

    3. Web page로 Analog Sensor 값 받아오기 실습

    2) Web server 동작 과정 설명 - (index.htm page)

  • 3. Web page로 Analog Sensor 값 받아오기 실습

    3) Web server 동작 과정 설명 - (ain_page.htm page)

    1초마다 getAin 호출

  • 3. Web page로 Analog Sensor 값 받아오기 실습

    4) Web server 동작 과정 설명 - (ain_page.htm code)

    “get_ain” 보냄

  • 3. Web page로 Analog Sensor 값 받아오기 실습

    5) Web server 동작 과정 설명 - (Main code)

    get_ain가 오면 아래 코드 실행

    ain_v0, ain_v1의 정보를 실어AinfoCallback 함수 요청

  • 3. Web page로 Analog Sensor 값 받아오기 실습

    6) Web server 동작 과정 설명 - (ain_page.htm code)

    txtain_v1 에 ain_v1 값을 저장

    AinDrawgraph(o) 함수 호출

  • 3. Web page로 Analog Sensor 값 받아오기 실습

    7) Web server 동작 과정 설명 - (ain_page.htm code)

    Val 에 ain_v0 값을 저장해당 값으로 그래프 style 출력

  • 3. Web page로 Analog Sensor 값 받아오기 실습

    8) Web server 동작 과정 설명 - (ain_page.htm code)

    그래프 style 정의 부분

  • 3. Web page로 Analog Sensor 값 받아오기 실습

    9) Web server 동작 과정 설명 - (ain_page.htm code)

    id = txtain_v0값을 불러와 넣음그래프 draw 부분 ain_v0의 값을 그래프로 출력

    Page 진입 시 getAin() 호출

  • 3. Web page로 Analog Sensor 값 받아오기 실습

    10) Starter Kit 를 이용하여 회로 구성

    GF063PK B103

    PGM5537D

  • GND:GND

    A0:WIPER3.3v:VCC

    3. Web page로 Analog Sensor 값 받아오기 실습

    11) Breadboard Layout

    3.3v

    GND

    A0

    VCC

    GND

    WIPER

    3.3V

    GND

    3.3V

    GND

    1.6V

    GND

    VCC

    V_out

    A1

    A1:V_out

  • 3. Web page로 Analog Sensor 값 받아오기 실습

    10) Web server 동작 과정 설명 - (ain_page.htm page)

    ain_v0 값 호출

    그래프 값 출력

    ain_v1 값 호출

  • Web Server로 Network 정보 확인하기

    Web Server (GET)

  • 1. Web page로 Network information 받아오기

    HTTP Request

    HTTP Request

    http://wizwiki.net/wiki/doku.php?id=osh:w5500_ethernet_shield:starthttp://wizwiki.net/wiki/doku.php?id=osh:w5500_ethernet_shield:start

  • 2. Web page로 Network information 받아오기 실습

    1) Web server 동작 과정 설명 - (net_info.htm page)

    net_info.htm 호출

  • 2. Web page로 Network information 받아오기 실습

    2) Web server 동작 과정 설명 - (net_info.htm code)

    net_info.htm 호출

  • 2. Web page로 Network information 받아오기 실습

    3) Web server 동작 과정 설명 - (net_info.htm page)

    Page 진입 시getNetinfo() 호출

  • 2. Web page로 Network information 받아오기 실습

    4) Web server 동작 과정 설명 - (net_info.htm code)

    Page 진입 시getNetinfo() 호출

  • 2. Web page로 Network information 받아오기 실습

    5) Web server 동작 과정 설명 - (net_info.htm code)

    “get_netinfo” 보냄

  • 2. Web page로 Network information 받아오기 실습

    6) Web server 동작 과정 설명 (Main Code)

    “get_netinfo” 가 오면 아래 코드 실행

    mac, ip, sn, gw의 정보를 실어NetinfoCallback 함수 요청

  • 2. Web page로 Network information 받아오기 실습

    7) Web server 동작 과정 설명 - (net_info.htm code)

    txtmac 에 mac 값을 저장

  • 2. Web page로 Network information 받아오기 실습

    8) Web server 동작 과정 설명 - (net_info.htm code)

    id = txtmac 값을 불러와 넣음

  • 2. Web page로 Network information 받아오기 실습

    9) Web server 동작 과정 설명 - (net_info.htm page)

    txtmac 값 호출

    txtip 값 호출

    txtsn 값 호출

    txtgw 값 호출

  • QnA 감사합니다.

  • 강의 평가 및 소감 남기기 !!

    위 링크를 클릭 ! 강의에 대한 평가 및 소감을 남겨주세요.

    평가 및 소감을 해주시면 향 후 더 좋은 강의가 만들어집니다 !

    http://wiznetacademy.com/?portfolio=%EA%B0%95%EC%9D%98%EB%85%B8%ED%8A%B8-%EC%95%84%EB%91%90%EC%9D%B4%EB%85%B8%EB%A1%9C-iot-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-2%EC%9B%94-18%EC%9D%BC

  • Homework !!1. 실습해보지 못한 예제들 실험해보기2. Weather Station을 온도 습도 값을 OLED로 출력해보기3. Web Server 조도센서도 확인해보기4. 실시간으로 클라우드 데이터 확인해보기

  • 부록

    1. 온도 센서2. UART(Serial)을 이용하여 LED 밝기를 조절해보자. + Handshaking

  • 부록1. 온도 센서

  • “ 온도의 변화를 모니터링하자 ”

    1) 온도센서의 아날로그 값을 읽어온다. (센서전체가 주변온도를 감지한다.)

    2) 아날로그 값으로 섭씨와 화씨를 구해서 Serial 라이브러리를 이용해 UART 출력을 해보자.

    3) LM35는 섭씨 1도당 10mV의 전위차를 갖는다. (TMP36도 동일)

    - 센서 핀의 전압이 0.28V라면 280mV이므로 온도는 28도 이다.

    - 그래서 100을 곱하는 것.

    1. Analog Input(ADC) 응용 - 온도센서

    Easy Module Shield 온도센서 회로

  • 1. Analog Input(ADC) 응용 - 온도센서

    4) 소스 코드

  • 1. Analog Input(ADC) 응용 - 온도센서

    4) 소스 코드

  • 1. Analog Input(ADC) 응용 - 온도센서

    5) 동작 확인

    컴파일 + 업로드

    Serial Monitor로시리얼 메시지 확인 !

    위 그림과 같이 온도와 습도 값이 나오는 것을 확인할 수 있다.

  • 1. Analog Input(ADC) 응용 - 온도센서

    DHT 라이브러리 추가 방법 !!

    1. 제공 드린 라이브러리 중 DHT 라이브러리를C:\Program Files (x86)\Arduino\libraries 경로로 복사한다.

    2. 예제코드를 실행하고 #include 가 있어야만 라이브러리를 사용할 수 있다 !DHT dht(DHT_pin, DHTTYPE);은 위 라이브러리를 dht라는 이름으로 사용한다라는 뜻이다 !

    21

  • 부록2. UART(Serial)을 이용하여 LED 밝기를 조절해보자.

    + Handshaking

  • 2. UART(Serial 통신) 실습

    1) 아두이노 Serial을 이용하여 LED 밝기 조절 Example

    아두이노에서는 Serial.begin으로 초기화를 진행 한 뒤에 사용한다.Baudrate 9600으로 설정한다.

    위 함수로 인해서 정수밖에 읽어오지 못한다. 그러므로 정수 값을 계속 받아서 LED 밝기를조절한다.

  • 2. UART(Serial 통신) 실습

    2) 아두이노 Serial을 이용하여 LED 밝기 조절 Example

  • 2. UART(Serial 통신) 실습

    3) 아두이노 Serial을 이용하여 LED 밝기 조절 Example 결과 화면 !

    컴파일 + 업로드

    Serial Monitor로시리얼 메시지 확인 !

    1. OK 를 Send 한다.2. 0 ~ 255까지의 숫자를 기입하

    여 LED의 밝기를 조절한다.

    2

    1