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

천장 선풍기에 Alexa 제어 기능을 사용하도록 설정

구성품 및 소모품

라즈베리 파이 3 모델 B
× 1
Arduino UNO
× 1
릴레이(일반)
arduino와 직접 인터페이스할 수 있는 5V 릴레이 또는 릴레이 인터페이스 보드면 충분합니다.
× 1
팬 조절기
전원을 공급할 터미널을 찾을 수만 있다면 모든 유형을 사용할 수 있습니다. 저항 블록을 사용하여 공급되는 전압을 줄이는 구형 레귤레이터를 제안합니다.
× 1

필요한 도구 및 기계

납땜 인두(일반)

앱 및 온라인 서비스

Arduino IDE
Amazon Alexa Alexa 기술 키트
Ngrok

이 프로젝트 정보

여기에서 속도 제어를 위해 Amazon Alexa를 통합하여 일반 천장 선풍기를 스마트한 것으로 만든 방법에 대해 자세히 설명하겠습니다. 우리는 속도 변경을 시작하기 위해 amazon alexa 기술 세트를 사용할 것이며 ngrok 일 것입니다. 요청을 로컬에 있는 RPi 서버로 라우팅하는 터널링 서비스는 Arduino uno에 관련 릴레이를 켜라고 지시합니다.

로컬 Raspberry Pi 서버 설정

서버를 사용하려면 다음 서비스가 필요합니다.

<울>
  • Python PIP :python 패키지를 설치하려면 python 2.7 또는 3을 사용하는 경우 기본적으로 pip가 설치되므로 이 단계를 피할 수 있습니다.
  • sudo apt-get install python-pip  
    <울>
  • Flask :Flask는 Python 서버를 쉽게 구현하는 데 도움이 되는 Python용 서버 패키지입니다.
  • pip 설치 플라스크  
    <울>
  • flask ask :alexa 프렌드리 프로그램을 쉽게 만드는 데 사용되는 플라스크 확장
  • pip install flask-ask  
    <울>
  • pyserial :파이썬용 직렬 통신 모듈
  • sudo apt-get install pyserial 
    <울>
  • libpython2.7-dev
  • sudo apt-get intall libpython2.7-dev 

    필요한 모든 모듈이 설치되면 서버가 실행되도록 설정됩니다. 동일한 항목에 대해 python 스크립트를 입력해야 합니다.

    플라스크에서 가져오기 Flaskfrom flask_ask 가져오기 Ask, statementimport requestsimport jsonimport 직렬 ser =serial.Serial("/dev/ttyAMA0",9600)app =Flask(__name__)ask =Ask(app, '/')@ [email protected]("FanOn")def on():ser.write(b'1') return statement("천장 선풍기가 켜졌습니다.")@ask.intent("FanOff")def off() :ser.write(b'0') return statement("천장 선풍기가 꺼졌습니다.")@ask.intent("FanLevelUp")def up():ser.write(b'+') return statement("천장 선풍기 속도를 높입니다.")@ask.intent("FanLevelDown")def down():ser.write(b'-') return statement("천장 팬 속도를 줄입니다.")if __name__ =="__main__":app.run (디버그=참) 

    이 python 스크립트를 실행하고 이 스크립트를 RPi의 자동 시작 목록에 등록하십시오.

    3. Ngrok 다운로드

    Ngrok은 장치를 온라인으로 만드는 보안 터널링 플랫폼입니다. 이 플랫폼을 사용하면 매우 간단한 방법으로 웹 응용 프로그램이나 모든 응용 프로그램을 온라인 상태로 만들 수 있습니다. 다운로드는 공식 사이트로 이동하여 ARM용으로 다운로드하십시오.

    https://ngrok.com/

    압축을 풀고 압축을 푼 디렉토리로 이동합니다. 명령을 사용하여 실행

    ./ngrok http 5000  

    알렉사 스킬

    Amazon 개발자 페이지로 이동하여 개발자 계정에 가입

    https://developer.amazon.com/

    로그인 후 개발자 콘솔에 들어가 "Alexa 기술 키트" 선택

    이제 "새 기술 추가"를 선택하십시오.

    스킬 이름을 입력하고 호출 이름을 입력합니다. 호출 이름이 필요한 조건을 충족하는지 확인하십시오.

    저장하고 다음 단계로 진행

    여기에 스킬 호출의 의도와 발화 예(예:각 의도를 시작할 단어 조합)를 입력합니다.

    의도는 다음과 같습니다

    { "intents":[ { "intent":"FanOn" }, { "intent":"FanOff" }, { "intent":"FanLevelUp" }, { "intent":"FanLevelDown" }] } 

    샘플 발언

    FanOn은 팬 켜기라고 말함FanOn은 켜기로 말함FanOff라고 말함FanOff는 팬 끄기라고 말함FanLevelUp 팬 수준 올리기FanLevelUp 팬 속도 올리기FanLevelDown 팬 속도 낮추기FanLevelDown 팬 속도 낮추기 말 

    저장하고 다음 단계로 진행합니다. 여기에 의도가 호출되면 데이터를 보낼 위치를 입력해야 합니다.

    ngrok를 사용하고 있기 때문에 , HTTPS를 선택합니다. ngrok serve에서 생성된 보안 링크를 입력하고 저장하고 다음 단계로 진행하세요.

    SSL 인증서에 대한 두 번째 옵션을 선택하고 계속

    설정이 작동하는지 여부를 확인하려면 . ngrok 서버가 작동 중이고 Python 스크립트도 실행 중인지 확인하십시오. 그렇지 않으면 작동하지 않습니다.

    서버가 요청을 받고 업데이트하는 것을 볼 수 있습니다.

    아두이노 코드

    첨부된 스케치를 arduino에 업로드하고 회로도에 설명된 대로 라즈베리 파이에 연결합니다.

    int Fan[] ={13,12,11,10,9,8}; int n=0;void reset();void set(char);void setup() { // 여기에 설정 코드를 넣어 한 번 실행:for(int i=0;i<6;i++){ pinMode(Fan [i], 출력); } Serial.begin(9600); } 무효 루프() { char x;if (Serial.available()){ x=Serial.read(); 초기화(); set(x);}} 무효 리셋(){ for(int i=0;i<6;i++) { digitalWrite(Fan[i], LOW); }}void set(char x){ switch (x) { case '1':n=1; 부서지다; 대소문자 '+':n++; 부서지다; 경우 '-':n--; 부서지다; 경우 '0':n=0; 부서지다; } 디지털 쓰기(팬[n],높음);}  

    하드웨어

    회로도에 표시된 대로 하드웨어를 연결하십시오.

    행복한 만들기. 비슷한 방식으로 다른 기기 음성을 활성화합니다. :)

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

    코드

    <울>
  • 아두이노 스케치
  • Python 서버 코드
  • arduino 스케치Arduino
    이 코드를 arduino에 업로드하고 raspberry pi server
    int Fan[] ={13,12,11,10,9,8}에 연결하십시오. int n=0;void reset();void set(char);void setup() { // 여기에 설정 코드를 넣어 한 번 실행:for(int i=0;i<6;i++){ pinMode(Fan [i], 출력); } Serial.begin(9600); } 무효 루프() { char x;if (Serial.available()){ x=Serial.read(); 초기화(); set(x);}} 무효 리셋(){ for(int i=0;i<6;i++) { digitalWrite(팬[i], LOW); }}void set(char x){ switch (x) { case '1':n=1; 부서지다; 대소문자 '+':n++; 부서지다; 경우 '-':n--; 부서지다; 경우 '0':n=0; 부서지다; } 디지털 쓰기(팬[n],높음);} 
    Python 서버 코드Python
    ngrok이 플라스크에서 데이터를 수신하도록 설정한 후 이 코드를 spython에서 가져옵니다. Flaskfrom flask_ask import Ask, statementimport requestsimport jsonimport 직렬 ser =serial.Serial("/dev/ttyAMA0",9600)app =Flask(__name__ )ask =Ask(app, '/')@[email protected]("FanOn")def on():ser.write(b'1') return statement("천장 선풍기가 켜졌습니다.")@ Ask.intent("FanOff")def off():ser.write(b'0') return statement("천장 팬이 꺼졌습니다.")@ask.intent("FanLevelUp")def up():ser.write (b'+') return statement("천장 팬 속도를 높입니다.")@ask.intent("FanLevelDown")def down():ser.write(b'-') return statement("천장 팬 속도를 줄입니다." )if __name__ =="__main__":app.run(debug=True)

    회로도

    이것은 장치를 함께 연결하는 방법입니다

    제조공정

    1. 가정에 무선 센서 네트워크 구축
    2. Arduino로 코인 억셉터 제어
    3. Arduino 제어 센터
    4. Raspberry Pi를 통한 Alexa 제어 LED
    5. Bluetooth가 탑재된 Arduino로 LED 제어!
    6. Arduino 가습기 제어
    7. Arduino Nano:조이스틱으로 2개의 스테퍼 모터 제어
    8. Cortana로 LED 제어
    9. Alexa 및 Arduino IoT Cloud를 사용하여 TV 전체 제어
    10. Arduino Uno를 사용한 25kHz 4핀 PWM 팬 제어