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

아침에 잠자리에서 일어나게 해주는 알람 시계

구성품 및 소모품

Arduino Nano Every
나는 최종 조립을 위해 Nano Every를 사용할 것입니다. 그러나 다른 Arduino도 거의 사용할 수 있습니다(처음에는 Mega2560을 사용합니다).
× 1
시계 모듈
× 1
HC-SR501
모션 센서입니다
× 1
부저
× 1

앱 및 온라인 서비스

Arduino IDE

이 프로젝트 정보

때때로 아침에 일어나는 것이 매우 어렵기 때문에 나는 당신을 침대에서 나오게 하는 알람 시계를 만들기로 결정했습니다. 스누즈 버튼을 누른 후 다시 침대에 들어갔는지 알람 시계가 알 수 있도록 모션 센서를 사용하는 것입니다. 이 경우 알람이 다시 울립니다. 그렇지 않고 충분히 오랫동안(예를 들어 2분) 일어나 있으면 알람 시계가 더 이상 울리지 않습니다. 이 시간 동안에는 이미 아침 일과를 시작할 수 있는 대략 센서 앞(몇 미터 이내)에 있어야 합니다.

어셈블리

이 프로젝트를 위해서는 시계 모듈, 모션 센서, 부저, 작은 버튼 및 Arduino가 필요합니다.

이제 모든 것을 연결해야 합니다.

<울>
  • 부저의 음극 핀 --> GND
  • <울>
  • 양극 부저 핀 --> D11
  • <울>
  • 버튼 핀 --> GND
  • <울>
  • 다른 버튼 핀 --> D9
  • <울>
  • 모션 센서 VCC --> 5V
  • <울>
  • 모션 센서 출력 --> D7
  • <울>
  • 모션 센서 GND --> GND
  • <울>
  • 시계 모듈 GND --> GND
  • <울>
  • 클럭 모듈 VCC --> 5V
  • <울>
  • 클럭 모듈 SDA --> SDA(Mega2560용 핀 20)
  • <울>
  • 클럭 모듈 SCL --> SCL(Mega2560용 핀 21)
  • 회로도에 표시된 대로 배선 후:

    코드

    먼저 코드 섹션에서 ZIP 파일을 다운로드해야 합니다. 이것은 시계 모듈용 라이브러리입니다. 라이브러리에 파일을 추가하는 데 문제가 있는 경우 코드 섹션에 있는 지침을 따를 수 있습니다.

    이제 소프트웨어 섹션에서 코드를 업로드할 수 있습니다. 코드를 업로드한 직후 다음 행을 주석 처리해야 합니다.

    clock.setDateTime(__DATE__, __TIME__); 

    이 줄은 설정 기능에 있습니다.

    이제 코드를 직접 다시 업로드해야 합니다.

    주석 처리를 하지 않으면 보드를 초기화할 때마다 시계 모듈의 시간이 마지막 업로드 시간으로 초기화됩니다.

    그 후 알람이 울릴 시간을 설정할 수 있습니다. 시간과 분을 설정할 수 있습니다.

    //--------------------------------------int set_hour =6;int set_min =55;//-------------------------------------- 

    이제 이 시간에 매일 알람이 울릴 것입니다. 주말이나 다른 요일에 다른 시간을 가질 수 있도록 코드를 편집하는 것도 가능합니다.

    이제 알람 시계의 전원을 켜면 설정된 시간까지 기다립니다. 그러면 alarm() 함수가 실행됩니다. 처음에는 스누즈 버튼을 누를 때까지 신호음이 울리기 시작합니다. 그 후 모션 센서는 앞에 사람이 있는지 확인합니다. 일정 시간 동안 센서 앞에 있어야 하고 약간 움직여야 모션 센서가 트리거됩니다. 충분히 오랫동안 모션 센서의 시야 안에 있으면 알람이 현재 해당 날짜에 비활성화되어 있고 다음 날 아침까지 대기할 것임을 알려주는 짧은 신호음이 울립니다.

    그러나 버튼을 누른 후 시간 동안 다시 취침하면 알람이 울리고 전체 절차가 다시 시작됩니다. 따라서 이 알람 시계는 알람을 끄고 다시 잠들지 않도록 합니다. 센서 앞에 섰다가 다시 잠들지 않을 만큼 충분히 깨어 있기를 바랍니다.

    이 줄에서 센서 앞에 있어야 하는 시간(분)을 조정할 수 있습니다.

    if(abs(dt.minute - minute)>=1){ /////이어야 하는 기간 설정 

    센서 조정

    이 알람 시계가 제대로 작동하려면 모션 센서를 약간 조정해야 합니다. 먼저 트리거 선택 점퍼를 올바른 위치에 배치해야 합니다. 반복 가능한 트리거 모드에 있어야 합니다!

    이제 시간 지연과 감도도 조정해야 합니다. 저에게는 감도를 최대로 설정하고 시간 지연을 최소보다 약간 높게 설정했을 때 가장 잘 작동했습니다. 시간 지연은 사람을 마지막으로 감지한 후 출력이 높은 시간을 결정합니다. 지연 시간이 너무 짧으면 센서가 항상 사용자를 감지하지 못하기 때문에 알람이 다시 울리지 않도록 하는 것이 매우 어렵습니다. 반면에 지연 시간이 너무 길면 다시 잠자리에 들어도 알람이 울리지 않습니다.

    이제 컴팩트하게 만듭니다.

    몇 가지 테스트 후에 우리는 알람 시계를 더 작게 만들 준비가 되었습니다. 이를 위해 저는 Arduino Nano Every를 사용하지만 다른 Arduino 보드도 사용할 수 있습니다.

    우리는 두 번째 회로도에 따라 모든 것을 함께 납땜하는 것으로 시작합니다(기본적으로 브레드보드 없이 이전과 동일함).

    모든 것이 여전히 작동하는지 테스트한 후 알람 시계 케이스를 만들 수 있습니다. 작업이 매우 쉽기 때문에 3mm 발사 나무로 케이스를 만들기로 결정했습니다. 다음은 케이스를 만드는 과정의 사진입니다. 제 케이스의 크기는 55mm x 35mm x 40mm입니다.

    모션 센서용으로 큰 구멍을 만들고 마이크로 USB 케이블용 슬롯과 스피커용 구멍도 만들었습니다.

    완성된 알람 시계:

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

    코드

    <울>
  • 알람 시계 Arduino 코드
  • 시계 라이브러리
  • 알람 시계 Arduino 코드Arduino
    #include #include DS3231 clock;RTCDateTime dt;int 버튼 =9;int pirPin =7; // HC-S501int용 입력 pirValue; // 읽은 PIR 값을 저장할 장소//--------------------------------------int set_hour =7;int set_minute =0;//------------------------------------- 무효 설정 () { clock.begin(); 핀모드(버튼, INPUT_PULLUP); 핀모드(LED_BUILTIN, 출력); //clock.setDateTime(__DATE__, __TIME__); // !!첫 번째 업로드 후 이 라인을 주석 처리해야 합니다. 그렇지 않으면 당신은 잘못된 시간을 얻게 될 것입니다!! pinMode(pirPin, INPUT);}알람 무효(int 분){ bool button_pressed =false; 부울 깨어 =거짓; 부울 이동 =거짓; while(!button_pressed){ ​​//버튼을 누르지 않는 한 알람은 켜집니다. for(int i =0; i <4; i++){ tone(11, 523, 100); 지연(100); 톤(11, 784, 50); for(int i =0, i <20, i++){ if(digitalRead(버튼) ==LOW){ button_pressed =true; 깨어 =사실; dt =clock.getDateTime(); 분 =dt.분; } 지연(65); } } } dt =시계.getDateTime(); 분 =dt.분; 동안(깨어 있음){ 움직임 =거짓; dt =clock.getDateTime(); for(int i =0; i <30; i++){ if(digitalRead(pirPin)){움직임 =true;} } digitalWrite(LED_BUILTIN, 움직임); if(!pirValue){지연(5000); for(int i =0; i <40; i++){ if(digitalRead(pirPin)){움직임 =true;} } if(!움직임){ 알람(분); //너무 오랫동안 움직임이 감지되지 않으면 알람이 재설정됩니다. } } if(abs(dt.minute - minute)>=1){ //센서 톤(11, 698) 앞에 있어야 하는 시간 주기 설정 , 50); 지연(100); 톤(11, 698, 50); 디지털 쓰기(LED_BUILTIN, 0); 깨어 =거짓; } 지연(100); }} 무효 루프() { dt =clock.getDateTime(); if(set_분 ==dt.분 &&set_hour ==dt.hour){ 알람(set_분); } 지연(10000);}
    시계 라이브러리Arduino
    이것은 DS3231 라이브러리용 zip 파일입니다. 이것을 다운로드하고 다음과 같이 라이브러리에 추가해야 합니다.
    Arduino 열기 --> "스케치" -> "라이브러리 포함" -> ".ZIP 라이브러리 추가"로 이동 --> zip 파일로 이동하고 확인을 클릭합니다.
    미리보기 없음(다운로드 전용)

    회로도

    브레드보드에서 VCC 및 GND에 연결하는 것을 잊었습니다. 따라서 Arduino의 5V를 양극 레일에 연결하고 Arduino의 GND를 음극 레일에 연결하기만 하면 됩니다.

    제조공정

    1. 차에 대한 생각을 바꿔줄 트롤 모자
    2. DS1302 RTC가 있는 간단한 알람 시계
    3. SICK의 Industry 4.0 교육을 통해 PLC에서 IO-Link를 시작할 수 있습니다.
    4. 펀칭 공정의 성공과 안전성에 영향을 미치는 요소
    5. 표면 연삭 공정의 결과에 영향을 미치는 주요 요소
    6. CNC 선반 기계가 필요한 유일한 기계일 수 있습니다!
    7. 필요한 수평 가공 장비
    8. 최고의 쇼트 바 피더를 원하십니까?
    9. 보링 가공이 필요한 가장 큰 이유
    10. 워터 펌프 다이렉트 - 순환 시스템에 영향을 미치는