Testing things out

This commit is contained in:
Maxime Augier 2022-12-19 12:01:34 +01:00
parent 11648c3ca8
commit eec38c074c
3 changed files with 197 additions and 1 deletions

173
Cargo.lock generated
View File

@ -29,6 +29,15 @@ dependencies = [
"generic-array",
]
[[package]]
name = "bme280"
version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d52d85db2766df0fe57b7b2033c2311cf874b6f40fefa2195a345bbe16c9da5"
dependencies = [
"embedded-hal",
]
[[package]]
name = "buf_redux"
version = "0.8.4"
@ -51,6 +60,18 @@ version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dfb24e866b15a1af2a1b663f10c6b6b8f397a84aadb828f12e5b289ec23a3a3c"
[[package]]
name = "cast"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
[[package]]
name = "cc"
version = "1.0.78"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d"
[[package]]
name = "cfg-if"
version = "1.0.0"
@ -86,6 +107,15 @@ dependencies = [
"crypto-common",
]
[[package]]
name = "embedded-hal"
version = "1.0.0-alpha.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "93cc714edeae73aa1ff259af4498595360b2992e0e9c59801873ed198a7f2216"
dependencies = [
"nb",
]
[[package]]
name = "fastrand"
version = "1.8.0"
@ -173,6 +203,17 @@ dependencies = [
"wasi",
]
[[package]]
name = "gpio-cdev"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "409296415b8abc7b47e5b77096faae14595c53724972da227434fc8f4b05ec8b"
dependencies = [
"bitflags",
"libc",
"nix",
]
[[package]]
name = "h2"
version = "0.3.15"
@ -281,6 +322,18 @@ dependencies = [
"want",
]
[[package]]
name = "i2cdev"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b8fe61341e9ce588ede54fd131bf0df63eed3c6e45fcc7fa0e548ea176f39358"
dependencies = [
"bitflags",
"byteorder",
"libc",
"nix",
]
[[package]]
name = "idna"
version = "0.3.0"
@ -310,6 +363,15 @@ dependencies = [
"cfg-if",
]
[[package]]
name = "ioctl-rs"
version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7970510895cee30b3e9128319f2cefd4bde883a39f38baa279567ba3a7eb97d"
dependencies = [
"libc",
]
[[package]]
name = "itoa"
version = "1.0.5"
@ -322,6 +384,24 @@ version = "0.2.138"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "db6d7e329c562c5dfab7a46a2afabc8b987ab9a4834c9d1ca04dc54c1546cef8"
[[package]]
name = "linux-embedded-hal"
version = "0.4.0-alpha.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "59f67fcef5d29b3ca6328cb283cb7e944e942f54d229709b71bb618f67af55be"
dependencies = [
"cast",
"embedded-hal",
"gpio-cdev",
"i2cdev",
"nb",
"nix",
"serial-core",
"serial-unix",
"spidev",
"sysfs_gpio",
]
[[package]]
name = "log"
version = "0.4.17"
@ -337,6 +417,15 @@ version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
[[package]]
name = "memoffset"
version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
dependencies = [
"autocfg",
]
[[package]]
name = "mime"
version = "0.3.16"
@ -383,6 +472,25 @@ dependencies = [
"twoway",
]
[[package]]
name = "nb"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "546c37ac5d9e56f55e73b677106873d9d9f5190605e41a856503623648488cae"
[[package]]
name = "nix"
version = "0.23.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c"
dependencies = [
"bitflags",
"cc",
"cfg-if",
"libc",
"memoffset",
]
[[package]]
name = "once_cell"
version = "1.16.0"
@ -561,6 +669,27 @@ dependencies = [
"serde",
]
[[package]]
name = "serial-core"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f46209b345401737ae2125fe5b19a77acce90cd53e1658cda928e4fe9a64581"
dependencies = [
"libc",
]
[[package]]
name = "serial-unix"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f03fbca4c9d866e24a459cbca71283f545a37f8e3e002ad8c70593871453cab7"
dependencies = [
"ioctl-rs",
"libc",
"serial-core",
"termios",
]
[[package]]
name = "sha-1"
version = "0.10.1"
@ -602,6 +731,17 @@ dependencies = [
"winapi",
]
[[package]]
name = "spidev"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c43e891adf1abc1e09b10f80c8d91959ee20ec28425c6dadac78844ba4c709f"
dependencies = [
"bitflags",
"libc",
"nix",
]
[[package]]
name = "syn"
version = "1.0.107"
@ -613,6 +753,15 @@ dependencies = [
"unicode-ident",
]
[[package]]
name = "sysfs_gpio"
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ef9c9bcbfeb596ce4da59b2c59736235f35dcd516f03958ea10834473224157"
dependencies = [
"nix",
]
[[package]]
name = "tempfile"
version = "3.3.0"
@ -627,6 +776,15 @@ dependencies = [
"winapi",
]
[[package]]
name = "termios"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d5d9cf598a6d7ce700a4e6a9199da127e6819a61e64b68609683cc9a01b5683a"
dependencies = [
"libc",
]
[[package]]
name = "thiserror"
version = "1.0.38"
@ -675,9 +833,21 @@ dependencies = [
"mio",
"pin-project-lite",
"socket2",
"tokio-macros",
"windows-sys",
]
[[package]]
name = "tokio-macros"
version = "1.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "tokio-stream"
version = "0.1.11"
@ -886,6 +1056,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
name = "weather_exporter"
version = "0.1.0"
dependencies = [
"bme280",
"linux-embedded-hal",
"tokio",
"warp",
]

View File

@ -7,4 +7,7 @@ description = "A Prometheus exporter for weather data."
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
bme280 = "0.4.4"
linux-embedded-hal = "0.4.0-alpha.2"
tokio = { version = "1.23.0", features = ["macros", "rt"] }
warp = "0.3.3"

View File

@ -1,3 +1,23 @@
use bme280;
use linux_embedded_hal::{I2cdev, Delay};
use std::thread;
use std::time::Duration;
fn main() {
println!("Hello, world!");
let loop_time = Duration::from_secs(5);
let i2c = I2cdev::new("/dev/i2c-1")
.expect("Could not open i2c bus");
let mut sensor = bme280::i2c::BME280::new_primary(i2c);
sensor.init(&mut Delay).expect("Could not initialize BME280 sensor");
loop {
let baro = sensor.measure(&mut Delay).expect("Could not perform measurement");
println!("H {}%, P {} PA, T {}°C", baro.humidity, baro.pressure, baro.temperature);
thread::sleep(loop_time);
}
}