raspi-oled demo in rust
Go to file
2023-10-04 10:00:50 +02:00
images Colored events + ... 2022-05-06 11:00:17 +02:00
src Update PC debug code 2023-10-04 10:00:50 +02:00
.gitignore Start scheduler, screensaver and action framework 2023-10-04 08:59:56 +02:00
Cargo.lock move to gpiocdev 2023-10-03 14:25:25 +02:00
Cargo.toml move to gpiocdev 2023-10-03 14:25:25 +02:00
circuit.cddx Circuit diagram 2022-10-05 13:18:40 +02:00
default.nix Add a nix expression for easier development 2023-10-03 16:50:21 +02:00
events_weekly.json Colored events + ... 2022-05-06 11:00:17 +02:00
LICENSE Update readme and license 2023-10-03 14:35:45 +02:00
README.md Add a nix expression for easier development 2023-10-03 16:50:21 +02:00
rustfmt.toml Reformat code 2022-05-06 11:00:10 +02:00
shell.nix fix cross compile 2022-07-26 22:04:40 +02:00

Raspberry Pi calendar/temperature monitoring station

For more details see https://fliegendewurst.github.io/raspberry-pi-temperature-monitoring.html

The used OLED display is from Waveshare

Quick start

> nix-shell
> rustup target add arm-unknown-linux-musleabihf
> cargo build --release --target arm-unknown-linux-musleabihf
> scp target/arm-unknown-linux-musleabihf/release/{display_all,display_off,refresh_json,take_measurement,status_check_example} 'pi@raspberrypi:~'
> # on the Pi, create sensors.db and events.json
> ./status_check_example > /run/user/1000/status.json
> patchelf --set-interpreter /lib/ld-musl-armhf.so.1 display_all
> ./display_off on
> ./display_all sensors.db events.json temps

Cross compile from NixOS x86_64

> nix-build --arg crossSystem '(import <nixpkgs/lib>).systems.examples.muslpi' -E 'with import <nixpkgs> {}; pkgsCross.muslpi.callPackage ./. { }'
> mkdir /tmp/nixstore
> nix copy --extra-experimental-features nix-command --extra-experimental-features flakes --no-check-sigs --to /tmp/nixstore $(readlink -f result)
> rsync -r --links --info=progress --compress /tmp/nixstore/nix pi@himbeere-null:~/

On the Pi:

> sudo mv nix /
> sudo patchelf --set-interpreter /lib/ld-musl-armhf.so.1 /nix/store/*-raspi-oled-*-infdev-*/bin/*

Example

temperature graph

events

(the blue text seen in the second image is bright enough on the real OLED display)

License

Copyright 🄯 2022-2023 FliegendeWurst

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

See [LICENSE]. Applies to all files except the ones listed below.

src/rpi.raw is the Raspberry Pi logo. Raspberry Pi is a trademark of Raspberry Pi Ltd.