Airton Toyofuku

Uma visão sistêmica de um Projeto IoT

*Este artigo foi originalmente publicado em https://www.embarcados.com.br/projeto-iot/

Neste artigo vamos abordar o uso de uma visão sistêmica aplicada a um Projeto IoT, demonstrando como ela é importante durante todo o processo de desenvolvimento para maximizar as chances de sucesso do seu projeto, até transformá-lo em produto ou serviço.

Introdução

Você já deve ter ouvido falar da Internet das coisas (Internet of Things, IoT), certo? Basicamente, é uma rede de dispositivos eletrônicos capazes de coletar e transmitir dados pela internet.

Devido a revolução tecnológica, IoT tornou-se um dos assuntos principais de vários grupos de discussão, iniciativas do tipo DIY (Do it Yoursef) e foco estratégico para diversas empresas de tecnologia, devido à alta capacidade dos processadores, avanço dos meios de comunicação sem fio, técnicas de baixo consumo, implementação de técnicas de inteligência artificial, aprendizado de máquina, e principalmente os baixos custos relativos, permitem que diversas ideias e projetos possam finalmente sair do papel.

Trabalhamos com projetos de dispositivos eletrônicos há mais de dez anos, e temos nos deparado com vários projetos IoT. Alguns foram um sucesso, outros nem tanto. Para compensar essas falhas, nosso foco se voltou para nos atualizar nas tecnologias e aprender componentes novos, porém, somente os detalhes tecnológicos não garantem o sucesso de um projeto IoT.

Não me entenda mal, o conhecimento técnico é um agregador necessário, afinal, como qualquer profissional, estar atualizado é requisito. O erro é dar foco demais na técnica e esquecer outros detalhes que fazem de um projeto um sucesso, como técnicas de gestão e análises de mercado.

Com isso em mente, começamos a aplicar técnicas de gestão de projeto, nos especializando nas boas práticas do PMBOK e Scrum. O método empregado em si não é relevante, pois cada caso é um caso, e um pode ser mais adequado que o outro, mas novamente, somente se apoiar no método de gestão não é garantia de sucesso do projeto. Eles vão permitir que a sua ideia de dispositivo IoT saia do papel, mas eles não te dizem como continuar com o negócio ou a operação do mesmo.

Finalmente, vamos abordar a “Visão Sistêmica”, cuja definição, entre muitas, é compreender as nuances que envolvem um negócio. Temos que ter noção não só do produto ou serviço que oferecemos, mas também do problema que queremos resolver e das partes, direta ou indiretamente relacionadas, para que o nosso projeto IoT seja um sucesso.

Deixamos a visão sistêmica como o último dos três, mas ela deve ser levada em conta antes mesmo de começarmos a falar sobre a tecnologia ou técnicas de gestão, já que esse é o conhecimento chave para determinarmos se a nossa ideia envolvendo IoT faz sentido ou não, portanto, esse artigo tem como objetivo apresentar, de forma simples e resumida, como é um processo de desenvolvimento de uma solução IoT, considerando uma visão sistêmica.

Definindo uma visão sistêmica para Projeto IoT

Como vimos anteriormente, a visão sistêmica significa ter conhecimento de tudo que envolve o negócio, como por exemplo:

  • Qual o problema que queremos solucionar?
  • Quem são as pessoas/empresas que têm esse problema? O quão elas querem esse problema resolvido? Quanto elas estão dispostas a pagar pela solução?
  • Como essas pessoas/empresas vão pagar pela solução?
  • Por que ninguém ainda solucionou esse problema?
  • Quais são os meus concorrentes, e o que eles estão fazendo?
  • Quem são os meus fornecedores? Quais os custos envolvidos? Quais os prazos?
  • Quais as normas e leis devemos atender? Quais os certificados e licenças envolvidos?
  • Quem são as pessoas que preciso do meu lado para que o projeto/negócio seja um sucesso? O que essas pessoas querem? Elas compartilham da mesma visão que a minha?

Esses são alguns exemplos de perguntas que devemos fazer antes de iniciarmos qualquer tipo de empreendimento.

Para o caso de um projeto IoT, algumas dessas perguntas já têm respostas definidas, tanto por padrões e boas práticas adotadas como por experiência adquirida, e outras, dependem da configuração da solução que pretendemos implementar, como ambientes em que o dispositivo vai ser instalado, necessidades de técnicas de segurança e até atualização de software.

Vejamos exemplos de respostas para algumas perguntas padrões:

Q: Como essas pessoas/empresas vão pagar pela solução?

R: Essa é uma pergunta chave, que vai determinar como o negócio será conduzido. O dispositivo pode ser oferecido em comodato, cobrando uma taxa de instalação, e mensalidades pelo serviço prestado, semelhante ao serviço de tv a cabo ou internet por exemplo. Ou o dispositivo também pode ser vendido diretamente, cobrindo algumas funcionalidades básicas, e cada upgrade é cobrado separadamente, através de uma customização ou atualizações de software específicas, como rastreadores veiculares por exemplo. Cada aplicação vai ter uma característica de cobrança e recorrência, que por muitas vezes já estará muito bem estabelecida no mercado, por isso, é sempre bom pesquisar negócios similares ao que se está pretendendo.

Q: Por que ninguém ainda solucionou esse problema?

R: Se o problema ainda não foi resolvido, pode significar que o esforço para tanto não compense economicamente, ou a tecnologia atual não possibilita uma solução viável, ou o status atual é resistente a mudanças. Para esses três exemplos existem soluções que, se bem desenhadas, podem levar ao sucesso. Como exemplos, podemos ver várias startups que simplesmente fizeram algo de uma forma diferente, quando disseram que não era possível. Novamente, a pesquisa de negócios similares é a melhor fonte de informações.

Q: Quem são os meus fornecedores? Quais os custos envolvidos? Quais os prazos?

R: Essas são algumas das perguntas mais importantes quando se trata de Projetos IoT. O dispositivo eletrônico pode ser comprado e customizado diretamente com um fabricante, ou pode ser exclusivo e projetado para uma solução específica. Neste caso, o primeiro é muito mais barato e rápido, por já estar numa linha de produção e exigir algumas alterações apenas, enquanto o segundo será muito mais caro, por ser necessária uma linha de produção que só montará o seu produto específico, além dos custos e tempos envolvidos na concepção e desenvolvimento do dispositivo exclusivo, seja com uma equipe interna ou com a contratação de uma Design House, por exemplo.
Dispositivos eletrônicos montados no Brasil possuem impostos e taxas como IPI, ICMS, PIS, COFINS, enquanto produtos importados estão sujeitos a taxa cambial e impostos de importação. O controle de qualidade em ambos os casos também deve ser levado em conta, considerando o fuso horário, as barreiras culturais e até mesmo o custo de uma viagem.
Os prazos também são muito importantes, pois o mercado de componentes eletrônicos possui características peculiares. Para baixos volumes é possível comprar insumos com prazos de algumas semanas, mas com custos de varejo, enquanto para altos volumes, em que o custo de atacado é mais interessante, os prazos podem chegar a meses, dependendo da disponibilidade dos fabricantes.
Quando falamos de um projeto IoT específico e de autoria própria, nossa preocupação com fornecedores é ainda maior, uma vez que os componentes eletrônicos têm data para sair do mercado. Durante o projeto podemos escolher um componente em que o fabricante garante fornecimento por mais cinco anos, depois disso ele sai de linha, igual aos modelos de carro. Isso é um problema se no nosso planejamento está especificado que o ciclo de vida do produto vai durar dez anos, pois a partir do sexto ano, teremos problemas em encontrar componentes para produção, o que vai nos demandar uma reengenharia do dispositivo.
Para evitar o fim de vida de componentes (End of Life, EOL), pode ser usar componentes recém lançados, mas aí temos outro problema, pois como o componente é novo, ele não tem histórico de uso, os engenheiros de aplicação não estão familiarizados com o componente e o suporte pode ser a nível básico, e em alguns casos, podem haver problemas técnicos no componente, ou na produção do mesmo, que comprometam a qualidade.
Quando se trata de um projeto IoT, a escolha de componentes é uma das etapas mais importantes do processo.

Q: Quais as normas e leis devemos atender? Quais os certificados e licenças envolvidos?

R: Para dispositivos que possuem algum tipo de comunicação, o certificado da ANATEL é obrigatório. Se o mesmo possui uma característica de monetização, como medidores de energia e taxímetros, ou é oferecido diretamente ao público no varejo, o INMETRO também é obrigatório. Se for algo relacionado à saúde, temos que passar pela ANVISA. Se for exportado, deve seguir as normas do país de destino. Se vamos usar uma operadora de celular específica, ou broker do tipo LoRa/Sigfox, o dispositivo também deve ser homologado por essas operadoras. Cada órgão também classifica os dispositivos em categorias, sendo normas específicas para cada uma, e consequentemente, testes e documentos distintos. Produtos importados também devem ser submetidos a homologação.
Um produto que não possua alguma certificação pertinente é passível de proibição de comercialização e multa para os responsáveis, por isso é importante termos o conhecimento das normas que precisamos atender desde o início do projeto.

Note que até agora não entramos nos detalhes de hardware ou software e nem definimos protocolos ou meios de comunicação, que são os tópicos que a maioria de nós ataca logo de cara, mas todos os pontos abordados até o momento são muito importantes para que o nosso projeto IoT tenha sucesso.

Partes envolvidas em um projeto IoT

Vimos anteriormente que algumas perguntas devem ser feitas, e respondidas, antes mesmo de começarmos a pensar em colocar a mão na massa. A seguir, vamos apresentar quais são os principais atores que podem nos ajudar a responder a essas perguntas, ou mesmo nos fazer outras tão importantes quanto.

Figura 1 – Principais atores de um projeto IoT
  • Órgãos Reguladores e OCD: Além da Anatel, Inmetro e Anvisa, temos que nos atentar se a solução está em conformidade com a Lei Geral de Proteção aos Dados (LGPD), e com as normas específicas, como ISO, SAE, ABNT, PCI, etc. Essas normas existem para garantir a compatibilidade, interoperabilidade, segurança e qualidade dos sistemas, e algumas, se não seguidas, podem resultar num prejuízo significativo. Para nos auxiliarem com esses assuntos existem as OCDs (Organismos de Certificação Designados) que são instituições técnicas detentoras do conhecimento das normas e que conduzem os processos de avaliação de conformidade. Consultar uma OCD a respeito das normas de operação e testes de homologação de um dispositivo IoT é uma das primeiras coisas a se fazer no desenvolvimento do projeto;
  • Fabricante e Distribuidor: Existem diversos fabricantes de componentes eletrônicos e não vamos listá-los aqui, mas a informação importante é que eles raramente vendem algum componente diretamente para o montador, ou para você, uma vez que as negociações são pautadas em grandes volumes. A aquisição é feita através de distribuidores. Por exemplo, você não compra açúcar diretamente da refinaria. É preciso ir ao mercado comprar o açúcar de uma determinada marca. Para componentes eletrônicos é quase a mesma coisa, você não compra um chip diretamente do fabricante, precisa ir até um distribuidor. Ambos fornecem material técnico, treinamento, amostras e também disponibilizam os FAEs (Field Application Engineer, ou Engenheiros de Aplicação) para auxiliar e tirar dúvidas do uso dos componentes no seu projeto;
  • Montador de placas eletrônicas: É a fábrica que irá transformar o nosso projeto em produto. Ela possui as linhas de produção com o maquinário para posicionar, soldar e testar os componentes, gravar o software na placa eletrônica e testar se as funcionalidades estão de acordo, além de controlar e garantir a qualidade de montagem. Manuais de operação, caixas, selos e embalagens também são considerados nesse player, mas são de responsabilidade do projetista determinar suas características e possíveis fornecedores. Escolher um montador nas primeiras etapas de projeto é importante para se definir os custos de produção, prazos de entrega e garantir que o dispositivo que estamos projetando seja montado de uma forma fácil e simples;
  • Testador de placas eletrônicas: Ele atua em conjunto com o montador. Enquanto um possui as linhas de montagem, o testador vai providenciar os equipamentos específicos para gravar o software embarcado no dispositivo e testar placa por placa, para garantir a qualidade. O testador deve ser envolvido no projeto juntamente com o montador, para garantir que o dispositivo que estamos projetando seja testado de forma eficiente e eficaz. Normalmente, os montadores já possuem testadores parceiros;
  • Provedor de Comunicação: Um sistema IoT sem comunicação não é IoT. Os principais meios aplicados são Bluetooth, WiFi ou LPWA, e todos eles precisam de uma infraestrutura para funcionar. Se o dispositivo se comunica via WiFi, é necessário um ponto de acesso, com senha e autorizações para permitir a comunicação. Se é via LPWA, a disponibilidade da rede no local de instalação é primordial, além da gestão dos Simcards, plano de dados e broker para trafegar a informação. A escolha do meio de comunicação aplicado também não deve ser aleatória, uma vez que cada uma possui uma característica e aplicação bem definida;
  • Servidores de aplicação: O mínimo que um sistema IoT possui é um dashboard para se visualizar os dados, mas por trás dessa tela com gráficos e números, temos bancos de dados, algoritmos, filtros, regras, controle de dispositivos, protocolos de comunicação, processos de atualização de software, segurança e criptografia, e em alguns casos, até aplicativos mobile. Com o advento da computação em nuvem, essas funcionalidades e ferramentas ficaram mais acessíveis, mas nem por isso menos complexas;
  • Instalação e treinamento: A instalação em campo e treinamento no uso dos dispositivos, normalmente, faz parte da operação do negócio, mas devem ser levados em consideração já na etapa de projeto. Um dispositivo de difícil instalação ou manuseio pode resultar em custos operacionais muito altos, ou mesmo a instalação, ou interpretação errada dos dados, podem comprometer a funcionalidade e consequentemente, a confiança do cliente;
  • Manutenção: Uma vez instalados, é preciso determinar os planos de manutenção do sistema, para garantir que o mesmo permaneça operante e que falhas possam ser corrigidas no menor tempo possível, com o mínimo ou nenhum prejuízo. Novamente, o plano de manutenção é determinado na fase de operação, mas ao mesmo tempo, na fase de projeto, devemos nos preocupar com um dispositivo de fácil manutenção;

Novamente, não entramos em nenhum detalhe técnico de eletrônica ou programação, mas é notável a importância de se conhecer todo o processo e atores, mesmo que os mais elementares, envolvidos em um projeto IoT, pois cada um deles tem influência sobre o mesmo e pode ser crucial para o sucesso, ou fracasso do projeto.

Conclusão

Neste breve artigo apresentamos uma abordagem de visão sistêmica em um projeto IoT, levando em conta as partes referentes a negócio e integração que envolvem o dispositivo, demonstrando que o sucesso do mesmo depende igualmente das partes envolvidas e das estratégias adotadas, tanto quanto das tecnologias e técnicas aplicadas em sua construção.

Essa visão foi sendo moldada através da experiência adquirida desenvolvendo projetos IoT durante anos, e não deve ser considerada como única ou totalmente verdadeira, pois como apresentamos no texto, cada caso é um caso. O importante é entendermos que devemos aplicar a visão sistêmica sempre.

AWS IOT PARTNER SUMMIT 2016

No dia 18 de agosto de 2016, aconteceu em São Paulo, na Casa do Saber, o AWS IoT Partner Summit.

Um evento especialmente preparado pela AWS para discutir o mercado de IoT no Brasil e como este tema está influenciando os modelos de negócios atuais.

O evento contou com a participação de grandes players do mercado, que compartilharam suas experiências com o desenvolvimento de sistemas, utilizado os serviços da AWS, e como eles tiraram proveito das arquiteturas em nuvem.

Também foram apresentadas várias ferramentas e novas tecnologias em eletrônica embarcada, que possibilitam a comunicação com a nuvem de forma simples e rápida, e uma discussão bem aprofundada sobre como funciona o serviço AWS IoT.

Em meio a toda a novidade tecnológica, fui convidado para representar a Quadrar e falar um pouco sobre a solução desenhada para a Zazcar, em que foram apresentadas as características do hardware que foi desenvolvido, e como foi realizada a interface de comunicação com o AWS IoT.

AWS RE:INVENT 2016 LAS VEGAS

Está virando tradição prestigiar ao AWS Re:Invent. Esse ano e evento ocorreu dos dias 28/11 a 02/12, um pouco mais tarde em relação ao ano passado, e contando com dois centros de exposição.

Os pontos altos, como sempre, foram os keynotes do CEO Andy Jassy e do CTO Werner Vogels, ondem foram expostos os novos produtos da AWS.

Este ano, o foco foi inteligência artificial e análise de dados, com várias soluções para banco de dados e integrações de serviços, mas o que chamou a atenção foi a abertura e disponibilização de ferramentas para se desenvolver aplicativos para o Amazon Echo. Soluções para processamento de imagens, processamento de voz e inteligência artificial irão permitir que a Alexa, assistente que roda no Amazon Echo, esteja mais presente do que nunca nas soluções por vir.

No segmento de IoT, foi anunciado o Green Grass, um serviço que vai permitir que os dispositivos possam realizar parte do processamento que normalmente seria realizado em nuvem, localmente e a Competência em IoT, que irá certificar que um parceiro tem total domínio sobre os serviços que englobam esse segmento.

Como no ano passado, tivemos outra cereja neste. O CEO Andy Jassy fez uma anuncio sobre os grandes casos de sucesso envolvendo o AWS IoT, e entre eles, o caso da Zazcar, projeto que estivemos diretamente envolvido =)

Novamente voltamos com mais algumas lições de casa esse ano, orgulhosos pelo reconhecimento e motivados a continuar criando produtos inovadores.

AWS RE:INVENT 2015 LAS VEGAS

Nos dias 5 a 9 de Outubro de 2015 aconteceu em Las Vegas a AWS re:Invent, o evento em que a divisão de Cloud Computing da Amazon apresenta suas novidades e dispõe seções técnicas de seus serviços.

Palavra de ordem: Segurança

No primeiro dia de evento, as seções disponíveis foram classificadas e disponibilizadas ao público de acordo com seu grau de entendimento da AWS. E como bom iniciante no assunto, fui logo encaminhado para a de Compliance na Nuvem, uma apresentação de 4 horas demonstrando, através dos cases de grandes empresas em diferentes ramos financeiros e prestação de serviços para o governo dos EUA, como é possível utilizar a Nuvem de uma forma segura e confiável, desmistificando o pensamento popular de que uma vez na Nuvem, seus dados estão vulneráveis.

Primeiro Keynote

No segundo dia fomos recebidos logo cedo pelo SVP da AWS, Andy Jassy, fazendo a abertura oficial do evento, exaltando os números cada vez mais crescentes de utilização da AWS no mundo, trazendo cases de grandes clientes, anunciando novos serviços e enfatizando o papel da AWS no mercado: Prover liberdade e facilidade de acesso nos serviços de “datacenter”.

O ponto de destaque, não somente dessa, mas como das demais que ocorreram no evento, foi o anuncio de novos serviços, uma parte pelo impacto que causaram no mundo de arquitetura de TI e em parte pela disponibilidade aos usuários. 90% desses serviços foram anunciados como “Disponível hoje!”, bastando apenas apertar o F5 no seu painel de gerenciamento da AWS para que ele fosse disponibilizado para seu divertimento. Fácil assim, poucos segundos após o anuncio ao vivo ali no palco.

Entre os anúncios de novos serviços, estavam a facilidade de trafegar e migrar dados para dentro e fora da nuvem com os Amazon Kinesis Firehose e o AWS Snowball. A facilidade de migração e livre escolha entre banco de dados com o suporte ao MariaDB e o AWS Migration Service. Com relação a segurança na nuvem, foram anunciados o AWS Inspector, que verifica se sua aplicação está dentro das regras de segurança, o AWS Config Rules, para reforçar o sistema de regras de segurança e o AWS WAF, que é basicamente um firewall baseado em software que pode ser configurado pelo usuário. Para Business Intelligence, foi anunciado o Amazon QuickSight, a ferramenta que permite realizar a análise de dados diretamente na nuvem. E vários outros cuja menção tornaria esse texto exageradamente extenso.

Para fechar o dia, algumas seções técnicas sobre banco de dados, Amazon Kinesis, desenvolvimento de sistemas mobile e entendemos como o Netflix atende uma demanda de consumo de 37% da banda de internet dos EUA e mantem 100% de disponibilidade!

Segundo Keynote

Werner Vogels, CTIO da AWS, nos recebeu para o segundo keynote com um discurso mais técnico, mas seguiu o modelo de seu predecessor com números, cases e novidades como o Amazon Kinesis Analytics, novas configurações para as instancias EC2, incluindo a possibilidade de ter 2 Terabytes (Sim, Terabytes!) de memória RAM, suporte ao Python para o AWS Lambda, e uma quebra de paradigmas em que é criado um servidor, sem um servidor! Tudo apenas utilizando os serviços da AWS e não precisando levantar uma instancia sequer.

Mas nada me deixou tão empolgado como o anuncio do AWS IoT, o serviço da Amazon para a internet das coisas (Internet of Things).

Com cases da BMW, GM, Philips Health Care, John Deer e com o apoio dos maiores fabricantes de microcontroladores e microprocessadores do mercado, como Microchip, Renesas, Broadcom, Qualcomm, Texas Instruments e até mesmo o Arduino, a AWS lançou um serviço completo, desde o SDK, para o desenvolvimento do software embarcado, até a visualização dos dispositivos por parte do usuário.

Com processos de autenticação através de certificados e chaves únicas para cada dispositivo, o serviço permite garantir a identificação de cada “coisa” e prover, ou bloquear, a comunicação entre as partes.

Disponibiliza brokers e gateways com suporte a MQTT e TLS, para um trafego de mensagens seguro e de baixa ocupação de banda.

Com o conceito de Shadow, o status de cada dispositivo está sempre disponível para a aplicação e garantem o controle individual de cada um sem que ele esteja necessariamente on-line.

A integração com os outros serviços AWS, como Kinesis, Lambda, SNS, DynamoDb, etc, garante o rápido desenvolvimento das aplicações finais e disponibilidade para o usuário.

E a cereja do bolo, o SDK disponibilizado para facilitar a conectividade de seu dispositivo aos serviços da AWS. Esse SDK está disponível em C, Java e até para Arduino, sendo compatível com os maiores e melhores Vendors de microcontroladores e microprocessadores, e suportado por sistemas operacionais como FreeRTOS e Linux.

Com o AWS IoT, a Amazon deu todas as ferramentas para que o desenvolvimento de dispositivos conectados tenha seu time-to-market e sua complexidade reduzidos drasticamente.

A partir desse anuncio, novas seções técnicas foram disponibilizadas visando apresentar aos participantes do evento as possibilidades deste novo serviço e seu impacto no desenvolvimento de projetos de IoT. Como consequência, minha agenda foi toda reestruturada e minhas folgas para passeios foram eliminadas!

Conclusão

Voltando para o Brasil com uma lição de casa considerável, não poderia ter escolhido o melhor ano para prestigiar a AWS re:Invent. Com o anúncio de serviços chave para o ramo de IoT, a AWS vai prover a agilidade e a qualidade no desenvolvimento de nossos projetos e estamos ansiosos para descobrir até onde podemos chegar com toda essa “liberdade” que nos foi apresentada.