Project Secure Backup. Part 5

Starting the electronics part..
Arduino
The famed Atmel 328p Arduino – ‘Pro Mini’ version

This part of the build requires sending temperature data to the internet. This requires 3 things:

  1. Thermocouples for measuring temperature.
  2. A microcontroller for processing the thermocouples values.
  3. A hardware connection to the internet.

 

The thermocouples simply have a change in electrical resistance dependant on temperature. This can be measured using an analog input on a microcontroller. To get sensor data into the micro I used a library called thermistor.h which gave me the number crunched readings in degrees C. the values I’m getting are currently accurate to around 3 degrees C, so I may need to do some work on the maths here.

I have several microcontrollers sitting in boxes waiting for a suitable project. Without making this a diatribe about buggy software libraries for TI micro controllers, I went with the trusty Atmel 328p aka the Arduino.

The Ethernet module I’m using to connect is the ENC28J60 chip, available very affordably from ebay.

Initially I was using an Arduino pro mini set to 5volts. While the board I bought claimed to be able to be set to 3.3 volts, this was outside the spec for the 16Mhz crystal it uses. Eventually I moved to a 3.3v 8Mhz Arduino which seems the most trouble free, using a 5v Arduino with a level shifter for the 3.3v ENC28J60 was completely unreliable.

Bugs

So this bug fix by chuyrg resets the ENC28J60 by pulling a normally high reset pin low for a brief period. This hard reset of the ENC28J60 solves for the temperamental connection issues the ethercard Ethernet library seems to give. Interestingly this bugfix was already in the code :/ just needed to uncomment it… placing this reset code in the right place meant I didn’t need to implement a timer interrupt reset on the whole code…

Using the example code for ThingSpeak coupled with some thermocouple code, I used is able to throw up 2 data fields to ThingSpeak with a frequency of around 60 seconds.

Since ThingSpeak doesn’t send emails, I used this method to trigger a pushingbox.com ‘scenario’ to send email. I also added ThingSpeak ‘react’ events for a ‘No Data Check’ at 1 hour and 12 hours, in case I stop receiving data to ThingSpeak.

This slideshow requires JavaScript.


So now I have a seemingly reliable 5v low power temperature sensor, with hard wired email alerts, all for around $10 worth of parts. I’m happy with this not only because of the low electrical power consumption, but also because it uses low processing power – no RPi needed.

Needing to reset the Ethernet module in code is a¬†somewhat duct-tape style solution and if it works for extended periods of time that will be fine. After all, the internet in many ways is often referred to as a crazy Rube Goldberg machine which somehow usually works. I’m guessing the ENC28J60 is needing a reset possibly due to a buffer issue, which may have been fixed with a different Ethernet library, although I don’t feel like migrating the ThingSpeak code I’ve got over to that library.. it works, it appears solid, now I’ll field test it.

Part 2 of Project Secure Backup.

The front door for Project Secure Backup is coming together

The front door of the container coming together. This is definitely a V1. An improved version for example could simply be hidden better, rather than thinking about the structural rigidity of the container and needing to bolster any weak links. Choosing an inconspicuous place to store this has the advantage of not making it look like a target for thieves with its solid construction. None the less it’s not easy to move and should do the job to a good spec.