Índice:

Postino: o carteiro entregou alguma coisa ?: 6 etapas (com fotos)
Postino: o carteiro entregou alguma coisa ?: 6 etapas (com fotos)

Vídeo: Postino: o carteiro entregou alguma coisa ?: 6 etapas (com fotos)

Vídeo: Postino: o carteiro entregou alguma coisa ?: 6 etapas (com fotos)
Vídeo: LARISSA IZABEL: LIGUEI PARA O MOTORISTA E DESCOBRI QUE ELA NÃO ENTROU NO ONIBUS ESCOLAR” 2024, Novembro
Anonim
Postino: O carteiro entregou alguma coisa?
Postino: O carteiro entregou alguma coisa?

Não é uma ideia minha: um dia um amigo me pediu uma maneira de verificar remotamente se havia alguma correspondência em sua caixa de correio. A caixa de correio não está no caminho de acesso à sua porta, então, como ele é um menino preguiçoso, ele se perguntou se um gadget de tecnologia seria capaz de avisá-lo sobre qualquer carta na caixa de correio. Dei uma olhada no mercado e não consegui encontrar nenhum dispositivo pré-fabricado adequado às necessidades dele, então lancei um desafio para mim mesmo: por que não projetar e construir?

As restrições eram:

  • alimentado por bateria com uma vida útil razoável entre as trocas de bateria;
  • Comunicação WiFi;
  • verificar apenas uma vez por dia se havia correspondência ou não;

A questão principal era: que tipo de sensor poderia atender às minhas necessidades? Um sensor de proximidade não funcionava, pois a verificação tinha que ser feita apenas uma vez por dia e não em tempo real; um sensor de peso também não, pois isso teria adicionado complexidade e problemas de sensibilidade (uma folha de papel pode ser muito leve). Minha escolha pousou em um sensor Time-of-Flight (um micro laser). Depois de calibrado para o tamanho da caixa de correio, qualquer coisa no meio teria acionado o sensor! Considerando as 3 restrições, decidi usar um ESP8266 (executando o software e vinculando ao WiFi), um sensor de tempo de voo VL6180 para a medição e um relógio em tempo real DS3231 para acionar todos os circuitos uma vez por dia: foi assim Postino nasceu!

Etapa 1: peças e componentes

  • ESP8266-01 (ou ESP-12E NodeMCU)
  • Sensor de tempo de voo VL6108
  • Relógio em tempo real DS3231
  • MosFET IRLZ44 N-channel
  • Transistor BC547
  • Resistores
  • Bateria CR123

Etapa 2: o sensor

O Sensor
O Sensor

O coração do sistema é o sensor VL6180. Esta é uma tecnologia inovadora que permite que a distância absoluta seja medida independentemente da refletância do alvo. Em vez de estimar a distância medindo a quantidade de luz refletida de volta do objeto (que é significativamente influenciada pela cor e superfície), o VL6180X mede com precisão o tempo que a luz leva para viajar até o objeto mais próximo e refletir de volta para o sensor (Tempo -of-Flight). Combinando um emissor de infravermelho, um sensor de alcance e um sensor de luz ambiente em um pacote refluível três em um pronto para usar, o VL6180X é fácil de integrar e economiza para o fabricante do produto final longas e caras otimizações de design óptico e mecânico.

O módulo é projetado para operação de baixa energia. Eu usei a placa de breakout Pololu, que tem reguladores de tensão a bordo que permitem trabalhar em uma faixa de tensão de entrada de 2,7 V a 5,5 V.

O sensor permite 3 fatores de escala válidos que definem a faixa máxima de medição de 20 a 60 cm, com diferentes sensibilidades. Configurando um fator de escala de alcance, o alcance máximo potencial do sensor pode ser aumentado ao custo de uma resolução mais baixa. Definir o fator de escala para 2 fornece uma faixa de até 40 cm com resolução de 2 mm, enquanto um fator de escala de 3 fornece uma faixa de até 60 cm com resolução de 3 mm. Você tem que testar as 3 escalas com as dimensões da sua caixa de correio. Como o meu tinha 25 cm (H), usei fator de escala = 1.

Etapa 3: Personalização do relógio em tempo real

Para o RTC, usei uma placa de breakout DS3231 que inclui um EEPROM (inútil para o meu propósito) e uma bateria do tamanho de uma moeda. Como decidi alimentar o RTC por meio da bateria do dispositivo principal (um 3v CR123), removi a bateria tipo moeda; para economizar energia também removi a EEPROM (cortando cuidadosamente seus pinos) e o led integrado.

A bateria tipo moeda não foi útil para mim porque eu não precisava manter data / hora / minuto / segundo em tempo real, mas o RTC precisava apenas contar 24 horas e então acionar o alarme para ligar o dispositivo.

Etapa 4: Outros diversos a bordo

Outros diversos a bordo
Outros diversos a bordo
Outros diversos a bordo
Outros diversos a bordo

O acionamento do dispositivo é realizado por um transistor e circuito MosFET, acionado pelo alarme RTC. Assim que o alarme é reiniciado, o circuito corta a energia do dispositivo para outro ciclo de 24 horas. Quando o alarme é atingido, o DS3231 muda um pino de alto para baixo: em condições normais, o transistor está saturado e curto para a porta MosFET de aterramento. Uma vez que o alarme traz a base do transistor para o aterramento, ele abre e permite que o MosFET feche o circuito e forneça energia para o resto dos componentes.

Além disso, adicionei um jumper “test-1M”. O objetivo dessa opção é - se ativada - alterar o ciclo de uma vez por dia para uma vez por minuto, a fim de executar testes de implantação. Para alterar o intervalo de um dia para um minuto, primeiro você precisa fechar o jumper “Test-C” por cerca de 15 segundos, para ignorar o período de ativação do alarme do relógio e ligar o dispositivo. Quando os testes forem concluídos, abra os jumpers e reinicie o dispositivo (desligue e ligue).

Etapa 5: Esquemático

Esquemático
Esquemático

Etapa 6: Software e lógica

Durante os testes eu usei (por razões práticas) um controlador NodeMCU, então o software cuida disso configurando a variável CHIP para “NodeMCU” ou “esp8266”.

O esboço implementa a biblioteca WiFiManager para permitir que o dispositivo se conecte a um AP WiFi válido durante a primeira execução. Nesse caso, o dispositivo entra no modo AP, permitindo que você se conecte a ele e escolha a rede WiFi certa para se conectar. Em seguida, a configuração da rede é salva na EPROM para os ciclos subsequentes.

A variável REST_MSG contém a mensagem http a ser enviada quando o sensor encontra um objeto na caixa de correio. No meu caso, ele envia uma mensagem para um servidor REST domotic, mas você pode alterá-lo como preferir: uma mensagem BOT do Telegram, um evento IFTTT WebHook, etc.

O resto do esboço está todo na função setup (), já que o loop nunca é alcançado. Após as configurações necessárias para as várias bibliotecas, o software acerta a hora do relógio para 00:00:01 e o alarme para uma vez por dia (ou uma vez por minuto se o jumper “test-1M” estiver ativado). Em seguida, faz a medição, envia a notificação (se algum objeto for encontrado na caixa de correio) e zera o pino de alarme, desligando o aparelho. Ao final do ciclo, apenas o RTC está ligado, contando 24 horas. O jumper Test-1M é conectado ao pino RX do ESP8266, usado como GPIO-3 por meio da configuração: setMode (PIN, FUNCTION_3). Devido a isso, você não pode usar o monitor serial durante a execução do ESP8266: a linha “#define DEBUG” (que permite todas as impressões seriais no esboço) é usada apenas quando um NodeMCU é instalado no lugar de um ESP8266.

O ESP8266 lida com a comunicação I2C com o RTC e o sensor por meio de seus pinos GPIO-0 e GPIO-2, inicializados na biblioteca Wire.

O código completo pode ser baixado deste link.

Concurso de tecnologia assistiva
Concurso de tecnologia assistiva
Concurso de tecnologia assistiva
Concurso de tecnologia assistiva

Vice-campeão no Concurso de Tecnologia Assistiva

Recomendado: