아이들과 함께하는 사람은 화장지에 도움이되지 않는다는 것을 알고 있습니다. 누구나 낮거나 부족한 시간을 추적하고 경보 음을 울리는 방법을 알고 있습니까? 어떤 센서를 사용해야 도움이 될지 모르겠습니다.
스풀에 무게, 반사 (종이의 색) 또는 레이저 트립 와이어 등이 있습니다. 나는 그것을 구축하는 데 신경 쓰지 않고 단지 어떤 센서를 알지 못합니다. 누구나 사용할 것을 알고 있습니까?
아이들과 함께하는 사람은 화장지에 도움이되지 않는다는 것을 알고 있습니다. 누구나 낮거나 부족한 시간을 추적하고 경보 음을 울리는 방법을 알고 있습니까? 어떤 센서를 사용해야 도움이 될지 모르겠습니다.
스풀에 무게, 반사 (종이의 색) 또는 레이저 트립 와이어 등이 있습니다. 나는 그것을 구축하는 데 신경 쓰지 않고 단지 어떤 센서를 알지 못합니다. 누구나 사용할 것을 알고 있습니까?
답변:
한 번에 여러 개의 롤을 가져 와서 사용하기 위해 매달아 놓으십시오. 다른 두 개는 시터의 손이 닿지 않는 짧은 수직 기둥에 놓으십시오. 시터는 필요할 때 다른 롤을 취할 수 있습니다.
극의 바닥에있는 선반의 무게 부족을 기계적으로 감지합니다. 마지막 롤이 제거되면 알람이 트리거됩니다. 아무도 붙잡 힐 필요가 없습니다.
무게를 감지하려면 FSR 400 과 같은 힘 감지 저항을 사용 하십시오 ( 데이터 시트 참조 ). 또는 경량 코일 스프링을 사용하여 두 롤을 모두 제거 할 때 해제되는 마이크로 스위치를 사용하여 화장지를 놓을 수 있습니다. 다른 옵션은 마지막 롤이 제거 될 때 회로가 완료되는 IR 빔 브레이크 감지기입니다.
jfpoilpret와 jmathew가 제시 한 리드 센서 개념이 가장 쉬운 방법이라고 생각합니다. 어떻게 보일지에 대한 다이어그램을 그렸습니다.
하단 접점의 높이를 조정하여 감도를 조정할 수 있습니다.
이것은 실제로 당신을 "낮은"상태로 만들며 반드시 나올 필요는 없습니다. 아직 몇 장의 용지가 남아있는 상태에서 롤을 교체하지 않는 한 이것은 만족스러운 해결책으로 보이지 않습니다. 차라리 "출력"표시기가 있고 사용자에게 롤 교체 메시지를 표시하는 부저 소리가 있습니다.
이 설계는 독립형 전자 장치를 사용하여 수행 할 수 있습니다 (arduino 필요 없음). 그러나 그것은 당신이 그것을 위해 arduino를 사용할 수있는 롤의 변화를 게임 화하고 싶었습니다.
색상 기반 광학 센서에도 주목하십시오.이 목적에 사용되는 대부분의 판지 튜브는 갈색이지만 흰색도 사용하고 있습니다.
James May 's Manlab의 시리즈 1 에피소드 2에서 이것을 보았습니다.
jfpoilpret와 유사하게 스프링과 롤과 항상 접촉하는 넓은 재료를 사용하십시오. 롤이 비었을 때 리드가 측면의 롤 홀더 중 하나의 접점에 닿도록 '와이드'라고 말합니다. 터치하면 알람 회로가 완성됩니다.
여기에 내가 의미하는 바를 나타내는 조잡한 이미지가 있습니다.
Arluin의 답변에 따르면이 방법은 롤이 비어 있음을 나타내지 않습니다. 거의 사실입니다. 상단 접점이 TP 판지 롤처럼 두껍고 하단 접점이 판지 롤의 안쪽 부분에있는 경우 실용적으로 충분히 가까워 야합니다. 타코 밤 후에는 TP 롤 1 피트로 충분하지 않습니다.
롤에 남아있는 용지의 양을 감지하려면 방사선 검출기를 사용하십시오. 스풀로드의 중앙에 일정량의 방사성 물질을 놓고 방사선 검출기를 다른 곳에 배치하십시오 (원하는 경우 롤 홀더가 장착 된 표면의 다른쪽에 장착 할 수 있습니다. 방사선 센서는 매우 유연합니다) 롤에 남은 용지의 양을 결정하기 위해 복사량을 측정합니다.
또는 전자 제어식 화장지 디스펜서 (미리 프로그래밍 된 화장지 길이를 분배하기위한 푸시 버튼)를 사용하고 아두 이노가 분배 된 양을 추적하도록 할 수 있습니다.
또는 스풀로드 측면에 로터리 엔코더를 부착하고 (롤 안쪽으로 미끄러지지 않도록하십시오) 롤의 회전 수를 계산하여 사용 된 양을 결정하십시오.
물론 이러한 방법 중 하나를 사용하면 화장지의 정확한 유형 / 브랜드 / 재료 / 등에 따라 테스트를 수행하고 데이터를 수집해야합니다.
특히 두 번째 및 세 번째 아이디어의 경우 시스템의 데이터를 정기적으로 가져 와서 롤의 일반적인 길이를 추적하여 중요한 변화에 맞게 프로그램을 조정할 수 있습니다. 한 종류의 화장지 내에서도 롤 길이에 약간의 차이가 있다고 생각합니다.
더 재미있는 방법으로, 탐지기를 계측하여 시계열 데이터를 수집 할 수 있으므로 나중에 컴퓨터에 업로드하여 "시간이 지남에 따라 변기 사용량"그래프 또는 기타를 만들 수 있습니다.
나는 'Arluin'과 'jmathew'가 올바른 아이디어를 가지고 있다고 생각합니다. 롤 상단에있는 레버를 사용하십시오.
그러나 나는 약간 다르게 할 것입니다. 접점을 닫는 대신 전위차계를 사용할 수 있습니다. 이 시스템을 사용하면 낮게 도착했을 때 알림을받는 대신 남은 양을 측정 할 수 있습니다.
이미 제안 된 것과 같은 접촉으로 접촉이 닫힐 때 용지가 밀착되어 용지 부족이 감지되지 않을 수 있습니다.
(롤을 사용할 때 레버를 아래로 밀려면 다이어그램에 파란색으로 표시된 무게가 필요할 수 있습니다)
냄비를 최대한 휘두르고 남은 양을 최대한 분해하려면 냄비를 가능한 한 롤에 가까이 대고 시도해야합니다.
레버가 용지에 닿는 위치에서 약간의 드래그로 용지 롤을 쉽게 움직일 수 있도록 레버 끝에있는 롤러가 있습니다.
Arduino 용 반사 속도계를 구축하여 아마도 문제를 해결할 것입니다. 기본 회로는 매우 간단합니다.
나는 붉은 빛에 잘 반응하는 광경 화 장치를 가지고 있었고 Radio Shack의 다른 하나는그것은 오래된 TV 원격 LED의 IR 출력에 상당히 민감했습니다. 녹색 와이어는 Arduino의 아날로그 핀 0에 연결되어 있으며 주기적으로 샘플링해야하며 무단 구동 스케치를 설정하지 않아도됩니다. 백서와 그레이 롤 사이에 반사 된 신호 차이를 얻는 요령은 광 트랜지스터의 광 감도가 GND에 대한 저항이 증가함에 따라 증가하지만 암 전압도 증가한다는 것을 알고 있습니다. 탐지기에서 몇 인치 떨어진 어두운 곳과 밝은 곳의 AtoD 값을 확인하여 5 메그 옴 값을 빈칸으로 들었습니다. 회색 대 흰색을 감지 할 때도 동일한 절차를 수행해야합니다. 상당히 다르게 보이는 일부 물체는 IR에서 동일한 반사율을 갖습니다. 완성 된 적색 등 타코미터 사진은 다음과 같습니다.
센서 보드를 종이 디스펜서 뒷면에 맞도록 작게 만드는 것이 간단해야합니다. IR 버전은 더 작지만 오늘날 내장형 원심 분리기에 너무 깊게 묻혀서 사진을 찍을 수 없습니다.
적절하고 저렴한 다른 옵션은 전화 또는 고정 필드 적외선 센서와 같은 근접 센서라고 생각합니다. 이 센서는 매우 정확하며 변기 롤이 놓여있는 벽에 홀더 나 벽에 센서를 장착하여 변기 롤의 뒷면을 쉽게 "볼"수 있습니다. 내가 포스트에서 본 다른 모든 아이디어는 상당히 부정확하거나 화장실 롤에 대해 방해 적이라고 느꼈습니다. 장기적으로는 오염을 유발할 수 있다고 생각합니다. 근접 센서는 상당히 저렴하고 사용하기 쉬울뿐만 아니라 보정이 잘되면 정확도와 신뢰성이 매우 뛰어납니다. 이 모델은 남성 소변기에서 자동 세척을 위해 이미 널리 사용됩니다. 예를 들어 휴대 전화에서 : 휴대 전화는 손이나 얼굴이 화면 가까이에있을 때 2.0 인치 또는 무한대의 거리를 정확하게 제공합니다.
근거리 초음파 거리 센서는 효과적이며 상당히 저렴한 옵션 일 수 있습니다. 칩에 이미 터 + 센서 조합을 장착 할 수 있습니다. 다른 센서는 다른 방식으로 작동 할 수 있습니다 (항상 데이터 시트 확인). 그러나 공통 출력은 감지 된 거리를 나타 내기 위해 펄스 길이를 사용합니다. Arduino에서 pulseIn()
함수를 사용하여 처리 할 수 있습니다.
설치 측면에서 스풀 중앙을 가리키는 화장지 뒤에 직접 장착 할 수 있습니다. 판독 값은 종종 매우 불규칙하므로 여러 측정을 수행하여 평균화하거나 간단한 이동 평균을 사용하려고합니다. 약간의 보정으로 빈 스풀을 나타내는 거리를 결정할 수 있습니다.
상당한 거리 (예 : 1 분 이상) 동안 해당 거리를 반복해서 감지하면 경보 음이 울립니다.
화장지에서 제대로 작동하는 센서를 찾는 데 어려움을 겪을 지 모르지만 반사 기반 센서가 또 다른 가능성 일 수 있습니다 (선호하는 브랜드의 부드러움에 따라 다름)!
생각 나는 아이디어는 다음과 같습니다.
따라서 자석과 리드 접점 사이의 거리가 제한을 벗어나면 스위치가 회로를 닫습니다. 용지 롤을 그리는 동안 거리가 줄어 듭니다.
리드 접점 대신 홀 효과 센서를 사용할 수도 있습니다. 원리는 동일하게 유지되며 기술 및 특성 만 변경됩니다.
여기서 어려움은 리드 접점의 올바른 감도 (또는 자석의 힘)를 찾아서 리드와 자석 사이의 거리가 너무 짧아 너무 빨리 활성화되는 경보를 피할 수있을 때 리드 접점이 닫히도록하는 것입니다. ).
가장 단순하면서도 가장 좋은 솔루션은 하나의 IR LED와 광 트랜지스터로 구성된 광 커플러를 사용하는 것입니다. LED를 롤쪽으로 밝게하고 LED는 롤에 "핸들"에 묶여 있습니다. 카드 보드 롤을 제거하면 광 트랜지스터가 LED에서 IR 광선을 가져오고 Arduino에서 핀 변경 중단을 트리거하여 여러 가지 방법 (조명, SMS, 트위터, 알람 등)을 통해 경고 할 수 있습니다.
이 디자인은 정말 저렴하고 쉽고 빠르다. 아직도해야 할 일이 하나 더 있습니다. 화장지가 더 이상 없으면 실제로 판지 롤을 제거해야합니다. ;-)
그렇지 않으면 예비 롤에 대해 동일한 종류의 솔루션이 더 좋습니다. :-)
여기서 많은 옵션이 지나치게 복잡하고 방해가되는 것처럼 보입니다.
구현하기에 약간 복잡하지만 재미 있지만 설치하기 쉽지 않은 또 다른 옵션은 저렴한 컬러 센서 를 만들어 롤 뒤 벽에 설치하는 것입니다. 롤 색상 (또는 TP 색상 없음)을 감지하면 색상이 낮습니다.
당신은 또한 단지 수 $ 8 하나를 구입 .
TP의 얇음과 남은 용지가 거의 없을 때 조금 더 어둡게 보이기 시작한다는 사실을 활용하여 임계 값을 조정할 수 있습니다.
필요한 경우 욕실 조명이 켜진 상태에서 새 롤을 설치 한 후 버튼을 눌러 보정을 수행 할 수 있습니다.
욕실의 특성에 따라 약간 조정해야합니다. 약간의 복잡성을 추가하고 욕실 전등 스위치에 연결된 AC 콘센트의 전원을 끈 경우, 욕실 전등이 켜져있을 때만 전원을 켜면 신뢰할 수없는 많은 데이터가 필터링됩니다.
설치가 매우 쉽고 롤 자체를 수정하지 않아도됩니다. 양면 테이프로 센서를 벽에 붙이거나 롤이 위를 향한 (또는 위를 향한) 작은 선반에 놓을 수 있습니다.
스풀 바로 위의 디스펜서 한쪽에 작은 IR LED를 장착하십시오. 디스펜서 반대쪽에 IR 포토 센서를 장착하십시오. 센서에 LED가 보이면 롤이 부족합니다. 저렴한 레이저로도 가능합니다 (예 : 선반 레이저 포인터 한쪽면 및 다른 쪽 광 센서; 눈을 다치게하지 마십시오!)
또한 설치가 쉽고 (예 : 디스펜서에 뜨거운 접착제) 롤을 교체 할 때 센서의 위치가 손상되기 쉽더라도 롤을 수정하지 않아도됩니다.
나는 또한 리드 센서 및 레인지 센서 (BTW : $ 10는 훌륭한 단거리 센서 ) 옵션을 정말로 좋아합니다 .
참고 : 제공된 링크는 처음 나타나는 링크입니다. 그들 대부분은 다른 사이트에 비해 비싸다. eBay는 지금이 품목의 대부분을 위해 아주 싸게 살 수 있다고 사십시오. Sparkfun을 포함한 다른 장소도 확인하십시오 .
컬러 센서에 대해 더 자세히 설명하겠습니다.
여기에서 빨강, 녹색 및 파랑의 세 가지 값으로 색상을 읽습니다. 보드에는 3 개의 센서가 있습니다. 하나는 빨강, 다른 파랑 및 다른 녹색을 제외한 모든 것을 걸러냅니다. 보드의 센서는 들어오는 빛의 양을 감지 한 다음 5V ( "100 % 빨강 / 녹색 / 파랑") 또는 0V ( "0 % 빨강 / 녹색 / 파랑") 사이의 전압으로 변환합니다. 그런 다음 Arduino (아날로그 핀의 0-1024)로 숫자로 변환 할 수 있습니다.
조명 문제 : 내가 알 수있는이 센서에는 항상 켜져있는 LED가 있습니다. 조명 화장지 홀더를 원하지 않는 한, 그것을 제거하거나 덮으십시오. 잠깐만 ... 센서는 어두울 때 갈색이라고 생각할 것입니다. 문제 없습니다 ... 여기 생각할 것이 있습니다.
내가 사용하는 것과 같은 색상 선택기를 사용하고 갈색을 선택하십시오 . 이 왼쪽에서 "시뮬레이션 된 밝기"를 제어 할 수 있습니다. 그 외에도 16 진수 형식의 RGB가 있습니다. 이 calcuator를 사용하여이를 표준 값으로 변환하려고합니다 .
갈색에서 파란색은 거의 존재하지 않습니다. 갈색인지 다시 확인하는 방법이 아니라면 해당 색상을 무시해야합니다. 나는 거의 모든 갈색 음영에 대해 항상 40 % 미만이어야한다고 말하고 싶습니다.
내가 갈색의 샘플 그늘로 말할 수있는 것에서, 빨강은 거의 녹색의 2 배입니다. 이 비율은 다를 수 있지만 어느 정도 존재 하는지 확인해야합니다 . 흰색 / 회색 / 검정의 경우 모든 색상은 1 : 1 : 1입니다. 이것을 사용하여 어둡거나 갈색인지 감지 할 수 있습니다.
int rPin = A0; //Red Pin
int gPin = A1; //Green Pin
int bPin = A2; //Blue Pin
int ledPin = 13; //I made this code with a LED, not a speaker
boolean testTwice = false;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
int rValue = analogRead(rPin);
int gValue = analogRead(gPin);
int bValue = analogRead(bPin);
if (bPin < 256) { //If this is false, either something is in the way or it's white. Going to verify that something's not in the way...
int minRed = rPin * 0.4; //A little under a half for padding... this values may need to be adjusted. Adjust this one and the one below farther apart for less sensitive.
int maxRed = rPin * 0.6; //A little over a half for padding... this values may need to be adjusted.
if (gPin < maxRed && gPin > minRed) { //Verifys that red between minRed and maxRed
digitalWrite(ledPin, HIGH);
delay(5000);
digitalWrite(ledPin, LOW);
}
}
delay(5000); // No need to waste power... you might want to add an actutal sleep function if on battery power
}
먼저 파란색이 25 % 미만인지 확인합니다. 그런 다음 빨강과 초록이 같은지 확인합니다. 20 %를 주거나받습니다. (예 : 빨간색 = 100 녹색 = 80, 빨간색 = 110 녹색 = 90 등). 그것이 사실이라면, 그것이 갈색이라는 것을 거의 알 수 있습니다. 그런 다음 LED가 5 초 동안 켜집니다.
원하는 경우 LED를 버저로 수정할 수 있습니다. 파란색이 많은 조명에서 작동하지 않거나 어두운 조명에서 작동하는 경우 파란색이 256/1024 (1024 = 아날로그 핀의 해상도) 미만인지 확인하여 if 문을 조정해야 할 수도 있습니다. 코드는 나중에 빨강이 녹색의 약 2 배인지 확인하기 때문에 흰색 음영은 해당 if 문을 통과하지 않아야합니다. 당신은 또한을 조정해야 minRed
하고 maxRed
(하지 갈색 감지 경우) 또는 가까운 (가 흰색 때 갈색 감지 경우) 멀리 할 수 있습니다. 컬러 센서가 없으면이 코드를 실제로 테스트 할 수 없습니다.
참고 : 이것들은 약간 까다로울 수 있습니다. 나는 대신 화장지가 부족하여 한밤중에 집 전체가 깨어나지 않도록 LED를 추천합니다 . 또한 센서를 전혀 막지 않으면 ... 화장실에 있지 않은 경우 카메라를 권장하고 @jfpolipret의 답변과 같은 리드 스위치로 매우 낮아질 때마다 촬영해야합니다 ... ... (말장난 의도 없음) :)
멋진 프로젝트처럼 들리면 여기 2ct가 있습니다.
롤의 사진을 옆으로 가져 가도록 카메라를 가리 킵니다. 용지가 얼마나 남았는지 알 수있는 유일한 방법 일 것입니다. (편집 : csi 카메라와 함께 라즈베리 파이를 사용하고 매수에 해당하는 출력 신호를 생성하고 그 신호를 arduino에 공급할 수 있습니까?!)
추정치의 경우 롤의 회전을 계산하기에 충분할 수 있지만 롤이 미끄러지지 않도록 롤을 더 잘 고정시켜야합니다. 또는 자전거에서와 같이 자석을 사용할 수 있지만 롤에 직접 부착해야합니다.
(편집 : 한 가지 더 아이디어, 뚜껑의 각도를 측정하여 롤의 두께를 측정하십시오)
가장 좋은 방법은 롤 측면에 로터리 엔코더를 부착하고 롤의 회전 수를 계산하여 사용 된 양을 결정하는 것입니다. 롤당 회전 수를 알고 나면 알림을 실행할 위치를 설정할 수 있습니다. 종류의 로깅 시스템에 부착하면 화장실 사용뿐만 아니라 종이 사용의 과거 데이터가 있습니다.
또 다른 방법은 롤 안에 금속 막대를 넣고 외부에 금속판을 넣고 캐패시턴스로 인해 남은 TP에 따라 변하는 커패시턴스를 측정하는 것입니다. 종이의 유전 상수.
그러나 그것은 "아름다운 길"을 확실히 취할 것입니다. 그럼에도 불구하고 Arduino는 커패시턴스를 매우 쉽게 측정 할 수 있으며 충분히 민감 할 수 있으며 롤 뒤에 금속판이 있고 롤에 금속 막대가 있기 때문에 방해가되지 않습니다. 기존 홀더를 눈치 채지 않고 개조 할 수도 있습니다.
더 쉬운 방법은 롤 상단에 고정 된 전위차계 샤프트에 스틱을 부착하는 것입니다. TP가 적 으면 샤프트가 낮아지고 포트가 회전합니다. 화장지를 당기는 기능을 방해하지 않으면 서 너무 세게 누를 수 없기 때문에 레버리지에 긴 샤프트가 필요할 수 있습니다.
AJMansfield가 제안한 것처럼, 방사능은 실제로 산업 환경에서 사물의 두께를 측정하는 데 사용됩니다. 당신이 정말로 미쳐 가고 싶었다면 아마도 당신은 배경 레벨보다 약간 높고 매우 긴 시간에 걸쳐 평균 인 이상한 맛의 소금 대체품과 같은 매우 낮은 에너지의 방사성 물질을 사용할 수 있습니다 (화장지 시간은 크게 변하지 않아야합니다) 시간)), 그래서 이것은 실제로 값 비싼 방법으로 일을하는 것이 합리적 일 수 있습니다.
적외선 빔 차단 센서도 좋습니다. 올바른 위치에 배치하면 롤이 사용자에게 신호를주고받는 대신 신호를 더 많이 차단할 수 있습니다.
편집 : 정전 용량 방식의 개념 증명 작업. arduino와 2 개의 뻣뻣한 전선 만 필요합니다. 노이즈가 많은 약 8 인치 정도의 정확도. 최소한 1 인치 이상의 정확도를 확실하게 얻을 수 있습니다. 측정 시간은 약 1 분입니다. 주변 환경에 매우 민감합니다. 발 안에 금속이 있거나 발판을 사용하는 곳에 머물러 있어야합니다.
float difference;
unsigned long i;
unsigned long j;
unsigned int temp;
volatile unsigned char blah;
void setup()
{
pinMode(5,OUTPUT);
Serial.begin(9600);
}
void loop()
{
difference =0;
Serial.print("Measuring: ");
for(i=0;i<100;i++)
{
for(j=0;j<5000;j++)
{
digitalWrite(5,LOW);
temp=analogRead(A0);
digitalWrite(5,HIGH);
temp = analogRead(A0)-temp;
if(temp<1024)
{
difference += temp;
}
}
//Random delay every 5000 samples helps avoid problems with interference by staggering the samples to cancel aliasing.
delay(random(1,50));
Serial.print("|");
}
Serial.print("\n");
Serial.print("Value: ");
Serial.print(difference/500000);
Serial.print("\nMeasurement Complete. Press Enter to begin another test.\n");
while(!Serial.available())
{
blah = 20;
}
Serial.read();
}