#![no_std]
#![no_main]
use defmt::{info, println};
use esp_hal::clock::CpuClock;
use esp_hal::gpio::{Level, Output, OutputConfig};
use esp_hal::main;
use esp_hal::time::{Duration, Instant};
use esp_println as _;
use esp_hal::delay::Delay;
use defmt::error;
use dht22_sensor::Dht22;
#[panic_handler]
fn panic(_: &core::panic::PanicInfo) -> ! {
loop {}
}
#[main]
fn main() -> ! {
let config = esp_hal::Config::default().with_cpu_clock(CpuClock::max());
let peripherals = esp_hal::init(config);
let delay = Delay::new();
esp_println::logger::init_logger_from_env();
let mut one_wire_pin = Output::new(
peripherals.GPIO4,
Level::High,
OutputConfig::default(),
)
.into_flex();
let mut dht = Dht22::new(one_wire_pin, delay);
match dht.read() {
Ok(reading) => {
info!("Temperature: {:.1} °C", reading.temperature);
info!("Humidity: {:.1} %", reading.humidity);
}
Err(e) => {
error!("DHT22 read error: {:?}", e);
}
}
loop {
info!("Hello world!");
delay.delay_millis(500);
}
}