Application of Neoway M590: remote control for garage heater.

As those who read my previous article about M590 GSM/GPRS module know, it's not very reliable for GPRS operation. Recognizing this downside of M590s, I still wanted to use them (heaps of garbage wares from China have to go somewhere, right?). Thus a new idea of useful application was born: a remotely activated air heating unit for my garage.

UPDATE 25 Apr. 2018:
Essential documents for M590
Neoway M590E GPRS Module Hardware User Guide v 1.0
Neoway M590 Hardware Design Manual Version 1.1
Neoway M590 AT command sets v. 3.0

This blog post is a part of series about really cheap GSM/GPRS module Neoway M590:
  1. Neoway M590 GPRS Tutorial: sending and receiving files from/to SD card
  2. SMS GPS-tracker with Neoway M590 and ublox NEO-6 part 1. Gathering parts and testing
  3. SMS GPS-tracker with Neoway M590 and ublox NEO-6 part 2. Assembling the device

Heating part:

The heating unit is built around a part I happened to  have at the time - a huge heating element (about 1 meter long!).
Beside that I only had to source a 1 m. piece of  round ventilation duct and a fan. The heater has to be positioned roughly at the center of duct. I also sawed out rectangular pieces from the duct so that the plastic fan wouldn't melt, to further protect it from overheating I installed an NC thermal switch that opens when the temperature is around 90°C.
You should be able to easily replicate my setup just by looking at the pictures below:
The whole heater + fan setup is suspended from the ceiling by some copper braid. Note that:
  1. You can use anything that won't melt for suspension - steel or copper wire is what you'll probably find lying around  in no time.
  2. Hanging the heater was the dumbest thing done in this project. When you heat air it goes UP whereas the cold air stays down below. The fastest and the most efficient way to heat air is to install this on the floor.

Electronics part:

Yeah I used Arduino for this pls don't shame me.
I also went full ghetto with the enclosure, which is a plastic box from some power tool painted black. It gives off the air of something quickly put together from scraps and that's what I like about it - I'm all about improvisation :-)

The schematics is pretty simple. I use a contactor to switch heater on and off, which is probably overkill. The relays on the schematics are actually 12V relay modules, which is why I can drive them from an AVR pin. To assemble this you'll need the following list of items:
Here are some pictures of the insides of the enclosure:

Ready to be connected!

Arduino sketch:

I'm using an official Arduino Bounce library for debouncing (I'm that lazy). The heater has 3 modes: ON, OFF and AUTO, which are switched by the switch on the main panel. When switched off, the controller turns off the heater but lets fan blow off the heat for a preset time (120 seconds in my case). In AUTO mode you can send SMS to switch the heating on or off, but there's a timeout of 3 hrs. for safety reasons. So, if I were to switch on the heater and forget about it completely it would not waste tons of energy waiting for me to come to the garage.

Seeing how impressed my friends were when they saw this thing controlled by an SMS I immediately felt it was worth making. And with cold season coming it's going to become my greatest asset.


 After a month of use I decided this heater needs to be turned on and off on a schedule, so I added an RTC module (based upon DS1302 chip). Nothing much to add to the schematics - just hook up 5V from Arduino to RTC and connect 3 data lines to pins 7-9.
This is the library I used to interface the chip. Not sure if it's unreliable library or something I messed up while connecting the module, but most of the time rtc.time() function spews out some date in year 2011, so I had to poll it to get the right date.
See updated code below: