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

Arduino Yún을 통한 Alexa 제어 LED

구성품 및 소모품

Arduino 윤
× 1
Amazon Alexa Amazon Echo
× 1
LED(일반)
× 1
마이크로 SD 카드
× 1

앱 및 온라인 서비스

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

이 프로젝트 정보

동기

Alexa가 탑재된 스마트 미러를 만든 이후로 집 전체에 다양한 하드웨어와 홈 오토메이션 장치를 연결할 수 있는 더 많은 방법을 찾고 있었습니다. 새로운 Alexa Smart Home API를 사용하여 맞춤형 기기를 직접 제어할 수 있다는 소식을 듣고 사용해 보기로 결정했습니다.

Echo가 제어하는 ​​이 크리스마스 트리는 API의 이전 버전을 사용하지만 훌륭한 출발점 역할을 했으며 IoT 대상 Arduino Yún으로 저를 안내했습니다. 이것은 하나의 편리한 패키지에 Linux 시스템과 마이크로컨트롤러를 제공합니다.

내가 직접 설정한 작업은 스마트 홈 기술에 해당하는 "안녕하세요"였습니다. 내 목소리로 LED를 켜고 끄기만 하면 됩니다. 주변에 2x3 LED 어레이가 있기 때문에 스타일 포인트로 켜고 끄기로 결정했습니다.

자세한 내용은 아래에서 확인할 수 있지만 결과는 다음과 같습니다.

프로젝트 개요

이 프로젝트는 Arduino Yún 보드를 Alexa Smart Home v3 기술에 연결하는 것을 목표로 합니다. Alexa Smart Home Skill(v3), AWS Lambda Function, AWS IoT Thing 및 IoT Thing을 구독하는 Arduino Yún을 사용하여 수행됩니다.

아래 다이어그램에서 조명을 켜는 것과 관련된 이 프로젝트의 모든 주요 부분을 볼 수 있습니다.

한 번에 한 조각씩 가지고 가서 테스트하는 것이 좋습니다. 프로젝트에서 매우 도전적인 것은 없지만 상호 연결된 많은 부분이 있습니다. 따라서 이 작업을 수행하는 동안 머리를 약간 긁는다고 낙심하지 마십시오.

각 단계를 각각 1시간 이상 걸릴 수 있는 미니 프로젝트로 생각합니다.

1단계:Smart Home Skill 및 Connected Lambda 생성

여기에서 Smart Home Skill을 생성하고, Lambda 함수를 생성하고, 이 두 가지를 함께 연결합니다. 이 과정은 이 튜토리얼에서 잘 설명되어 있습니다. LWA 단계에 따라 Skill Configuration에 사용되는 클라이언트 ID와 클라이언트 암호를 확인하세요.

이 단계에서 Alexa 대시보드에 로그인하고 새 스마트 홈 장치를 발견할 수 있다면(이 시점에서는 Lambda 함수 응답만 있음) 좋은 출발을 한 것입니다.

참고로 이 자습서에서는 Python 3.6을 사용하지만 대신 Python2.7을 사용했습니다. handle_discovery 를 복사할 수 있습니다. 내 람다 함수의 일부이지만 이 시점에서 작동하는 전부입니다.

2단계:IoT 사물 만들기

아무것도 할 수 없으면 검색이 별로 좋지 않으므로 AWS IoT Thing을 생성하여 연결할 수 있도록 합시다.

이 페이지의 단계에 따라 수행할 수 있습니다. 우리는 원하는 변경 사항과 함께 사물 상태의 복사본인 생성한 것의 "사물 섀도우"를 사용할 것입니다. Arduino는 이 Thing Shadow에 대한 변경 사항("델타")을 게시하는 알림 피드를 구독합니다. Thing Shadows에 대한 자세한 내용은 여기에서 이 링크를 확인하세요.

Thing을 생성했으면 Thing IoT 웹 대시보드의 보안 탭으로 이동하여 공개 키, 개인 키 및 인증서를 다운로드합니다. 이 작업이 완료되면 "활성화"를 클릭하여 루트 인증 기관 키를 제공합니다. 이것도 저장하세요. 이것은 Arduino에서 IoT 섀도우에 인증하는 데 사용됩니다.

사물의 그림자 탭으로 이동하고 편집을 클릭합니다. 다음과 같이 보이도록 그림자에 속성을 추가합니다.

{ "보고됨":{ "light":"on" } }  

3단계:Lambda를 사물에 연결합니다.

사물이 제자리에 있으면 이제 Lambda 코드를 업데이트하여 사물 섀도우를 업데이트할 수 있습니다. 이제 내 람다 함수에서 전체 코드를 복사할 수 있지만 검색과 관련된 변경 사항은 유지해야 합니다.

또한 Lambda 함수와 연결된 AWS IAM 역할에 "AWSIoTFullAccess" 권한이 있는지 확인해야 합니다. Lambda 구성 웹 대시보드 하단에서 역할을 확인할 수 있습니다. 이 권한을 통해 AWS IoT Thing에 연결할 수 있습니다.

이 작업이 완료되면 Lambda 함수 구성 페이지로 이동합니다. 함수의 테스트 탭에서 다음 v3 특정 JSON과 함께 "TurnOff"라는 지시문을 추가합니다. 헤더 이름을 "TurnOn"으로 변경하기만 하면 "TurnOn"이라는 두 번째 테스트를 추가할 수도 있습니다.

{ "지시문":{ "header":{ "namespace":"Alexa.PowerController", "name":"TurnOff", "payloadVersion":"3", "messageId":"1bd5d003- 31b9-476f-ad03-71d471922820", "correlationToken":"1234" }, "endpoint":{ "scope":{ "type":"BearerToken", "token":"some-access-token" }, " endpointId":"appliance-001", "쿠키":{} }, "페이로드":{} } }  

TurnOn 및 TurnOff 테스트를 실행하면 Thing Shadow가 작업과 일치하는 원하는 상태를 보고해야 합니다. 이 결과가 표시되면 모든 것이 정상입니다.

4단계:Arduino Yún을 설정합니다.

Arduino Yún 하드웨어를 설정할 시간입니다. 이 가이드가 Arduino 가이드보다 더 유용하다는 것을 알았습니다. 몇 가지 참고 사항 - Windows 사용자인 경우 SD를 포맷할 때 FAT32를 사용해야 합니다(exFAT는 지원되지 않음). 또한 이더넷에 연결될 때까지 "업그레이드" 페이지를 제대로 볼 수 없었습니다. 구성한 후에는 Wi-Fi가 제대로 작동했습니다.

이 옵션이 표시되고 다음 단계를 따랐을 때 이 단계를 완료한 것입니다.

또한 Arduino에 성공적으로 ssh할 수 있어야 합니다. "df -h"도 실행하고 SD 카드가 추가되었음을 나타내는 볼륨을 찾는 것이 좋습니다.

Arduino IDE를 열고 Blink 예제를 실행할 수 있는지 확인하는 것도 이 단계에서 좋습니다.

6단계:Yún을 AWS IoT에 연결합니다.

Arduino를 실행하고 IoT Thing과 통신하도록 합시다. 이것은 AWS Arduino IoT SDK를 설치하고 Thing Shadow 델타를 모니터링하는 예제 스케치를 실행하여 수행됩니다.

SDK 설치 프로세스를 안내하는 훌륭한 작업을 수행하는 이 튜토리얼부터 시작하는 것이 좋습니다. Windows 사용자를 위한 참고 사항, cygwin을 사용하는 경우 Mac/Linux 지침을 따르십시오("예상" 종속성에는 문제가 없었습니다). 특히 호스트 시스템에서 다음 스크립트를 실행하면 작업이 훨씬 쉬워집니다.

./AWSIoTArduinoYunInstallAll.sh <보드 IP> <사용자 이름> <보드 비밀번호>

이 자습서는 AWS-IoT-SDK를 Arduino IDE에 추가하는 것으로 끝납니다. 이제 Arduino IDE를 열면 File->Examples->AWS-IoT-Arduino-Yun-Library에서 ShadowThing 예제를 찾아야 합니다.

이 스케치를 열고 aws_iot_config.h를 편집합니다. 관련 엔드포인트 및 인증서/키 이름을 포함하는 파일입니다.

이 스케치를 실행하면 연결 상태가 성공했음을 나타내는 직렬 출력이 표시되어야 합니다. IoT 대시보드에서 사물 섀도우를 변경하면 직렬 로거에서 알림을 받아야 합니다.

이 단계에서 문제가 발생하면 인증서가 올바른 경로에 있는지 확인하고 루트 CA 텍스트를 파일에 올바르게 복사했는지 확인하십시오.

7단계:Yún을 AWS IoT에 연결합니다.

이제 남은 것은 실제로 Arduino의 Thing Shadow에 대한 변경 사항을 처리하는 것입니다. 내 스케치의 내용을 간단히 복사할 수 있어야 합니다.

내 스케치는 기본적으로 ThingShadow 스케치 예제일 뿐이며, 특별히 키 "light"에 대한 변경 사항을 찾습니다. 이것이 수신되면 빛이 "켜짐" 또는 "꺼짐"인지 여부에 따라 ledArray의 모든 핀을 HIGH 또는 LOW로 설정합니다.

이 ledArray에는 온보드 핀 13이 포함되어 있으므로 추가 LED를 연결하지 않아도 음성 명령에 따라 온보드 YUN LED가 켜지고 꺼지는 것을 볼 수 있습니다. 내가 사용하는 것처럼 더 멋진 LED 큐브를 원하면 연결 방법을 알려주는 이 프로젝트를 확인하십시오. 그런 다음 내 스케치의 ledArray에 양수 핀 번호를 추가하기만 하면 됩니다.

Alexa 장치에 맞춤형 스마트 사물을 켜고 끄도록 요청할 수 있으면 이 단계가 완료된 것입니다.

이것이 예상대로 작동하지 않으면 웹 대시보드에서 Lambda TestOn 및 TestOff 기능을 사용해 보는 것이 좋습니다. 이것은 무엇이 잘못될 수 있는지에 대한 더 많은 정보를 제공합니다.

다루지 않은 문제에 대해 의견을 게시해 주시면 최대한 빨리 해결해 드리겠습니다.

9단계:축하합니다!

여기까지 하셨다면 수고하셨습니다! Arduinos는 원하는 모든 것을 할 수 있으며 이제 Alexa를 통해 간단한 음성 명령으로 이를 시작하는 방법을 알게 되었습니다. 조명을 여러 번 켜고 끄면서 성취를 축하하십시오. IoT 세상은 당신의 굴입니다!

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

코드

프로젝트용 람다 및 Arduino 코드
.ino 및 .h 파일은 Arduino Sketch에 사용되며, lambda_function은 AWS Lambda Cloud

제조공정

  1. Amazon Alexa Chromecast 제어
  2. Bluetooth를 통해 제어되는 Raspberry Pi Robot
  3. MajorTom:Alexa 음성 제어 ARDrone 2.0
  4. 제스처 제어 대화형 테이블 조명
  5. Arduino + LED + MIDI 키보드 + MuseScore =피아노 교사
  6. Raspberry Pi를 통한 Alexa 제어 LED
  7. 조이스틱 제어 RC 자동차
  8. Nunchuk 제어 로봇 팔(Arduino 포함)
  9. 음성 제어 로봇
  10. 이더넷을 통해 제어되는 로봇 암