PHPoC: Desenvolvendo Dispositivos Nativamente Conectados

Olá caro leitor, hoje venho apresentar a vocês, um novo brinquedo que chegou as minhas mãos e que tem tudo para tirar aquela sua ideia de dispositivo conectado da gaveta. Mais que isso, o PHPoC vai além da pegada maker e pode ser a peça faltante para a sua aplicação profissional focada em Internet das coisas (o tal do IoT, se me permitem utilizarei a abreviação). Se você leu PHPoC e focou no PHP referenciando a clássica linguagem de programação utilizada, principalmente em sistemas web, saiba que o PHPoC tem uma relação bem próxima do que vamos discutir aqui. A ideia é embarcar uma linguagem de programação tipicamente utilizada para construção de back-end web em um pequeno microcontrolador que possui a tarefa de se comportar como servidor permitindo que aplicações clientes se conectem e controlem (ou monitorem) atuadores (e sensores).

PHPoC: PHP on Chip

PHP dentro de um microcontrolador, é essa a proposta que a Sollae Systems (empresa por trás do PHPoC) está a oferecer. A ideia é oferecer uma plataforma programável em uma linguagem conhecida e poderosa como o PHP, claro respeitando os constraints de memória que um sistema embarcado tipicamente enfrenta. Mas não espere poder de processamento e conectividade limitados, o time de desenvolvimento do PHPoC escolheu bem os componentes para suas duas plataformas base, a base IoT programável, que opera em modo standalone ou como todo bom ecossistema que visa ter aquela pegada maker, eles também oferecem o PHPoC Shield para Arduino, sendo essa uma oferta muito interessante para prover conectividade seja ela Wireless (WiFi) ou Wired (Ethernet). Simplificando, o PHPoC consiste em uma plataforma completa de hardware (shield ou CPU) combinada com um kit de desenvolvimento de software com programação compatível com PHP. Recebi da loja do Baú da Eletrônica, os meus dois exemplares, tanto a base programável PHPoC Blue (a esquerda) e o shield Arduino wireless devidamente acoplado em um Arduino Mega (a direita):

 

PHPoC Blue e PHPoC Shield para Arduino
Figura 1 – PHPoC Blue e PHPoC Shield para Arduino

 

Antes de entrar em detalhes, vamos falar um pouco do que contém ambos os hardware programáveis, tanto o PHPoC Blue quanto o PHPoC Shield são compostos por:

  • CPU ARM Cortex M4F;
  • Memória flash on chip de 1Mbyte;
  • Velocidade de clock de 168MHz (lembram o que falei sobre processamento);
  • RTC on chip;
  • Comunicação abundante: SPI, I2C, USB, UART, PWM e Ethernet;
  • Dongle WiFi incluso em todas as versões wireless (as versões Wired já vêm com o conector de rede soldado na placa);
  • Base IoT trás um header fêmea para acesso a vários I/Os da CPU;
  • Shield Arduino possui encaixe pino compatível com o padrão Arduino Rev 3;
  • Shield Arduino possui conector para cartão SD.

Como vocês podem ver, poder computacional não vão faltar, além disso a quantidade absurda de portas de comunicação torna a plataforma perfeita para controlar uma infinidade de outros sensores, acelerômetros e conversores A/D. Mais que isso as portas PWM facilitam o controle de motores dos mais diversos tipos, bastando adicionar um estágio de potência para isso, ai fica a dica, um robô controlável de qualquer lugar do mundo combinando o poder da Romeo V2 (que já exploramos aqui no Blog) com o shield PHPoC. Acho que esse que vos escreve ja tem uma ideia de post com o PHPoC.

 

Mais uma CPU, uma coisa notável que o time da Sollae pensou foi em expansões para a base programável, ou seja além de placas base e shields, eles oferecem um catálogo extenso de expansões, que vão de I/O industriais a relé, controladores de servo de alta potência, até expansões focadas em sensores e barramentos populares como o conhecido MikroBus. Aumentando ainda mais as possibilidades das suas aplicações, já pensou naquele quadro de medida de energia elétrica acessível de qualquer lugar do mundo? Na loja obtive uma dessas expansões que vocês podem ver abaixo:

 

PHPoC Blue
Figura 2 – PHPoC Blue

Essa expansão, que está devidamente conectada a minha base programável (em questão é chamada PHPoC Blue), é uma saída a relé, tipicamente conhecida como contato seco, ela se comunica com a PHPoC Blue através de uma porta I2C, um expansor de I/O recebe os comandos e traduz para o comando correto ao relé. Apesar de serem lentos relés tem a vantagem de oferecer isolação galvânica, ou seja é possível controlar cargas de potências elevadas com máxima segurança de forma que se algum problema acontecer a carga, a PHPoC Blue (delicada) estará segura. Assim, temos a combinação perfeita de plataforma de hardware constituída por um computador programável, um conjunto de expansões e interoperabilidade graças as compatibilidade com Arduino e o barramento MikroBus.

 

PHPoC: É no Software Que Está a Real Diferença!

Sabemos que plataformas de hardware programável por sí não representam nenhum impacto, ou seja não causa aquele brilho nos olhos do desenvolvedor se não oferecer algo a mais. Partindo desse ponto, qual o diferencial da PHPoC? Sim está no software, trabalhar com uma linguagem de alto nível como o PHP economiza um tempo gigantesco no desenvolvimento, pois o usuário não tem que lidar diretamente com problemas típicos de sistemas embarcados como configuração de periféricos, roteamento de I/O para os terminais corretos, configuração de clock, e assuntos relacionados. Não, com o PHPoC você abre uma instância do hardware desejado, e usa, simples assim! Mas você leitor deve estar se questionando: “Ué mas o Arduino já oferece tudo isso!”. E você tem razão, mas lembram quando citamos no começo do texto do propósito de uso do PHP? Ou seja uma linguagem de programação focada em sistemas web? Pois bem ao usar o PHPoC você desenvolvedor tem na mão um servidor web nativo, mais que isso, você pode construir paginas web em HTML diretamente no código, utilizar os populares métodos POST e GET para troca de dados utilizando o conhecido protocolo HTTP, tudo isso sem se preocupar em resolver dependência, subir interface de rede ou mesmo cravar uma página HTML utilizando um vetor de constantes, passos hoje feito a certo custo com o Arduino. Ou seja, sobra tempo para que você gaste com o que realmente interessa, a sua aplicação.

Desenvolver com a PHPoC foi uma das partes que me chamou a atenção pela simplicidade, o pessoal da Sollae já fornece o pacote completo, ou seja ao obter tanto o shield ou uma PHPoC Blue (lembrando que a CPU do shield também pode ser reprogramada), basta você baixar a PHPoC Debugger, que apesar do nome é uma IDE completa para que você desenvolva, analise e carregue seus códigos diretamente na CPU da PHPoC, sem complicação, tudo que você precisa é de uma porta USB. Deem uma olhada na cara da IDE:

IDE
Figura 3 – IDE

 

Outro ponto positivo para o time do PHPoC, a IDE é extremamente descomplicada, seguindo o conceito minimalista usado com sucesso no Arduino IDE, basta arrastar e soltar os fontes desejados dentro do projeto corrente, e começar a desenvolver as suas aplicações, uma vez terminado, basta utilizar o botão de upload, e pronto o código já estará na CPU, onde o desenvolvedor poderá executá-lo ou testar se tudo funciona utilizado o debug integrado. Não sendo necessária mais nenhuma ferramenta adicional, alias falando em debug essa é uma vantagem gigantesca quando se compara com plataformas baseadas no bom e velho Arduino, que com o passar dos anos teve evoluções no hardware, mas apenas algumas poucas versões contam com debug integrado, restando o debug pela Serial, que nem sempre é o suficiente para encontrar um bug dentro de uma library mal construída ou configurada.

 

PHPoC: Comunidade também é importante

Um ponto que é quase consensual em todo desenvolvedor é o suporte para uma nova ferramenta de desenvolvimento, nisso o PHPoC não faz diferente, além do fórum mantido pelos próprios desenvolvedores da plataforma (imagem abaixo), a PHPoC conta com comunidades grandes ativas como a gigante Hackster.io:

 

PHPoC Forum
Figura 4 – PHPoC Forum

 

Ou seja além do suporte do fabricante, você vai visitar a comunidade da Hackster com um monte de gente bacana compartilhando projetos inteiros e livres para replicação, te ajudando a transformar aquela ideia legal em realidade:

 

PHPoC Forum
Figura 5 – PHPoC Forum

 

Além disso, teremos o Blog aqui sempre como ponto de referência tupiniquim, pretendemos desenvolver uns projetinhos bem legais com a PHPoC, aliás gostei bastante da ideia de um post especial combinando ela com a ROMEO V2, o que acham? Deem as suas sugestões nos comentários! E além do fórum e comunidades a PHPoC tem canais nas principais redes entre eles, youtube, twitter e facebook, sobre o canal do Youtube vale dar uma assistida no Amy’s Lessons , um canal oficial da PHPoC que contém tutoriais de projetos e configuração da sua PHPoC, independente da versão. Com tantos recursos, tememos que essa simpática plataforma conquiste o coração até dos desenvolvedores mais resistentes.

PHPoC: Por que devo ter uma?

De forma similar a introdução que demos com a ROMEO V2, é sempre bom ser apresentado a uma plataforma que agregue valor a uma ideia, ou projetos em andamento, com a PHPoC isso não é diferente, assim, fica a questão por que obter uma? A resposta, já foi implicitamente dada nos tópicos acima, mas o maior valor que uma plataforma como essa entrega é a conectividade e o servidor web embarcado, configurável com algumas linhas de código, campo muito explorado por essa plataforma. Como por exemplo, a imagem abaixo ilustra uma máquina de coquetel, onde você pede sua bebida de forma online:

PHPoC Aplicação
Figura 6 – PHPoC Aplicação

 

Projeto esse demonstrado no Hackster, pode ser executado com apenas dois, isso mesmo dois arquivos PHP, dá só uma olhada no projeto completo seguindo esse link aqui, seguindo a filosofia de ser simples e produtivo do PHP, programa a lógica, e usa HTML para desenhar uma bela e funcional página web! Acho que essa velocidade e integração para prover valor na aplicação maker ou profissional justifica o investimento. Agora vamos imaginar um cenário mais amplo, a imagem abaixo ilustra uma aplicação de controle em Tempo Real, utilizando a PHPoC, como? O servidor roda no shield PHPoC Arduino, e no Arduino roda a lógica de tempo real para controle do servo:

PHPoC Aplicação 2
Figura 7 – PHPoC Aplicação 2

 

Esse projeto que também pode ser visto no Hackster clicando aqui , ilustra um caso clássico do desenvolvedor, ele já tem o controle de atuadores ou mesmo monitoramento de sensores com todos os problemas de temporização resolvidos, mas não tem conectividade e uma interface agradável ao usuário para efetuar interação. Com o PHPoC essas distâncias são resolvidas, utilizando uma abordagem de processamento assimétrico de informação, ou seja, tarefas com temporização restrita e com deadlines na resposta (um controle PID por exemplo), fica a cargo do firmware já desenvolvido, uma porta serial comunica o Arduino com o PHPoC que utiliza as informações atuais para exibir e receber comandos do usuário através do servidor web. Essa aplicação acima ilustra de forma simples esse caso, aliás utilizando recursos legais como WebSockets!

PHPoC: Conclusão, uma abordagem diferente para resolução de problemas IoT

O objetivo deste artigo, é mostrar um novo aliado para o desenvolvimento de dispositivos, o PHP em sua forma embarcada, o PHPoC, com ele podemos criar aplicações complexas, repletas de conectividade, interação humana através de páginas web, tudo isso com máxima produtividade e construção de soluções web nativas do PHP. Além disso, demonstramos os dois hardware de referência que já podem ser encontrados na loja para que você comece hoje mesmo a avançar naquele projeto de brilhar os olhos. Aqui no Blog nós também vamos criar aplicações incríveis com essa placa, fiquem ligados nos próximos artigos! Aproveitem e deixem nos comentários que tipo de projeto com essa placa você quer ver aqui, então é isso pessoal, até a próxima!

 

Referências