2. Prepare o ambiente de execução
Instale ferramentas de sistema (apenas para Linux baseado em Debian):
$ make apt-install
Instale o ambiente Python:
Para maiores detalhes, consulte a wiki prepare-venv.
3. Configure o arquivo settings.yaml
Em resumo, certifique-se de configurar/revisar pelo menos os seguintes intens:
SERVER/API_POST_URL: Contém o endereço do servidor para onde os dados serão mandados.
Substitua a parte final BID pelo número de ID da sua placa conforme cadastrada em dados.cta.if.ufrgs.br/emm.
LOGGER/INTERVAL: Configure aqui o intervalo de tempo entre as leituras. Basta alterar os números dos campos seconds, minutes, hours ou days conforme desejado.
OBS: Utilize apenas números inteiros!
ARDUINO/SERIAL_PORT: Preencha o campo com uma lista de possíveis portas USB onde a Arduino possa a vir estar presente. A lista pode conter uma única porta, ou mais de uma separadas por vírgula.
OBS: Arduino Uno em geral aparece em /dev/ttyACMx, e as demais em /dev/ttyUSBx, onde x é um número inteiro.
SENSORS: Lista de sensores cuja leitura será solicitada. A ordem da lista refletirá as colunas do arquivo DATALOG.
Para omitir algum sensor, comente a linha colocando um # no início da mesma. Assim, caso queira reverter a situação, basta retirar o #.
No final do arquivo existe uma seção SENSORS_AVAILABLE contendo uma lista de todos sensores suportados.
Os demais valores já estão configurados de maneira a funcionar prontamente, mas é interessante que você observe sua existência. Por exemplo, a seção FILES indica o local onde os arquivos gerados aparecerão.
4. Instale o firmware
Existem duas alternativas para alcançar esse objetivo.
1ª Opção) IDE do Arduino
Dentro da pasta meteorolog, abra o arquivo meteorolog.ino utilizando a IDE do Arduino.
Selecione a sua placa correta no menu "Tools" > "Board".
Por exemplo: Arduino Uno, ou Arduino Duemilanove, etc.
Selecione a porta USB na qual a placa está conectada, no menu "Tools" > "Port".
Por exemplo, /dev/ttyACMx ou /dev/ttyUSBx (onde "x" é um número).
Clique no botão para compilar o código e enviá-lo para a placa.
Se tudo deu certo (nenhuma menssagem de erro), abra o Monitor Serial no botão para iniciar uma seção de comunicação com a placa.
Ver wiki serial-commands para saber os comandos possíveis.
2ª Opção) Linha de comando
Ver a wiki Build from terminal.
5. Execute o logger
Tendo o firmware instalado na placa, você pode partir para aquisição de dados utilizando o logger:
$ make run-logger
Esse comando dará início à execução do logger, que consiste na repetição das seguintes operações:
Faz a leitura dos dados pela porta serial;
Valida os dados, ignorando leituras inválidas (sensor não encontrado, etc);
Decide se a data utilizada será do sistema ou do relógio RTC_DS1307 presente da placa (preferível);
Salva a leitura atual em um arquivo local;
Tenta enviar a leitura para o servidor. Caso falhe, salva localmente e tenta de novo na próxima iteração.
OBS: Cancele a execução com CTRL + C.
6. Crie o daemon do logger
Um daemon é um processo que fica rodando em background e que em geral é programado para iniciar junto com o sistema operacional. Assim, basta ligar a máquina para que o logger seja iniciado automaticamente.
Para vizualizar o estado atual da execução do daemon, execute:
$ make tail-logger
que simplemente monitora o arquivo logs/execution.log.
Para desativar completamente o daemon, execute:
$ make undeploy-logger
Usuários avançados podem utilizar a ferramenta supervisorctl para gerenciar os processos cadastrados no supervisor com grande versatilidade.