... | ... | @@ -57,7 +57,7 @@ O esquema acima ilustra a montagem (em protoboard) dos sensores atualmente supor |
|
|
|
|
|
Essa é uma excelente maneira de aprender eletrônica, mesmo para aqueles não familiarizados no assunto. Considerando o baixo custo dos sensores acima, juntamente com a versatilidade da Arduino, esperamos que qualquer pessoa seja capaz de montar essa estação meteorológica básica para então colaborar com a aquisição de dados na nossa rede pública.
|
|
|
|
|
|
## Instalação do firmware
|
|
|
## Utilizando o software
|
|
|
|
|
|
Tendo a placa montada com os sensores (seja via prototipagem ou com shield pronto), abra um terminal (linha de comando) e siga os seguintes passos para instalar o software que vai rodar no processador do Arduino, responsável por recolher a medida dos sensores.
|
|
|
|
... | ... | @@ -95,7 +95,7 @@ Para maiores detalhes, consulte a wiki [prepare-venv](prepare-venv). |
|
|
|
|
|
Presente na pasta raiz do projeto, esse arquivo contém todas as configurações necessárias para uso de todos os softwares inclusos no projeto.
|
|
|
|
|
|
Certifique-se de configurar/revisar pelo menos os seguintes intens:
|
|
|
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](http://dados.cta.if.ufrgs.br/emm).
|
... | ... | @@ -112,9 +112,9 @@ Certifique-se de configurar/revisar pelo menos os seguintes intens: |
|
|
|
|
|
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.
|
|
|
|
|
|
### 5. Compile o firmware e grave na placa
|
|
|
### 4. Instale o firmware
|
|
|
|
|
|
Existem duas alternativas para alcançar esses objetivos.
|
|
|
Existem duas alternativas para alcançar esse objetivo.
|
|
|
|
|
|
#### 1ª Opção) IDE do Arduino
|
|
|
|
... | ... | @@ -135,60 +135,39 @@ Existem duas alternativas para alcançar esses objetivos. |
|
|
|
|
|
Ver a wiki [Build from terminal](build-from-terminal).
|
|
|
|
|
|
### Executando o logger
|
|
|
|
|
|
Tendo a placa funcionando corretamente com o firmware instalado (seção anterior), você pode partir para aquisição de dados utilizando o logger.
|
|
|
|
|
|
#### 1. Entre na pasta do logger
|
|
|
|
|
|
Conforme tenha clonado repositório ou simplesmente baixado o ZIP, acesse a pasta raiz do projeto:
|
|
|
```shell
|
|
|
$ cd arduino-meteorolog/logger
|
|
|
```
|
|
|
Assegure-se de que essa pasta contém os seguintes arquivos:
|
|
|
```
|
|
|
$ ls
|
|
|
data logger.py Makefile settings.yaml
|
|
|
deploy.py logs requirements.pip supervisor.conf
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 5. Execute o logger
|
|
|
### 5. Execute o logger
|
|
|
|
|
|
Tendo o firmware instalado na placa, você pode partir para aquisição de dados utilizando o logger:
|
|
|
```
|
|
|
$ make run
|
|
|
$ make run-logger
|
|
|
```
|
|
|
Esse comando dará início à execução do logger, que consiste na repetição das seguintes operações:
|
|
|
|
|
|
Esse comando dará início à execução do logger, que repetirá periodicamente os seguintes procedimentos de acordo com o arquivo `settings.yaml`:
|
|
|
|
|
|
1. Envio de solicitação de leitura para a porta USB que possui o Arduino conectada.
|
|
|
* Caso falhe, continua tentando em outra porta listada em `ARDUINO/SERIAL_PORT` até que uma delas funcione;
|
|
|
1. Ao receber a leitura dos sensores, salva no arquivo local `FILES/DATALOG_CSV`;
|
|
|
1. Tenta enviar a leitura atual para o servidor. Código 200 significa sucesso: a medição atual está salva no servidor remoto.
|
|
|
* Caso código diferente de 200, salva a leitura atual no arquivo temporário `FILES/SERVER_OUTGOING_JSON`. Na próxima iteração do logger, caso a comunicação com servidor seja possível, dados do arquivo temporário serão enviados antes da leitura atual.
|
|
|
1. Faz a leitura dos dados pela porta serial;
|
|
|
1. Valida os dados, ignorando leituras inválidas (sensor não encontrado, etc);
|
|
|
1. Decide se a data utilizada será do sistema ou do relógio `RTC_DS1307` presente da placa (preferível);
|
|
|
1. Salva a leitura atual em um arquivo local;
|
|
|
1. 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
|
|
|
### 6. Crie daemon para o logger
|
|
|
|
|
|
```
|
|
|
$ make deploy
|
|
|
$ make deploy-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, execute:
|
|
|
```
|
|
|
$ make tail-exec
|
|
|
$ make tail-logger
|
|
|
```
|
|
|
que simplemente monitora o arquivo `logs/execution.log`.
|
|
|
|
|
|
* Para desativar completamente o daemon, execute:
|
|
|
```
|
|
|
$ make undeploy
|
|
|
$ make undeploy-logger
|
|
|
```
|
|
|
|
|
|
* Usuários avançados podem utilizar a ferramenta `supervisorctl` para gerenciar os processos cadastrados no **supervisor** com grande versatilidade.
|
... | ... | |