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번)
아두이노 나노 패밀리의 보드들은 아두이노 나노 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 하드웨어 드라이버 설치
아두이노 실행파일을 열어 메뉴 > 툴 > 보드 > 보드매니저를 실행한다.
보드매니저 검색창에서"NANO 33"이라고 검색하고 'Arduino SAMD Boards (32-bits ARM Cortex-M0+)'를 확인하고 설치한다.
보드를 설치하고 다시 보드 옵션을 확인해보면 Arduino SAMD 하위에 Arduino 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 통신 등에 활용할 수 있는 강력한 성능을 가지고 있는 보드다. 이 보드를 사용하면 다양한 프로젝트에 활용할 수 있다.
참고자료
Introducing Four New Arduino Nanos
Getting started with the Arduino NANO 33 IoT
'개발자 > Arduino' 카테고리의 다른 글
프로젝트 참고 TinyML Application Development for Everyone (0) | 2020.05.22 |
---|---|
Arduino Nano 33 IoT 개발 가이드 7 - Bluetooth Low Energy (BLE) (2) | 2020.05.15 |
Arduino Nano 33 IoT 개발 가이드 6 - Accelerator and Gyroscope (0) | 2020.05.15 |
Arduino Nano 33 IoT 개발 가이드 5 - Arduino Cloud (0) | 2020.05.15 |
Arduino Nano 33 IoT 개발 가이드 4 - 내부 RTC와 Sleep Mode (1) | 2020.05.13 |
Arduino Nano 33 IoT 개발 가이드 3 - WiFi Network 실습 (2) | 2020.05.13 |
Arduino Nano 33 IoT 개발 가이드 2 - 기본적인 예제 살펴보기 (0) | 2020.05.13 |
arduino IDE에서 Serial Plotter 사용법 (0) | 2020.05.10 |
더욱 좋은 정보를 제공하겠습니다.~ ^^