Nota : Trabalho em andamento.
Aplicação simples baseada em ferrugem para medir (e talvez o controle posterior) entradas de energia (por exemplo, de um painel solar) e saída (por exemplo, a energia usada por um RaspberryPi do VisionFive 2 Single Board Computer. Objetivo é ver se podemos executar um único computador de placa 24 horas por dia, 7 dias por semana, com energia verde.
Isso foi criado inicialmente para medir o consumo de energia de um Raspberry Pi 4, alimentado por um banco de baterias que, por sua vez, era alimentado por um conjunto de painéis solares. Também foi testado com o VisionFive 2 baseado em RISC-V.
Os sensores de potência usam sensores baseados em INA219 em um barramento I2C. Enquanto os dados climáticos são coletados através da API climática.
A razão para coletar dados de energia e clima é entender melhor o comportamento dos painéis solares sob várias condições climáticas. Isso deve permitir uma melhor previsão da quantidade de energia que estará disponível em um futuro próximo, dado o clima atual.
O diagrama de blocos a seguir mostra a configuração do sistema:

Na realidade, tudo isso parece um pouco mais chato:

Os dados coletados se parecerão com a tabela mostrada abaixo - esses dados, por sua vez, podem ser usados para treinar um modelo de previsão que deve ajudar a criar um sistema de bases de controle de feedback baseado em modelo.
| Timestamp | compute_voltage | compute_current | compute_power | Solar_voltage | solar_current | solar_power | owa_temperature | ... | OWA_CLOUD_Coverage |
|---|---|---|---|---|---|---|---|---|---|
| 21:36:58 | 4.708 | 1174.71036585366 | 5563.71951219512 | 0 | 0 | 0 | 11.92 | ... | 75 |
| 21:37:02 | 4.724 | 1164.74085365854 | 5502.43902439024 | 0 | 0 | 0 | 11.91 | ... | 75 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
Por padrão, o arquivo de configuração é carregado de padrão.toml . Você pode definir uma variável de ambiente chamada OGC_Config para carregá -la de qualquer outro caminho.
Um exemplo de arquivo de configuração pode ser encontrado aqui.
Para executar isso como um serviço usando o Systemd, use o seguinte arquivo de unidade:
[Unit]
Description=Open Green Compute
After=multi-user.target
[Service]
ExecStart=/<path to>/open_green_compute
WorkingDirectory=/home/ubuntu
Restart=always
RestartSec=10s
[Install]
WantedBy=multi-user.target
Verifique se a cadeia de ferramentas de destino certa e o compilador estão instalados em seu host:
rustup target add riscv64gc-unknown-linux-gnu
apt-get install gcc-riscv64-linux-gnu