Latch e a Internet das Coisas: Integração prática com Arduino (II)

terça-feira, 13 de outubro de 2015

Para alcançar o objetivo de integrar Latch com o Arduino, explicaremos primeiramente nesta edição, o que é um Arduino e como adicionar acesso à internet por menos de 20 reais. Neste caso escolhemos o módulo WiFi ESP8266 que também tem uma comunidade muito grande e é simples de usar. Agora veremos como:

Integração IoT de Latch com Arduino

Arduino é uma popular plataforma aberta de hardware, amplamente utilizada em todos os tipos de projetos eletrônicos (especialmente em ambientes educacionais) por sua simplicidade e baixo custo. Com base na arquitetura de microcontroladores AVR da ATMEL, fornece um completo ambiente de desenvolvimento integrado (IDE) de código aberto, inspirado em Processing e conta com uma linguagem de programação Wiring que forma o conjunto de software livre AVR-libc.

Sendo uma plataforma aberta, tanto de hardware como de software, foi criado um ecossistema de desenvolvedores que tornam públicas suas bibliotecas de código. Há fabricantes que produzem diferentes placas e acessórios (Shields) compatíveis, tudo a um baixo custo. Portanto, não há dificuldade na obtenção de todos os elementos necessários para a integração com Latch: desde as  matérias-primas até informações abundante de todos os tipos.

Módulo WIFI ESP8266

Há muitas maneiras de conectar um Arduino convencional a Internet de forma autônoma, sem a necessidade de utilizar um híbrido como o Arduino Yun. Geralmente acessórios shields de Ethernet são utilizados por WiFi ou GSM/GPRS, mas as chances de tais combinações são estritamente limitadas pela escassez de recursos do microcontrolador ATMEGA328P com apenas 2 Kbytes de SRAM.

A vantagem de usar um módulo externo é liberar o Arduino das tarefas mais pesadas de conexão de rede: desde o acesso à mídia neste caso wireless (802.11b/g/n com segurança em WEP/WAP/WPA2) para a pilha TCP/IP completa: IP, TCP, UDP, ARP, DHCP, DNS e até mesmo o SSL.

Entre os módulos externos mais interessantes, embora não tenha sido projetado especificamente para Arduino, você pode conectar à Internet através da pequena ESP8266. Um SoC (System On a Chip) econômico que fornece conectividade Wi-Fi 802.11b/g/n 2.4GHz. Seu firmware também suporta vários padrões de segurança como o WPA/WPA2 e TLS/SSL, dentre muitos outros.

Baseado no núcleo Tensilica Xtensa LX (empresa que realizou o projeto lógico), os chips produzidos pela Espressif (quem fabrica o chip e publica os SDK) são montados em diferentes módulos por vários fabricantes. AI-Thinker fabrica os módulos já prontos para usar, estes são os mais difundidos.

Diferentes módulos ESP8266 da IA-Thinker

Graças a empresa Espressif que tornou público o kit de desenvolvimento (SDK) com toda documentação, surgiu uma grande comunidade de desenvolvedores de software, permitindo você substituir o firmware original do Eletrodragon que fornece uma interface mediante a comandos AT, por autênticos sistemas incorporados como NodeMCU ou MicroPython. Chegou até a aparecer um SDK alternativo baseado no GCC, ou uma extensão para programá-lo através do IDE do Arduino. Em nossa prática, nós substituiremos o firmware para viabilizar a implementação desejada.

Você pode obter o módulo ESP8266 em lojas especializadas ou on-line por menos de 20 reais.

espduino

Uma das maneiras mais originais de orquestrar a conexão entre o Arduino e o módulo ESP8266 é usado espduino: um projeto particular publicado em Open Source sob a licença do MIT, que consiste de duas partes:
  • Uma biblioteca para Arduino que implementa uma API RESTful.
  • Um firmware para o módulo de ESP8266.
Ambos os dispositivos se comunicam usando protocolo SLIP (Serial Line Internet Protocol),  um veterano da série de protocolos padrões (RFC 1055). Ainda hoje é usado em sistemas embedados por por sua simplicidade, mas totalmente substituido por  PPP (Point to Point Protocol RFC 1661) na maioria dos sistemas, visto que oferece muitas vantagens.

Esquema de comunicação entre o Arduino e ESP8266

A implementação RESTful de espduino suporta o método GET e a inclusão de cabeçalhos personalizados, suficiente para consumir a API de Latch  No entanto, o único handshake SSL não  suporta chaves maiores do que as de 1024 bits. O "problema" é que, hoje, a maioria dos serviços sob HTTPS usa certificados com chaves de 2048 bits ... e este é o caso da Latch,  então você vai precisar articular um mecanismo de intermediação.

Resumo do certificado utilizado no domínio da API do Latch

Na próxima edição, veremos como configurar o espduino para a conexão entre o Arduino e o módulo de WiFi e também como resolver o problema dos 2048 bits.


Jorge Rivera
jorge.rivera@11paths.com

traduzido por Leandro Bennaton
leandro.bennaton@11paths.com

Nenhum comentário:

Postar um comentário