A friend asked me to introduce electronic components in a simple way, not teaching electronics in depth, but giving just enough information to “play”.
This makes sense: with a standalone Arduino board , You can make the onboard Led on pin13 blink, but not very much else.
With this post I try to summarize concepts, with a language understandable even to people that do not have a strong technical background. If You are interested in a more detailed technical explanation, this is not the right place, but google is always Your best friend 😉
Some days ago a friend asked me how to build a device that periodically presses a push button. After some tought I came up with a simple solution using an Arduino and a servo motor.
There are times You need to be sure your application is always up and running, so You need a tool that resets the board if something goes wrong (crashes, infinite loops … and so on).
This kind of tool is called “Watchdog” and is a piece of independent hardware that monitors in some way the status of your application, detecting if something is going wrong.
After some intensive test of the GSM thermostat, I’ve decided to add new features and change some low level interactions with the GSM Modem.
This is my first “big” Arduino project so I decided to split the application into modules (read C++ classes), hoping to reuse these modules in future projects. So You will find a TempSensor_AD22100.cpp, a LatchedRelais.cpp, a SerialDebug.cpp, a ModemGSM.cpp and some other.
The Arduino IDE is very good for small projects, but it shows it’s limits if you have multiple files and You want to navigate or jump from one definition to another.
I’ve found this great free tool that turns Visual Studio 2010 into a wonderful Arduino IDE.
The GSM Shield
Dualband Shied from Libellium
After some Web browsing we found a GSM Dualband Shield from Libellium (now outperformed by quadband device) that worked fine for this project even if It had some quirks that I had to solve via software. Libellium links the Shield Schematic and a tutorial that gives the basic information to start, but to get the thing done is another story.
I’ve always been curious about GSM modems, but I’ve never get in touch with one until a friend asked me to build a Thermostat for his house in the mountains. The device should have been be enable to report power failures, acknowledge commands, and report in solicited and unsolicited mode some information about the device status and the room temperature; furthermore we wanted to have very little electronics in addition to the Arduino board and the GSM Shield.