Como acionar um alarme quando o papel higiênico está baixo?


47

Qualquer pessoa com filhos sabe que nunca ajuda com o papel higiênico. Alguém sabe como rastrear quando está baixo ou desligado e soa um alarme sonoro? Só não sei qual sensor usar que pode ajudar.

Alguns que vieram à mente são: por peso, por reflexão (a cor do papel) ou algum fio de laser - tudo bem no carretel. Não me importo de construir, é só que não sei qual sensor. Alguém sabe qual usar?


5
Talvez você também deva pensar em colocar um sensor no assento do vaso sanitário, para soar o alarme se alguém se sentar quando não houver papel. :)
Peter Bloomfield

Talvez alguém possa tentar medir a resistência radial de um rolo (espero que não seja muito alto) e depois diminuirá quando não houver mais papel.
precisa saber é o seguinte

Esqueça resistência: apenas tentou medir isso, mas é acima do calibre máximo do meu multímetro (20M Ohm)
jfpoilpret

1
Bem, o que se segue pode ser uma discussão melhor localizada no meta.arduino, mas acho que essa pergunta geralmente é uma que engana o ponto de ter um arduino SE. Ele não está diretamente vinculado aos arduinos, pois para cada projeto não se deve projetar sua solução em uma ferramenta, mas escolha as melhores para a solução (e se o uso de um RPi for melhor ou um CC2540?). É de fato uma solução de engenharia de software mecânica + eletrônica +. E não há melhor lugar de SE que conheço para fazer esse tipo de perguntas.
Zmo

@zmo, então eu sugiro que o OP edite sua pergunta para adicionar a necessidade de acionar o alarme através de um Arduino; que iria torná-lo melhor para Arduino.SE
jfpoilpret

Respostas:


47

Traga vários rolos de cada vez e pendure um para uso. Coloque os outros dois em um poste vertical curto ao alcance da babá. A babá pode fazer outro teste quando necessário.

Sentir mecanicamente a falta de peso na prateleira na parte inferior do poste. O alarme dispara quando o último rolo é removido. Ninguém precisa ser pego de surpresa.

Para detectar o peso, use um resistor sensível à força, como o FSR 400 (consulte a folha de dados ). Como alternativa, você pode usar uma mola helicoidal leve para apoiar o papel higiênico com um microinterruptor que é liberado quando os dois rolos são removidos. Outra opção seria um detector de quebra de feixe de infravermelho, onde o circuito é concluído quando o último rolo é removido.


@AnnonomusPerson Ele está falando sobre medir o peso de vários rolos cheios de papel higiênico, não folhas individuais ou rolos vazios.
precisa saber é o seguinte

1
Essa é uma ótima idéia: em vez de precisar medir a quantidade de papel restante no rolo, meça o número de rolos restantes para informar quando você precisará obter mais rolos.
precisa saber é o seguinte

Qual sensor você usaria para detectar a falta de peso?
Jfpoilpret 03/03

3
Um sensor de pressão de tecido é uma opção ou um sensor de luz na base coberto se houver um rolo.
Rob Hoare

Você poderia fornecer um exemplo de um sensor específico que poderia fazer o trabalho?
precisa saber é o seguinte

22

Acredito que o conceito de sensor de palheta apresentado por jfpoilpret e jmathew seja o mais fácil de realizar. Eu desenhei um diagrama de como eu acho que seria.

Você pode ajustar a sensibilidade ajustando a altura do contato inferior.

Isso realmente só leva você a uma condição "baixa" e não necessariamente fora. A menos que você queira alterar os rolos enquanto ainda restam algumas folhas, isso não me parece uma solução satisfatória. Eu prefiro ter um indicador de "saída" e uma campainha sonora para solicitar / envergonhar o usuário para substituir o rolo.

Esse projeto pode ser realizado usando componentes eletrônicos independentes (sem necessidade de arduino). No entanto, como você queria gamificar a mudança do rolo, você poderia usar um arduino para isso.

Observe também os sensores ópticos baseados em cores, enquanto a grande maioria dos tubos de papelão usados ​​para esse fim são marrons, também vi os brancos em uso.

Diagrama do sensor Reed


6
Belos diagramas. O que você usou para fazê-los?
jmathew

1
Apenas um comentário importante: você nem precisa de um contato de palheta nessa situação, mas apenas dois pedaços de metal usados ​​como um simples interruptor. Um contato reed é baseado em forças magnéticas que abrem ou fecham um interruptor; isso foi necessário na minha resposta, onde não havia contato real entre as duas partes. Mas aqui, usar uma palheta parece inútil, eu acho.
precisa saber é o seguinte

@jfpoilpret Eu não sabia que o termo era um tipo específico de mudança. Eu estava pensando no conceito mais geral de um material rígido e flexível. Obrigado pelo esclarecimento!
jmathew

@ jmathew não há problema, afinal, estamos todos aqui para compartilhar conhecimento!
precisa saber é o seguinte

2
Eu usei o MS Visio 2007.
Arluin

14

Eu acho que vi isso na série 1 episódio 2 do Manlab de James May.

Semelhante ao jfpoilpret, use um pedaço grande de material em uma mola que entre em contato com o rolo o tempo todo. Digo 'ampla' para que, quando o rolo estiver vazio, a palheta toque com um contato em um dos suportes do rolo ao lado. Quando toca, completa um circuito para o seu alarme.

Aqui está uma imagem grosseira descrevendo o que quero dizer.

Na resposta de Arluin, foi mencionado que esse método não mostraria que o rolo estava vazio. Isso é verdade. Se o contato superior for tão espesso quanto o rolo de papelão TP e o contato inferior estiver posicionado dentro da parte interna do rolo de papelão, ele deve se aproximar o suficiente para fins práticos. Um pé de rolo de TP não é suficiente após a noite do taco.

Eis a imagem da minha imaginação


9

Use um detector de radiação para detectar a quantidade de papel restante no rolo. Coloque uma quantidade de material radioativo no meio da haste da bobina e coloque o detector de radiação em outro lugar (você pode montá-lo no outro lado da superfície em que o suporte do rolo está montado, se desejar; os sensores de radiação são extremamente flexíveis) e meça as quantidades de radiação para determinar a quantidade de papel restante no rolo.

Como alternativa, você pode ter um dispensador de papel higiênico controlado eletronicamente (botão para distribuir um pedaço pré-programado de papel higiênico) e fazer com que o arduino apenas controle o quanto foi dispensado.

Ou então, conecte um codificador rotativo ao lado da haste do carretel (verifique se ele se encaixa sem escorregar dentro do rolo) e conte as rotações do rolo para determinar quanto foi usado.

Obviamente, com qualquer um desses métodos, você terá que fazer testes e coletar dados, dependendo do tipo exato / marca / material / etc de papel higiênico.

Especialmente para a segunda e terceira idéias, eu recomendaria coletar dados do sistema regularmente, para acompanhar o comprimento típico de um rolo, para que você possa ajustar o programa para qualquer variação significativa. Mesmo dentro de um tipo de papel higiênico, eu imaginaria que haveria alguma variação no comprimento do rolo.

Para se divertir ainda mais, você pode instrumentar o detector para coletar dados de séries temporais, para depois carregá-los em um computador e criar um gráfico de "uso de papel higiênico ao longo do tempo" ou algo assim.


2
Eu sou um grande fã de usar um codificador rotativo. Pode até ser projetado o suporte do TP com o codificador conectado à haste através do rolo, causando assim nenhum movimento no codificador. Também pode ser usado um botão para redefinir a contagem.
precisa saber é o seguinte

1
Mas um problema comum seria determinar o número máximo de rotações, pois isso depende do número de folhas e de sua espessura.
precisa saber é o seguinte

Eu mudaria isso de 'Anexar dispositivo de radiação ao rolo de papel higiênico' para anexá-lo ao rolo do meio em que ele se senta. O mesmo efeito, mas com menos manutenção de recolocar o sensor em cada rolo
Robotnik

1
Você pode determinar o número de rotações transferindo todo o TP de um novo rolo para o carretel em seu rolo medido e contando as rotações com o codificador (com um DYI simples, como um par de cavilhas verticais e apenas enrolando um no outro) . Então, quando estiver vazio, repita. Torna a coisa toda fácil de usar também, porque você pode continuar reutilizando o mesmo spool ao qual já conectou o codificador e continuar inserindo um novo TP nele.
Jason C

1
@AJMansfield Gostaria de saber se alguns círculos cortados de papelão nas laterais do rolo de recebimento (e alguns cuidados) dariam resultados satisfatórios; se os rolos estiverem em hastes de cavilha para transferência, basta fazer um furo no centro dos discos e colocá-los. No lado positivo, se você sempre compra a mesma marca de TP, precisará fazê-lo apenas uma vez (e pode manter uma lista à mão do número de rotações para diferentes marcas / tipos que descobrir - poderá ser o orgulhoso mantenedor do primeiro banco de dados de contagem de spin TP de código aberto do mundo).
Jason C

7

Eu acho que 'Arluin' e 'jmathew' têm a idéia certa. Use uma alavanca apoiada na parte superior do rolo.

Eu faria um pouco diferente no entanto. Em vez de depender do fechamento de contatos, você pode usar um potenciômetro. Com esse sistema, você pode medir o valor restante, em vez de simplesmente ser notificado quando estiver baixo.

Com um contato como os sugeridos já, você pode prender o papel no contato à medida que ele se fecha e, então, o papel baixo não é detectado.

(Você pode precisar de um peso, mostrado em azul no diagrama, para empurrar a alavanca para baixo enquanto o rolo é usado)

Você precisaria tentar aproximar o pote o mais próximo possível do rolo para obter o máximo balanço do pote e, portanto, a resolução máxima da quantidade restante.

Outra coisa que você pode querer é algum tipo de rolo na extremidade da alavanca, para que o rolo de papel possa se mover facilmente com um pequeno arrasto, onde a alavanca entra em contato com o papel.

Configuração proposta


4

Você pode abrir um daqueles cartões de aniversário e adaptar o interruptor ao braço do suporte. Quando você ouve 'Feliz Aniversário' tocando no vaso sanitário, você sabe que está com problemas! (E porque eles são de baixa potência, essas coisas são eternas ;-)) Eu mostrei uma configuração de LED aqui, mas você entendeu ...

feliz Aniversário


Você pode editar sua pergunta para saber como conectar esse item a uma placa Arduino? Obrigado!
Anonymous Penguin

3

Eu construí um tacômetro de reflexão para um Arduino que provavelmente resolveria seu problema. O circuito básico é bastante simples:

circuito tacômetro

Eu tinha um foto-transistor que respondia bem à luz vermelha, e outro da Radio Shackisso era bastante sensível à saída de infravermelho dos antigos LEDs remotos da TV. Para seus propósitos, o fio verde seria conectado ao pino analógico 0 do Arduino, e você só precisa fazer amostragens periodicamente, não configurar um esboço acionado por interrupção. O truque para obter uma diferença de sinal refletida entre papel branco e rolo cinza é saber que a sensibilidade à luz de um fotransistor aumenta w aumentando a resistência ao GND, mas a tensão escura também aumenta. Cheguei aos valores 5 e 3 megohm de forma empática, verificando os valores AtoD de objetos escuros e claros a uma distância de alguns centímetros do detector. O mesmo procedimento deve funcionar para a detecção de cinza vs branco. Embora algumas coisas que parecem bem diferentes visivelmente tenham a mesma refletância no IR. Aqui está uma foto do tacômetro pronto para luz vermelha: insira a descrição da imagem aqui

Deve ser simples tornar a placa do sensor pequena o suficiente para caber na parte traseira do seu dispensador de papel. A versão IR é ainda menor, mas é enterrada profundamente em uma centrífuga caseira para que você possa tirar uma foto hoje.


3

Acho que outra opção decente e barata de usar é um sensor de proximidade como o do telefone ou um sensor infravermelho de campo fixo. Esses sensores são bastante precisos e podem ser facilmente usados ​​para "olhar" a parte de trás do rolo de papel higiênico, montando o sensor no suporte ou na parede onde o rolo de papel higiênico é colocado. Todas as outras idéias que vi no post eram bastante imprecisas ou eram intrusivas em relação ao rolo de papel higiênico que, a longo prazo, acho que podem causar contaminação. Um sensor de proximidade não é apenas bastante barato e fácil de usar; se bem calibrado, pode permitir uma quantidade muito boa de precisão e confiabilidade. Este modelo já é amplamente utilizado em mictórios masculinos para autolavagem. Por exemplo, no seu telefone: seu telefone fornecerá com precisão uma distância de 2,0 polegadas ou infinito quando sua mão ou seu rosto estiver perto da tela.


Por US $ 10, você pode obter essa faixa adafruit.com/products/466 de 1cm a 15cm (perfeita para rolo TP) e projetada para ser facilmente integrada a um microcontrolador.
Jason C

@ Jason C: A primeira tentativa foi usar o VCNL4000, mas, como outros relatórios, ele parava / parava / congelava enquanto fazia as leituras. Eu não vi ninguém resolver isso, mesmo ao baixar o mA.
Jose Leon

@Aditya O uso do sensor de proximidade HC-SR04 não ajudou. Não houve diferença entre um rolo cheio de TP e um rolo vazio. O melhor que posso imaginar é que o 'eco' estava passando direto pelo tecido e parando na barra de metal que segurava o TP. Portanto, pelo menos para esse sensor, não funcionou.
Jose Leon

@JoseLeon eu vejo. Isso é realmente estranho. Eu concordo com o seu raciocínio. Talvez exista outro sensor por aí que possa funcionar, mas acho que seu raciocínio de que as ondas infravermelhas devem passar pelo papel higiênico parece válido.
Aditya Somani 30/03

2

Um sensor de distância de ultra-som de curto alcance pode ser uma opção eficaz (e bastante barata). Você pode montar uma combinação de emissor + sensor em um chip. Sensores diferentes podem funcionar de maneiras diferentes (sempre verifique a folha de dados). Uma saída comum usa o comprimento de um pulso para indicar a distância detectada. Você pode processar isso no Arduino usando a pulseIn()função

Em termos de instalação, você provavelmente o encaixaria diretamente atrás do papel higiênico, apontando para o centro do carretel. As leituras geralmente são bastante irregulares, portanto, você deseja fazer várias medições e calculá-las como média (ou usar uma média móvel simples). Com um pouco de calibração, você pode determinar qual distância representa um carretel vazio.

Quando você detecta essa distância repetidamente por um período significativo (por exemplo, um minuto ou mais), soa o alarme.

Um sensor baseado em refletância pode ser outra possibilidade, embora eu me pergunte se você pode ter dificuldade em encontrar um que funcione corretamente em papel higiênico (dependendo de quão suave é sua marca preferida!).


Não sei se você obteria precisão suficiente com um sensor de ultrassom; IIRC, a maioria deles tem cerca de 3-4 mm de precisão; em geral, isso é bom o suficiente, mas, considerando o diâmetro de um rolo de papel higiênico, isso pode ser muito impreciso.
precisa saber é o seguinte

Sim, isso geralmente é verdade para uma leitura individual. As flutuações são bastante uniformes, portanto, você pode calcular a média de várias leituras consecutivas para neutralizá-la. Isso pode potencialmente fornecer uma precisão de ~ 1 mm.
Peter Bloomfield

O que acontece quando o papel higiênico mexe um mm enquanto gira para longe do sensor com um pouco de papel restante?
Anonymous Penguin

1
@AnnonomusPerson Você sempre terá leituras falsas quando houver movimento. É por isso que você espera até que a leitura fique estável por um período significativo antes de agir sobre ela.
Peter Bloomfield

@ Peter R: O uso do sensor de proximidade HC-SR04 não ajudou. Não houve diferença entre um rolo cheio de TP e um rolo vazio. O melhor que posso imaginar é que o 'eco' estava passando direto pelo tecido e parando na barra de metal que segurava o TP. Portanto, pelo menos para esse sensor, não funcionou.
Jose Leon

2

Uma ideia que vem à mente seria algo assim:

  • cole um pequeno ímã dentro do rolo de papel, ou seja, dentro da parte do papelão (isso deve ser feito sempre que você o trocar;)
  • use um contato de palheta (interruptor eletromagnético) na ponta de um bastão montado com uma mola para estar sempre em contato com o rolo de papel
  • um pino do contato reed pode ser conectado diretamente a um pino lógico de entrada (configure-o como uma entrada do resistor de pullup)
  • o outro pino do contato reed deve ser conectado ao terra

Assim, assim que a distância entre o ímã e o contato reed estiver abaixo de algum limite, a chave fechará o circuito. Essa distância diminuirá enquanto o rolo de papel é desenhado.

Observe que, em vez de um contato reed, você também pode usar um sensor de efeito Hall, os princípios permanecem os mesmos, apenas a tecnologia e as características mudam.

A dificuldade aqui será encontrar a sensibilidade correta do contato com a palheta (ou a força do ímã) para que o contato da palheta seja fechado quando a distância entre ele e o ímã for pequena o suficiente para evitar um alarme que seria ativado muito cedo )


Isso não vai funcionar, mesmo motivo que um sensor ultrassônico. Ainda vai sair com pelo menos 10 pés ainda nele. O sensor de cores é uma ideia melhor.
Anonymous Penguin

Não vejo a relação com o sensor ultrassônico. Você poderia desenvolver ainda mais POR QUE não funcionaria? Existem grandes quantidades de sensores de palheta e de efeito hall, sem falar em diferentes tipos de ímãs.
Jfpoilpret 02/03

Uma camada de TP é tão fina que pode ser ativada com um pouco de esquerda. Teoricamente, poderia ser aprimorado, mas é realmente ineficiente tirar o microscópio ou o que quer que seja para trocar um rolo de papel higiênico.
Anonymous Penguin

Ativar com um pouco de esquerda não é tão ruim, pois a pergunta do OP é "... o papel higiênico está baixo "; baixo não significa necessariamente vazio.
precisa saber é o seguinte

2

A solução mais simples, porém melhor em questão, seria usar um acoplador óptico feito de um LED IR e um opto-transistor. Você faz o LED acender em direção ao rolo, estando o LED dentro do rolo amarrado à "alça". Depois de remover o rolo de papelão, o opto-transistor obtém a luz infravermelha do LED e aciona uma interrupção de troca de pinos no Arduino, que pode alertá-lo de várias maneiras (luz, SMS, twitter, alarme ...).

Esse design é realmente barato, fácil e rápido de construir. Embora ainda exista uma coisa que você precisa fazer: quando não houver mais papel higiênico, você precisará remover o rolo de papelão ;-)

Caso contrário, o mesmo tipo de solução para os rolos de reposição é uma ideia ainda melhor :-)


Os acopladores ópticos não são chips únicos que incluem o emissor e o receptor? Veja aqui: en.wikipedia.org/wiki/Opto-isolator
jfpoilpret

[…] É um componente que transfere sinais elétricos entre dois circuitos isolados usando luz […] então basicamente é isso que fazemos, entre um LED IR (um circuito) e um fototransistor. Embora você esteja certo, não é um componente único (como o MOC3020).
Zmo

2

Muitas opções aqui parecem complicadas e intrusivas.

Sensor de cor

Outra opção, um pouco complicada (mas divertida) de implementar, mas não intrusiva e fácil de instalar, é construir um sensor de cor barato e montá-lo na parede atrás do rolo. Quando você detecta a cor do rolo (ou a ausência da cor do TP), ela é baixa.

Você também pode comprar um por US $ 8 .

Você pode ajustar o limite aproveitando a espessura do TP e o fato de ele começar a parecer um pouco mais escuro quando há apenas algumas folhas.

Se necessário, a calibração pode ser feita pressionando um botão após a instalação de um novo rolo com as luzes do banheiro acesas.

Você precisaria fazer alguns ajustes, dependendo das especificidades do seu banheiro. Se você adicionasse alguma complexidade extra e a desligasse de uma tomada CA ligada ao interruptor da luz do banheiro, você só poderia ligar quando as luzes do banheiro estivessem acesas, o que filtraria muitos dados não confiáveis.

Isso é muito fácil de instalar e não envolve modificações no próprio rolo. Você pode prender o sensor na parede com fita dupla face ou colocá-lo em uma pequena prateleira sob o rolo voltado para cima (ou a parte superior voltada para baixo).

Quebra do feixe de infravermelho

Monte um pequeno LED IR em um lado do dispensador, logo acima do carretel. Monte um sensor de foto IR no outro lado do dispensador. Quando o sensor vê o LED, o rolo está baixo. Também pode ser feito com um laser barato (por exemplo, um ponteiro laser de prateleira de um lado e um fotossensor do outro; mas não machuque os olhos!)

Isso também é fácil de instalar (por exemplo, cola quente no dispensador) e não envolve modificações no rolo, embora a localização dos sensores possa torná-los fáceis de danificar ao substituir os rolos.


Também gosto muito das opções de sensor reed e sensor de alcance (BTW: US $ 10 oferece um ótimo sensor de distância a curta distância ) aqui.


1
Feixe de IR foi o meu primeiro pensamento. Simples e fácil de implementar e provavelmente mais confiável do que algumas das outras soluções, embora talvez menos divertido :)
Kevin

Hehe, eu concordo. Eu acho que um sensor de cores seria divertido, pelo menos do lado do software; seria um bom desafio coletar dados e tentar criar um algoritmo imune a, por exemplo, mudanças na iluminação natural ou outros gatilhos falsos.
Jason C

1

Você tem poucas opções:

Nota: Os links fornecidos são apenas os primeiros que aparecem. A maioria deles é cara em comparação com outros sites. Agora, o eBay pode ser bastante barato para a maioria desses itens. Verifique outros lugares também, incluindo Sparkfun .

  • Sensor de Ping ultra-sônico . Isso não é ideal de forma alguma, mas é fácil de usar. Basta adicionar um com um gabinete. Não é o ideal, porque não será preciso o suficiente para dizer quando exatamente está vazio. Pode ser um pouco acima / abaixo sensível. O peso seria mais difícil, porém, se mudar.
  • Sensor de cor (preferível, mas custa mais) . Você mencionou isso e esta é provavelmente a melhor ideia. Isso fornecerá valores analógicos (para ler com o Arduino) para vermelho, verde e azul. [Supondo que quanto maior o conteúdo dessa cor, maior a tensão], o branco deve ser praticamente todos aqueles com 100% e marrom, imagino que a maioria deles seja de 30 a 40%. (Mais tarde, se você não entender isso, pule esta parte)

Vou entrar em mais detalhes sobre o sensor de cores:

As cores são lidas com três valores aqui: vermelho, verde e azul. Existem três sensores no quadro. Um filtra tudo, exceto vermelho, outro azul e o outro verde. Os sensores na placa detectam a quantidade de luz recebida e a convertem em tensão: entre 5V ("100% vermelho / verde / azul") ou 0V ("0% vermelho / verde / azul"). Isso pode ser convertido em número pelo Arduino (0-1024 em um pino analógico).

Um problema com a iluminação: esse sensor, pelo que sei, tem um LED sempre ligado. Você quer dessoldar isso ou encobri-lo, a menos que queira um suporte de papel higiênico iluminado. Agora espere ... seu sensor pensará que quando está escuro, é marrom. Não tem problema ... aqui está algo para você pensar.

Use um seletor de cores como eu estou usando e selecione um marrom . À esquerda deste, você pode controlar o "brilho simulado". Além disso, é a forma hexadecimal do RGB. Você desejará converter isso em valores padrão com este calcador .

Em marrom, a cor azul é quase inexistente. Devemos ignorar essa cor, a menos que você queira uma maneira de verificar se é marrom. Eu diria que sempre deve estar abaixo de 40% para praticamente qualquer tom de marrom.

Pelo que posso dizer com uma amostra de tom marrom, o vermelho é praticamente o dobro do verde. Essa proporção pode variar, mas você deve verificar se é um pouco existente. Para branco / cinza / preto, todas as cores são proporcionais 1: 1: 1. Você pode usar isso para detectar se está escuro ou marrom.

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
}

Primeiro, verifica se o azul é inferior a 25%. Em seguida, verifica se o vermelho e o verde são iguais ... mais ou menos 20%. (ou seja, vermelho = 100 verde = 80, vermelho = 110 verde = 90, etc.). Se isso for verdade, você pode estabelecer que é marrom. Em seguida, um LED acende por cinco segundos.

Você pode modificar o LED para tocar uma campainha, se desejar. Pode ser necessário ajustar a instrução if para verificar se o azul é menor que 256/1024 (1024 = resolução do pino analógico) se não estiver trabalhando com muita luz ou com luz escura. Como o código mais tarde verifica se o vermelho é cerca de duas vezes o verde, qualquer tom de branco não deve passar pela instrução if. Você também pode precisar ajustar minRede maxRedestar mais longe (se não detectar o marrom) ou mais próximo (se detectar o marrom quando estiver branco). Eu realmente não posso testar esse código sem sensor de cores.


Nota: estes podem ser um pouco inquietos. Eu recomendaria um LED para que a casa inteira não seja acordada no meio da noite apenas por causa do papel higiênico baixo. Além disso, se você obstruir o sensor ... Se ele não estivesse no banheiro, eu recomendaria uma câmera e ela tiraria uma foto toda vez que ficar muito baixa com um interruptor de palheta como a resposta de @ jfpolipret ... mas ... (sem trocadilhos) :)


O sensor de cores funcionará da mesma forma (ou seja, sem precisar ajustar o esboço) se você alterar a cor do seu papel higiênico :-)?
precisa saber é o seguinte

@jfpoilpret Não sei se você reutiliza seu papel higiênico ou não, mas ... :) Estou adicionando código com mecanismos para que seja "semelhante", mas não exato.
Anonymous Penguin

Eu acho que o papel higiénico é suficiente macio para absorver a explosão de ultra-som a partir de um sensor ultra-sônico
TheDoctor

@ TheDoctor Não é uma boa ideia, como eu apontei. É uma maneira imprecisa.
Anonymous Penguin

1
@jfpoilpret Se você adicionou um botão "calibrar" e o pressionou com as luzes do banheiro acesas após a instalação de um novo rolo, pode medir a cor correta.
Jason C

1

Soa como um projeto legal, aqui estão os meus 2 ct:

Aponte uma câmera para tirar fotos do rolo de lado, provavelmente essa é a única maneira de descobrir realmente a quantidade de papel que resta. (edit: Você pode usar um raspberry pi com a câmera csi e criar um sinal de saída correspondente ao número de folhas e alimentar esse sinal com o arduino ?!)

Para uma estimativa, também pode ser suficiente contar as rotações do rolo, mas é necessário fixar melhor o rolo para que não escorregue. Ou você pode usar ímãs como em bicicletas, mas eles precisam ser anexados ao rolo diretamente nesse momento.

(editar: mais uma ideia, medir a espessura do rolo medindo o ângulo da tampa)


Olá e bem-vindo ao Arduino Stack Exchange! Você pode dizer como você o conecta a um Arduino? Obrigado! Além disso, não sei como é boa ideia colocar uma câmera no banheiro. :)
Anonymous Penguin

Eu gosto da sua última ideia editada; pode ser simplificado ainda mais usando apenas um interruptor na tampa, que fecharia o circuito quando a tampa atingir um determinado ângulo; isso parece mais fácil do que medir o próprio ângulo.
Jfpoilpret 3/03

1

Sua melhor opção é conectar um codificador rotativo ao lado do rolo e conte as rotações do rolo para determinar quanto foi usado. Depois de saber o número de rotações por rolo, você pode definir onde deseja que sua notificação seja acionada. Conecte-o a um tipo de sistema de registro e você terá dados históricos do uso do papel e do banheiro.


Concordo. As pessoas parecem estar complicando demais isso. Além disso, você pode continuar reutilizando o mesmo rolo com o codificador conectado transferindo TP de um novo rolo para o rolo sensor quando o recarregar (por exemplo, coloque rolos em algumas hastes de cavilha baratas e embrulhe-as); isso também permite contar quantas rotações para esse rolo (conforme você o reabastece).
Jason C #

1

Eu digo, pegue um sensor de peso e programe-o para o peso do rolo. Quando cair abaixo de um determinado peso, comece a piscar um LED ou faça um sinal sonoro.


0

Outra maneira de fazê-lo, caso você queira apenas por diversão, é colocar uma haste de metal dentro do rolo e uma placa de metal do lado de fora e medir a capacitância que deve mudar com o TP restante devido ao constante dielétrica do papel.

Mas isso seria tomar a "rota panorâmica", com certeza. Ainda assim, o Arduino pode medir a capacitância com bastante facilidade e pode até ser sensível o suficiente, e ficaria fora do caminho porque seria apenas uma placa de metal atrás do rolo e uma haste de metal no rolo. Você pode até adaptar um suporte existente sem que seja notado.

Uma maneira mais fácil seria um bastão preso ao eixo de um potenciômetro sustentado pela parte superior do rolo. Menos TP, o eixo fica mais baixo e gira o pote. Pode ser necessário um eixo longo para alavancagem, porque você não pode pressionar demais sem impedir a função de puxar papel higiênico.

Como AJMansfield sugeriu, a radioatividade é realmente usada para medir a espessura das coisas em ambientes industriais. Se você realmente queria enlouquecer, talvez pudesse usar uma fonte radioativa de energia extremamente baixa, como uma lata daquele substituto de sal de sabor estranho, que está um pouco acima dos níveis de fundo e média em períodos extremamente longos (papel higiênico não deve mudar muito a partir de uma hora hora), então essa pode ser uma maneira razoável, embora cara, de fazer as coisas.

Os sensores infravermelhos de quebra de feixe também são bons e, se você o posicionar corretamente, poderá bloquear mais luz quanto mais cheio o rolo, em vez de apenas fornecer sinal de ligar e desligar.

EDIT: Prova de trabalho do conceito da abordagem capacitiva. Precisa apenas de um arduino e 2 fios rígidos. Preciso a cerca de 1/8 de polegada, com muito ruído. Certeza de que você pode obter com precisão pelo menos 1 polegada de precisão. O tempo de medição é de cerca de um minuto. É realmente sensível ao ambiente. Você precisaria garantir que qualquer coisa de metal a um pé ficasse onde estava ou usar blindagem.

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


É melhor incluir código na sua resposta em vez de um link externo. Se o link quebrar no futuro, sua resposta ainda será relevante.
sachleen
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.