EX: Temperature Sensors

Goals

Combine programming skills with OS/hardware knowledge.

  • Learn how to interact with hardware on Linux

  • Learn how to design and use software interfaces

Hardware

A number of different temperature sensors.

Outcome

  • A set of C++ classes implementing an ad-hoc Thermometer interface

    • DS18S20 via Onewire filesystem (here)

    • LM73 via userspace I2C (here)

    • Both DS18S20 and LM73 via the hwmon driver interface (here)

  • Code to read a JSON sensor configuration file

    • Using an external library, possibly this one

    • See how hard that is with C/C++

  • A program or two to

    • Read out sensors, and output reports of different sorts

    • Calculate averages

    • Possibly see how SQLite3 goes. I’d rather not do this but save the time for an easier Python experience.