화장지가 부족할 때 알람을 발생시키는 방법은 무엇입니까?


47

아이들과 함께하는 사람은 화장지에 도움이되지 않는다는 것을 알고 있습니다. 누구나 낮거나 부족한 시간을 추적하고 경보 음을 울리는 방법을 알고 있습니까? 어떤 센서를 사용해야 도움이 될지 모르겠습니다.

스풀에 무게, 반사 (종이의 색) 또는 레이저 트립 와이어 등이 있습니다. 나는 그것을 구축하는 데 신경 쓰지 않고 단지 어떤 센서를 알지 못합니다. 누구나 사용할 것을 알고 있습니까?


5
아마도 변기의 센서를 리깅하는 것에 대해 생각해야하므로 종이가 없을 때 누군가가 앉으면 알람이 울립니다. :)
Peter Bloomfield

어쩌면 롤의 방사형 저항을 측정하려고 시도 할 수 있습니다.
jfpoilpret

저항을 잊어 버려 : 그냥 측정하려고했지만 내 멀티 미터 (20M Ohm)의 최대 구경 이상입니다.
jfpoilpret

1
다음은 meta.arduino에서 더 잘 논의 될 수 있지만이 질문은 일반적으로 arduino SE가 있다는 점을 속이는 것이라고 생각합니다. 모든 프로젝트에서 도구에 대한 솔루션을 설계하지는 않지만 솔루션에 가장 적합한 도구를 선택해야하므로 arduino에 직접 구속되지 않습니다 (RPi를 사용하는 것이 더 좋거나 CC2540 인 경우 어떻게됩니까?). 실제로 기계 + 전자 + 소프트웨어 엔지니어링 솔루션입니다. 그런 종류의 질문을 할 수있는 최고의 SE 장소는 없습니다.
zmo

@zmo 그런 다음 OP가 Arduino를 통해 알람을 구동해야 할 필요성을 추가하기 위해 질문을 편집하도록 제안합니다. 그것은 Arduino.SE에 더 좋을 것입니다
jfpoilpret

답변:


47

한 번에 여러 개의 롤을 가져 와서 사용하기 위해 매달아 놓으십시오. 다른 두 개는 시터의 손이 닿지 않는 짧은 수직 기둥에 놓으십시오. 시터는 필요할 때 다른 롤을 취할 수 있습니다.

극의 바닥에있는 선반의 무게 부족을 기계적으로 감지합니다. 마지막 롤이 제거되면 알람이 트리거됩니다. 아무도 붙잡 힐 필요가 없습니다.

무게를 감지하려면 FSR 400 과 같은 힘 감지 저항을 사용 하십시오 ( 데이터 시트 참조 ). 또는 경량 코일 스프링을 사용하여 두 롤을 모두 제거 할 때 해제되는 마이크로 스위치를 사용하여 화장지를 놓을 수 있습니다. 다른 옵션은 마지막 롤이 제거 될 때 회로가 완료되는 IR 빔 브레이크 감지기입니다.


@AnnonomusPerson 그는 개별 시트 나 빈 롤이 아닌 여러 롤 화장지 의 무게를 측정하는 것에 대해 이야기하고 있습니다.
AJMansfield

1
롤에 남은 용지의 양을 측정하는 대신 롤 수를 측정하여 더 많은 롤을 가져와야 할 때 알려줍니다.
AJMansfield

체중 부족을 감지하기 위해 어떤 센서를 사용 하시겠습니까?
jfpoilpret

3
패브릭 압력 센서는 하나의 옵션이거나 롤이있는 경우 덮는베이스의 광 센서입니다.
Rob Hoare

작업을 수행 할 수있는 특정 센서의 예를 제공 할 수 있습니까?
asheeshr

22

jfpoilpret와 jmathew가 제시 한 리드 센서 개념이 가장 쉬운 방법이라고 생각합니다. 어떻게 보일지에 대한 다이어그램을 그렸습니다.

하단 접점의 높이를 조정하여 감도를 조정할 수 있습니다.

이것은 실제로 당신을 "낮은"상태로 만들며 반드시 나올 필요는 없습니다. 아직 몇 장의 용지가 남아있는 상태에서 롤을 교체하지 않는 한 이것은 만족스러운 해결책으로 보이지 않습니다. 차라리 "출력"표시기가 있고 사용자에게 롤 교체 메시지를 표시하는 부저 소리가 있습니다.

이 설계는 독립형 전자 장치를 사용하여 수행 할 수 있습니다 (arduino 필요 없음). 그러나 그것은 당신이 그것을 위해 arduino를 사용할 수있는 롤의 변화를 게임 화하고 싶었습니다.

색상 기반 광학 센서에도 주목하십시오.이 목적에 사용되는 대부분의 판지 튜브는 갈색이지만 흰색도 사용하고 있습니다.

리드 센서 다이어그램


6
좋은 다이어그램. 그것들을 만들기 위해 무엇을 사용 했습니까?
jmathew

1
중요한 의견 : 이 상황에서 리드 접점이 필요하지 않지만 간단한 스위치로 사용되는 두 조각의 금속 만 있습니다. 리드 접점은 스위치를 열거 나 닫는 자기력을 기반으로합니다. 그것은 두 부분 사이에 실제 접촉이없는 내 대답에 필요했습니다. 그러나 여기서는 리드를 사용하는 것이 쓸모없는 것 같습니다.
jfpoilpret

@jfpoilpret 용어가 특정 종류의 스위치라는 것을 몰랐습니다. 나는 뻣뻣한 구부릴 수있는 재료의보다 일반적인 개념을 생각하고있었습니다. 설명 주셔서 감사합니다!
jmathew

@jmathew 문제 없습니다, 결국, 우리는 모두 지식을 공유하기 위해 여기 있습니다!
jfpoilpret

2
MS Visio 2007을 사용했습니다.
Arluin

14

James May 's Manlab의 시리즈 1 에피소드 2에서 이것을 보았습니다.

jfpoilpret와 유사하게 스프링과 롤과 항상 접촉하는 넓은 재료를 사용하십시오. 롤이 비었을 때 리드가 측면의 롤 홀더 중 하나의 접점에 닿도록 '와이드'라고 말합니다. 터치하면 알람 회로가 완성됩니다.

여기에 내가 의미하는 바를 나타내는 조잡한 이미지가 있습니다.

Arluin의 답변에 따르면이 방법은 롤이 비어 있음을 나타내지 않습니다. 거의 사실입니다. 상단 접점이 TP 판지 롤처럼 두껍고 하단 접점이 판지 롤의 안쪽 부분에있는 경우 실용적으로 충분히 가까워 야합니다. 타코 밤 후에는 TP 롤 1 피트로 충분하지 않습니다.

내 상상의 이미지를 보라


9

롤에 남아있는 용지의 양을 감지하려면 방사선 검출기를 사용하십시오. 스풀로드의 중앙에 일정량의 방사성 물질을 놓고 방사선 검출기를 다른 곳에 배치하십시오 (원하는 경우 롤 홀더가 장착 된 표면의 다른쪽에 장착 할 수 있습니다. 방사선 센서는 매우 유연합니다) 롤에 남은 용지의 양을 결정하기 위해 복사량을 측정합니다.

또는 전자 제어식 화장지 디스펜서 (미리 프로그래밍 된 화장지 길이를 분배하기위한 푸시 버튼)를 사용하고 아두 이노가 분배 된 양을 추적하도록 할 수 있습니다.

또는 스풀로드 측면에 로터리 엔코더를 부착하고 (롤 안쪽으로 미끄러지지 않도록하십시오) 롤의 회전 수를 계산하여 사용 된 양을 결정하십시오.

물론 이러한 방법 중 하나를 사용하면 화장지의 정확한 유형 / 브랜드 / 재료 / 등에 따라 테스트를 수행하고 데이터를 수집해야합니다.

특히 두 번째 및 세 번째 아이디어의 경우 시스템의 데이터를 정기적으로 가져 와서 롤의 일반적인 길이를 추적하여 중요한 변화에 맞게 프로그램을 조정할 수 있습니다. 한 종류의 화장지 내에서도 롤 길이에 약간의 차이가 있다고 생각합니다.

더 재미있는 방법으로, 탐지기를 계측하여 시계열 데이터를 수집 할 수 있으므로 나중에 컴퓨터에 업로드하여 "시간이 지남에 따라 변기 사용량"그래프 또는 기타를 만들 수 있습니다.


2
나는 로터리 엔코더를 사용하는 열렬한 팬입니다. TP 홀더에 롤을 통해로드에 엔코더가 부착되어 엔코더를 움직이지 않도록 설계 할 수도 있습니다. 또한 버튼을 사용하여 카운트를 재설정 할 수 있습니다.
Steven10172

1
그러나 일반적인 문제는 시트의 수와 두께에 따라 최대 회전 수를 결정하는 것입니다.
jfpoilpret

나는 이것을 '방사선 장치에 화장실 롤에 붙이기'에서 그것이 앉는 중간 롤러에 붙이는 것으로 바꿀 것입니다. 동일한 효과이지만 모든 롤에 대해 센서를 다시 부착해야하는 유지 보수가 줄어 듭니다
Robotnik

1
새 롤의 모든 TP를 측정 롤의 스풀로 옮기고 인코더로 회전 수를 계산하여 회전 수를 결정할 수 있습니다 (수직 다웰과 같은 간단한 DYI를 사용하고 다른 하나를 감싸는 것만으로) . 그런 다음 비어 있으면 반복하십시오. 이미 인코더를 연결 한 것과 동일한 스풀을 계속 재사용하고 새 TP를 그 위에 계속 감쌀 수 있기 때문에 모든 것을 쉽게 사용할 수 있습니다.
Jason C

1
@AJMansfield 수신 롤 측면의 골판지에서 잘라낸 원 (및 일부 관리)이 만족스러운 결과를 낳을 지 궁금합니다. 롤이 이송을 위해 맞춤 핀 막대에있는 경우 디스크 중앙에 구멍을 뚫어 밀어 넣을 수 있습니다. 더해서, 항상 같은 브랜드의 TP를 구매한다면, 한 번만하면됩니다. (그리고 발견 한 다른 브랜드 / 유형에 대한 스핀 수를 편리하게 유지할 수 있습니다. 세계 최초의 오픈 소스 TP 스핀 카운트 데이터베이스의 자랑스러운 관리자).
Jason C

7

나는 'Arluin'과 'jmathew'가 올바른 아이디어를 가지고 있다고 생각합니다. 롤 상단에있는 레버를 사용하십시오.

그러나 나는 약간 다르게 할 것입니다. 접점을 닫는 대신 전위차계를 사용할 수 있습니다. 이 시스템을 사용하면 낮게 도착했을 때 알림을받는 대신 남은 양을 측정 할 수 있습니다.

이미 제안 된 것과 같은 접촉으로 접촉이 닫힐 때 용지가 밀착되어 용지 부족이 감지되지 않을 수 있습니다.

(롤을 사용할 때 레버를 아래로 밀려면 다이어그램에 파란색으로 표시된 무게가 필요할 수 있습니다)

냄비를 최대한 휘두르고 남은 양을 최대한 분해하려면 냄비를 가능한 한 롤에 가까이 대고 시도해야합니다.

레버가 용지에 닿는 위치에서 약간의 드래그로 용지 롤을 쉽게 움직일 수 있도록 레버 끝에있는 롤러가 있습니다.

제안 된 설정


4

생일 카드를 사용하는 사람 중 한 명을 열면 스위치를 홀더 암에 맞출 수 있습니다. 화장실에서 '생일 축하합니다'라는 소리가 들리면 곤경에 처해 있다는 것을 알게됩니다! ...

생일 축하 해요


질문을 편집하여 해당 항목을 Arduino 보드에 연결하는 방법을 알려주시겠습니까? 감사!
익명 펭귄

3

Arduino 용 반사 속도계를 구축하여 아마도 문제를 해결할 것입니다. 기본 회로는 매우 간단합니다.

타코미터 회로

나는 붉은 빛에 잘 반응하는 광경 화 장치를 가지고 있었고 Radio Shack의 다른 하나는그것은 오래된 TV 원격 LED의 IR 출력에 상당히 민감했습니다. 녹색 와이어는 Arduino의 아날로그 핀 0에 연결되어 있으며 주기적으로 샘플링해야하며 무단 구동 스케치를 설정하지 않아도됩니다. 백서와 그레이 롤 사이에 반사 된 신호 차이를 얻는 요령은 광 트랜지스터의 광 감도가 GND에 대한 저항이 증가함에 따라 증가하지만 암 전압도 증가한다는 것을 알고 있습니다. 탐지기에서 몇 인치 떨어진 어두운 곳과 밝은 곳의 AtoD 값을 확인하여 5 메그 옴 값을 빈칸으로 들었습니다. 회색 대 흰색을 감지 할 때도 동일한 절차를 수행해야합니다. 상당히 다르게 보이는 일부 물체는 IR에서 동일한 반사율을 갖습니다. 완성 된 적색 등 타코미터 사진은 다음과 같습니다. 여기에 이미지 설명을 입력하십시오

센서 보드를 종이 디스펜서 뒷면에 맞도록 작게 만드는 것이 간단해야합니다. IR 버전은 더 작지만 오늘날 내장형 원심 분리기에 너무 깊게 묻혀서 사진을 찍을 수 없습니다.


3

적절하고 저렴한 다른 옵션은 전화 또는 고정 필드 적외선 센서와 같은 근접 센서라고 생각합니다. 이 센서는 매우 정확하며 변기 롤이 놓여있는 벽에 홀더 나 벽에 센서를 장착하여 변기 롤의 뒷면을 쉽게 "볼"수 있습니다. 내가 포스트에서 본 다른 모든 아이디어는 상당히 부정확하거나 화장실 롤에 대해 방해 적이라고 느꼈습니다. 장기적으로는 오염을 유발할 수 있다고 생각합니다. 근접 센서는 상당히 저렴하고 사용하기 쉬울뿐만 아니라 보정이 잘되면 정확도와 신뢰성이 매우 뛰어납니다. 이 모델은 남성 소변기에서 자동 세척을 위해 이미 널리 사용됩니다. 예를 들어 휴대 전화에서 : 휴대 전화는 손이나 얼굴이 화면 가까이에있을 때 2.0 인치 또는 무한대의 거리를 정확하게 제공합니다.


10 달러에이 adafruit.com/products/466 1cm-15cm 범위 (TP 롤에 적합)를 얻을 수 있으며 마이크로 컨트롤러와 쉽게 통합되도록 설계되었습니다.
Jason C

@Jason C : 첫 번째 시도는 VCNL4000을 사용했지만 다른 보고서와 마찬가지로 판독하는 동안 중지 / 정지 / 동결이 발생했습니다. mA를 낮추더라도 아무도이 문제를 해결하는 것을 보지 못했습니다.
Jose Leon

@Aditya HC-SR04 근접 센서를 사용해도 도움이되지 않았습니다. TP의 전체 롤과 빈 TP의 차이는 없었습니다. 내가 생각할 수있는 가장 좋은 것은 '에코'가 조직을 똑바로 통과하고 TP를 들고있는 금속 막대에서 멈추는 것입니다. 따라서 적어도 해당 센서의 경우 작동하지 않았습니다.
Jose Leon

@JoseLeon 알겠습니다. 정말 이상합니다. 나는 당신의 추론에 동의합니다. 어쩌면 작동 할 수있는 다른 센서가있을 수 있지만 적외선이 화장지를 통해 가야한다는 이유는 유효하다고 생각합니다.
Aditya Somani

2

근거리 초음파 거리 센서는 효과적이며 상당히 저렴한 옵션 일 수 있습니다. 칩에 이미 터 + 센서 조합을 장착 할 수 있습니다. 다른 센서는 다른 방식으로 작동 할 수 있습니다 (항상 데이터 시트 확인). 그러나 공통 출력은 감지 된 거리를 나타 내기 위해 펄스 길이를 사용합니다. Arduino에서 pulseIn()함수를 사용하여 처리 할 수 있습니다.

설치 측면에서 스풀 중앙을 가리키는 화장지 뒤에 직접 장착 할 수 있습니다. 판독 값은 종종 매우 불규칙하므로 여러 측정을 수행하여 평균화하거나 간단한 이동 평균을 사용하려고합니다. 약간의 보정으로 빈 스풀을 나타내는 거리를 결정할 수 있습니다.

상당한 거리 (예 : 1 분 이상) 동안 해당 거리를 반복해서 감지하면 경보 음이 울립니다.

화장지에서 제대로 작동하는 센서를 찾는 데 어려움을 겪을 지 모르지만 반사 기반 센서가 또 다른 가능성 일 수 있습니다 (선호하는 브랜드의 부드러움에 따라 다름)!


초음파 센서로 충분한 정확도를 얻을 수 있을지 모르겠습니다. IIRC는 대부분 약 3-4mm 정확도를 가지고 있습니다. 일반적으로 충분하지만 화장지 롤의 직경을 고려하면 너무 정확하지 않을 수 있습니다.
jfpoilpret

그렇습니다. 그것은 종종 개인 독서에 해당됩니다. 그러나 변동은 상당히 균일하므로 여러 연속 판독 값을 평균화하여 이에 대응할 수 있습니다. 잠재적으로 ~ 1mm의 정밀도를 제공 할 수 있습니다.
Peter Bloomfield

약간의 용지가 남은 상태에서 센서에서 회전하면서 화장지가 1mm 흔들리면 어떻게됩니까?
익명 펭귄

1
@AnnonomusPerson 당신은 움직임이있을 때 항상 가짜 독서를 얻을 수 있습니다. 그렇기 때문에 판독 값이 일정 시간 동안 일정하게 유지 될 때까지 기다리십시오.
피터 블룸필드

@Peter R : HC-SR04 근접 센서를 사용하면 도움이되지 않습니다. TP의 전체 롤과 빈 TP의 차이는 없었습니다. 내가 생각할 수있는 가장 좋은 것은 '에코'가 조직을 똑바로 통과하고 TP를 들고있는 금속 막대에서 멈추는 것입니다. 따라서 적어도 해당 센서의 경우 작동하지 않았습니다.
Jose Leon

2

생각 나는 아이디어는 다음과 같습니다.

  • 작은 자석을 종이 롤 내부, 즉 골판지 부분에 붙입니다 (변경할 때마다 수행해야 함).
  • 스프링이 장착 된 스틱 끝에는 리드 롤 (전자기 스위치)을 사용하여 용지 롤과 항상 접촉하십시오.
  • 리드 접점의 한 핀을 입력 논리 핀에 직접 연결할 수 있습니다 (풀업 저항 입력으로 설정)
  • 리드 접점의 다른 핀은 접지에 연결되어야합니다.

따라서 자석과 리드 접점 사이의 거리가 제한을 벗어나면 스위치가 회로를 닫습니다. 용지 롤을 그리는 동안 거리가 줄어 듭니다.

리드 접점 대신 홀 효과 센서를 사용할 수도 있습니다. 원리는 동일하게 유지되며 기술 및 특성 만 변경됩니다.

여기서 어려움은 리드 접점의 올바른 감도 (또는 자석의 힘)를 찾아서 리드와 자석 사이의 거리가 너무 짧아 너무 빨리 활성화되는 경보를 피할 수있을 때 리드 접점이 닫히도록하는 것입니다. ).


초음파 센서와 같은 이유로 작동하지 않습니다. 그것은 여전히 적어도 10 피트 이상 남아있을 것입니다. 컬러 센서가 더 좋습니다.
Anonymous Penguin

초음파 센서와의 관계가 보이지 않습니다. 왜 작동하지 않는지 더 발전시킬 수 있습니까? 다른 종류의 자석은 물론, 많은 양의 리드 접점 및 홀 효과 센서가 있습니다.
jfpoilpret

TP 레이어는 너무 얇아서 약간 왼쪽으로 활성화 될 수 있습니다. 이론적으로 조정할 수는 있지만 현미경을 꺼내거나 화장지 롤을 바꾸는 것은 실제로 비효율적입니다.
Anonymous Penguin

OP 질문이 "... 화장지 부족 " 이기 때문에 약간의 왼쪽으로 활성화하는 것은 그리 나쁘지 않습니다 . 낮음이 반드시 비어 있음을 의미하지는 않습니다.
jfpoilpret

2

가장 단순하면서도 가장 좋은 솔루션은 하나의 IR LED와 광 트랜지스터로 구성된 광 커플러를 사용하는 것입니다. LED를 롤쪽으로 밝게하고 LED는 롤에 "핸들"에 묶여 있습니다. 카드 보드 롤을 제거하면 광 트랜지스터가 LED에서 IR 광선을 가져오고 Arduino에서 핀 변경 중단을 트리거하여 여러 가지 방법 (조명, SMS, 트위터, 알람 등)을 통해 경고 할 수 있습니다.

이 디자인은 정말 저렴하고 쉽고 빠르다. 아직도해야 할 일이 하나 더 있습니다. 화장지가 더 이상 없으면 실제로 판지 롤을 제거해야합니다. ;-)

그렇지 않으면 예비 롤에 대해 동일한 종류의 솔루션이 더 좋습니다. :-)


이미 터와 수신기를 모두 포함하는 광 커플러 단일 칩이 아닌가? 여기를 참조하십시오 : en.wikipedia.org/wiki/
광 절연체

[…]는 빛을 사용하여 두 개의 고립 된 회로간에 전기 신호를 전송하는 구성 요소입니다. […] 기본적으로 그것이 우리가하는 일입니다. IR LED (하나의 회로)와 포토 트랜지스터 사이입니다. 맞아도 MOC3020과 같은 단일 구성 요소는 아닙니다.
zmo

2

여기서 많은 옵션이 지나치게 복잡하고 방해가되는 것처럼 보입니다.

컬러 센서

구현하기에 약간 복잡하지만 재미 있지만 설치하기 쉽지 않은 또 다른 옵션은 저렴한 컬러 센서 를 만들어 롤 뒤 벽에 설치하는 것입니다. 롤 색상 (또는 TP 색상 없음)을 감지하면 색상이 낮습니다.

당신은 또한 단지 수 $ 8 하나를 구입 .

TP의 얇음과 남은 용지가 거의 없을 때 조금 더 어둡게 보이기 시작한다는 사실을 활용하여 임계 값을 조정할 수 있습니다.

필요한 경우 욕실 조명이 켜진 상태에서 새 롤을 설치 한 후 버튼을 눌러 보정을 수행 할 수 있습니다.

욕실의 특성에 따라 약간 조정해야합니다. 약간의 복잡성을 추가하고 욕실 전등 스위치에 연결된 AC 콘센트의 전원을 끈 경우, 욕실 전등이 켜져있을 때만 전원을 켜면 신뢰할 수없는 많은 데이터가 필터링됩니다.

설치가 매우 쉽고 롤 자체를 수정하지 않아도됩니다. 양면 테이프로 센서를 벽에 붙이거나 롤이 위를 향한 (또는 위를 향한) 작은 선반에 놓을 수 있습니다.

IR 빔 브레이크

스풀 바로 위의 디스펜서 한쪽에 작은 IR LED를 장착하십시오. 디스펜서 반대쪽에 IR 포토 센서를 장착하십시오. 센서에 LED가 보이면 롤이 부족합니다. 저렴한 레이저로도 가능합니다 (예 : 선반 레이저 포인터 한쪽면 및 다른 쪽 광 센서; 눈을 다치게하지 마십시오!)

또한 설치가 쉽고 (예 : 디스펜서에 뜨거운 접착제) 롤을 교체 할 때 센서의 위치가 손상되기 쉽더라도 롤을 수정하지 않아도됩니다.


나는 또한 리드 센서 및 레인지 센서 (BTW : $ 10는 훌륭한 단거리 센서 ) 옵션을 정말로 좋아합니다 .


1
IR 빔은 나의 첫 생각이었습니다. 간단하지 않고 쉽게 구현할 수 있으며 다른 솔루션보다 신뢰성이 뛰어나지 만 재미는 적습니다.)
Kevin

동의합니다. 적어도 소프트웨어 측면에서는 컬러 센서가 재미있을 것 같습니다. 데이터를 수집하고 자연 조명의 변화 나 다른 잘못된 트리거에 영향을받지 않는 알고리즘을 시도하고 생각해내는 것은 어려운 과제입니다.
Jason C

1

몇 가지 옵션이 있습니다.

참고 : 제공된 링크는 처음 나타나는 링크입니다. 그들 대부분은 다른 사이트에 비해 비싸다. eBay는 지금이 품목의 대부분을 위해 아주 싸게 살 수 있다고 사십시오. Sparkfun을 포함한 다른 장소도 확인하십시오 .

  • 초음파 핑 센서 . 이것은 이상적인 방법은 아니지만 사용하기 쉽습니다. 인클로저가있는 것을 추가하십시오. 정확히 비었을 때 알 수있을 정도로 정확하지 않기 때문에 이상적이지 않습니다. 약간 오버 / 언더 민감 할 수 있습니다. 무게가 전혀 바뀌면 무게가 더 어려워집니다.
  • 컬러 센서 (바람직하지만 더 비싸다) . 당신은 이것을 언급했고 이것은 아마도 최고의 아이디어 일 것입니다. 빨강, 녹색 및 파랑에 대한 아날로그 값 (Arduino로 읽을 수 있음)을 제공합니다. [그 색의 함량이 높을수록 전압이 높아진다고 가정 할 때] 흰색은 100 %에있는 모든 것이어야하고 갈색은 대부분 30-40 %가 될 것입니다. (나중에 이해하지 못하면이 부분을 건너 뛰십시오.)

컬러 센서에 대해 더 자세히 설명하겠습니다.

여기에서 빨강, 녹색 및 파랑의 세 가지 값으로 색상을 읽습니다. 보드에는 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의 답변과 같은 리드 스위치로 매우 낮아질 때마다 촬영해야합니다 ... ... (말장난 의도 없음) :)


화장지의 색상을 변경하는 경우 색상 센서가 동일하게 작동해야합니까 (예 : 스케치를 조정할 필요가 없습니까?)
jfpoilpret

@jfpoilpret 당신이 화장지를 재사용하는지 모르겠지만 ... :) 메커니즘이있는 코드를 추가하고 있으므로 "유사"하지만 정확하지는 않습니다.
익명 펭귄

화장지가 초음파 센서에서 나오는 초음파 파열을 흡수 할 정도로 부드럽습니다.
TheDoctor

@TheDoctor 내가 지적한 것처럼 실제로 좋은 생각은 아닙니다. 부정확 한 방법입니다.
익명 펭귄

1
@jfpoilpret 새 롤을 설치 한 후 "보정"버튼을 추가하고 욕실 표시등이 켜진 상태에서이 버튼을 누르면 올바른 색상을 측정 할 수 있습니다.
Jason C

1

멋진 프로젝트처럼 들리면 여기 2ct가 있습니다.

롤의 사진을 옆으로 가져 가도록 카메라를 가리 킵니다. 용지가 얼마나 남았는지 알 수있는 유일한 방법 일 것입니다. (편집 : csi 카메라와 함께 라즈베리 파이를 사용하고 매수에 해당하는 출력 신호를 생성하고 그 신호를 arduino에 공급할 수 있습니까?!)

추정치의 경우 롤의 회전을 계산하기에 충분할 수 있지만 롤이 미끄러지지 않도록 롤을 더 잘 고정시켜야합니다. 또는 자전거에서와 같이 자석을 사용할 수 있지만 롤에 직접 부착해야합니다.

(편집 : 한 가지 더 아이디어, 뚜껑의 각도를 측정하여 롤의 두께를 측정하십시오)


Arduino Stack Exchange에 오신 것을 환영합니다! Arduino에 어떻게 연결하는지 말씀해 주시겠습니까? 감사! 또한 카메라를 욕실에 넣는 것이 얼마나 좋은지 잘 모르겠습니다. :)
Anonymous Penguin

마지막으로 편집 한 아이디어가 마음에 듭니다. 뚜껑의 스위치를 사용하여 뚜껑을 특정 각도에 도달했을 때 회로를 닫으면 더 간단해질 수 있습니다. 각도 자체를 측정하는 것보다 쉽습니다.
jfpoilpret

1

가장 좋은 방법은 롤 측면에 로터리 엔코더를 부착하고 롤의 회전 수를 계산하여 사용 된 양을 결정하는 것입니다. 롤당 회전 수를 알고 나면 알림을 실행할 위치를 설정할 수 있습니다. 종류의 로깅 시스템에 부착하면 화장실 사용뿐만 아니라 종이 사용의 과거 데이터가 있습니다.


동의한다. 사람들은 이것을 지나치게 복잡하게 만드는 것 같습니다. 또한 리필 할 때 TP를 새 롤에서 센서 롤로 옮김으로써 인코더에 부착 된 인코더와 동일한 롤을 계속 재사용 할 수 있습니다 (예 : 저렴한 두 개의 다웰로드에 롤을 놓고 감아 서 처리). 또한 해당 롤에 대한 회전 수를 다시 계산할 수 있습니다.
Jason C

1

무게 센서를 가져 와서 롤 무게에 맞게 프로그래밍하십시오. 특정 무게 이하로 떨어지면 LED가 깜박이거나 신호음이 울립니다.


0

또 다른 방법은 롤 안에 금속 막대를 넣고 외부에 금속판을 넣고 캐패시턴스로 인해 남은 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();


}

http://pastebin.com/2W5y81AB


외부 링크 대신 답변에 코드를 포함시키는 것이 좋습니다. 나중에 링크가 끊어지면 답은 여전히 ​​관련이 있습니다.
sachleen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.