[1/3] Do hardware à nuvem: Construindo sua própria solução IoT
Você já pensou em desenvolver sua própria aplicação IoT do zero, mas não sabia por onde começar? Para você e todas as almas criadoras que desejam materializar seus projetos, contarei minha experiência, porque também já passei por isso.
Introdução
Este é o primeiro de uma série de artigos através dos quais descreverei todo o processo, desde o design do hardware até a aplicação na nuvem, para dar vida ao meu projeto. Os desafios, problemas, conquistas e até alguns detalhes técnicos e tutoriais relacionados a dispositivos específicos utilizados nas diferentes etapas do processo.
Como escolhi meu projeto?
Primeiramente, deixe-me apresentar-me: sou estudante de engenharia elétrica e estou prestes a encerrar minha carreira. Para meu projeto de graduação, eu queria ter a experiência de projetar e desenvolver meu próprio dispositivo, e poder utilizá-lo para implantar uma aplicação IoT que pudesse contribuir para resolver um dos problemas da minha cidade. Além disso, eu queria que essa solução fosse acessível e simples, para que pudesse ser usada por qualquer pessoa, independentemente da sua formação. Depois de pensar por alguns dias sobre isso, me inclinei para problemas de mobilidade: implantar meu próprio aplicativo de estacionamento inteligente.
Por que escolhi este projeto?
À medida que a população mundial cresce cada vez mais, a mobilidade em muitas cidades tende a entrar em colapso devido ao grande número de veículos circulando nas ruas. Nos setores comerciais, o problema é pior devido ao tempo que o motorista leva para encontrar um lugar para estacionar o seu veículo, gerando congestionamentos insustentáveis. Os sistemas de estacionamento inteligentes tornaram-se uma ferramenta muito útil para reduzir problemas de mobilidade em locais com grande confluência de veículos.
No entanto, estes sistemas são geralmente complexos e caros. A sua instalação tem de ser feita por pessoal especializado e até a estrutura do estacionamento necessita muitas vezes de ser modificada. Além disso, muito dinheiro e tempo devem ser gastos em manutenção. Por essa razão, este tipo de sistemas não são implementados em todos os lugares. Por isso decidi construir uma solução mais simples, prática e barata para ajudar os motoristas a localizar vagas de estacionamento vazias.
Percebi que para desenvolver este projeto ele poderia ser dividido em duas grandes etapas: design de hardware e implementação de software.
Projeto de hardware
1. Definição de recursos do dispositivo
Como ponto de partida, foi necessário definir quais características exigiriam o projeto para começar a planejar como alcançá-las. Para o meu dispositivo, escolhi os seguintes recursos:
- Baixo consumo de energia
- Portátil
- Sem fio
- Longa duração da bateria
- Fácil de instalar
- Escopo de sinal longo
- Confiabilidade
2. Seleção de componentes modulares
Depois, precisei pensar nos componentes modulares que o dispositivo deveria ter para cumprir sua função: detectar a presença de um veículo em uma vaga de estacionamento e transmitir essa informação para o aplicativo de software sem fio.
Em primeiro lugar, precisaria encontrar um sensor capaz de detectar a presença de um veículo. Então, seria necessário um microcontrolador para ler, processar e organizar os dados coletados pelo sensor. Por último, mas não menos importante, seria necessária a utilização de um módulo wireless para enviar as informações a um servidor, onde os dados seriam armazenados para serem utilizados pelo software aplicativo .
Tendo tudo isso em mente, o passo seguinte seria pesquisar e selecionar todos os componentes e tecnologias necessários para atender aos requisitos mencionados anteriormente.
3. Seleção de tecnologias
Para selecionar a tecnologia, estudei o estado da arte em sistemas inteligentes de estacionamento e detecção de veículos. Descobri que as tecnologias de sensores mais comuns utilizadas para detecção de veículos são: infravermelho, ultrassom e magnético. Porém, considerei que as detecções utilizando sensores ultrassônicos e infravermelhos poderiam ter uma maior probabilidade de falhar, pois suas medições poderiam ser afetadas por coisas como o formato das superfícies ou mesmo a poeira do ambiente. Então, decidi testar primeiro os sensores magnéticos.
Comecei a procurar sensores magnéticos , principalmente com baixo consumo de energia e alta sensibilidade. Estudei as características de pelo menos 10 sensores diferentes e selecionei os cinco que me pareceram melhores. Posteriormente, criei uma planilha google onde registrei esses cinco sensores com suas principais características: tensão de alimentação, consumo de energia, sensibilidade, resolução e interfaces de comunicação, para compará-los.
Além disso, devido ao seu pequeno tamanho, certifiquei-me de que os sensores escolhidos possuíssem uma placa adaptadora para rápida prototipagem do sistema e avaliação do dispositivo. No final, escolhi aqueles com maior sensibilidade, mas com baixo consumo de energia. As referências desses sensores são MMC5883MA e LSM303AGR .
Para selecionar o microcontrolador, limitei minha pesquisa a arquiteturas de 8 bits , para reduzir o custo e a complexidade de programação, já que as tarefas que deveriam ser realizadas pelo microcontrolador são realmente simples. Eu precisava encontrar um microcontrolador de baixo consumo que incluísse uma embalagem que me permitisse fazer testes para a prototipagem, ou seja, apropriado para ser usado em uma protoboard. Acabei decidindo testar microcontroladores PIC, começando pelo PIC18F2550 .
Nesse ponto, precisei selecionar um módulo sem fio. A primeira pergunta aqui foi: qual tecnologia sem fio devo usar? Bem, depois de alguns dias de intensa pesquisa e conselhos de meus colegas de trabalho da Ubidots , decidi usar LoRaWAN . Devido às suas características como baixo consumo de energia, longo alcance e alta imunidade a interferências, LoRaWAN é uma tecnologia poderosa para aplicações IoT Embora haja uma limitação quanto ao tamanho dos pacotes que podem ser enviados usando LoRaWAN, isso não é um problema para IoT porque não são necessárias grandes cargas úteis para enviar dados coletados de sensores.
Posteriormente, procurei um módulo LoRaWAN com baixo consumo de energia, alto escopo e interfaces de comunicação serial. Era obrigatório garantir que a frequência de trabalho do módulo LoRaWAN coincidisse com a banda ISM do meu país. Algumas semanas antes, eu estava testando uma placa de desenvolvimento chamada SODAQ ONE . Essa placa inclui um módulo LoRaWAN integrado chamado RN2903 , que atendeu aos requisitos deste projeto. Então me acostumei a usar este conhecido módulo, que apresentou um comportamento muito bom nos testes realizados com o SODAQ ONE.
Se você já conhece o SODAQ ONE V3 e deseja começar a usar Ubidots , confira este guia e comece hoje mesmo!
Após realizar todas as etapas citadas acima, o próximo passo é testar os componentes selecionados e construir um protótipo. Os resultados desses testes determinarão se esses componentes foram escolhidos adequadamente para minha aplicação ou se devo mudar alguma coisa.
Para ser sincero, embora todo o processo pudesse ser complicado, a parte mais difícil para mim foi decidir por onde começar. Portanto, se você estiver interessado em desenvolver sua própria aplicação IoT , o que recomendo é que você tenha claro os objetivos, funcionalidades e todo o escopo do seu projeto, e o resto do caminho aparecerá sozinho diante dos seus olhos. .
Se você quer saber como tudo ficou, fique de olho nos próximos posts que estão por vir!
Atenciosamente, Daniela.