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

아두이노 기반 사회적 거리두기 알림 시스템: 코로나19 대응

부품 및 소모품

Arduino UNO (Arduino Nano가 더 적합하지만 UNO 사용)×1
Arduino 프로토 실드 (선택 사항)×1
Adafruit 미니 브레드보드×1
Elegoo 16x2 LCD 디스플레이×1
초음파 센서 HC-SR04×1
터치 센서 (버튼 대체 가능, 풀다운 저항 필요)×1
NTC 서미스터×1
저항 10kΩ×1
부저×1
로터리 포텐셔미터 (LCD 대비 조절용)×1
점퍼 와이어×1
투명 방수 케이스 (LCD 시인성 및 우천 시 보호용)×1

앱 및 온라인 서비스

프로젝트 소개

이것은 무엇인가?

코로나19 확산을 늦추는 가장 신뢰할 수 있는 방법은 타인과 거리두기입니다. 예방이 치료보다 낫죠. 하지만 30초마다 뒤돌아보며 누가 다가오는지 확인하는 건 번거롭습니다. 타인에게 2미터 거리를 유지하라고 경고해주는 장치가 있으면 도움이 될 것입니다. 이 프로젝트의 목적입니다. 2-in-1 기능으로, 서미스터는 거리 측정 정확도를 높이는 데 쓰이는 동시에(음속은 온도에 따라 변함), 버튼/터치 센서로 모드를 전환해 두 가지 모드를 제공합니다: 타인 접근 경고 모드(모드 1)와 온도/거리 측정 모드(모드 2). 측정 모드에서는 LCD에 온도와 거리를 표시합니다.

작동 원리

모드 1(경고 모드)일 때:

모드 2(측정 모드)일 때: LCD 상단에 거리, 하단에 온도 표시.

빗물로부터 부품을 보호하기 위해 페트병 절반을 잘라 비 올 때 덮을 수 있게 부착했습니다.

두 줄로 배낭 바닥에 부착/탈착 용이.

아두이노 기반 사회적 거리두기 알림 시스템: 코로나19 대응
아두이노 기반 사회적 거리두기 알림 시스템: 코로나19 대응
아두이노 기반 사회적 거리두기 알림 시스템: 코로나19 대응
아두이노 기반 사회적 거리두기 알림 시스템: 코로나19 대응
아두이노 기반 사회적 거리두기 알림 시스템: 코로나19 대응
아두이노 기반 사회적 거리두기 알림 시스템: 코로나19 대응

터치 센서로 모드 전환.

아두이노 기반 사회적 거리두기 알림 시스템: 코로나19 대응

제작 방법

아래 회로도에 따라 부품을 연결하세요.

'코드' 섹션의 라이브러리를 가져오세요. Arduino IDE에서 '스케치' → '라이브러리 포함' → '.ZIP 라이브러리 추가...'로 라이브러리(.zip 파일) 선택. 두 라이브러리 모두 필요.

아두이노 기반 사회적 거리두기 알림 시스템: 코로나19 대응
아두이노 기반 사회적 거리두기 알림 시스템: 코로나19 대응

모든 준비가 끝났으면 아래 코드를 업로드하세요.

코드

메인 코드 Arduino

#include <HCSR04.h>
#include <LiquidCrystal.h>
#define trigPin 7
#define echoPin 6
#define buzzer 9
#define backlight 10
LiquidCrystal lcd(12, 11, 5, 4, 3, 8);
UltraSonicDistanceSensor distanceSensor(trigPin, echoPin);
int tempReading;
double tempK;
float tempC;
int rounded;
int temp_round;
volatile boolean modes = 0;
double distance;

void setup() {
  lcd.begin(16, 2);
  attachInterrupt(0, changeMode, FALLING);
  pinMode(2, INPUT);
  pinMode(buzzer, OUTPUT);
  pinMode(backlight, OUTPUT);
  digitalWrite(backlight, HIGH);
  backlightOn();
}

void loop() {
  tempReading = analogRead(A0);
  tempK = log(10000.0 * ((1024.0 / tempReading - 1)));
  tempK = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * tempK * tempK)) * tempK);
  tempC = tempK - 273.15;
  distance = distanceSensor.measureDistanceCm(tempC);
  temp_round = round(tempC);
  
  if (modes == 1) { // 측정 모드
    backlightOn();
    if (distance >= 300 || distance <= 0) {
      rounded = 0; lcd.clear(); lcd.print("Out of range"); lcd.setCursor(0, 1); lcd.print("Temperature:" + String(temp_round) + " C");
    } else {
      rounded = round(distance); lcd.clear(); lcd.print("Distance: "); lcd.print(rounded); lcd.print(" cm"); lcd.setCursor(0, 1); lcd.print("Temperature:" + String(temp_round) + " C");
    }
  } else { // 경고 모드
    if (distance >= 300 || distance <= 0) { rounded = 0; lcd.clear(); backlightOff(); }
    else {
      rounded = round(distance);
      if (distance >= 200) { backlightOff(); lcd.clear(); }
      else if (distance <= 200 && distance > 100) { backlightOn(); lcd.clear(); lcd.print("Please keep away"); lcd.setCursor(0, 1); lcd.print("Distance:"); lcd.print(rounded); lcd.print(" cm"); }
      else if (distance <= 100 && distance > 50) { backlightOn(); lcd.clear(); lcd.print("Keep away"); lcd.setCursor(0, 1); lcd.print("Distance:"); lcd.print(rounded); lcd.print(" cm"); delay(200); buzz(); backlightOff(); delay(100); unbuzz(); backlightOn(); delay(100); }
      else if (distance <= 50) { backlightOn(); lcd.clear(); lcd.print("STAY AWAY!"); lcd.setCursor(0, 1); lcd.print("Distance:"); lcd.print(rounded); lcd.print(" cm"); delay(200); buzz(); backlightOff(); delay(200); unbuzz(); backlightOn(); delay(200); buzz(); backlightOff(); delay(200); unbuzz(); backlightOn(); }
    }
  }
  delay(700);
}

void changeMode() { modes = !modes; }
void backlightOn() { digitalWrite(backlight, HIGH); }
void backlightOff() { digitalWrite(backlight, LOW); }
void buzz() { digitalWrite(buzzer, HIGH); }
void unbuzz() { digitalWrite(buzzer, LOW); }

필요 라이브러리

제조공정

  1. 아두이노 우노로 만드는 오징어 게임 테마 인터랙티브 인형 – DIY 프로젝트
  2. 아두이노 실시간 시계로 이슬람 기도 시간 알림 장치 만들기
  3. 아두이노 우노 기반 인간 감지 로봇: 센서 통합 단계별 가이드
  4. 아두이노 우노 와이파이 웹 서버: 브라우저로 LED 제어하기
  5. 아두이노 우노로 기초 계산기 만들기 - 쉬운 프로젝트
  6. 아두이노 우노로 1.17인치 TFT LCD에 이미지 표시하기 - SD 카드 활용
  7. 아두이노 우노와 ATtiny85로 만드는 휴대용 POV(잔상) 디스플레이
  8. 아두이노 손 씻기 타이머: 코로나19 예방을 위한 간단한 DIY 도구
  9. 아두이노 우노로 8×8 LED 매트릭스 마스터하기: 단계별 가이드
  10. 아두이노 우노로 25kHz 4핀 PWM 팬 제어하기 - 제작, 코드 및 테스트