Índice:

IDC2018IOT GarbageCan-Online: 7 etapas
IDC2018IOT GarbageCan-Online: 7 etapas

Vídeo: IDC2018IOT GarbageCan-Online: 7 etapas

Vídeo: IDC2018IOT GarbageCan-Online: 7 etapas
Vídeo: CityOS Hackathon Dubrovnik: SMART TRASH CAN 2024, Novembro
Anonim
Image
Image
Peças Requeridas
Peças Requeridas

Introdução

Todo mundo sabe o que acontece quando deixamos o lixo na lata de lixo por muito tempo sem retirá-lo. Bem, o mais óbvio é que não há espaço para mais lixo, mas também começa a cheirar mal e fica muito desagradável.

Com este projeto, pretendemos ajudá-lo a monitorar suas latas de lixo pela casa / área de trabalho / etc, para que você sempre saiba quando elas estão cheias e possa tomar medidas imediatas levando o lixo para fora.

O sistema irá alertá-lo por notificação por telefone ou alerta do painel de que você tem que esvaziar a lata de lixo. O sistema leva em consideração o nível de enchimento da lata de lixo, mas também a temperatura e a umidade medidas em seu interior. Todos conhecemos a urgência de esvaziar as latas de lixo em dias quentes e úmidos …

Principais características

  1. Painel de monitoramento:

    • Seção principal:

      • Nível de enchimento de cada lata de lixo.
      • Temperatura e umidade de cada lata de lixo.
    • Seção de estatísticas:

      • A lata de lixo mais cheia.
      • A lata de lixo mais quente.
  2. Sistema de alertas e notificações:

    • Os seguintes eventos são suportados:

      • A lata de lixo está cheia.
      • Ocorreu um erro de sensor.
    • Os alertas de enchimento levam em consideração o nível de enchimento da lata de lixo, mas também os níveis de temperatura e umidade da lata de lixo.
    • Os alertas podem ser enviados por meio de notificações de telefone e alertas do painel.
    • Cada canal de alerta pode ser ligado e desligado por meio do painel.
  3. Escalabilidade:

    • Usando o botão de calibração, é possível ajustar o sistema para diferentes latas de lixo com capacidades variadas.
    • É possível adicionar mais latas de lixo com relativa facilidade. Pode-se montar o mesmo sistema em uma nova lata de lixo, definir a ID da lata de lixo e calibrá-la (apertar um botão). Ter mais de 3 latas de lixo exigirá a extensão do Dashboard (tarefa fácil de realizar).

Quem somos nós?

Este projeto foi criado (com amor e dedicação!) Por Rom Cyncynatus e Daniel Alima - Alunos do IDC Herzliya como um projeto final para nosso curso de IoT. Esperamos que nosso trabalho seja útil e que goste de usá-lo!

Etapa 1: peças necessárias

Para construir o sistema, você terá que adquirir os seguintes componentes e peças:

  1. Lata de lixo (de preferência com tampa): Isso vai ser usado para … bom.. você sabe o que vamos fazer com este, hein?;)
  2. Placa de ensaio: Para conectar todos os diferentes componentes sem usar solda.
  3. NodeMCU (ESP-8266): Encarregado de ler os sensores e enviar as informações para a nuvem.
  4. Sensor de distância infravermelho - Sharp 0A41SK: Este sensor medirá a quantidade de lixo (nível de plenitude) dentro da lata.
  5. Sensor de Temperatura e Umidade - DHT11: Este sensor medirá a temperatura e a umidade dentro da lata de lixo.
  6. Interruptor momentâneo: será utilizado para calibrar o sensor de distância de acordo com o tamanho da lata de lixo.
  7. Folha de Alumínio: Será usada para formar um detector do status da tampa - esteja ela aberta ou fechada.
  8. Fios de ligação: Obtenha muitos, e em diferentes comprimentos e cores. Irá conectar tudo junto.
  9. Fita adesiva: Teremos que prender as coisas no lugar.
  10. Cabo Micro-USB: Para conectar o NodeMCU ao seu computador para programação e, posteriormente, para uma fonte de alimentação.
  11. Fonte de alimentação USB (carregador de smartphone): Fornecerá energia ao NodeMCU quando instalado na lata de lixo.

Etapa 2: Fiação e montagem

Fiação e montagem
Fiação e montagem
Fiação e montagem
Fiação e montagem
Fiação e montagem
Fiação e montagem

Fiação

Coloque o NodeMCU na placa de ensaio para que seja conveniente anexá-lo posteriormente à sua lata de lixo e conecte o cabo USB a ele. Em seguida, consulte a imagem do diagrama de fiação acima para conectar os diferentes componentes ao NodeMCU. Certifique-se de usar fios longos para os sensores e fios de status para que seja conveniente instalar o sistema e usar a lata de lixo com ele.

  • Sensor infravermelho de distância - Sharp 0A41SK:

    • Vin (Tinto) Vin
    • GND (preto) GND
    • Vout (amarelo) A0
  • Sensor de Temperatura e Umidade - DHT11:

    • Vin (vermelho) 3V3
    • GND (preto) GND
    • DADOS (amarelo) D4
  • Mudança momentânea:

    • Pin1 D3
    • Pin2 GND
  • Fios de status da tampa (abrir / fechar):

    • Wire1 D2
    • Wire2 GND

conjunto

Montar o sistema na lata de lixo é bastante simples. Prenda a tábua de pão na lata de lixo, de preferência perto da tampa. Use fita adesiva ou presilha para prendê-lo no lugar. Então:

  1. Coloque o sensor de distância IR no meio da tampa (do lado interno!). Certifique-se de prendê-lo corretamente, ou você encontrará leituras falsas!
  2. Coloque o sensor de temperatura e umidade em algum lugar dentro da lata de lixo. Fixe com fita adesiva.
  3. Cubra a lateral da tampa e a ponta da lata de lixo com papel alumínio. Certifique-se de que haja um bom contato quando a tampa for fechada. Isso sinalizará ao sistema que a lata de lixo está aberta ou fechada. Em seguida, cole cada um dos fios de status da tampa em uma das folhas de alumínio e prenda com fita adesiva.

Etapa 3: configurar MQTT, Node-RED e IFTTT

Configure MQTT, Node-RED e IFTTT
Configure MQTT, Node-RED e IFTTT
Configure MQTT, Node-RED e IFTTT
Configure MQTT, Node-RED e IFTTT
Configure MQTT, Node-RED e IFTTT
Configure MQTT, Node-RED e IFTTT

A maior parte da lógica do projeto é realmente implementada na nuvem. O NodeMCU envia os dados para o servidor MQTT e o Node-RED os consome e aplica sua lógica nele (mais sobre a arquitetura mais adiante). Por último, para transmitir notificações push (alertas) para o nosso smartphone, usamos o IFTTT.

Usaremos os serviços de nuvem CloudMQTT e FRED como nossos servidores MQTT e Node-RED, respectivamente, e usaremos IFTTT para notificações push.

  1. Inscreva-se no CloudMQTT com o plano gratuito. Anote suas credenciais para o servidor MQTT (nome de usuário e senha).
  2. Inscreva-se no IFTTT. Crie um novo miniaplicativo de "Notificação de aplicativo IFTTT de Webhooks". Use "Notificação por telefone celular" como o nome do evento WebHookds. Consulte a imagem acima para os detalhes essenciais. Anote a chave API do fabricante.
  3. Baixe o aplicativo IFTTT para o seu telefone e entre com suas credenciais. Isso permitirá que você receba notificações push.
  4. Inscreva-se no FRED com o plano gratuito.
  5. Depois de ter a instância FRED instalada e em execução, importe os fluxos anexados para ela (botão 3 Barras, Importar da área de transferência). Basta colar o conteúdo de cada arquivo (widgest.json, alerts.json, statistics.json) e importá-lo.
  6. Edite um dos nós MQTT (um é o suficiente) para atualizar suas credenciais CloudMQTT.
  7. Edite o nó IFTTT para atualizar sua chave API do fabricante IFTTT.

Etapa 4: Programar a calibração da capacidade do NodeMCU e da lata de lixo

Assim que tivermos tudo conectado, precisamos programar o NodeMCU com o software apropriado (esboço) para que ele realmente utilize todo o material que está conectado a ele e se comunique com a internet.

  1. Baixe e instale o Arduino IDE aqui.
  2. Instale e defina o tipo de placa NodeMCU conforme explicado no início das instruções a seguir.
  3. Instale as seguintes bibliotecas (Sketch Include Library Manage Libraries …):

    1. Biblioteca Adafruit MQTT (por Adafruit)
    2. Biblioteca de sensores DHT (por Adafruit)
    3. SharpIR (por Giuseppe Masino)
    4. EEPROMAnything - explicação aqui.
  4. Abra o arquivo GarbageCanOnline.ino e atualize o seguinte:

    1. Suas credenciais de WiFi (WLAN_SSID, WLAN_PASS)
    2. Suas credenciais CloudMQTT (MQTT_USERNAME, MQTT_PASSWORD)
    3. Se esta for uma segunda lata de lixo ou mais, altere o ID da lata de lixo (GARBAGECAN_ID)
  5. Faça upload do esboço atualizado para o seu NodeMCU.
  6. Abra a janela do monitor serial (Ctrl + M) e certifique-se de que ele consegue publicar os dados dos sensores para CloudMQTT.
  7. Agora, quando a tampa estiver fechada e a lata de lixo vazia, pressione longamente o botão de calibração para calibrar a capacidade da lata de lixo.
  8. A lata de lixo está pronta. Você pode desconectá-lo do computador e conectá-lo no local designado usando a fonte de alimentação USB.

Etapa 5: usando o sistema

Usando o sistema
Usando o sistema
Usando o sistema
Usando o sistema
Usando o sistema
Usando o sistema

Se você chegou até aqui, tudo deve estar instalado e funcionando. Vamos fazer uma rápida visão geral dos diferentes aspectos de uso do sistema.

Presumimos que você tenha apenas uma lata de lixo conectada, mas é fácil adicionar mais mais tarde!

Primeiro, observe o painel principal. Você deve estar na tela inicial, vendo os níveis de enchimento, temperatura e umidade da lata de lixo. Você pode controlar as notificações do telefone e alertas do painel usando os interruptores à esquerda.

Quando a quantidade de lixo dentro da lata de lixo mudar, você verá que o medidor muda de acordo. Este também é o caso dos gráficos de temperatura e umidade.

Quando o nível de plenitude atinge 85% -90% (o limite exato depende da temperatura e umidade), ou ocorreu um erro de sensor, você receberá uma notificação por meio de seus métodos preferidos. Você será notificado uma vez a cada hora por lata de lixo.

Na visualização Estatísticas, você poderá ver a lata de lixo mais cheia e a mais quente. Título nada lisonjeiro, se assim podemos dizer …

Etapa 6: Compreendendo o fluxo

Compreendendo o fluxo
Compreendendo o fluxo
Compreendendo o fluxo
Compreendendo o fluxo
Compreendendo o fluxo
Compreendendo o fluxo
Compreendendo o fluxo
Compreendendo o fluxo

Como você provavelmente já notou, o sistema tem muitas "partes móveis". Tentaremos esclarecer como as coisas estão conectadas umas às outras.

Primeiro, temos nossa lata de lixo com o NodeMCU e seus sensores. Podemos ter muitos deles - apenas "cópias" uns dos outros.

O NodeMCU mede os diferentes sensores colocados na lata de lixo e publica os dados no servidor MQTT (protocolo MQTT). Você pode pensar no servidor MQTT como uma grande troca de informações, para a qual muitas latas de lixo podem relatar suas informações.

Outra entidade que se conecta ao servidor MQTT é o Node-RED. O Node-RED escuta as diferentes mensagens vindas da (s) lata (s) de lixo que transportam os dados sensoriais, e aplica sua lógica sobre ela. Funciona utilizando "fluxos" de informação. Cada vez que uma mensagem é recebida, com base em seu tipo (tópico MQTT), ela entra em cadeias de operações específicas que acabam ativando os diferentes recursos do sistema (atualização do painel, envio de alertas, etc.) Seria muito correto dizer que o Node-RED é o "cérebro" do sistema. Ele está ciente de tudo o que acontece em todos os lugares e pode agir de acordo com isso.

Dentro do Node-RED, construímos 3 fluxos principais de informação:

  1. Widgets - as informações sensoriais alimentadas no Node-RED são exibidas no painel por meio de medidores e gráficos.
  2. Alertas - As informações sensoriais são processadas para concluir se um alerta deve ser acionado (no painel ou no aplicativo do smartphone). O nível de enchimento, com a temperatura e umidade são levados em consideração para decidir informar ao usuário que a lata de lixo está cheia. Além disso, erros sensoriais são relatados pelo mesmo fluxo.
  3. Estatísticas - as informações sensoriais são agregadas para exibir as latas de lixo mais cheias e quentes.

Para que o Node-RED envie notificações push, ele se conecta a um serviço chamado IFTTT (por protocolo HTTP). Ele ativa um determinado evento IFTTT com o texto de notificação relevante e o IFTTT envia a notificação para o nosso smartphone (protocolos HTTP e XMPP).

Consulte as imagens acima para entender melhor (a) a estrutura geral do sistema, e (b) os 3 fluxos de informações diferentes dentro do Node-RED

Etapa 7: Desafios, limitações e planos para o futuro …

Desafios

Os principais desafios neste projeto foram principalmente lidar com os serviços MQTT e Node-RED. Primeiro usamos o AdafruitIO, mas sua implementação MQTT customizada não foi muito boa para nós. Não era conveniente trabalhar com seus "feeds" dentro do Node-RED. Portanto, eventualmente optamos pelo CloudMQTT, que é baseado no servidor Mosquitto MQTT e é muito mais padrão. Em seguida, passamos a lidar com o Node-RED, o que foi bastante desafiador, principalmente porque o Node-RED é uma besta. Por exemplo, é muito mais abrangente e profissional do que o IFTTT em nosso ponto de vista. Tivemos que ajustar e aprender a usar sua abordagem de design baseado em fluxo para construir nossos recursos necessários do sistema. Além disso, uma de suas maiores vantagens é o suporte a código javascript, mas demorou um pouco para nos acostumarmos, pois não somos programadores javascript. Apesar de tudo isso, realmente gostamos de trabalhar com essa ferramenta específica e a consideramos muito interessante e útil.

Limitações

Em relação às limitações, a primeira seria o fato de utilizarmos apenas serviços gratuitos, que não permitem o uso em escala plena. O plano gratuito CloudMQTT não permitirá ter mais de 5 conexões paralelas, ou seja, podemos ter apenas 4 latas de lixo e o Node-RED. O plano gratuito FRED Node-RED permite apenas 24 horas de uso direto, após o qual você deve fazer o login manualmente e zerar o cronômetro. No entanto, esses problemas são facilmente resolvidos executando esses serviços localmente ou pagando um pouco mais para eliminar as limitações. A segunda limitação é o fato de que quando alguém adiciona a quarta lata de lixo em diante, ele tem que editar manualmente o fluxo de widgets no Node-RED para adicionar seus widgets apropriados.

Planos para o futuro

Tínhamos algumas ideias para aprimorar ainda mais nosso sistema e estendê-lo:

  1. Passe para os serviços em nuvem não gratuitos. (único dia de trabalho).
  2. Adicionar um compressor de lixo à lata de lixo, reduzindo assim a frequência de esvaziamento. (4 meses de trabalho)
  3. Trabalhar com lixeiras urbanas e industriais para melhorar a eficiência dos caminhões da cidade que lidam com o lixo na cidade. Isso significaria melhorar muito o painel e o sistema de notificação para que os motoristas de caminhão possam planejar sua rota muito melhor ao lidar com o lixo. (6 meses de trabalho).
  4. Adicionar habilidades de reciclagem à lata de lixo, como a capacidade de despejar soluções biológicas especiais no lixo e ajudar a reciclá-lo enquanto ainda está dentro da lata de lixo. Isso pode ser usado internamente, por exemplo, para produzir composto para jardins, mas pode ser usado também em latas industriais. (6 meses de trabalho).

Recomendado: