Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
O Photon
OBJETIVOS DE APRENDIZAGEM
A Internet das Coisas (IoT – Internet of Things) alterou completamente essa situação. Agora,
todos os tipos de sensores e eletrodomésticos podiam ser conectados à Internet. A IoT
abrange uma ampla variedade de sistemas:
Produtos e projetos do movimento Make, que estão se tornando parte da IoT, surgem em
todos os lugares. Entre eles, encontramos projetos bem sucedidos como o termostato
inteligente Nest e muitos produtos de IoT que usam o acelerômetro, os serviços de localização
e os recursos de comunicação dos smartphones para capturar informações sobre os níveis de
atividade e a saúde das pessoas.
compatível com o Spark Core, a maioria do que é tratado neste livro a respeito do Photon
também poderá servir para o Spark Core.
Embora haja muitas tecnologias diferentes que podemos adotar para construir dispositivos
IoT, é muito comum elas não oferecerem o ambiente de software necessário para que os
dispositivos comuniquem-se com outros dispositivos e navegadores através da Internet. Por
outro lado, a abordagem adotada pela Particle torna possível uma integração perfeita entre
hardware e software.
A Figura 1-1 mostra como um dispositivo IoT típico, construído com um Photon, pode interagir
com a Internet.
Um dispositivo IoT que usa um Photon pode comandar a abertura de uma porta localizada em
algum lugar remoto. Para isso, usando um navegador de web, o usuário acessa uma página e
clica em um botão denominado ABRIR. Essa página é gerenciada por um servidor de web que
está em algum lugar na Internet. Quando o usuário clica no botão ABRIR, uma mensagem é
enviada para o serviço de nuvem que, por sua vez, a repassa para o Photon, que está instalado
e funcionando dentro do dispositivo de comando da porta. Agora, o Photon, que controla a
fechadura elétrica da porta, sabe que deve abrir a porta.
Por outro lado, se o dispositivo de IoT estiver funcionando como sensor – digamos, de
temperatura – então o Photon poderá enviar as leituras de temperatura para um serviço de
nuvem. Essas leituras poderiam ser armazenadas temporariamente até que o navegador do
usuário tivesse a oportunidade de buscá-las e exibir a última dessas leituras em uma janela.
Para usar o serviço de nuvem da Particle, primeiro você deve fazer seu registro online na
Particle e em seguida confirmar cada um de seus Photons. Os próprios Photons se registram
sozinhos no serviço de nuvem como sendo seus. Tudo que os Photons precisam fazer para
Serviço
de nuvem
se registrar é ter acesso à sua rede WiFi. Esse processo garantirá que você saiba exatamente
com que Photon você está interagindo num dado momento como também lhe permitirá
programar confortavelmente seus Photons pela Internet usando seu navegador de web.
Arduino
Basicamente, um microcontrolador é um computador de baixo consumo contido em um chip.
Você pode conectar circuitos eletrônicos a seus pinos de entrada e saída, permitindo que ele
possa controlar coisas. O Arduino é uma placa de baixo custo, simples de usar, e pronta para
ser utilizada em projetos nos quais você deseja usar microcontroladores.
O Arduino transformou-se na plataforma mais escolhida por projetistas que precisam utilizar
microcontroladores em seus projetos. O modelo de Arduino mais usado é o Arduino Uno.
(como o Arduino Ethernet ou Yun), ou pode-se acrescentar um shield WiFi ou Ethernet, que
fará a conexão de rede necessária para que o Arduino se comunique através da Internet. Isso
significa um aumento considerável no tamanho e no custo de seu projeto.
A Figura 1-2 mostra um Arduino Uno com um shield WiFi instalado. O custo total dessa
combinação está acima de 100 dólares.
Uma outra possibilidade é usar o Arduino Yun. Esse dispositivo tem o mesmo tamanho
do Arduino Uno, mas tem um módulo WiFi interno. Assim, nesse caso, temos recursos de
hardware similares aos do Photon. Entretanto, o seu custo é muito mais elevado, chegando a
algo em torno de 75 dólares.
Todas essas soluções baseadas em Arduino sofrem de uma grande desvantagem para serem
usadas como plataforma de IoT: o software. Essas soluções oferecem todos os recursos de
base para se comunicar com a Internet, mas não oferecem nenhuma estrutura de software
para facilitar a criação de projetos IoT sem que o projetista tenha que desenvolver uma
programação de rede de grande porte e complexa.
Mais adiante, você verá como o Photon usa muitos dos conceitos do Arduino, incluindo sua
linguagem de programação, além de proporcionar uma estrutura de software com a qual
você pode construir seus projetos de IoT a um custo muito inferior aos que teríamos com um
Arduino.
Raspberry Pi e BeagleBone
O Raspberry Pi e o BeagleBone (Figura 1-3) são computadores em uma única placa do
tamanho de um cartão de crédito que executam o sistema operacional Linux. Eles têm portas
USB e saída de vídeo HDMI, de modo que você pode conectar teclado, mouse e monitor e usá-
los como um computador comum.
Intel Edison
A Intel desenvolveu uma pequena placa baseada em Linux de nome Edison. Essa placa foi
projetada para ser embutida em projetos de IoT e é, talvez, o competidor mais direto do Photon.
O Edison é pequeno, mas é consideravelmente mais caro do que o Photon. Ele apresenta
um conector frágil de 70 pinos que exige uma placa separada quando desejamos conectar
circuitos eletrônicos externos. Para isso, há diversas placas disponíveis, sendo que a mais
popular é uma compatível com o Arduino.
Mesmo tendo recebido muito interesse por parte da comunidade Maker, essa placa
provavelmente será mais adequada ao uso profissional ou no desenvolvimento de dispositivos
de alto padrão, sem levar em consideração que se trata de uma placa bem mais complexa
para ser usada.
Porta USB
LED RGB de status
LED azul
Entradas/saídas digitais
Entradas analógicas
Os pinos D0 a D7 são pinos de entrada e saída de uso geral (GPIO)* em que cada pino pode
operar separadamente como entrada ou como saída digital (veja o Capítulo 4). Alguns desses
pinos podem atuar também como saídas analógicas (pinos D0 a D3) usando uma técnica
denominada modulação por largura de pulso (PWM)**. Há um LED azul próximo do pino
D7 que está conectado a esse pino D7. Você poderá acendê-lo ou apagá-lo a partir de seus
programas ou pelo aplicativo Tinker em seu smartphone.
O Photon tem um chip de antena interna que funcionará bem na maioria das situações
envolvendo WiFi, mas o Photon também tem um pequeno soquete de antena no qual uma
antena externa pode ser conectada. Isso é útil para ampliar o alcance WiFi do dispositivo
acrescentando uma antena mais sensível ou direcional. Automaticamente, o Photon tenta
escolher a antena de melhor desempenho, mas você pode controlar qual antena deve ser
usada por meio de firmware.
Em princípio, os pinos A0 a A5 são entradas analógicas que podem medir tensões entre 0 e
3,3V (volts). Esses pinos costumam ser usados com sensores. Por exemplo, no Capítulo 6 você
usará um sensor de luz com um desses pinos. Os pinos analógicos também podem ser usados
como entradas ou saídas digitais, exatamente como os pinos D0 a D7. Além disso, dois dos
pinos analógicos (A4 e A5) também podem ser usados como saídas analógicas do tipo PWM,
como nos pinos digitais.
O pino DAC* (Conversor Digital-Analógico) é um pino especial para saída analógica. Trata-se
de uma saída analógica verdadeira (diferente de PWM) que pode assumir qualquer valor de
tensão entre 0 e 3,3V.
O pino WKP (Wake Up ou acordar) é usado para “acordar” o Photon depois de ele ter entrado
sozinho em modo de “sono profundo”. Isso é possível por meio de programas escritos com
a finalidade de colocar o Photon em sono profundo durante algum tempo, além de tornar
prático o uso de baterias para executar esses programas nos casos em que o consumo de
energia elétrica precisa ser minimizado. Os pinos WKP, RX e TX também podem ser usados
como GPIO.
Acima desses pinos, há outro pino GND (Ground ou terra) e o pino VIN. Para fornecer
alimentação elétrica no lugar da porta USB, você poderá aplicar uma tensão entre 3,6V e 5,5V
nesse pino VIN.
Programando
A empresa Particle fez um grande esforço para tornar a programação do Photon o mais fácil
possível. Para isso, ela oferece um ambiente de desenvolvimento de uso muito simples que
utiliza a linguagem C do Arduino como base para a linguagem de programação do Photon.
Como o Photon é um dispositivo de Internet, faz sentido programar esse dispositivo através
da Internet. Desse modo, na maior parte do tempo, você escreverá o código para seu Photon
em um navegador de web e então o enviará para esse Photon, que estará atento aguardando
por isso. Um ambiente de programação offline também está disponível para usuários mais
avançados (veja o Capítulo 9).
Para aqueles que estão pensando em usar o Photon em aplicações comerciais, a capacidade
de atualização através da Internet é incrivelmente poderosa porque permite atualizações
remotas do software do Photon em qualquer lugar do mundo.
Essa capacidade pode causar preocupação. Afinal, se o Photon estiver controlando a porta da
frente ou o aquecimento de sua casa, você não desejará que alguém atualize seus Photons,
dizendo-lhe para abrir suas portas e colocar o aquecimento no máximo. Felizmente, diversos
mecanismos de segurança podem ser usados para deixar o Photon mais seguro, como o
Secure Sockets Layer (SSL) na comunicação e as chaves de autenticação que garantem que só
você possa atualizar seus Photons.
A Figura 1-5 mostra o Ambiente Integrado de Desenvolvimento “Web IDE” (Web Integrated
Development Environment)* da Particle para o Photon. Esse ambiente opera através da web.
O Web IDE permite que você escreva um código de programa e o envie a um de seus Photons
através da Internet.
Resumo
Agora, você deve estar ansioso para começar a usar seu Photon. No Capítulo 2, você aprenderá
a colocar em funcionamento seu Photon e a instalar o seu primeiro programa.
*N. de T.: O Web IDE tem a mesma função do IDE do Arduino, mas no caso do Photon o Web IDE opera através
da Internet.