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

시스 군주처럼 집에 들어가십시오

구성품 및 소모품

입자 광자
× 2
Arduino UNO
× 1
Adafruit 뮤직 메이커 MP3 실드
× 1
Adafruit PIR 모션 센서
× 1
LED(일반)
× 2
저항 220옴
× 2
점퍼 와이어
× 1
스피커:3W, 4옴
× 1
브레드보드(일반)
× 2
USB 마이크로 B 벽면 충전기
× 1
USB-A-B 케이블
× 1
남성 헤더 36 위치 1 행 길이(0.1")
× 1

필요한 도구 및 기계

납땜 인두(일반)

앱 및 온라인 서비스

입자 구름

이 프로젝트 정보

제 딸은 스타워즈의 열렬한 팬입니다(아직 영화를 본 적은 없지만). 당연히 그녀는 내가 그녀에게 스타워즈 테마 프로젝트를 만들고 싶냐고 물었을 때 그녀가 하는 일에 완전히 몰두했습니다. 그녀가 방에 웅장한 입구를 만들 수 있도록 그녀가 그녀의 Darth Vader 의상을 입고 있을 때 그녀가 내가 Imperial March(Darth Vader의 주제가)를 연주하도록 몇 번이나 했는지 모릅니다. 그래서 우리는 이 프로젝트 아이디어를 재빨리 결정했습니다. 집에 오는 사람을 자동으로 감지한 다음 그 사람이 집에 들어오기 직전에 제국 행진곡을 재생하는 것입니다.

이것은 매우 간단한 프로젝트이므로 초보자에게 적합합니다. 클라우드에서/에 게시/구독 패턴을 사용한 것이 처음이기 때문에 흥미롭습니다. 다른 유형의 마이크로 컨트롤러를 단일 프로젝트에 통합한 것도 처음이었습니다. 저는 클라우드 연결 솔루션을 생성할 때 Photon의 단순성과 사용 용이성을 좋아합니다. 그리고 Arduino에 사용할 수 있는 애드온 하드웨어의 다양성과 규모를 능가할 수 없습니다. 그것들을 너무 쉽게 결합할 수 있어서 이 프로젝트를 신속하게 통합할 수 있었습니다.


1단계:센서 조립

시간:10분

부품:광자, 220옴 저항, LED, PIR 모션 센서, 브레드보드, 수/수 점퍼 와이어, USB 마이크로 B 케이블

도구:N/A

먼저 LED를 Photon에 연결합니다. Photon을 브레드보드에 마운트합니다. 그런 다음 Photon의 접지 핀과 브레드보드의 열린 행 사이에 저항을 연결합니다. 마지막으로 LED의 긴 다리를 Photon의 디지털 PIN(저는 핀 D0 사용)에 연결하고 LED의 짧은 다리를 저항이 연결된 열린 행에 연결합니다. 솔직히 LED는 선택 사항이지만 PIR 센서 자체는 모션이 감지되는 시기를 알려주지 않으며 Photon이 이벤트를 클라우드에 게시할 때 어떠한 표시도 제공하지 않기 때문에 LED를 사용하여 센서의 상태를 나타냅니다.

다음으로 PIR 센서를 Photon에 연결합니다. PIR 센서를 브레드보드에 장착 - 직각의 암 헤더 핀을 사용하여 PIR 센서를 브레드보드에 연결합니다. 이렇게 하면 PIR 센서를 브레드보드에 수직으로 "고정"할 수 있습니다. (직각 헤더 핀이 없는 경우 양면 테이프나 끈적끈적한 압정을 사용하여 PIR 센서를 테이블이나 장착하려는 대상에 장착하고 PIR 센서의 수에서 직접 암/수 점퍼 와이어를 사용하십시오. 핀을 브레드보드에 연결합니다.) 점퍼 와이어를 사용하여 PIR의 GND를 Photon의 GND 핀에 연결하고 PIR의 5V 핀을 Photon의 Vin 핀에 연결하고 PIR의 신호 핀을 Photon의 디지털 핀에 연결합니다(저는 핀 D7 사용).

제조업체에 따라 주문이 다르므로 센서의 데이터 시트를 다시 확인하여 센서의 5V, GND 및 신호 핀을 올바르게 식별했는지 확인하십시오. 내 PIR 센서는 5볼트에서 작동하지만 신호 핀은 3.3V에서만 작동하므로 Photon의 디지털 핀에 직접 연결할 수 있습니다. 다시 한 번, 신호 전압이 3.3V인지 확인하기 위해 센서의 데이터 시트를 다시 확인하십시오.

Photon의 USB Micro B 커넥터를 통해 PC 또는 벽면 콘센트에 어셈블리의 전원을 켭니다. Particle IDE를 열고 아래 제공된 센서 코드를 붙여넣습니다. 그런 다음 코드를 Photon에 플래시합니다.

이제 센서 앞에서 손을 흔들면 LED가 켜집니다. 또한 파티클 대시보드에서 로그를 확인하여 이벤트가 게시되었는지 확인할 수 있습니다.

2단계:트리거 조립

시간:10분

부품:광자, 220옴 저항, LED, 브레드보드, 암/수 점퍼 와이어

도구:해당 없음

이전 단계에서 했던 것처럼 LED와 저항을 광자에 연결합니다. 다시 말하지만 LED는 선택 사항이지만 파티클 클라우드에서 이벤트가 수신될 때 표시하는 것이 유용하다는 것을 알았습니다. 다음으로 점퍼 와이어의 수 끝을 Photon의 Vin, GND 및 디지털 핀에 연결합니다(저는 핀 D7을 사용했습니다). Photon의 디지털 핀은 Music Maker의 GPIO 핀 중 하나에 연결하여 음악을 트리거합니다. Photon의 Vin 및 GND 연결은 Arduino에서 Photon에 전원을 공급하는 데 사용됩니다.

그러나 먼저 Arduino에 연결하기 전에 Photon의 USB Micro B 커넥터를 통해 PC 또는 벽면 콘센트에 어셈블리의 전원을 켭니다. Particle IDE를 열고 아래 제공된 트리거 코드를 붙여넣습니다. 그런 다음 코드를 Photon으로 플래시합니다. 이제 Particle IDE에 연결된 두 개의 장치가 있으므로 코드를 플래시할 올바른 장치를 선택했는지 확인하십시오.



3단계:Arduino와 Music Maker 실드 조립

시간:20분

부품:Arduino Uno, Adafruit Music Maker 실드, 광자, 220옴 저항, LED, 미니 브레드보드, 점퍼 와이어, USB 케이블

도구:납땜 인두

헤더 핀은 Music Maker 실드에 포함되어 있지만 납땜해야 합니다. 쉴드를 Arduino에 연결하기 위한 헤더 핀 외에도 GPIO 및 Photon의 전원 연결을 위해 쉴드 상단에 수 헤더 핀을 추가했습니다. (암컷 헤더핀이 있었다면 수컷/수 점퍼선만 있으면 사용했을 텐데, 손에 수컷/암컷 점퍼선 외에 수컷 헤더핀만 있어서 가보기로 했어요. 대신 경로를 지정합니다.)

Photon의 디지털 핀에서 쉴드의 GPIO 핀으로 점퍼 와이어를 연결합니다(저는 쉴드에서 핀 7을 사용했습니다). Photon's Vin의 점퍼를 실드의 5v 핀에 연결하고 GND 점퍼를 실드의 GND 핀에 연결합니다.

마지막으로 스피커를 실드의 터미널 블록에 연결합니다. 오른쪽 스피커용 터미널 블록과 왼쪽 스피커용 터미널 블록이 있습니다. 스피커 하나를 연결했습니다. 딸아이가 가지고 있던 부서진 장난감 중 하나에서 작은 스피커를 버리기 전에 구했습니다.

Arduino를 개발 머신에 연결하고 아래 Arduino 스케치를 Arduino IDE에 붙여넣고 업로드합니다.

그게 다야 센서 앞으로 걸어가서 편히 앉아서 음악이 시작될 때까지 기다립니다.

강령 정보

앞서 언급했듯이 게시/구독 패턴을 사용한 것은 이번이 처음입니다. Photon으로 하는 것은 아주 쉬웠습니다. 센서 코드에서 PIR 센서의 신호 핀이 HIGH가 되면 LED를 켜고 이벤트를 파티클 클라우드에 게시합니다. 이벤트를 게시하려면 한 줄만 입력하면 됩니다.

게시 =Particle.publish("모션 감지", NULL, 60, 개인);

처음에는 공개를 비공개로 설정하지 않았습니다. 개인 식별 정보가 없기 때문에 신경 쓰지 않았습니다. 그러나 이벤트를 구독하러 갔을 때 잘못된 알람이 많이 발생했습니다. 분명히 다른 많은 사용자가 "모션" 지향 이벤트를 게시하고 있는 것 같습니다. 그래서 "MY_DEVICES" 매개변수를 추가하여 내 장치의 이벤트만 구독하도록 구독 호출을 전환했습니다.

Particle.subscribe("모션", soundAlarm, MY_DEVICES);

그리고 구독 기능이 내 장치에만 국한되도록 하려면 게시를 비공개로 설정해야 했습니다.

트리거 코드는 모션 이벤트가 발생할 때 이벤트 핸들러인 soundAlarm을 호출합니다. 이벤트 핸들러가 하는 모든 일은 LED를 켜고 Music Maker 실드의 GPIO 핀을 HIGH로 설정하는 것입니다. Arduino 스케치는 GPIO 핀이 HIGH인 것을 감지하고 SD 카드의 MP3 파일을 재생하기 전에 60초 동안(내 차를 주차하고, 물건을 모으고, 집에 들어갈 때까지) 기다립니다.


프로젝트 배포

나는 차를 주차하는 곳 바로 옆 선반에 있는 차고에 센서를 설치했습니다. 집에 가면 딸아이가 식탁에 있는 경우가 많으므로 방아쇠와 Arduino with Music Maker 실드와 스피커를 부엌 카운터에 놓았습니다. 두 위치 모두 근처에 벽면 콘센트가 있어 프로젝트의 두 부분에 전원을 쉽게 공급할 수 있습니다.

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

코드

<울>
  • 센서 코드
  • 트리거 코드
  • Arduino 및 Music Maker 쉴드 코드
  • 센서 코드C/C++
    모션이 감지될 때마다 파티클 클라우드에 이벤트를 게시하는 Photon에 대한 샘플 코드 게시 성공 여부bool 게시됨;void setup(){ // LED 핀을 출력으로 설정 pinMode(led, OUTPUT); // PIR 센서 입력 핀을 입력 pinMode(pir, INPUT)로 설정; // LED가 꺼져 있는지 확인 digitalWrite(led, LOW);}void loop(){ if (digitalRead(pir) ==HIGH) // 움직임이 감지되면 { // 감지되었다는 표시로 LED를 켭니다. 디지털 쓰기(led, HIGH); 게시됨 =Particle.publish("모션 감지됨", NULL, 60, PRIVATE); if (!published) // 게시가 실패한 경우 { // 게시 실패의 표시기로 LED를 10번 깜박입니다. for (int i =0; i <10; i++) { digitalWrite(led, LOW); 지연(500); 디지털 쓰기(led, HIGH); 지연(500); } } } else // 움직임이 감지되지 않으면 LED를 끕니다. digitalWrite(led, LOW); // 다른 읽기를 수행하기 전에 2초 대기 delay(2000);}
    트리거 코드C/C++
    내 센서가 게시한 파티클 클라우드의 모션 이벤트를 구독한 다음 MP3를 재생하도록 Music Maker 실드를 트리거하는 Photon의 샘플 코드.
    // 핀 D0int led =D0;// 트리거 정의 핀 D7int의 Arduino의 경우 trigger =D7;void soundAlarm(const char *event, const char *data){ // 모션 이벤트가 트리거되었을 때 // LED 켜기 digitalWrite(led, HIGH); // 트리거를 켭니다. digitalWrite(trigger, HIGH); // 2초 기다림 delay(2000); // 트리거 끄기 digitalWrite(trigger, LOW); // LED 끄기 digitalWrite(led, LOW);}void setup(){ // 내 장치에서만 모션 이벤트 구독 // soundAlarm을 이벤트 핸들러로 정의 Particle.subscribe("motion", soundAlarm, MY_DEVICES); // LED 핀을 출력으로 설정 pinMode(led, OUTPUT); // 트리거 핀을 출력으로 설정 pinMode(trigger, OUTPUT);}void loop(){}
    Arduino 및 Music Maker 쉴드 코드Arduino
    연결된 Photon의 트리거를 기반으로 Music Maker 실드를 통해 Arduino가 MP3를 재생하는 샘플 코드.
    /************************** ************************************* 이 스케치는 Adafruitt Music을 사용하여 SD 카드에서 MP3를 재생합니다. 실드의 GPIO 핀에 연결된 Photon에 의해 트리거될 때 Maker 실드입니다. 잘 작성된 튜토리얼과 라이브러리에 대해 Adafruit에게 감사드립니다. https://learn.adafruit.com/adafruit-music-maker-shield-vs1053-mp3-wav-wave-ogg-vorbis-player/pinouts ***************** ********************************************/// SPI 포함, 뮤직 메이커 및 SD 라이브러리#include #include #include // 뮤직 메이커 shield에 사용되는 핀 정의#define SHIELD_RESET -1 // VS1053 리셋 핀(미사용! )#define SHIELD_CS 7 // VS1053 칩 선택 핀(출력)#define SHIELD_DCS 6 // VS1053 데이터/명령 선택 핀(출력)#define CARDCS 4 // 카드 칩 선택 핀// DREQ는 Int 핀이어야 합니다. http 참조 //arduino.cc/en/Reference/attachInterrupt#define DREQ 3 // VS1053 데이터 요청, 이상적으로는 인터럽트 핀// 음악 플레이어 정의Adafruit_VS1053_FilePlayer musicPlayer =Adafruit_VS1053_FilePlayer(SHIELD_RESET, SHIELD_SARD, DRELD_DC) // 광자가 연결되는 GPIO 핀을 정의합니다.int photonPin =7;void setup(){ // 음악 플레이어를 초기화합니다. musicPlayer.begin(); // SD 카드 초기화 SD.begin(CARDCS); // 왼쪽, 오른쪽 채널의 볼륨을 설정합니다. 낮은 숫자 ==더 큰 볼륨! musicPlayer.setVolume(1,1); // DREQ가 인터럽트 핀에 있는 경우(uno, #2 또는 #3) // 백그라운드 오디오 재생을 수행할 수 있지만 // 프로젝트의 이 초기 단계에서 사용되지 않습니다. // DREQ 인터럽트를 초기화합니다. // musicPlayer.useInterrupt(VS1053_FILEPLAYER_PIN_INT); // 광자가 연결된 GPIO 핀을 입력으로 초기화 musicPlayer.GPIO_pinMode(photonPin, INPUT);}void loop(){ if (musicPlayer.GPIO_digitalRead(photonPin) ==HIGH) { // 재생 전 60초 대기 그래서 저는 // 그것이 시작된 직후 집으로 걸어가고 있습니다. delay(60000); // 파일을 재생하고 완료될 때까지 반환하지 않음 musicPlayer.playFullFile("track001.mp3"); } 지연(500);}

    회로도

    sensor.fzz trigger.fzz

    제조공정

    1. CNC 기계에 사용되는 구성 요소는 무엇입니까
    2. 위기 시 원활한 의사소통의 핵심 구성요소
    3. 제조업의 미래는 어떤 모습일까요?
    4. The Annoy-O-Bug:짹짹거리는 조명 투사체
    5. 나노 기술은 IoT 보안 전쟁에 참여할 준비가 되었습니까?
    6. 압축 공기 시스템의 구성 요소는 무엇입니까?
    7. 현대화 과정에서 다양한 크레인 구성 요소는 어떻게 됩니까?
    8. 미래의 기술자는 어떤 모습일까요?
    9. 띠톱 기계의 주요 구성 요소
    10. 가공 부품 설계에 대한 궁극적인 가이드