rawmeat.org

Code, craft, creating

AHT20 thermometer driver

2022-01-30 18 min read making code
I wrote a new driver for the AHT20 temperature and humidity sensor in Rust. This is a continuation of my Barometer build article, where I re-use the lps25_pressure_sensor_demo project to add a temperature sensor on the with_aht20_sensor branch. I’m a complete novice at Rust and embedded programming. These projects are my attempts to learn more about both while having fun and making something useful. You can find the driver at: Continue reading

Barometer build

2021-12-26 11 min read making code
I put together a barometer, built around Adafruit’s LPS25 breakout board, the Blue Pill microcontroller, and a small 16x2 character LCD panel. It was a learning project, and all of it was written in Rust. The finished project is a tangle of wires on a breadboard, and the error handling is minimal, but I definitely have a barometer with an LCD readout. You can get the code in my lps25_pressure_sensor_demo github repo. Continue reading

Exponential smoothing in Python

2014-02-12 3 min read coding
The problem While measuring temperature using my Arduino and a TMP36, I found that the temperature reading fluctuated wildly. After reading up a little, it became clear that since the Arduino’s analog pin measures discrete values of 0-1023, and the voltage varies between 0-5V, the smallest difference that can be detected is ca. 4.9mV. For the TMP36, a temperature change of 1°C triggers a voltage change of 10mV, so the smallest temperature increment that can be registered is ±0. Continue reading

Networking monitoring with a RaspberryPI

2013-06-29 5 min read coding
A while back my house mates and I found that our internet connection was terribly slow in the evenings. I decided to use my newly arrived Raspberry Pi to write some monitoring tools to see what the pattern was and how bad it was. This way we would also have something to give to Virgin Media to show there was a problem. At the same time, I had been wanting to write some software to push data into the graphing system Graphite, so this seemed like a good time to do that. Continue reading