개발자/Arduino

Arduino Nano 33 IoT 개발 가이드 1 - 개발환경

지구빵집 2020. 5. 13. 16:07
반응형

 

 

Arduino Nano 33 IoT 개발 가이드 1 - 개발환경

 

본 개발 가이드의 대표적인 참고자료는 Arduino Nano 33 IoT Development Workshop by Agus Kurniawan 의 책이고 다른 참고자료를 더하여 완성한 자료임을 알려드립니다.

 

전체 강의자료와 소스코드는 아래를 참고하십시요. 소스코드의 출처는 위의 책 마지막 페이지에 소개되어 있습니다. 

 

Arduino Nano 33 IoT 개발 가이드 1 - 개발환경

Arduino Nano 33 IoT 개발 가이드 2 - 기본적인 예제 살펴보기

Arduino Nano 33 IoT 개발 가이드 3 - WiFi Network 실습

Arduino Nano 33 IoT 개발 가이드 4 - 내부 RTC와 Sleep Mode

Arduino Nano 33 IoT 개발 가이드 5 - Arduino Cloud

Arduino Nano 33 IoT 개발 가이드 6 - Accelerator and Gyroscope

Arduino Nano 33 IoT 개발 가이드 7 - Bluetooth Low Energy (BLE)

실습에 필요한 전체 소스코드 다운

 

  Arduino Nano 33 IoT는 Arduino IoT Cloud와 완벽하게 호환되며 완전한 TLS 보안 전송을 지원합니다. ATECC608A 암호화 칩은 암호화 키를 하드웨어에 저장하므로, 이 클래스의 제품에 대한 매우 높은 수준의 보안을 제공합니다. Arduino IoT Cloud와의 통합은 코딩이 거의없고 최소한의 노력으로 온라인 대시 보드를 설정하는 매우 효율적인 방법입니다. 보드는 세 가지 주요 블록으로 구성됩니다.

 

* Arm Cortex-M0 + SAMD21 프로세서

* ESP32 기반의 WiFi 및 Bluetooth 모듈

* 6 축 관성 측정 장치 (IMU)

* 인증서와 사전 공유 키를 안전하게 저장할 수있는 암호화 칩 ATECC608A

 

참고로 Arduino nano 제품 패미리를 알아보면(참고자료 2번)

 

순서대로 Arduino Nano Every, Arduino Nano 33 IoT, Arduino Nano 33 BLE, Arduino Nano 33 BLE Sense 이미지 출처: https://www.hackster.io/news/introducing-four-new-arduino-nanos-869b8abbccb4

 

아두이노 나노 패밀리의 보드들은 아두이노 나노 every, 아두이노 나노 33 IoT, 아두이노 나노 BLE, 아두이노 나노 33 BLE Sense가 있습니다. 아래 표를 확인하여 각각의 아두이노 보드들의 특징과 성능을 알아보세요.

 

보드 이름

MCU(마이크로 컨트롤러)

스펙(최대 클럭/ 플래시 메모리/ 램)

특징

아두이노 나노

Atmega328P

16MHz/ 32KB/ 2KB, 8Bit

제일 기본의 아두이노 나노

5V I/O 사용

아두이노 나노 every

Atmega4809

20MHz/ 48KB/ 6KB, 8Bit

아두이노 나노에 비해 성능 향상, 5V I/O 사용

아두이노 나노 33 IoT

SAMD21G18A

48MHz/ 256KB/ 32KB, 32Bit

Arm Coretex M0 아키텍처, NINA W102 (ESP32 기반 WIFI, BLE), 6축 IMU, 3.3V I/O 사용

아두이노 나노 33 BLE

nRF 52840

64MHz/ 1MB/ 256KB, 32Bit

Arm Coretex M4F 아키텍처, NINA B306 BLE 칩셋, 6축 IMU,

3.3V I/O 사용

아두이노 나노 33 BLE Sense

nRF 52840

64MHz/ 1MB/ 256KB, 32Bit

Arm Coretex M4F 아키텍처, NINA B306 BLE 칩셋, 9축 IMU,

3.3V I/O 사용

표 출처: 메카솔루션

 

아두이노 나노 33 IoT은 SAMD21G18A 칩을 MCU로 사용하고 있고, IoT에서 중요하게 여겨지는 보안을 위해 ATECC608A 암호화 칩을 사용하여 SHA-256, AES-128등 다양한 암호화를 지원합니다. 그리고 LSM6DS3 IMU를 사용하여 3축 자이로, 3축 가속도 센서를 기본적으로 사용할 수 있습니다. IoT를 구현하기 위한 통신 칩은 ESP32기반으로 만들어진 NINA W102 칩을 사용합니다. ​

 

통신

WIFI

BLE 4.2

SAMD21G18A

클럭

48MHz

메모리

256KB 플래시 메모리, 32KB SRAM(램)

인터페이스

USB

SPI

I2C

I2S

UART

전압

5V USB

입력 전압

4.5 ~ 21V

VIN 입력 전압

3.3V

I/O 전압

핀 아웃

디지털 핀 14개

아날로그 입력 8개

PWM 6개

크기

18 x 45mm

 

더 자세한 아두이노 나노 33 IoT의 스펙은 아래 데이터시트를 참고할 수 있다. Arduino Nano 33 IoT DataSheet

 

Arduino Nano 33 IoT는 SAMD21 마이크로 컨트롤러를 기반으로 한다. 자세한 기술적인 사양은 아래와 같다. 아래 표 참고 - ARDUINO NANO 33 IOT

 

Microcontroller SAMD21 Cortex®-M0+ 32bit low power ARM MCU (datasheet)
Radio module u-blox NINA-W102 (datasheet)
Secure Element ATECC608A (datasheet)
Operating Voltage 3.3V
Input Voltage (limit) 21V
DC Current per I/O Pin 7 mA
Clock Speed 48MHz
CPU Flash Memory 256KB
SRAM 32KB
EEPROM none
Digital Input / Output Pins 14
PWM Pins 11 (2, 3, 5, 6, 9, 10, 11, 12, 16 / A2, 17 / A3, 19 / A5)
UART 1
SPI 1
I2C 1
Analog Input Pins 8 (ADC 8/10/12 bit)
Analog Output Pins 1 (DAC 10 bit)
External Interrupts All digital pins (all analog pins can also be used as interrput pins, but will have duplicated interrupt numbers)
LED_BUILTIN 13
USB Native in the SAMD21 Processor
IMU LSM6DS3 (datasheet)
Length 45 mm
Width 18 mm
Weight 5 gr (with headers)

 

Arduino Nano 33 IoT 보드 핀 맵 자료 링크

 

 

Arduino Nano 33 IoT 핀 아웃

기능 타입 설명
1 D13/SCK 디지털 SPI SCK; GPIO
2 +3V3 전원 Internally generated power output to external devices
3 AREF 아날로그 Analog Reference,GPIO
4 A0/DAC0 아날로그 ADC in, DAC out, GPIO
5 A1 아날로그 ADC, GPIO
6 A2 아날로그 ADC, GPIO
7 A3 아날로그 ADC, GPIO
8 A4/SDA 아날로그 ADC, I2C SDA, GPIO (*)
9 A5/SCL 아날로그 ADC, I2C SCL, GPIO(*)
10 A6 아날로그 ADC , GPIO
11 A7 아날로그 ADC , GPIO
12 VUSB  전원 입/출력 Normally NC; can be connected to VUSB pin of the USB connector by shorting a jumper
13 RST 디지털 입력 Active low reset input (duplicate of pin 18)
14 GND 전원 Power Ground
15 VIN 전원 입력 Vin Power input
16 TX 디지털 USART TX; can be used as GPIO
17 RX 디지털 USART RX; can be used as GPIO
18 RST 디지털 Active low reset input (duplicate of pin 13)
19 GND Power Power Ground
20 D2 디지털 GPIO
21 D3/PWM 디지털 GPIO, PWM
22 D4 디지털 GPIO
23 D5/PWM 디지털 GPIO, PWM
24 D6/PWM 디지털 GPIO, PWM
25 D7 디지털 GPIO
26 D8 디지털 GPIO
27 D9/PWM 디지털 GPIO, PWM
28 D10/PWM 디지털 GPIO, PWM
29 D11/MOSI 디지털 SPI MOSI,GPIO
30 D12/MISO 디지털 SPI MISO, GPIO

 

 

아두이노 통합개발환경 설치

 

아두이노 나노 33 IoT를 사용할 때에는 기본적으로 아두이노 IDE(통합개발환경)를 사용하여 프로그래밍할 수 있다. 아두이노 IDE를 설치하지 않았다면 아두이노 공식 사이트에서 운영체제에 따른 아두이노 IDE를 다운로드하여 설치한다. 아두이노 개발 IDE 다운로드 링크

 

 

아두이노 Nano 33 IoT 하드웨어 드라이버 설치

 

아두이노 실행파일을 열어 메뉴 > 툴 > 보드 > 보드매니저를 실행한다.

 

메뉴 > 툴 > 보드 > 보드매니저, Tools menu , then  Boards  and last  Boards Manager

보드매니저 검색창에서"NANO 33"이라고 검색하고 'Arduino SAMD Boards (32-bits ARM Cortex-M0+)'를 확인하고 설치한다.

 

Arduino SAMD Boards (32-bits ARM Cortex-M0+) 찾아 설치

 

보드를 설치하고 다시 보드 옵션을 확인해보면 Arduino SAMD 하위에 Arduino NANO 33 IoT 보드를 확인할 수 있다. NANO 33 IoT를 선택하여 보드를 설정한다.

 

NANO 33 IoT를 선택하여 보드를 설정

 

 

드라이버 설치가 완료되면 윈도우에서는 장치 관리자에서 포트를 확인하여 설정할 수 있고, 리눅스나 맥에서는 장치 정보에서 보드가 인식되었는지 확인할 수 있다. 아두이노 개발환경에서 포트를 설정한다. 리눅스나 맥에서는 장치 정보에서 보드가 인식되었는지 확인할 수 있다. 혹시 USB 드라이버 문제로 인식이 안 되거나 에러가 발생할 경우FTDI chip 홈페이지로 이동해 드라이버를 다시 설치해 주어야 한다.

 

포트 설정

 

간단한 예제를 아두이노 나노 33 IoT에 업로드 해보자. IDE에서 파일 - 예제 - 01.Basics - Blink 예제를 사용한다. 예제를 불러오고 아두이노에 업로드하여 동작을 확인한다. 아두이노 나노 33 IoT에 'LED_BUILTIN'핀은 D13번 핀이다. 신호 단자에서 3.3/0V로 신호가 나오면서 나노 33 IoT의 주황색 LED가 점멸하는 것을 확인한다. 여기까지 확인하였다면 개발 환경을 성공적으로 완료하였다. 축하한다!

 

아두이노 나노 33 IoT는 다양한 IoT 플랫폼(Arduino IoT Cloud, AWS IoT Core 등), TCP, HTTP, MQTT 통신 등에 활용할 수 있는 강력한 성능을 가지고 있는 보드다. 이 보드를 사용하면 다양한 프로젝트에 활용할 수 있다.

 

 

참고자료

 

Arduino Nano 33 IoT 사용법 알아보기

Introducing Four New Arduino Nanos

Getting started with the Arduino NANO 33 IoT

데스크탑 IDE에 대한 설명

 

 

 

 

 

 

반응형