Android and IoT – An (almost) Perfect Match

Hatch has started working on IoT projects involving both Android and embedded MCU platforms. Therefore we’re often comparing in which scenarios each platform delivers a better result. In May I brought you an article explaining the Advantages of using USSD for IoT. This month I’ll cover in what scenarios Android is the right platform for IoT, and why sometimes using a low power MCU is a better option.

The world has entered the age of IoT. The predictions made in 2010 said that by the year 2020 the world would have 50 billion connected devices. The current count is between 6.4 billion and 9 billion devices, excluding smartphones and tablets, depending on which estimation you read (Gartner and International Data Corporation respectively). It’s still a long way to go before we get to 50 billion but we are well on the way.

So what is IoT?

 

The Internet of things (IoT) is the network of physical devices, vehicles, and other items embedded with electronics, software, sensors, actuators, and network connectivity which enable these objects to collect and exchange data. Each thing is uniquely identifiable through its embedded computing system and is able to interoperate within the existing Internet infrastructure.

The IoT allows objects to be sensed or controlled remotely across existing network infrastructure, creating opportunities for more direct integration of the physical world into computer-based systems, and results in improved efficiency, accuracy and economic benefit in addition to reduced human intervention.

What’s Android’s role?

Google has introduced a new initiative called Android Things which significantly increases Android’s role in IoT.

Android Things is an Android-based embedded operating system platform by Google. It is aimed to be used with low-power and memory constrained IoT devices, which are usually built from different MCU platforms.

Advantages of developing an IoT product using Android

Being open source, Android allows any engineer to use its source code and customize it. This means it can be used in any gadget you can imagine, which is great for the countless uses of IoT.

Consider how IoT devices are made possible by the APPs that interact with them, and how Android is currently the world’s largest APP platform, it’s clear that there’s an ecosystem here to be leveraged.

What are the main applications for IoT devices?

There are consumer applications such as home automation, manufacturing applications, agricultural and environmental applications such as monitoring, healthcare, media, the growing list is endless.

Even with this ever growing list of applications, the functions are mostly based on sensors, data collection data transfer, and simple commands. These are all functions that Android has a ready-made infrastructure to deal with.

Android devices have all the communication interfaces such as WiFi, Bluetooth, NFC, cellular etc. as part of its standard system design. If an existing Android platform is chosen then all these hardware integrations and drivers don’t need to be re-done thus reducing the time of development.

The two simplest options available for the transferring of data from a sensor are MQTT (Message Queue Telemetry Transport) and XMPP (Extensible Messaging and Presence Protocol). MQTT is an ISO standard publish-subscribe-based “lightweight” messaging protocol for use on top of the TCP/IP protocol. XMPP is a communications protocol for message-oriented middleware based on XML. It enables the near-real-time exchange of structured yet extensible data between any two or more network entities. Android supports both of these open source implementations.

Resources available for Android development are enormous. The amount of support for Android APP development or device development has never been larger.

I have an IoT idea, where do I start?

Android Things has made developing and prototyping IoT devices even easier!

There are a number of hardware platforms supported by Android Things as well as developer kits.

There are 4 varieties of NXP boards, 2 of Intel boards and a Raspberry Pi 3 board. Check them out below:

I have my prototype, now what?

Once you are finished with development and you have a working prototype of your IoT device, either by using the Android Things developer kits or some other solution, then you can approach a company like Hatch to bring this device to mass production.

Hatch will work with your team to evaluate the most efficient method of scaling your project to mass production and bringing your IoT device to market.

Are there any reasons not to use Android for IoT?

Yes, as useful as Android may be, it is not the perfect solution for all IoT devices.

The system requirements for Android Things devices are quite high when compared to microcontroller based devices and operating systems like mbed OS. Does an IoT refrigerator or door lock really need a quad-core processor and 512MB of RAM? No, probably not.

Take into consideration that even though Android Things has made using Android less power consuming, it is still less energy efficient than an MCU.

Mobile devices that require a long battery life may be better off using a low powered MCU as the MCU can go into a much lower energy sleep mode than a chip which supports Android. This saves power when the device isn’t in use.

Conclusion

Android is minimizing the barrier to entry for new IoT devices. As a hub or a gateway Android has all the communication protocols, infrastructure, ecosystem and resources in place meaning it makes sense to at least explore it as an option for your IoT device.

Android is not a viable option for all IoT devices but for those that it is an option for you have the Android Things developer boards, huge availability of Android APP developers and companies like Hatch to offer support for bringing your product to mass production.

If you have an IoT product or you have any questions on this topic please feel free to get in touch by email to info@hatchmfg.com using ‘Android for IoT’ as the subject.

Garry at Hatch