Odd Software for Odd Jobs

Grotto Time, part 2

I started my GrottoTime project a few years ago - I wanted a clock for my "Nerd Grotto" (i.e. workspace in the garage). I figured it would be a good project to learn how to use a real-time clock (RTC) and Ethernet connectivity.

So I came up with something that would initially poll the time from an NTP server and store it to the battery-backed RTC. It would also check the current temperature/humidity/pressure. This would be displayed on the seven segment LED displays. Additionally, it would upload the sensor data to my website … the thinking was I could wake up in the morning during Winter and quickly check the outside temperature on my phone.

Anyway, the breadboard version worked. The harder part was coming up with a hardwired version.

This is what I settled on - I would use a Freetronics EtherTen board (Arduino Uno with Ethernet & SD card). I shaped a vero-strip board to fit around the Ethernet port of the EtherTen. This would be a shield that would have all the components.

Anyway - this was the result:

Grotto Time Mk. 1

Unfortunately, there appears to be a hardware. The DHT22 temperature sensor (the white thing) fails to start up. The connections look good for it look good.

So it looked like I'd have a lot of frustrating hours fault-finding.

But … as I'd recently figured out how to use LCDs (yeah, simple), I decided to start from scratch. The EtherTen had problems with a lack of memory - it just couldn't fit all the code I wanted it to do … polling the time via NTP, uploading the sensor data, etc.

Thus, here is Mark 2. Much better looking, yes?

  • Changed the EtherTen for an EtherMega (more code space),
  • Used a Freetronics LCD + keypad shield,
  • Used a prototyping shield sandwiched between for the sensors - RTC, barometric pressure, temp/humidity

GrottoTime Mk. 2

Here it is working - I've got a few screens of information working that can be scrolled through using the keypad buttons.

2016-02-02 21.56.04

I've been slowly bringing my original code across to a new sketch, replacing the LED code with LCD code.

The time is initially synched via NTP. This is stored to the RTC. Thus it can then run offline or online. Of course, to upload the data to my website it needs to be online. The idea is that it'll be on the wall in the garage connected to a cheap WiFi access point via an Ethernet cable.

The code is a bit of a mess at the moment, but it works. I'm currently working on adding some automatic DST setting.