- 필요한 구성 요소 :
- HC-SR04 초음파 센서 :
- ESP8266 Wi-Fi 모듈 :
- 회로도 및 설명 :
- 코드 설명 :
- "; if (distance <5) {webpage + ="휴지통이 가득 참 ";} else {webpage + ="휴지통이 비어 있습니다. ";} 웹 페이지 + ="
- 프로젝트 테스트 및 출력 :
이 DIY에서는 IOT 기반의 쓰레기통 / 쓰레기 모니터링 시스템 을 만들어 웹 서버를 통해 쓰레기통이 비어 있는지 꽉 찼는 지 알려주고 '쓰레기통'또는 'Dumpsters'의 상태를 알 수 있습니다. 인터넷을 통해 전 세계 어디에서나. 그것은 매우 유용 할 것이며 집뿐만 아니라 공공 장소의 쓰레기통에 설치할 수 있습니다.
이 IOT 프로젝트에서 초음파 센서 는 쓰레기통에 쓰레기가 가득 차 있는지 여부를 감지하는 데 사용됩니다. 여기에서 초음파 센서는 쓰레기통 상단에 설치되어 쓰레기통 상단에서 쓰레기의 거리를 측정하고 쓰레기통의 크기에 따라 임계 값을 설정할 수 있습니다. 거리가이 임계 값보다 작 으면 휴지통이 쓰레기로 가득 차 있고 웹 페이지에 "Basket is Full"이라는 메시지를 인쇄하고 거리가이 임계 값보다 크면 인쇄합니다. "Basket is Empty"메시지가 나타납니다. 여기에서는 프로그램 코드에서 임계 값을 5cm로 설정했습니다. ESP8266 Wi-Fi 모듈을 사용 합니다.Arduino를 웹 서버에 연결하기 위해. 여기에서는이 가비지 모니터링 시스템의 작동을 보여주기 위해 로컬 웹 서버를 사용했습니다.
필요한 구성 요소:
- Arduino Uno (다른 것을 사용할 수 있음)
- ESP8266 Wi-Fi 모듈
- HC-SR04 초음파 센서
- 1K 저항기
- 브레드 보드
- 전선 연결
HC-SR04 초음파 센서:
초음파 센서는 높은 정확도와 안정적인 판독으로 거리를 측정하는 데 사용됩니다. 2cm에서 400cm 또는 1 인치에서 13 피트까지의 거리를 측정 할 수 있습니다. 공기 중에 40KHz의 주파수로 초음파를 방출하고 물체가 방해를 받으면 센서로 다시 반사됩니다. 물체를 치고 돌아 오는 데 걸리는 시간을 사용하여 거리를 계산할 수 있습니다.
초음파 센서에는 4 개의 핀이 있습니다. 두 개는 Arduino의 5V 및 GND에 연결되는 VCC 및 GND이고 다른 두 핀은 Arduino의 모든 디지털 핀에 연결되는 Trig 및 Echo 핀입니다. trig 핀은 신호를 보내고 Echo 핀은 신호를 수신하는 데 사용됩니다. 초음파 신호를 생성하려면 Trig 핀을 약 10us 동안 높게해야 소리의 속도로 8 사이클 소닉 버스트를 보내고 물체를 치면 Echo 핀에 수신됩니다.
초음파 센서의 작동을 올바르게 이해하고이를 사용하는 물체의 거리를 측정하려면 아래 프로젝트를 추가로 확인하십시오.
- 초음파 센서를 사용한 Arduino 기반 거리 측정
- HC-SR04 및 AVR 마이크로 컨트롤러를 사용한 거리 측정
ESP8266 Wi-Fi 모듈:
ESP8266은 프로젝트 에 Wi-Fi 또는 인터넷 액세스를 제공하는 Wi-Fi 모듈입니다. 매우 저렴한 장치이지만 프로젝트를 매우 강력하게 만들 것입니다. 모든 마이크로 컨트롤러와 통신하고 프로젝트를 무선으로 만들 수 있습니다. IOT 플랫폼에서 가장 선도적 인 장치 목록에 있습니다. 3.3V에서 실행되며 5V를 주면 손상됩니다.
ESP8266에는 8 개의 핀이 있습니다. VCC와 CH-PD는 3.3V에 연결되어 wifi를 활성화합니다. TX 및 RX 핀은 ESP8266과 Arduino의 통신을 담당합니다. RX 핀은 3.3V에서 작동하므로 프로젝트에서 만든 것처럼 전압 분배기를 만들어야합니다.
회로도 및 설명:
먼저 ESP8266을 Arduino와 연결합니다. ESP8266은 3.3V에서 실행되며 Arduino에서 5V를 제공하면 제대로 작동하지 않고 손상 될 수 있습니다. VCC와 CH_PD를 Arduino의 3.3V 핀에 연결합니다. ESP8266의 RX 핀은 3.3V에서 작동하며 Arduino에 직접 연결할 때 Arduino와 통신하지 않습니다. 그래서 우리는 그것을 위해 전압 분배기를 만들어야 할 것입니다. 직렬로 연결된 세 개의 1k 저항기가 우리를 위해 일할 것입니다. RX를 아래 그림과 같이 저항을 통해 Arduino의 핀 11에 연결하고 Arduino의 TX를 Arduino의 핀 10에 연결하십시오.
이제 HC-SR04 초음파 센서를 Arduino에 연결할 때입니다. 초음파 센서와 Arduino의 연결은 매우 간단합니다. VCC와 초음파 센서의 접지를 5V와 Arduino의 접지에 연결하십시오. 그런 다음 초음파 센서의 TRIG 및 ECHO 핀을 Arduino의 핀 8과 9에 각각 연결합니다.
코드 설명:
코드를 업로드하기 전에 ESP8266 장치의 Wi-Fi에 연결되어 있는지 확인하십시오. 아래 코드 섹션에서 전체 코드를 확인할 수 있습니다. 코드는 주석으로 잘 설명되었으며, 아래에 몇 가지 중요한 기능도 설명했습니다.
Arduino는 먼저 초음파 센서를 읽습니다. TRIG 핀을 10us 동안 높게 만들 때 소리의 속도로 초음파 신호를 보냅니다. 객체를 치고 우리라는 이름의 변수에 여행의 지속 시간이 저장됩니다 후 신호 의지 복귀 시간을 . 다음 우리는 수식을 적용함으로써 객체 (우리의 경우 가비지)의 거리를 계산되며라는 변수에 저장한다 거리 .
digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); 기간 = pulseIn (echoPin, HIGH); 거리 = 기간 * 0.034 / 2;
웹 브라우저의 웹 페이지에 출력을 인쇄하려면 HTML 프로그래밍 을 사용해야 합니다. 그래서 우리는 webpage 라는 문자열을 만들고 그 안에 출력을 저장했습니다. 휴지통이 비어 있는지 여부를 확인하기 위해 여기에 조건을 적용했습니다. 거리가 5cm 미만일 경우 웹 페이지에“Basket is Full”이 표시 되고, 거리가 5cm 이상일 경우 웹 페이지에“Basket is Empty”메시지가 표시됩니다.
if (esp8266.available ()) {if (esp8266.find ("+ IPD,")) {지연 (1000); int connectionId = esp8266.read ()-48; 문자열 웹 페이지 = "
IOT 쓰레기 모니터링 시스템
"; 웹 페이지 + =""; if (distance <5) {webpage + ="휴지통이 가득 참 ";} else {webpage + ="휴지통이 비어 있습니다. ";} 웹 페이지 + ="
";다음 코드는 웹 페이지에 데이터를 보내고 표시합니다. 'webpage' 라는 문자열에 저장 한 데이터 는 'command' 라는 문자열에 저장됩니다. 그런 다음 ESP8266은 '명령' 에서 문자를 하나씩 읽고 웹 페이지에 인쇄합니다.
String sendData (문자열 명령, const int 시간 초과, 부울 디버그) {문자열 응답 = ""; esp8266.print (명령); 긴 int 시간 = millis (); while ((시간 + 시간 초과)> millis ()) {while (esp8266.available ()) {char c = esp8266.read (); 응답 + = c; }} if (debug) {Serial.print (response); } 반환 응답; }
프로젝트 테스트 및 출력:
코드를 업로드 한 후 시리얼 모니터를 열면 아래와 같이 IP 주소가 표시됩니다.
브라우저에이 IP 주소를 입력하면 아래와 같이 출력이 표시됩니다. 휴지통이 비어 있는지 다시 확인하려면 페이지를 다시 새로 고쳐야합니다.
이 가비지 모니터링 시스템이 작동하는 방식입니다.이 프로젝트는 휴지통이 반쯤 찼을 때 메시지를 하나 더 설정하거나 휴지통이있을 때 사용자에게 알리기 위해 이메일 / SMS를 트리거 할 수있는 것과 같은 몇 가지 기능을 추가하여 더욱 향상시킬 수 있습니다. 바구니가 가득 찼습니다.