It is the latter category of microcontroller-based development boards which is likely to see the greatest interest as the Internet of Things (IoT) continues to grow. One important aspect of IoT is the idea of a sensor node that sends data to a gateway device (like a smartphone or a SBC) which in turns sends the data into the cloud for processing. A simple example would be a temperature sensor that works in conjunction with services like IFTTT to send you a notification when a preset temperature is reached.
And this is where the Nordic Thingy:52 fits. Nordic Semiconductor makes efficient ultra low power (ULP) microcontrollers with built-in Bluetooth Low Energy (BLE) for devices that need to run a long time off a simple battery (like a CR2032). Since Nordic is in the business of selling those chips, it is also in the business of showing what those chips can do. And that is what the Thingy:52 is, a showcase of what can be achieved, as well as a development platform for IoT projects.
|SoC||nRF52832 SoC: 32-bit ARM® Cortex™-M4F CPU with 512kB + 64kB RAM|
|Connectivity||Bluetooth 5, NFC (for pairing)|
Humidity, Air pressure, Air quality (CO2 and TVOC), Color and light intensity
|9 axis motion detection||Tap detection, Orientation, Step counter, Quaternions, Euler angles, Rotation matrix, Gravity vector, Compass heading, Raw accelerometer, gyroscope, and compass data|
|Other ports, switches etc||Speaker, microphone, multi-color LED, power switch, button, micro USB port,|
Your first task is to switch on the Thingy:52. To do this, remove the rubber case and flip the power switch next to the micro USB port. Next, download the Nordic Thingy:52 Android app from the Play store.
Start the app and hit the ‘Scan’ button. When your Thingy:52 is found, connect to it. If there is new firmware available then the app will tell you and offer to upgrade your Thingy:52. This is a really neat feature and one that is essential for any company making IoT devices. The beauty of Nordic’s solution is that you get all this for free, source code and all!
You also have the option of naming your Thingy:52. This is especially handy if you have more than one. Once that is all done just play around in the app to explore all the capabilities of the device.
According to Nordic, the Thingy:52 is designed to function for extended periods of time without charging. When you do need to charge your Thingy:52, connect it to a computer or mobile charger via the micro-USB port. Note that the power switch must be on for the device to charge. But what kinds of things can you use the Thingy:52 for?
Audio over BLE
The Thingy:52 comes with a speaker and built-in microphone. This means you can send audio from your smartphone to the Thingy:52 for playing through the speaker or you can use the built-in microphone and get the audio sent back to an Android app.
Remember that the Thingy:52 is using Bluetooth Low Energy, not Bluetooth Classic, so this isn’t the same as streaming audio to your favorite Bluetooth speaker or headphones. For the demo Nordic is using 8-bit PCM with a sampling rate of 8 KHz (much lower than the 44.1 KHz used for CD). PCM isn’t compressed so the full audio is being sent back and forth, which might sound inefficient, but it saves the little microcontroller on the Thingy:52 from having to encode and decode of the audio.
The advantage of the speaker/microphone setup is that now you can build different types of home security or digital assistant devices. For example, you could monitor the sounds in a room (like a baby monitor) and get a notification (along with the sound) when it goes over a certain level. Or the Thingy:52 could act as the front-end to a digital assistant, maybe one built on the Raspberry Pi using Google’s Assistant API.
How to build your own digital assistant with a Raspberry Pi
May 11, 2017
The easiest way to achieve more with the Thingy:52 is to connect it to the cloud via IFTTT. The sample app from Nordic has IFTTT connectivity built into it. To use it you just need to get a Maker Webhooks token and enter it on the Cloud page of the app. Then, in IFTTT you can make an applet that triggers on a Maker Webhook for the following events:
The problem with the temperature and the pressure events is that the app doesn’t actually check to see if the temperature has changed (within a preset margin): it just triggers the event every time the temperature is read. Since the maximum interval settable in the app is just 5 seconds, it means that you will get inundated with IFTTT events. Of course this could be changed in your own version of the app.
The button press event is much more useful as it only triggers when you press the button. This means you can easily setup a demo where you press the button on your Thingy:52, it then reports the press to the app, the app creates an IFTTT event and then IFTTT actions it with any of the valid actions, including controlling Philips Hue lights, making a setting on your Nest thermostat, or just simply sending you a notification.
After you have finished experimenting with the Thingy:52 and services like IFTTT then the next step, especially for those actually making consumer products, is to tailor the source code for your own needs. Initially you will probably just want to alter the Android app and make it specific rather than generic.
You probably won’t need to alter the firmware on the Thingy:52 though as Nordic has done a great job of exposing all of the functionality over Bluetooth. However, there might be some cases where you will want to alter it. For example, all the sensor data from the current firmware is real time, there is no provision for buffering a small amount of the data for cases when a connection to the Thingy:52 is lost and later re-established. However if you are working at that level then hacking the provided C code shouldn’t be much of an issue!
If you do need to play with the source code then it is all fully available on GitHub:
- Nordic Thing:52 Android SDK and sample app
- Nordic Thingy:52 Firmware
- Nordic Thingy:52 Web App
- Nordic Thingy:52 Nodejs
- Nordic-Thingy:52 iOS library and sample app
If you are a gadget fanatic then the Thingy:52 is a lot of fun and there is some real potential for doing interesting things with it and IFTTT. However, the real power comes to those who know how to write Android apps. So, if you are a hobbyist computer enthusiast with app development experience then the Thingy:52 is a great way to get into IoT and try out your ideas.
If you are a professional developer then the Thingy:52 is an absolute gem as it provides so much of the infrastructure needed for just about any sensor-based IoT project. Nordic also provide all the hardware documentation necessary to build your own products based on the Thingy:52 including a bill of materials (BOM) and all the schematics. In other words, Nordic have taken all the hard work out of building an energy efficient Bluetooth-based product.
- You can find various online retailers for the Thingy:52 (~$40) via Nordic’s website
What do you think of the Thingy:52, you looking to get one? Let me know in the comments below.