Índice:

IOToilet: 7 etapas (com imagens)
IOToilet: 7 etapas (com imagens)

Vídeo: IOToilet: 7 etapas (com imagens)

Vídeo: IOToilet: 7 etapas (com imagens)
Vídeo: Finalmente o NOVO EPISÓDIO 70 PARTE 1 de SKIBIDI TOILET...O MELHOR e MAIOR EPISÓDIO de TODOS !! 2024, Novembro
Anonim

O IOToilet é o primeiro porta-papel higiênico inteligente, que rastreia nosso uso diário de papel higiênico e permite acumular estatísticas mostrando essas métricas. E por que devo me preocupar com meu uso diário de papel higiênico, você pode perguntar? Bem, ao que parece, nossa saúde abdominal, especialmente o ciclo digestivo, tem muito a ver com nossa saúde física e mental. Por exemplo, aqui está uma boa palestra TED (uma de várias, a propósito) que desenvolve sobre esse assunto:

Fui inicialmente contratado para construir 10 unidades desse dispositivo para uma agência de branding, cujo clipe você pode ver acima (2ª localização), para uma campanha de marketing para uma grande empresa. No início, descartei a ideia como se viesse de uma outra mente supercriativa tentando desesperadamente ganhar uma conta de cliente, mas aos poucos ela cresceu em mim, até que percebi o valor das informações coletadas por meio desse dispositivo.

A construção foi baseada em um hardware existente que meu cliente adquiriu no eBay, um dispositivo de gravação de voz encapsulado em um suporte de papel higiênico. Ele tinha o formato certo e todos os periféricos necessários já integrados, como um alto-falante, um sensor de movimento para acionar o dispositivo, molas para segurar o próprio papel higiênico, compartimento da bateria e um botão liga-desliga, então optei com prazer usando este produto pronto em vez de modelar e imprimir por conta própria.

Etapa 1: Ferramentas e materiais

Ferramentas e Materiais
Ferramentas e Materiais
Ferramentas e Materiais
Ferramentas e Materiais
Ferramentas e Materiais
Ferramentas e Materiais
Ferramentas e Materiais
Ferramentas e Materiais

Materiais utilizados:

Suporte de rolo de papel higiênico

Wemos D1 Mini

Chip ATTiny85, embalagem DIP

2 x 2n2222 transistor

Resistor de 220 ohms

2 * 1 resistor KOhm

Acelerômetro MPU6050

Opcional, caso não esteja usando meu PCB:

Escudo de prototipagem Wemos

fio, solda, etc.

Ferramentas usadas:

Dremel com um disco de corte

ATTiny dev board (para upload de firmware de forma conveniente)

Programador USB Tiny ISP

chave de fenda triangular, usei este kit:

Etapa 2: desmentindo a unidade original

Desmentindo a unidade original
Desmentindo a unidade original
Desmentindo a unidade original
Desmentindo a unidade original
Desmentindo a unidade original
Desmentindo a unidade original

Após obter o fuso de papel higiênico original, abri sua caixa usando uma chave de fenda triangular e retirei o PCB original, desconectando o alto-falante e deixando o máximo de fio possível conectado a ele.

Em seguida, soldei o LED e o sensor de inclinação do PCB original para serem posteriormente incorporados ao novo circuito. Preste atenção para não superaquecer o interruptor de inclinação, pois isso pode danificá-lo. O meu era cinza, mas como não tirei uma boa foto ao retirar do aparelho original, tive que usar uma foto da rede (veja acima), onde era verde. Apenas um pequeno detalhe.

Depois de abrir a caixa e remover os componentes eletrônicos, também usei uma Dremel para remover o excesso de plástico que era usado para segurar o PCB original no lugar, essas pequenas prateleiras de plástico e um dos 4 tubos de rosca. Você pode adiar isso para a fase de montagem, se quiser, mas em qualquer caso, será necessário um aparamento de plástico.

Etapa 3: Circuito explicado

Circuito explicado
Circuito explicado
Circuito explicado
Circuito explicado

Então, aqui está um pouco sobre a lógica por trás do circuito:

Para que as baterias durassem muito, tive que colocar o acelerômetro MPU6050 e o processador ESP8266 no Wemos D1 Mini para hibernar entre as ativações. O primeiro foi feito facilmente usando um transistor que ligava e desligava o MPU6050.

Nota: Inicialmente pensei que poderia programá-lo para enviar um sinal de interrupção que despertará o processador principal. Infelizmente, não consegui encontrar uma maneira de fazer isso acontecer, configurar os registros adequados do MPU6050 foi uma tarefa complicada que ainda não sei se possível…

Minha segunda opção foi usar o interruptor de inclinação fornecido com a unidade original para despertar o ESP. Primeiro, amarrei diretamente ao pino RESET do Wemos, conforme descrito nas fotos acima, usando um transistor para ativar / desativar o mecanismo. Quando a base do transistor estava alta, o GND poderia passar pelo interruptor de inclinação e fazer com que ele se conectasse temporariamente ao pino RESET, causando a reinicialização do MCU (esta é a única maneira de acordar um ESP do sono profundo, aparentemente). Em seguida, conectei o D0 à base do transistor, seguindo a premissa de que esta perna fica ALTA enquanto o MCU estiver em hibernação, e assim que acordar, o D0 volta para BAIXO, desabilitando o mecanismo de reset. Afinal, não precisei de uma reinicialização recorrente, apenas pela primeira vez quando o porta-papel higiênico começou a se mover.

No entanto, o que descobri foi que o pino D0 leva muito tempo após a reconfiguração do MCU para voltar para BAIXO, cerca de 200ms. Isso significava que, se eu girasse o suporte de papel higiênico rápido o suficiente enquanto o MCU estava dormindo, ocorreria vários RESETs, em vez de contar as rodadas, como deveria.

Então, tentei resolver essa nova situação com alguns componentes discretos (capacitores, transistores etc.) mas só consegui uma solução parcial para o problema.

Acabei adicionando outro MCU, um ATTiny85, que despertava do sono pelo interruptor de inclinação, então, acordava o ESP8266 e esperava um pouco antes de voltar a dormir. Eu sei que esta provavelmente não é a solução mais econômica para o problema, mas eu tinha um prazo …

Você pode ver a solução detalhada no esquema que incluí. Observe que os resistores de 10K foram substituídos por 1K porque os de 10K eram muito altos para que os transistores se abrissem totalmente.

Etapa 4: Preparando o ATTiny85

Preparando o ATTiny85
Preparando o ATTiny85

Se você nunca programou um ATTiny85, não se preocupe! Usar o amado IDE Arduino pode ajudá-lo em tudo. Comece com estas instruções sobre como configurar o IDE Arduino:

github.com/SpenceKonde/ATTinyCore/blob/mas…

Em seguida, instale os drivers para o USBTinyISP aqui:

learn.adafruit.com/usbtinyisp/drivers

Agora, carregue o código de teste anexado: WakeOnExternalInterruptTest.ino

e conecte (consulte o diagrama de pinagem ATTiny85):

1. Botão de toque entre o pino 3 e o solo

2. Um resistor led e um de 220 Ohm em série, entre o pino 2 e o terra

Próximo, Selecione o USBTinyISP como o programador (em Ferramentas -> Programador) e carregue o esboço de teste para a placa.

O LED deve piscar 5 vezes e, em seguida, o chip deve entrar no modo de hibernação. Pressionar o botão fará com que ele acorde e repita a sequência.

Tem que funcionar? excelente! Carregue o esboço final "Despertador" no ATTiny, para ser usado no circuito final.

Etapa 5: Construindo o Escudo Wemos

Construindo o escudo Wemos
Construindo o escudo Wemos
Construindo o escudo Wemos
Construindo o escudo Wemos
Construindo o escudo Wemos
Construindo o escudo Wemos
Construindo o escudo Wemos
Construindo o escudo Wemos

Portanto, para construir o escudo, você tem 3 opções à sua escolha:

1. Use uma protuberância padrão para o Wemos e solde o circuito nele.

2. Fabrique um PCB, com base nos arquivos EAGLE anexados.

3. Peça-me um PCB que posso enviar por correio tradicional (tenho alguns por aí, o custo é quase nada).

Em qualquer caso, eu recomendo construir o circuito em uma placa de ensaio antes de se comprometer com o PCB!

Se estiver usando as opções de PCB, certifique-se de conectar o fio preto como nas fotos, na parte frontal ou traseira da placa (esta última funcionou melhor para mim). Este fio conecta o GND do Wemos ao ATTiny85 e sem ele, o despertar não ocorrerá.

Basta dar uma boa olhada nas imagens e ler as anotações que adicionei, isso deve ser o suficiente.

Etapa 6: Preparando os Wemos

Se você nunca usou o IDE Arduino para programar uma placa Wemos, comece instalando o gerenciador de placa e selecionando a placa no menu Ferramentas -> Placa, conforme descrito aqui:

github.com/esp8266/Arduino

Comece enviando o esboço intermitente para o seu quadro, certificando-se de que o código seja carregado corretamente.

Etapa 7: juntando tudo

Juntando tudo
Juntando tudo
Juntando tudo
Juntando tudo
Juntando tudo
Juntando tudo

Instale a blindagem no Wemos. Você pode soldá-lo, mas eu recomendo usar conectores fêmeas soldados ao Wemos que permitirão a conexão temporária entre o Wemos e a blindagem, em caso de algum problema. Basta lembrar que o cabeçalho fêmea terá que sair na fase final de montagem para que a unidade se encaixe no invólucro de plástico. Além disso, para tornar as coisas um pouco mais complicadas, há uma boa chance de que quando o shield for conectado ao Wemos, o upload do código seja desabilitado. Encontrei esse fenômeno de uma forma inconsistente e não tive tempo de pesquisá-lo.

Um conselho: planeje com antecedência.

Agora, testando!

Uma vez instalado, comece carregando o esboço de teste BlinkAccelerometer para o Wemos e certifique-se de ligar e desligar o LED MPU6050. Caso contrário, verifique a fiação do transistor que é responsável por alimentar o MPU6050. Sua base deve ser conectada ao pino D5 do Wemos, o coletor deve ser conectado ao GND do acelerômetro e o Emissor deve ser conectado ao GND comum.

Em seguida, carregue o esboço TurnCountTest1 para a placa Wemos e abra o Serial Monitor. Você deve ver os dados provenientes do acelerômetro apresentados no monitor. Se não estiver funcionando, verifique o relógio e a fiação de dados: CLK deve ser conectado a D1 e DATA deve ser conectado a D2.

Agora, solde a chave de inclinação nos orifícios designados na placa (veja as anotações), certificando-se de que esteja perpendicular ao eixo de rotação para que girar o fuso feche e abra a conexão entre seus dois cabos.

Em seguida, conecte a entrada da bateria 3V ao Wemos VCC e seu terminal negativo ao Wemos GND. Certifique-se de que ligar o interruptor liga a unidade. Por último, conecte o alto-falante ao GND e pino D4 do Wemos.

Faça upload do código final para o Wemos - um esboço chamado SmartWipe. Abra um monitor serial e certifique-se de que a unidade hiberne após 3 minutos e seja despertada movendo o interruptor de inclinação (as mensagens correspondentes devem aparecer no monitor).

Se você deseja diminuir o tempo de vigília do Wemos (principalmente para fins de teste), diminua o valor de WIFI_CONFIGURATION_IDLE_TIMEOUT definido em params.h e carregue o esboço no quadro. Certifique-se de que, após o Wemos entrar em hibernação, mover o botão de inclinação faz com que o ATTiny acorde (sinalizado pelo LED), o que, por sua vez, desperta o Wemos.

Altere o valor do parâmetro de volta para 180000L (3 minutos, em milissegundos) e certifique-se de que o Wemos acione um Hotspot chamado IOToilet_XXXXXXXX onde XXXXXXX será recuperado do endereço MAC do chip. Conecte-se a este Wifi usando um smartphone, e você será direcionado para um formulário de registro (um mecanismo chamado Portal Cativo). Preencha os detalhes, especialmente importantes é o SSID e a senha do seu wifi local, e envie o formulário. A unidade deve então tentar se conectar à rede usando as credenciais fornecidas e, se for bem-sucedido, reproduzir 3 sons ascendentes no alto-falante. Se tiver ocorrido um problema de conexão com o Wifi, serão reproduzidos 3 sons descendentes. Depois disso, os Wemos devem dormir profundamente, até serem acordados pelo movimento.

Finalmente: Teste de sistema de ponta a ponta.

Role o suporte de papel higiênico ao longo de seu eixo de rotação algumas voltas e, em seguida, coloque-o em uma superfície estável (para sinalizar que o rolo terminou e acionar o upload de dados). Aguarde cerca de 10 segundos para que a contagem de rolos seja enviada para a nuvem, vá para https://smartwipe-iot.appspot.com/ e clique em Consultar. Você deve ver seus detalhes de registro e sua contagem recente de uso na nuvem! Certifique-se de anotar seu uuid, que é seu id único no sistema, extraído do endereço MAC de seu Wemos.

Se você deseja extrair apenas suas estatísticas no formato JSON, use um URL semelhante a este:

smartwipe-iot.appspot.com/api?action=query&uuid=1234567890

apenas substitua uuid pelo seu.

Incluí todas as fontes para o aplicativo da web, que é hospedado no mecanismo do Google App para que os usuários que desejam obter mais privacidade para os dados, possam implantá-los em seus próprios usuários do Google, adicionar autenticação etc.

Quando tudo estiver funcionando, encaixe os componentes eletrônicos no invólucro de plástico, aparando o plástico com uma dremel conforme necessário. A peça inteira deve se encaixar perfeitamente na caixa.

Problema? Me escreva!

UNIDOS NÓS POOP!

Recomendado: