Gogo Board + Php: Leituras

Com base neste artigo, podemos ler os dados enviados pela porta usb que a placa retornará, de acordo com a função que necessitarmos. Exemplo: Ler sensor 1.

<?php
/**
* Arduino + PHP
*
* @author Bruno Soares
* @website www.bsoares.com.br
*/

// Conecta na porta

$port = fopen("COM3", "w+");

// Em alguns casos a Arduino pode reiniciar, por isso
// é bom esperar para enviar informação depois de conectar
//sleep(2);

// Envia "1" para o programa na Arduino saber que deve responder

fwrite($port, chr(84));
fwrite($port, chr(254));
fwrite($port, chr(32));
fwrite($port, chr(0));

// Espera para que o dado enviado pelo PHP chegue até a Arduino
sleep(1);

// Agora que a Arduino "Provavelmente já respondeu", pega
// o valor da resposta
//echo fgets($port);
echo bin2hex(fgets($port));

// Fecha a conexão com a porta
fclose($port);
?>

Algumas modificações foram feitas para que o código seja compatível com Windows, além de retornar os dados no formato hexadecimal. Estão assinaladas em vermelho.

Os valores retornados ainda estão “brutos”, ou seja, ainda precisam ser trabalhados para que tenhamos o valor real do sensor.

BR-GoGo Blocos: Enviar

Uma das últimas versões do Blocos, passou a incluir, dentre outras, funções, um bloco chamado “Enviar”. Nele, ou através dele, podemos receber informações através da porta USB em que a placa BR-GoGo estiver conectada, bastando para isso usar, por exemplo o Hyperterminal ou PuTTy.

A figura acima demonstra um exemplo, aonde o valor do sensor 1 será enviado.

Lembrando que para isso funcione, a placa deve estar conectada ao computador, além de estar em modo de execução.

Essa função é muito similar ao “Streaming Server” da Gogo Board, porém não necessitamos no Gogo Monitor.

Gogo Board + Labview: Bluetooth


A imagem acima é uma sugestão de terminal para envio dos valores dos sensores da Gogo Board através de uma comunicação bluetooth, estabelecida entre um celular e o computador, utilizando o recurso de porta serial virtual.

Para a Gogo Board, foi utilizado o próprio componente Activex, já para a porta serial, o componente Mscomm32.

Gogo Board + Labview: Protótipo SCADA

Segundo Victor Rocha “Softwares para interação com ambiente físico – comandando equipamentos e lendo sensores de temperatura, umidade do ar, consumo de energia elétrica, entre outros – são cada vez mais comuns. Introduzimos o tema SCADA (Supervisory Control And Data Acquisition) e apresentamos os principais softwares livres hoje disponíveis nesta área.” Fonte: Viva o Linux

Este é o modelo construído em Labview, aonde monitoramos os sensores 2, 4, 6 e 8, exibindo seus valores graficamente. Será a base para uso em alguns projetos em que necessitamos medir grandezas físicas, como temperatura, umidade, velocidades, etc.

Gogo Board + Labview: BurstMode

Este é o modelo sugerido para utilizar a função “Burst”, conhecida como “Rajada”, aonde a placa envia os valores dos sensores pela porta USB.

Esta configurado para que a placa envie o valor do sensor 2 e este valor seja exibido na tela do computador.

Para evitar travamentos, foi incluido um tempo de 500ms entre cada leitura.

Quando o botão Stop for pressionado, a função da placa será desativada e o programa sairá do modo execução.

Gogo Board + ActiveX: Sensores – Final

Para utilizar o comando “BurstMode”, além do sensor existe o parâmetro de como ativa-lo, ou não, ou seja acrescentando 1 ou 0, respectivamente, deste modo:

BurstMode Sensor, 1
BurstMode, 0, 0

Em conjunto a este comando, devemos utilizar o “SensorBuffer (Sensor Number)”, que armazena o valor do sensor ou sensores, facilitando com isso a leitura e visualização.

Sua tabela de atuação segue este critério:

sensor 1 = SensorBuffer 0
sensor 2 = SensorBuffer 1
sensor 3 = SensorBuffer 2
sensor 4 = SensorBuffer 3
sensor 5 = SensorBuffer 4
sensor 6 = SensorBuffer 5
sensor 7 = SensorBuffer 6
sensor 8 = SensorBuffer 7

Em breve, um exemplo de protótipo utilizando estes comandos.

Gogo Board + ActiveX: Sensores – IV

Para leituras constantes de um determinado sensor ou grupo de sensores, temos o comando “BurstMode (Sensor bits)”, que ao ser ativado determina que a placa envie o valor e assim podemos inserir em um formulário e exibi-lo na tela do computador.

A tabela para este comando segue este critério:

sensor 1 = 1
sensor 2 = 2
sensor 3 = 4
sensor 4 = 8
sensor 5 = 16
sensor 6 = 32
sensor 7 = 64
sensor 8 = 128

De modo que devemos somar estes valores se desejarmos realizar a leitura de um grupo de sensores. Exemplo: Para leitura dos sensores 3 e 5, somamos os respectivos valores, ou seja, 4+16 = 20.

No capítulo final, o comando que deverá ser usado com este que foi apresentado.

Gogo Board + ActiveX: Sensores – III

Através dos comandos “ReadSensorMax (Sensor number)” e “ReadSensorMin (Sensor number)”, podemos obter os valores máximos e mínimos de um determinado sensor.

Para definir qual o sensor a ser lido, basta usar esta tabela:

sensor 1 = 1
sensor 2 = 2
sensor 3 = 3
sensor 4 = 4
sensor 5 = 5
sensor 6 = 6
sensor 7 = 7
sensor 8 = 8

Assim como o comando “ReadSensor”, deve ser usado para leituras rápidas, para leituras constantes e em tempo real, existem outros comando que serão abordados no próximo capítulo.

Gogo Board + ActiveX: Sensores – II

O comando “ReadSensor (Sensor number)” é utilizado para retornar o valor de um determinado sensor. Este valor, geralmente é direcionado para algum formulário e exibido na tela do computador.

Para definir qual o sensor a ser lido, basta usar esta tabela:

sensor 1 = 1
sensor 2 = 2
sensor 3 = 3
sensor 4 = 4
sensor 5 = 5
sensor 6 = 6
sensor 7 = 7
sensor 8 = 8

Geralmente, deve ser usado para leituras rápidas, para leituras constantes e em tempo real, existem outros comandos que serão abordados logo mais.