- Arduino 용 Adafruit 5X8 NeoPixel Shield
- Blynk 앱과 Arduino 간의 통신 프로세스 이해
- 필요한 구성 요소
- Adafruit RGB LED Shield 및 Arduino-하드웨어 연결
- Blynk 응용 프로그램 구성
- Adafruit WS2812B RGB LED 실드를 제어하는 Arduino 코드
- Arduino 보드에 코드 업로드
몇 년 동안 RGB LED 는 아름다운 색상, 밝기 및 매력적인 조명 효과로 인해 날마다 인기를 얻고 있습니다. 그렇기 때문에 많은 장소에서 장식용 으로 사용되며, 예를 들어 가정이나 사무실 공간이 될 수 있습니다. 또한 부엌과 게임 콘솔에서도 RGB 조명을 사용할 수 있습니다. 무드 조명 측면에서 어린이 놀이방이나 침실에서도 좋습니다. 이전에는 WS2812B NeoPixel LED와 ARM 마이크로 컨트롤러를 사용하여 Music Spectrum Visualizer를 구축 했으므로 관심이 있는지 확인하십시오.
이것이이 프로젝트에서 네오 픽셀 기반 RGB LED 매트릭스 쉴드, Arduino 및 Blynk 애플리케이션을 사용하여 Blynk 앱으로 제어 할 수있는 많은 매혹적인 애니메이션 효과와 색상을 생성하는 이유입니다. 그럼 시작합시다 !!!
Arduino 용 Adafruit 5X8 NeoPixel Shield
Arduino 호환 NeoPixel Shield 에는 개별적으로 주소 지정이 가능한 40 개의 RGB LED가 포함되어 있으며 각각 WS2812b 드라이버가 내장되어 있으며이 LED는 NeoPixel Shield 를 형성하기 위해 5x8 매트릭스로 배열됩니다. 필요한 경우 여러 NeoPixel Shield를 연결하여 더 큰 Shield를 만들 수도 있습니다. RGB LED를 제어하려면 단일 Arduino 핀이 필요하므로이 자습서에서는 Arduino의 핀 6을 사용하기로 결정했습니다.
우리의 경우 LED는 Arduino에 내장 된 5V 핀에서 전력을 공급받으며, 이는 최대 밝기에서 약 "LED의 1/3"에 전력을 공급하기에 충분합니다. 더 많은 LED에 전원을 공급해야하는 경우 내장 된 트레이스를 잘라 내고 외부 5V 전원을 사용하여 외부 5V 터미널을 사용하여 차폐에 전원을 공급할 수 있습니다.
Blynk 앱과 Arduino 간의 통신 프로세스 이해
여기에 사용되는 8 * 5 RGB LED 매트릭스에는 WS2812B 드라이버를 기반으로 개별적으로 주소 지정이 가능한 40 개의 RGB LED가 있습니다. 24 비트 색상 제어 및 픽셀 당 1,680 만 색상이 있습니다. "단선 제어"방법론으로 제어 할 수 있습니다. 즉, 단일 제어 핀을 사용하여 전체 LED 픽셀을 제어 할 수 있습니다. LED로 작업하는 동안 실드의 작동 전압 범위가 4V ~ 6V이고 전류 소비가 LED 당 50mA (빨간색, 녹색, 5V) 인 LED 데이터 시트를 살펴 보았습니다. 전체 밝기에서 파란색. 외부 전원 핀에 역 전압 보호 기능이 있고 쉴드에 Arduino를 재설정하는 리셋 버튼이 있습니다. 내부 회로를 통해 충분한 양의 전원을 사용할 수없는 경우 LED 용 외부 전원 입력 핀도 있습니다.
위의 회로도에서 볼 수 있듯이 Blynk 애플리케이션 을 다운로드하여 설치해야합니다.색상, 밝기 등의 매개 변수를 제어 할 수있는 스마트 폰에서 매개 변수를 설정 한 후 앱에 변경 사항이 발생하면 PC도 연결되어 업데이트 된 데이터를 수신 할 준비가 된 Blynk 클라우드로 이동합니다. Arduino Uno는 통신 포트가 열린 상태에서 USB 케이블을 통해 PC에 연결되며,이 통신 포트 (COM Port)를 통해 Blynk 클라우드와 Arduino UNO간에 데이터를 교환 할 수 있습니다. PC는 일정한 시간 간격으로 Blynk 클라우드에서 데이터를 요청하고 업데이트 된 데이터가 수신되면이를 Arduino로 전송하고 RGB LED 밝기 및 색상 제어와 같은 사용자 정의 결정을 내립니다. RGB LED 실드는 Arduino LED에 배치되고 통신을 위해 단일 데이터 핀을 통해 연결되며 기본적으로 Arduino의 D6 핀을 통해 연결됩니다.Arduino UNO에서 전송 된 직렬 데이터는 Neopixel shied로 전송되어 LED 매트릭스에 반영됩니다.
필요한 구성 요소
- Arduino UNO
- 8 * 5 RGB LED 매트릭스 실드
- Arduino UNO 용 USB A / B 케이블
- 노트북 / PC
Adafruit RGB LED Shield 및 Arduino-하드웨어 연결
WS2812B Neopixel LED 에는 3 개의 핀이 있는데 하나는 데이터 용이고 다른 2 개는 전원용으로 사용되지만이 특정 Arduino 실드는 하드웨어 연결을 매우 간단하게 만들어줍니다. 우리가해야 할 일은 Arduino UNO 위에 Neopixel LED 매트릭스를 배치하는 것뿐입니다. 우리의 경우 LED는 기본 Arduino 5V 레일에서 전원이 공급됩니다. Neopixel Shield를 배치 한 후 설정은 다음과 같습니다.
Blynk 응용 프로그램 구성
Blynk는 Android 및 IOS 장치에서 실행 하여 스마트 폰을 사용하여 모든 IoT 장치 및 어플라이언스 를 제어 할 수있는 응용 프로그램입니다. 우선, RGB LED 매트릭스를 제어하기 위해 그래픽 사용자 인터페이스 (GUI)를 만들어야합니다. 응용 프로그램은 선택한 모든 매개 변수를 GUI에서 Blynk 클라우드로 보냅니다. 수신기 섹션에는 Arduino가 직렬 통신 케이블을 통해 PC에 연결되어 있습니다. 따라서 PC는 Blynk 클라우드에서 데이터를 요청하고 이러한 데이터는 필요한 처리를 위해 Arduino로 전송됩니다. 이제 Blynk 응용 프로그램 설정을 시작하겠습니다.
설정하기 전에 Google Play 스토어에서 Blynk 애플리케이션을 다운로드하십시오 (IOS 사용자는 App Store에서 다운로드 할 수 있음). 설치 후 이메일 ID와 비밀번호를 사용하여 가입하십시오.
새 프로젝트 생성:
성공적으로 설치 한 후 응용 프로그램을 열면 " 새 프로젝트 " 옵션이있는 화면이 나타납니다. 그것을 클릭하면 프로젝트 이름, 보드 및 연결 유형과 같은 매개 변수를 설정해야하는 새 화면이 나타납니다. 프로젝트에서 장치를 " Arduino UNO " 로 선택 하고 연결 유형을 " USB "로 선택하고 " 만들기"를 클릭합니다.
프로젝트를 성공적으로 생성하면 등록 된 메일로 인증 ID 를 받게됩니다. 나중에 참조 할 수 있도록 인증 ID를 저장하십시오.
그래픽 사용자 인터페이스 (GUI) 만들기:
Blynk에서 프로젝트를 열고 "+"기호를 클릭하면 프로젝트에서 사용할 수있는 위젯이 표시됩니다. 우리의 경우에는 아래와 같이“zeRGBa”로 나열된 RGB 색상 선택기가 필요합니다.
위젯 설정:
위젯을 프로젝트로 드래그 한 후 이제 색상 RGB 값을 Arduino UNO로 보내는 데 사용되는 매개 변수를 설정해야합니다.
ZeRGBa를 클릭하면 ZeRGBa 설정 이라는 화면이 나타납니다. 그런 다음 출력 옵션을 " Merge "로 설정하고 핀을 아래 이미지에 표시된 "V2"로 설정합니다.
Adafruit WS2812B RGB LED 실드를 제어하는 Arduino 코드
하드웨어 연결이 완료되면 코드를 Arduino에 업로드해야합니다. 코드에 대한 단계별 설명은 다음과 같습니다.
먼저 필요한 모든 라이브러리를 포함합니다. Arduino IDE를 열고 Sketch 탭으로 이동하여 Include Library-> Manage Libraries 옵션을 클릭합니다 . 그런 다음 검색 상자에서 Blynk를 검색 한 다음 Arduino UNO 용 Blynk 패키지를 다운로드하여 설치합니다.
여기서“ Adafruit_NeoPixel.h ”라이브러리는 RGB LED 매트릭스를 제어하는 데 사용됩니다. 이를 포함하려면 주어진 링크에서 Adafruit_NeoPixel 라이브러리를 다운로드 할 수 있습니다. 그런 다음 ZIP 라이브러리 포함 옵션을 사용하여 포함 할 수 있습니다.
#define BLYNK_PRINT DebugSerial #include #include
그런 다음 LED 매트릭스에 필요한 LED 수를 정의하고 LED 매개 변수를 제어하는 데 사용되는 핀 번호도 정의합니다.
#define PIN 6 #define NUM_PIXELS 40
그런 다음 이전에 저장 한 인증 배열 에 깜박임 인증 ID를 넣어야합니다.
char auth = "HoLYSq-SGJAafQUQXXXXXXXX";
여기서 소프트웨어 직렬 핀은 디버그 콘솔로 사용됩니다. 따라서 Arduino 핀은 아래 디버그 직렬로 정의됩니다.
#포함
내부 설정, 시리얼 통신 기능을 이용하여 초기화 Serial.begin을 , blynk 사용하여 접속된다 Blynk.begin을 하고 사용 ) (pixels.begin를 LED를 매트릭스가 초기화된다.
void setup () { DebugSerial.begin (9600); pixels.begin (); Serial.begin (9600); Blynk.begin (시리얼, 인증); }
내부 루프 (12) , 우리가 사용한 Blynk.run () , blynk GUI로부터 수신 명령을 검사하고 그에 따라 동작을 수행한다.
void loop () { Blynk.run (); }
마지막 단계에서는 Blynk 애플리케이션에서 보낸 매개 변수를 수신하고 처리해야합니다. 이 경우 매개 변수는 설정 섹션의 앞부분에서 설명한 것처럼 가상 핀 "V2"에 할당되었습니다. BLYNK_WRITE 함수는 관련 가상 핀의 상태 / 값이 변경 될 때마다 호출되는 내장 함수입니다. 다른 Arduino 함수와 마찬가지로이 함수 내에서 코드를 실행할 수 있습니다.
여기서 BLYNK_WRITE 함수는 가상 핀 V2에서 들어오는 데이터를 확인하기 위해 작성됩니다. Blink 설정 섹션에서 볼 수 있듯이 컬러 픽셀 데이터가 병합되어 V2 핀에 할당되었습니다. 따라서 디코딩 후 다시 병합을 해제해야합니다. LED 픽셀 매트릭스를 제어하려면 빨강, 녹색 및 파랑과 같은 3 개의 개별 색상 픽셀 데이터가 모두 필요합니다. 아래 코드에서 볼 수 있듯이 행렬의 인덱스 3 개를 param.asInt () 처럼 읽어 붉은 색 값을 얻었습니다. 마찬가지로 다른 두 값은 모두 수신되어 3 개의 개별 변수에 저장되었습니다. 그런 다음 이러한 값은 아래 코드에 표시된대로 pixels.setPixelColor 함수를 사용하여 Pixel 행렬에 할당 됩니다.
여기서는 pixels.setBrightness () 함수를 사용하여 밝기를 제어하고 pixels.show () 함수를 사용하여 Matrix에 설정된 색상을 표시합니다.
BLYNK_WRITE (V2) { int r = param.asInt (); int g = param.asInt (); int b = param.asInt (); pixels.clear (); pixels.setBrightness (20); for (int i = 0; i <= NUM_PIXELS; i ++) { pixels.setPixelColor (i, pixels.Color (r, g, b)); } pixels.show (); }
Arduino 보드에 코드 업로드
먼저 Arduino IDE 내에서 Arduino의 PORT를 선택한 다음 Arduino UNO에 코드를 업로드해야합니다. 성공적으로 업로드 한 후 직렬 통신 설정에 사용할 포트 번호를 기록해 둡니다.
그런 다음 PC에서 Blynk 라이브러리의 스크립트 폴더를 찾으십시오. 내 라이브러리를 설치할 때 설치됩니다.
“C: \ Users \ PC_Name \ Documents \ Arduino \ libraries \ Blynk \ scripts”
스크립트 폴더에는 “blynk-ser.bat” 라는 파일이 있어야합니다.이 파일 은 메모장으로 편집해야하는 직렬 통신에 사용되는 배치 파일입니다. 메모장으로 파일을 열고 포트 번호를 마지막 단계에서 기록한 Arduino 포트 번호로 변경하십시오.
편집 후 파일을 저장하고 두 번 클릭하여 배치 파일을 실행합니다. 그러면 아래와 같은 창이 표시되어야합니다.
참고: 위에 표시된이 창이 보이지 않고 다시 연결하라는 메시지가 표시되는 경우 PC와 Arduino 실드 연결 오류 때문일 수 있습니다. 이 경우 Arduino와 PC의 연결을 확인하십시오. 그 후 Arduino IDE에 COM 포트 번호가 표시되는지 확인하십시오. 유효한 COM 포트가 표시되면 진행할 준비가 된 것입니다. 배치 파일을 다시 실행해야합니다.
최종 데모:
이제 회로와 그 기능을 테스트 할 때입니다. Blynk 애플리케이션을 열고 GUI를 열고 재생 버튼을 클릭합니다. 그 후 원하는 색상을 선택하여 LED 매트릭스에 반영 할 수 있습니다. 아래 그림과 같이 제 경우에는 빨간색과 파란색을 선택했는데 매트릭스에 표시됩니다.
마찬가지로 코딩을 약간 사용자 지정하여 이러한 LED 매트릭스를 사용하여 다른 애니메이션을 만들 수도 있습니다.