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

온도 측정 자동 및 음성 안내

구성품 및 소모품

Arduino UNO
× 1
UTSOURCE 전자 부품
× 1

이 프로젝트 정보

최근 전 세계가 코로나19 바이러스로 몸살을 앓고 있습니다. 영향을 받은 사람(또는 영향을 받은 것으로 의심되는 사람)에 대한 첫 번째 확인은 체온을 측정하는 것입니다. 그래서 이 프로젝트는 자동으로 체온을 측정하고 음성으로 알려주는 모델로 만들어졌습니다.

시작하겠습니다!

1단계:부품 목록

프로젝트 구성 요소:

1. 아두이노 UNO https://amzn.to/2P58O7s

2. SD 카드 모듈 https://amzn.to/2E1myhb

3. SD 카드 8GB https://amzn.to/2xTCz6i

4. 앰프 PAM8403 &스피커 https://amzn.to/2E1myhb

5. 초음파 센서 HC-SR04 https://amzn.to/2E1myhb

6. OLED 128x64 https://amzn.to/2E1myhb

7. 브레드보드 케이블 https://amzn.to/2E1myhb

8. 적외선 온도계 GY-906 https://amzn.to/2Wlab5r

utsource.net에서 전자 부품 구매

참고:높은 수요의 적외선 온도계로 인해 때때로 시장에서 GY-906 센서를 찾지 못할 수 있습니다.

2단계:회로 설계

회로 설계를 살펴보십시오.

기본적으로 적외선 온도계 GY-906에서 온도를 측정한 다음 Oled LCD 128*64에 결과를 표시합니다. 또한 스피커를 통해 음성으로 결과 온도를 알려줍니다. 스피커는 SD 카드에서 오디오 파일을 가져온 다음 온도 결과에 따라 재생합니다. 스피커는 소리를 더 크게 만들기 위해 증폭기 PAM8403이 필요합니다.

다음과 같이 사용하는 주요 프로세스:

1. 초음파 센서에 손을 흔듭니다(약 10cm 거리)

2. 그런 다음 "온도 측정 시스템에 오신 것을 환영합니다. 손이나 이마를 센서 앞에 2cm 정도 대세요"라는 음성으로 인사합니다.

3. 온도 측정 센서 앞에 손이나 이마를 대고

4. 온도 측정 결과가 나오고 LCD에 표시됩니다. 예를 들어, 귀하의 체온이 36.5dgC인 경우 "당신의 체온은 36.5도입니다. 귀하의 체온은 정상인 것 같으니 건강을 유지하세요!"라고 말할 것입니다.

3단계:프레임 만들기 및 연결하기

프레임은 MDF 목재 3mm 두께로 레이저로 절단됩니다. 나는 당신 중 일부가 그것을 자르기 위해 cnc 레이저 기계를 지원할 수 있기를 바랍니다. 그렇지 않은 경우 프레임의 판지를자를 수 있습니다. 디자인 파일은 여기(구글 공유)에서 다운로드할 수 있습니다.

절단 후 프레임을 만들기 위해 접착제가 필요합니다. 프레임을 만드는 것은 어렵지 않습니다. 그런 다음 모든 부품을 프레임에 설치하고 배선을 회로 설계로 만듭니다.

4단계:코드 작동 및 다운로드

arduino 코드가 작업을 수행합니다.

1. 초음파 센서로 감지되는 센서 주변에 사람(장애물)이 있는지 감지

2. 스피커로 환영 인사를 하고 센서에 손이나 이마를 2cm 정도 가까이 대라고 알려줍니다.

3. 결과를 말하고 체온에 대해 의견을 말하십시오.

여기에서 코드를 다운로드할 수 있습니다.

https://bit.ly/2Za1mjZ

여기에 오디오 파일이 있습니다. 다운로드하여 SD 카드에 저장해야 합니다.

https://bit.ly/3aZpGWJ

참고로 오디오 파일은 8bit 모노타입 11025Hz 입니다. 내 목소리를 컴퓨터(또는 전화)로 녹음한 다음 온라인 도구로 변환합니다(https://audio.online-convert.com/convert-to-wav)

5단계:테스트 실행

이제 전원을 연결하고 어떻게 작동하는지 테스트할 수 있습니다. 시스템이 매우 흥미롭게 온도를 측정하고 음성으로 알려줍니다.

마음에 드셨으면 좋겠습니다 :)

읽어주셔서 감사합니다!https://bit.ly/2Za1mjZ

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

코드

<울>
  • Arduino_ir_temperature_auto.ino
  • Arduino_ir_temperature_auto.inoArduino
    // www.youtube.com/c/engineer2you#include  // SD 카드용#define SD_ChipSelectPin 10 // SD 카드용#include  // wav 파일을 재생하기 위한 Lib# include  // 적외선 온도계용//-------------------------------------- - oled#include "SSD1306Ascii.h#include "SSD1306AsciiAvrI2c.h#define I2C_ADDRESS 0x3C // 0X3C+SA0 - 0x3C 또는 0x3D#define RST_PIN -1 // 필요한 경우 적절한 RST_PIN을 정의합니다./// ---------------------------------- oledAdafruit_MLX90614 mlx =Adafruit_MLX90614(); //적외선 온도계용SSD1306AsciiAvrI2c oled; // LCDTMRpcm용 객체 생성 tmrpcm; // 음악 플레이어용 객체를 생성합니다.double temp; // 온도 값을 저장하기 위해 const int trigPin =17; //초음파 const int echoPin =16; //ultrasoniclong duration;int distance;int step1_judge =0;void setup(){ //-------------------------------------------------------- --------- oled #if RST_PIN>=0 oled.begin(&Adafruit128x64, I2C_ADDRESS, RST_PIN); #else // RST_PIN>=0 oled.begin(&Adafruit128x64, I2C_ADDRESS); #endif // RST_PIN>=0 // oled.setI2cClock(frequency)를 호출하여 기본 주파수에서 변경합니다. oled.setFont(Adafruit5x7); //-------------------------------------- oled tmrpcm.speakerPin =9; //출력 오디오용 핀 9 Serial.begin(9600); if (!SD.begin(SD_ChipSelectPin)) { // 카드가 존재하고 초기화 가능한지 확인:Serial.println("SD fail"); Serial.println("SD 정상"); oled.clear(); oled.set1X(); oled.println("SD 카드 실패"); 반품; // 그렇지 않으면 더 이상 아무것도 하지 않음 } else{ Serial.println("SD ok"); oled.clear(); oled.println("SD 카드 정상입니다."); } 지연(1000); tmrpcm.play("m_wel.wav"); // arduino가 켜지거나 재설정될 때마다 사운드 파일 환영이 재생됩니다. tmrpcm.volume(1); oled.clear(); oled.set2X(); oled.println(""); oled.println("환영합니다"); 핀모드(trigPin, 출력); // trigPin을 출력으로 설정 pinMode(echoPin, INPUT); // echoPin을 입력으로 설정 mlx.begin(); //적외선 온도계 지연 시작(10000); //환영 오디오 대기}void loop(){ //------------reading distance // 10마이크로초 동안 HIGH 상태에서 trigPin을 설정합니다. digitalWrite(trigPin, HIGH); 지연마이크로초(10); digitalWrite(trigPin, LOW); // echoPin을 읽고 마이크로초 단위의 음파 이동 시간을 반환합니다. duration =pulseIn(echoPin, HIGH, 23529); //23529us for timeout 4.0m // 거리 계산 distance=duration*0.034/2; //Speak_out(임시); Serial.print("거리는 "); Serial.println(거리); if ((distance<10)&&(distance>0)) step1_judge++; 그렇지 않으면 step1_judge=0; if (step1_judge>2){ step1_judge=0; tmrpcm.play("m_wel.wav"); 지연(10000); //환영 음성 대기 완료 temp =mlx.readObjectTempC()+1.2;//---------------------읽기 온도 및 LCD에 표시 //temp =37.4; // 테스트를 위해 이 줄에 주석을 달아 실제 읽기 oled.clear(); oled.set2X(); oled.println(""); oled.print(" "); oled.print(temp,1); oled.println("dgC"); tmrpcm.play("m_now.wav"); 지연(1380); if (temp<20){ tmrpcm.play("m_b20.wav"); //20dgC 이하로 말하기 delay(1700); //오디오 종료 대기 tmrpcm.play("m_nman.wav"); // "당신은 인간이 아닙니다"라고 말하십시오. delay(2270); //오디오 종료 대기 } else{ if (temp>
    50){ tmrpcm.play("m_over50.wav"); //50dgC 이상으로 말함 delay(1740); tmrpcm.play("m_nman.wav"); // "당신은 인간이 아닙니다"라고 말하십시오. delay(2270); } else{ speak_out(temp); //온도를 말함(20~50dgC인 경우) delay(1500); if((temp>
    36)&&(temp<37)){ tmrpcm.play("m_normal.wav"); //36~37dgC이면 "상온, 건강하세요"라고 말함 delay(3268); } if(temp>
    37){ tmrpcm.play("m_fever.wav"); //"열이 났어요"라고 말하기 delay(2728); } } } } delay(300);}void speak_out(double temperature_result){ //이 하위 프로그램은 온도를 말할 것입니다 temperature_result =temperature_result*10; 온도_결과 =라운드(온도_결과); int temp0 =온도 결과; 정수 temp1 =temp0/10; //온도 값, xy 자리(xy.z dgC) int temp2 =temp1%10; //온도 값, y 자리(xy.z dgC) int temp3 =temp0%10; //온도 값, z 자리(xy.z dgC) if(temp1<20){ tmrpcm.play("m_below20.wav"); //20dgC 이하 delay(1631); } if(temp1>50){ tmrpcm.play("m_over50.wav"); //더 큰 50dgC 지연(1747); } if((temp1>=20)&&(temp1<=29)){ tmrpcm.play("m_twenty.wav"); //20 지연(600); } if((temp1>=30)&&(temp1<=39)){ tmrpcm.play("m_thirty.wav"); //30 지연(500); } if((temp1>=40)&&(temp1<=49)){ tmrpcm.play("m_fourty.wav"); //40 지연(691); } if (temp2!=0) speak_num(temp2); //온도 값, y 자리(xy.z dgC) if((temp1>=20)&&(temp1<=50)){ tmrpcm.play("m_point.wav"); //포인트 지연(319); 발언번호(temp3); //온도 값, z 자리(xy.z dgC) } tmrpcm.play("m_dgc.wav"); //C도 지연(853); Serial.println(temp0); 직렬.println(temp1); Serial.println(temp2); Serial.println(temp3);}void speak_num(int number){ //이 하위 프로그램은 하위 프로그램 "speak_out()"에서 호출됩니다. if(number==1){ tmrpcm.play("m_one.wav" ); //하나의 지연(453); } if(숫자==2){ tmrpcm.play("m_two.wav"); //두 지연(499); } if(숫자==3){ tmrpcm.play("m_three.wav"); //3 지연(406); } if(숫자==4){ tmrpcm.play("m_four.wav"); //4 지연(401); } if(숫자==5){ tmrpcm.play("m_five.wav"); //5 지연(354); } if(숫자==6){ tmrpcm.play("m_six.wav"); //6 지연(401); } if(숫자==7){ tmrpcm.play("m_seven.wav"); //세븐 딜레이(633); } if(숫자==8){ tmrpcm.play("m_eight.wav"); //8 지연(360); } if(숫자==9){ tmrpcm.play("m_nine.wav"); //나인 딜레이(580); } if(숫자==0){ tmrpcm.play("m_zero.wav"); //제로 지연(610); }}

    회로도


    제조공정

    1. QR, RFID 및 온도 확인을 통한 출입 통제
    2. RASPBERRY PI로 온도 측정
    3. Python 및 Raspberry Pi 온도 센서
    4. Raspberry Pi의 간편한 온도 및 습도
    5. DIY:HomeBrew의 온도 모니터링 및 규정
    6. 실험실 및 과학 프로젝트를 위한 온도 측정
    7. Raspberry Pi 온도 및 광 센서
    8. 복합재 및 접합선 내부 온도 측정
    9. 다양한 유형의 측정 도구 및 용도
    10. 수동 및 자동 변속기 시스템의 작동 원리