산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

Alexa 및 Arduino를 사용한 애니메이션 스마트 조명

구성품 및 소모품

Arduino UNO
Arduino Nano도 사용할 수 있습니다. Arduino Mega는 더 많은 LED 픽셀을 구동하는 데 유용할 수 있습니다.
× 1
라즈베리 파이 3 모델 B
× 1
NeoPixel 스트립
모든 WS8212 LED 스트립을 사용할 수 있습니다.
× 1

앱 및 온라인 서비스

Arduino IDE
Amazon Web Services AWS Lambda
Amazon Alexa Alexa 기술 키트
Amazon Web Services AWS IoT

이 프로젝트 정보

왜 라이트 스트립

저는 항상 주소 지정이 가능한 RGB LED 스트립에 매료되었습니다. 끝없는 색상 효과와 애니메이션 기능은 항상 제 창의력을 사로잡았기 때문에 몇 년 전 저는 ALA(Arduino Light Animations)라는 Arduino 보드용 라이브러리를 개발하기로 결정했습니다. Alexa는 이제 제 목소리로 방 조명과 효과를 제어할 수 있는 가능성을 제공합니다. 정말 좋습니다!

프로젝트 개요

이 프로젝트에 필요한 구성 요소가 있습니다.

<울>
  • 아마존 알렉사: 맞춤형 Alexa 기술(Light Strip)은 음성 상호 작용 모델을 정의하고 Lambda 함수에 실행되는 명령(인텐트)을 번역합니다.
  • <울>
  • 아마존 람다 :Alexa에서 메시지를 수신하고 IoT 서비스에 업데이트를 보내는 Python 스크립트입니다.
  • <울>
  • 아마존 IoT :IoT 서비스는 RGB 스트립의 상태를 나타내는 'thing shadow'를 저장합니다. 섀도우가 업데이트될 때마다 구독된 MQTT 클라이언트(Raspberry PI)에 알림이 전송됩니다.
  • <울>
  • 라즈베리 PI :이 소형 PC는 MQTT 클라이언트를 실행하여 Amazon IoT 서비스에서 메시지를 수신합니다. 다른 쪽에서는 USB 포트를 통해 Arduino 보드에 전원을 공급하고 명령을 보냅니다.
  • <울>
  • 아두이노 :이 멋진 마이크로컨트롤러는 USB 직렬 포트를 통해 Raspberry PI에서 명령을 수신하는 LED 스트립을 구동하기 위해 ALA 라이브러리를 실행합니다. Arduino Uno, Nano 또는 Mega 보드를 사용할 수 있습니다.
  • <울>
  • WS8212 RGB LED 스트립 :주소 지정이 가능한 LED 스트립으로 각 LED를 개별적으로 제어할 수 있습니다. 이를 통해 아름답고 다채로운 조명 애니메이션이 가능합니다.
  • 프로젝트에서 매우 도전적인 것은 없지만 상호 연결된 많은 부분이 있습니다. 다음 단계로 넘어가기 전에 제안된 구조를 따라 프로젝트를 견고한 토대 위에 구축하는 것이 좋습니다. 가능한 한 간단하게 하기 위해 프로젝트를 두 개의 하위 프로젝트로 나누었습니다.

    첫 부분 프로젝트의 내용은 Raspberry Pi 및 Arduino Hackster.io 프로젝트를 사용한 Web-Controlled LED Animations에 설명되어 있으며 Raspberry PI, Arduino 보드 및 WS8212 LED 스트립을 연결하는 데 필요한 단계를 안내합니다. 이 단계가 끝나면 웹 브라우저를 사용하여 스마트폰이나 PC에서 LED 애니메이션을 제어할 수 있습니다.

    두 번째 부분 여기에 설명된 프로젝트의 일부는 Amazon Alexa를 사용하여 이전 구현에 음성 제어를 추가합니다. 전체 체인을 올바르게 설정하기 위해 실행해야 하는 몇 가지 단계가 있으므로 인내심을 갖고 지침을 주의 깊게 따르십시오.

    아마존 IoT

    하드웨어 부분을 완료했습니까? 이제 클라우드로 이동할 시간입니다! AWS IoT 플랫폼을 사용하여 인터넷에서 '사물'을 관리합니다.

    우리는 원하는 변경 사항과 함께 사물 상태의 복사본인 "장치 섀도우"를 사용할 것입니다. Raspberry PI는 이 Shadow에 변경 사항("델타")을 게시하는 알림 피드를 구독합니다. AWS IoT 플랫폼 및 API에 대한 자세한 내용은 이 링크를 확인하십시오.

    IoT 사물 만들기

    AWS 콘솔에 로그인합니다. 아직 계정을 만들지 않았다면 무료 계정을 만들어야 합니다.

    미국 동부(버지니아 북부)에 로그인했는지 확인합니다. 또는 EU(아일랜드) 오른쪽 상단 모서리에 있는 영역입니다.

    'IoT'를 검색하고 AWS IoT를 선택합니다. 서비스. 시작하기를 클릭합니다. 버튼(있는 경우)을 눌러 소개 자습서를 닫습니다.

    먼저 보안 정책을 만들어야 합니다. 우리의 "것"을 위해. 보안> 정책으로 이동 메뉴를 클릭한 다음 정책 만들기를 클릭합니다. 버튼을 누르고 다음 정보를 입력하십시오:

    <울>
  • 이름:LightStripPolicy
  • <울>
  • 액션:*
  • <울>
  • 리소스:*
  • <울>
  • 효과 - 허용:선택됨
  • <울>
  • '만들기' 클릭
  • 이제 IoT를 생성할 수 있습니다. 사물 .

    <울>
  • 관리 선택 > 사물 메뉴에서 사물 등록을 클릭하여 새 AWS IoT 사물을 생성합니다. 버튼(또는 만들기 버튼)을 클릭한 다음 단일 항목 만들기를 클릭합니다. .
  • <울>
  • 이름 필드에 'LS01'을 입력합니다. 다른 필드는 기본값으로 두고 다음을 클릭하세요. .
  • <울>
  • 인증서 생성을 클릭합니다. 원클릭 인증서 생성 버튼 섹션.
  • <울>
  • 기기 및 루트 CA에 대한 3개의 인증서를 다운로드합니다. 루트 CA의 경우 마우스 오른쪽 버튼을 클릭한 다음 저장해야 할 수 있습니다.
  • <울>
  • 인증서를 다운로드한 후 활성화 버튼.
  • <울>
  • 정책 첨부를 클릭합니다. 버튼을 누르고 LightStripPolicy를 선택합니다. 이전에 만든 다음 사물 등록을 클릭합니다. .
  • 계속 진행하기 전에 AWS IoT 엔드포인트를 기록해 두어야 합니다. 설정을 클릭합니다. AWS IoT 웹 페이지의 왼쪽 하단 모서리에 있는 메뉴를 열고 엔드포인트를 기록해 둡니다.

    '사물'을 수신하도록 Raspberry PI 구성

    먼저 Python용 AWS IoT Device SDK를 설치해야 합니다. Raspberry PI 명령줄에서 다음 명령 사용:

    sudo pip3 설치 AWSIoTPythonSDK 

    이제 GitHub에서 LightStrip 저장소를 다운로드하고 압축을 풉니다.

    mkdircd /home/pi/LightStripwget https://github.com/bportaluri/LightStrip/archive/master.zipunzip master.zip 

    IoT 사물을 생성할 때 다운로드한 4개의 인증서를 /home/pi/LightStrip/LightStrip-master/pi에 복사합니다. 폴더.

    lightstripcfg.py 수정 스크립트. 모든 텍스트 편집기를 사용할 수 있습니다. 다음은 나노에 대한 명령입니다. 편집자.

    cd /home/pi/LightStrip/LightStrip-master/pinano lightstripcfg.py 

    이제 구성과 일치하도록 설정을 편집하십시오.

    <울>
  • AWSIOT:이전에 기록한 AWS IoT Endpoint를 입력합니다.
  • <울>
  • ROOT_CA:루트 CA 인증서의 파일 이름
  • <울>
  • CERTIFICATE:인증서의 파일 이름
  • <울>
  • PRIVATE_KEY:개인 키의 파일 이름
  • <울>
  • DEVICE_NAME:"LS01"로 변경하지 않고 그대로 둡니다.
  • nano 편집기를 닫고 'Ctrl+X'를 누른 다음 'Y'를 눌러 파일을 저장합니다.

    다음과 같이 Lightstrip.py 스크립트를 실행합니다.

    sudo python3 lightstrip.py 

    스크립트는 연결된 USB 포트를 나열합니다. 아두이노는 /dev/ttyACM0에 연결되어 있어야 하므로 다음과 같이 포트를 전달하는 스크립트를 실행합니다.

    sudo python3 Lightstrip.py /dev/ttyACM0 

    테스트 클라이언트는 Amazon Thing Shadow 서비스에 연결하고 LS01의 변경 사항을 구독합니다. 그림자 장치. 성공적으로 연결되면 클라이언트 스크립트는 상태를 LS01 장치 섀도우로 업데이트하고 다음과 같은 확인 메시지를 수신합니다.

    모든 것이 올바르게 작동하는지 확인하려면 AWS IoT 콘솔로 돌아가서 관리> 사물 메뉴를 열고 LS01을 엽니다. 장치. 그림자 선택 메뉴를 클릭하면 장치 섀도우 상태가 표시됩니다.

    수정을 클릭합니다. Shadow Document 섹션의 링크를 클릭하고 Shadow state 상자에 다음 JSON 문서를 붙여넣습니다.

    { "원하는":{ "애니메이션":"101" }} 

    여기 당신이보아야 할 것이 있습니다.

    저장 링크를 클릭하면 '델타' 메시지가 Raspberry PI의 MQTT 클라이언트로 전송되어 LED 스트립을 켭니다.

    다음 JSON 문서는 색상을 파란색으로 바꿉니다.

    { "원하는":{ "color":"0066CC" }} 

    이 시점에서 우리는 ASW IoT 서비스에서 LED 스트립을 제어할 수 있으므로 당신이 자랑스러워해야 합니다.

    AWS Lambda 함수

    AWS Lambda를 사용하면 서버를 프로비저닝하거나 관리하지 않고도 클라우드에서 코드를 실행할 수 있습니다. 이 프로젝트의 마지막 단계에서 음성 제어를 가능하게 할 Alexa Skills Kit 간의 완벽한 다리입니다.

    AWS 콘솔에 로그인합니다. 서비스 목록에서 람다를 선택합니다. .

    이전 단계에서 사용한 것과 동일한 지역인 미국 동부(버지니아 북부)에 로그인했는지 확인합니다. 또는 EU(아일랜드) 오른쪽 상단 모서리에 있는 영역입니다.

    함수 생성을 클릭합니다. 단추. 처음부터 작성을 클릭합니다. 다음과 같이 구성합니다.

    <울>
  • 이름 =LightStrip
  • <울>
  • 런타임 =Python 3.6
  • <울>
  • 역할 =사용자 지정 역할을 만듭니다. 그러면 새 탭이 시작됩니다. "허용" 버튼을 클릭하면 lambda_basic_execution이라는 새 역할이 생성됩니다.
  • <울>
  • 기존 역할:lambda_basic_execution
  • <울>
  • 함수 생성을 클릭합니다. 버튼
  • 오른쪽 상단 모서리에 있는 Lambda ARN ID를 기록해 둡니다.

    LightStrip을 클릭합니다. 상자를 눌러 기능 코드 섹션을 불러옵니다.

    코드 입력 유형:인라인 코드 편집

    <울>
  • 런타임:Python 3.6
  • <울>
  • 처리기:lambda_function.lambda_handler
  • lambda_function.py 스크립트는 이미 정의되어 있어야 합니다. LightStrip\lambda\lambda_function.py에서 코드를 붙여넣습니다. 파일을 코드 편집기에 넣습니다.

    ala_controller.py라는 다른 파일을 만듭니다. LightStrip\lambda\ala_controller.py의 코드를 붙여넣습니다. 파일을 코드 편집기에 넣습니다.

    이것이 전체의 모습이어야 합니다.

    완료되면 주황색 저장을 클릭합니다. 버튼을 클릭하세요.

    알렉사 스킬

    이제 Alexa용 Light Strip 사용자 지정 기술을 만들 수 있습니다.

    Amazon 개발자 콘솔로 이동하여 필요에 따라 로그인합니다. 먼저 계정을 등록해야 할 수도 있습니다.

    Alexa> Alexa Skills Kit(시작하기)로 이동합니다. .

    새 기술 추가를 클릭합니다. 버튼을 클릭하고 스킬 정보에 다음 데이터를 입력합니다. 탭:

    <울>
  • 스킬 유형:맞춤형 상호작용 모델
  • <울>
  • 언어:영어(미국)
  • <울>
  • 이름:LightStrip
  • <울>
  • 호출 이름:라이트 스트립
  • <울>
  • 저장 클릭
  • 이것은 스킬을 생성합니다. 스킬 ID를 기록해 두십시오.

    상호작용 모델 선택 메뉴를 클릭한 다음 Skill Builder 시작을 클릭합니다. 버튼.

    코드 편집기를 클릭합니다. 버튼을 누르고 LightStrip/alexaskill/lightstrip_skill.json의 내용을 붙여넣습니다. 텍스트 상자에 파일을 입력하세요.

    모델 저장을 클릭합니다. 및 모델 구축 버튼. 모델을 구축하는 데 몇 분이 걸리므로 인내심을 가지십시오. 기술 정보를 클릭하십시오. 버튼을 눌러 스킬 구성 페이지로 돌아갑니다.

    이제 구성을 클릭하십시오. 메뉴.

    서비스 엔드포인트 유형에서 AWS Lambda ARN을 선택합니다. 그런 다음 위에서 언급한 Lambda 함수 ARN을 붙여넣습니다.

    모든 기본값을 그대로 두고 저장을 클릭합니다. 아래 버튼.

    Alexa 기술을 Lambda 함수에 연결

    Lambda 함수로 돌아갑니다. 오른쪽에는 미리 정의된 트리거 목록이 있습니다. Alexa Skill Kit 선택 기능에 추가됩니다.

    다음과 같이 구성하십시오.

    <울>
  • 응용 프로그램 ID =위에서 언급한 기술 ID
  • <울>
  • 추가 클릭
  • <울>
  • 저장 클릭
  • 완료되었습니다

    이제 프로젝트가 완료되었습니다. 다음 음성 명령을 사용해 보세요.

    <울>
  • 오픈 라이트 스트립
  • <울>
  • 켜기
  • <울>
  • 밝기를 20퍼센트로 설정
  • <울>
  • 밝기를 50%로 설정
  • <울>
  • 색상을 빨간색으로 설정
  • <울>
  • 청록색으로 색상 설정
  • <울>
  • 끄기
  • <울>
  • 신나는 애니메이션 실행
  • <울>
  • 릴렉스 애니메이션 실행
  • LightStrip 기술은 고급 음성 상호 작용도 가능하게 합니다.

    <울>
  • 나:Alexa, Light Strip을 열어주세요
  • <울>
  • Alexa:LightStrip에 오신 것을 환영합니다 - LED 스트립이 푸른 빛으로 빛납니다
  • <울>
  • 나:애니메이션 시작
  • <울>
  • Alexa:편안하거나 흥미진진한 애니메이션을 원하십니까?
  • <울>
  • 나:휴식
  • <울>
  • Alexa:OK - LED 스트립에 임의의 애니메이션이 표시됩니다.
  • <울>
  • 나:다음 애니메이션
  • <울>
  • Alexa:OK - 다른 임의의 애니메이션이 표시됩니다.
  • 상호 작용 모델을 더 잘 이해하기 위해 여기에 기술의 전체 VUI 다이어그램이 있습니다.

    개선 사항 및 개선 사항

    부팅 시 AlaWeb 자동 시작

    프로젝트의 약간의 개선 사항은 부팅 시 자동으로 lightstrip.py 스크립트를 시작하여 Raspberry PI에 전원을 공급하거나 문제가 발생하여 재설정해야 할 때마다 수동으로 시작할 필요가 없도록 하는 것입니다. 이 지침을 따르십시오.

    애니메이션 추가 및 조정

    Light Strip cskill에는 이미 20개의 애니메이션 변형이 정의되어 있습니다. 그러나 ALA 라이브러리를 사용하면 애니메이션 사전 설정, 색상 팔레트 및 속도를 선택하여 자신의 애니메이션을 쉽게 설정할 수 있습니다. ala_controller.py 스크립트에서 고유한 애니메이션을 추가하거나 기존 애니메이션을 조정할 수 있습니다. 80행 주위에 취향에 따라 수정하거나 향상할 수 있는 애니메이션 설정 목록이 표시됩니다.

    <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    라이트스트립
    이 프로젝트에 필요한 모든 코드https://github.com/bportaluri/LightStrip

    회로도


    제조공정

    1. 비행 시뮬레이터용 Arduino가 있는 LCD 패널
    2. FS2020용 Arduino가 있는 스위치/LED 패널
    3. Bluetooth가 탑재된 Arduino로 LED 제어!
    4. 스마트 신발(자동 끈 및 전기 생성)
    5. Arduino Quadruped
    6. Arduino 및 MPU6050으로 서보 모터 제어
    7. 볼트와 Arduino를 사용하여 LED 밝기 제어
    8. U-blox LEA-6H 02 GPS 모듈(Arduino 및 Python 포함)
    9. Arduino를 사용한 간단하고 스마트한 로봇 팔
    10. Arduino를 사용한 음성 인식 및 합성