A while ago I wrote an article on Reliable Frequency Detection Using DSP Techniques.
I mentioned at the time that this is an ideal basis for designing your own Arduino based guitar tuner. In real life, musical intruments can have strong harmonic contents, and you want to detect the fundamental frequency. Time based techniques that measure the time between periods don’t do that very well. The advantage of using an autocorrelation based frequency detection method is robustenss against noise and the overall harmonic content of the signal.
So, having got a few questions about how you’d make a guitar tuner. I’ve published a tutorial on that here:
Build you own Smart Electricity Monitor using the Arduino Yun or the Particle Photon.
A nice feature of the project is that the monitoring is flexible and it’s completely wireless (except for the Current Transformer of course), allowing continuous monitoring from a PC or phone and permanent storage on the Cloud.
Measured accuracy was 6% (typical), which is excellent for such a simple circuit. Even better accuracy was observed after calibration.
I’ve been involved in voluntary STEM education in the community through Coderdojo on and off for about 4 years, (more off than on recently though), and projects on Instructables (with over 750,000 views).
Over that time, I’ve seen how kids engage and disengage, how they learn, and how they get frustrated. I’d like to share some of those thoughts here.
Continue reading “STEM Education in the Community and Tech Cards”
I got an Echo Dot for Christmas (lucky me), and having made a Smart Home Thermostat a while ago (you can read about that here), I thought it would be fun and useful to voice enable my Thermostat; but only after I tired of being chastised by Alexa for saying: “Alexa, my name is Inigo Montoya . You killed my father. Prepare to die.”, too many times.
Many internet devices, including the Particle Photon used in my Smart Thermostat, use REST as a central tenet of the cloud infastructure. So for example, if you want to query the temperature downstairs:
returns a JSON format string with the required info.
It’s not too difficult to write a custom Lambda Function to act on the voice commands from the Echo Dot by issuing REST commands. I used Node.js for implemention but Java and Python are also supported.
I’ve written a tutorial (below), to help you to voice enable a REST protocol device.
How to Voice Enable your IoT device with Echo Dot
Detecting the frequencies of signals reliably is something that occurs fairly often in projects from guitar tuners to heart rate monitors, but reliable techniques to achieve this are often beyond the casual hobbiest because they involve digital signal processing.
I’m not saying it’s difficult. It’s not difficult. It’s just that you’d need to have studied DSP to know about frequency estimation techniques and the various tradeoffs to select the right one for your application, and many hobbyists haven’t studied DSP.
Here’s a project on using Autocorrelation to detect the frequecy of a signal. It works in noisy environments and is suitable for many hobby projects.
Reliable Frequency Detection Using DSP Techniques
Here’s a Smart Home Thermostat project based on a wifi enabled Arduino device called Particle Photon. The Photon is a great IoT device; a powerful Wifi enabled MCU that can be programmed in the Wiring language, as used by Arduino, combined with a Cloud Service to manage the programming and cloud connectivity.
What’s really interesting about this project is how it exposes the REST protocol which is central to a huge amount of IoT and Web infrastructure. Basically REST treats all resources as a URL e.g. https://myServer/mydevice/dev1/LEDs/TurnOn
I’ve recently added Alexa based Voice Control to this project (more on that soon).
Smart Home IoT Thermostat
One of the most popular projects on Google for an Arduino / Raspberry Pi Internet Radio is my project on Instructables. I’ve added that project below. It’s been implemented countless times and I’ve answered many queries on it, so if you have any questions please ask.
How to Make an Arduino / Raspberry Pi Internet Radio