O nome do servidor, que geralmente é nomeado segundo o identificador da organização no domínio “messaging.internetofthings.ibmcloud.com”.
O porta do servidor, que é 1883 para conexões não criptografadas e 8883 para conexões criptografadas.
O identificador de cliente. O aplicativo precisa autenticar-se usando um identificador de cliente no formato a: _ORG_ID:APP_ID, em que APP_ID é um valor fornecido pelo usuário.
Depois que o objeto tiver sido inicializado, seu método connect() poderá ser usado para conectar-se ao serviço do IoT Foundation, usando a chave de API e o token de autenticação da Etapa 5. O método subscribe() é usado para assinar o tópico accel e também especifica uma função definida pelo usuário a ser executada para cada mensagem recebida.
Nesse script, a função definida pelo usuário é a função getLocation() e sua tarefa é usar a função PHP json_decode() para extrair os dados de GPS de cada mensagem e exibi-los na tela. O método proc() inspeciona e processa o fluxo de mensagens que chegam nesse tópico em um loop contínuo.
Em vez de exibir ou ler os dados de GPS, é possível criar um aplicativo da web PHP que possa exibir os dados de GPS em um mapa.
Como você pode imaginar, é muito fácil usar esse fluxo de dados de GPS para fazer algo mais útil, como produzir um mapa da localização do dispositivo que será atualizado em tempo real. A Google Static Maps API tem tudo o que você precisa.
Para que seja possível usar a Google Static Maps API, é necessário registrar o aplicativo no Google. Efetue login no Google usando as credenciais de conta do Google e acesse o Google Developers Console. Crie um novo projeto, atribua um nome e, em seguida, ative o acesso à Google Static Maps API.
Em seguida, na tela de credenciais, anote a chave de API para o acesso do navegador. Essa chave de API será usada para autorizar todas as solicitações de API feitas pelo aplicativo.
Depois de concluir, será possível criar ou atualizar o script web-app.php, que exibe os dados de GPS em um mapa.
Diferentemente do script anterior, que foi criado para processar todas as mensagens recebidas no tópico e exibi-las na tela, os requisitos desse script são um pouco diferentes e são necessárias várias soluções alternativas para usá-lo em um contexto de navegador da web:
Primeiro, é necessário processar o fluxo de dados recebido e extrair as coordenadas de GPS para exibir o mapa em um navegador, não simplesmente emitir os valores ao console. Assim, os valores extraídos durante a execução do método getLocation() precisam ser expostos ao restante do script, o que significa que é preciso transformá-los em variáveis globais.
Segundo, para exibir o mapa, o aplicativo precisa interpolar as coordenadas de GPS no terminal do Google Maps API e, em seguida, solicitar a imagem do mapa usando a URL do terminal. No entanto, geralmente, leva algum tempo para que o navegador cliente execute esse solicitação e renderize a imagem. Para evitar uma situação em que cada nova mensagem resulte em uma nova solicitação à Google Maps API sem que a solicitação anterior seja concluída, o loop proc() é finalizado automaticamente quando a primeira mensagem é recebida.