Turn a $20 Uno and LCD shield into a cheap thermometer!

Similar projects worth following
As part of my learning curve for ModulUno, I've learned the basics of interfacing a DHT-11 to the Uno, along with an inexpensive LCD / touch / SD shield, to just make a thermometer that prints the temp and humidity to the LCD every minute or so, and stores the reading on the SD card.

It's not quite at the stage of being a finished project because it needs a RTC to lend meaning to the logged data, and some way to dump that data rather than having to turn it off and remove the SD card. On the plus side, the SD card is 2Gb and at the rate that data accumulates, it would take around 20 years to fill the card up. %)

But I'll crosspost or something because the project's already up at Github being tidied up and made ready for the next steps.

I wanted to get a practice project happening for the Arduino, as my ModulUno project is going to be a fairly large project spread over several FEPs (Front End Processors) linked by small RF link boards.

The FEPs will log and control various functions, i.e. weather stations, solar power controllers, RFID trackers for stock, water management controllers, aquaponics controllers, animal feed and water montoring and control, and so forth.

ThermomUno is the beginnings of the software that will handle around six inputs and log them. (It'll lose the LCD shield once it goes into the project, maybe a display with OLED or something that consumes less power, as it's envisaged that the FEPs will be completely standalone with a solar panel and battery at each station, with comms handled by small RF links.

  • 1 × Arduino Uno R3 DCCUno type clone, but pretty much any Arduino will work.
  • 1 × DHT-11 Temp/Hum Sensor Standard cheap sensor,
  • 1 × LCD/touch/SD Shield This was available on banggood as a combo with a Uno R3 for $15 the lot.


    Ted Russ04/24/2016 at 10:16 0 comments

    As you can probably tell, I do indoor projects in winter, and it's coming up on winter in the South half of the world... %) Meanwhile, the Thermomuno has been in continuous operation since last year, and hasn't missed a beat. But watching it for that time has pointed out one other thing - the DHT-11 sensor is pretty shoddy - the humidity never shifted much either side of 40% during the whole year, while officially the RH moved between 20% and 80%. A slightly upmarket sensor might be on the cards, or maybe a range of them, in which case I'll keep this project updated.

  • End of Cycle

    Ted Russ09/04/2015 at 00:09 0 comments

    Thermomuno is at the end of its cycle, I'll update the github code when I'm over this months-long flu.

    Changes haven't amounted to much, I made the display routine randomly print the temperature and humidity at different heights on the screen to look a bi like a screensaver, and a "heartbeat" which is just printing an asterisk in two different colours alternately so that you know the program's doing something.

    Thermo is being replaced by a newer project Kitchenduino which will monitor inside and outside air temperature and log that to a laptop, air pressure, two fire/flame sensors (as it's near both the wood fired heater and the stove) and movement, and will flash a few Neopixels and control the kitchen's LED lighting via a Darlington array and relays depending on time of day and movement.

    Thermonuno's hardware will become something else, never fear.

  • Code breakdown

    Ted Russ08/03/2015 at 02:44 1 comment

    As I want to use this for several projects, I'm working to break down the one big loop into subroutines. ( aka functions )

    The sensor reading could be done inline but then it's not quite as universal as it will be once I abstract out the hardware specific stuff. Because then, I can call ReadTemp(t,h) in my loop and just put the ReadTemp() module for the particular hardware I'm using into the code.

    I'll still have to make sure the relevant library is compiled and the right input pins etc, are initialised but changing a sensor to a different type will be as easy as just including the appropriate version of ReadTemp().

    This makes sense because I'd like this to be applicable to as many different sensors as possible, in combination with as many others, as possible. In particular, I want this to work with ModulUno as part of a network of sensors around my homestead that automates absolutely everything for me, so some FEPs (Front End Processors) may well do a dozen different (but overlapping between different FEPs) things, and then it's easier to have just one place in the repository to find all the code snippets.

View all 3 project logs

  • 1
    Step 1

    Three pieces or paperclip wire were soldered to 5V, GND, and digital 11, so O could just slip the DuPont plugs of the DHT-11 over. The wires were secured to the Arduino Uno with a spare cable tie through one of the mounting holes (to prevent accidentally pulling the wires out) and the shield was plugged in as normal.

View all instructions

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates