22nd September 2017, Lagos Nigeria.

Community & The Internet of Things

Give Me Community Or Give Me Death!

IoT/5G Extreme Ideas Lab
8 min readSep 24, 2017

--

Experience: beginner

Introduction

During this event, I gave a talk about Community and The Internet of Things. I explained how the Community has helped me to gain more skills and how the skills has intensified my interest in The Internet of Things. I then highlighted the Interesting Products and Tools that developers can use to build their IoT Project using The Android Things Platform.

This presentation was given at The GDG Community Summit (Sub Saharan Africa) in Lagos Nigeria, on the 22nd September 2017.

Community

I gave a personal story of how I was called in the university to study Electrical and telecommunication Engineering. In class I learnt about electronics, signals and microcontrollers. We wrote code into the microcontrollers using C, C++ and Assembly Language and at that time I though those were the only languages I could use to hack into electronics. I was then lucky to join a GDG Community, where through sharing, networking and collaboration I was able to learn more about other languages. I learnt about web development; hml css Javascript and even learnt that I could write code into the microcontrollers using other languages such as Javascript, Python & Android. In fact, with these, developers can use a single language on their IoT project; on the board and on the app.

In the community, we asked questions, worked on projects and also learnt awesome tools and products from Google such as Google Cloud, Firebase, and TensorFlow and even how to debug codes using Chrome dev tools.

The Internet of Things

The internet of Things is basically a period of transformation where things that were not connected to the internet are connected together and to the internet. They get access to data from the environment and then act appropriately, automatically according to the contents of the data.

In the architecture of connected devices, you have something like a three legged stool. On one end, you have an edge device. This include the microelectronics, sensors and set of algorithms running on the device.

The sensors collect data from the environment and then transfer them to the micro controller through the input pins. Once in the micro controllers, this data can be processed on board or pushed into a cloud platform for processing. Cloud is second the leg of this architecture.

In the case that developers have few sensors, they can decide to send this data to the cloud directly. On the contrary, when they have hundreds and hundreds of sensors, let say moisture sensors in a huge rice field, they require a gateway to push this data into cloud. This is the third leg of the Architecture.

Android Things

Currently, there are 2B devices running on Android. We have Android in Mobile, Wear, TV, and Auto. And Google is not stopping at that. They are extending the Android platform to IoT and embedded devices. With these, they help you to accelerate and simplify the development of IoT applications addressing challenges such as Security and scaling.

Uses of Internet of Things

Imagine you walk into a room and it uniquely identifies you, and the room taps into a cloud based profile of your preferences. The room then knows that you had a long day at work due to your schedule on your calendar and bio sensors in your hand. The room then turn the music in the room from rock to a soft classical music. This is an example of home automation. And Android Things is Ideal for this. We can also use Android Things for Security Cameras, Assets Tracking

Other ideal applications are those that require image or audio processing at the edge, and upload the collected or processed information to a cloud service for analytics or machine learning.

Democratize Hardware

Android Things is an Initiative to democratize Hardware development so that anyone who can build an app can build a device.

There are several microcontrollers that support this. They include: Intel Edison, Raspberry pi & Nxp. On these boards, there is something called a SOM. It is a tiny board that has a CPU, Memory on a single board and a common set of software.This is what Android Things is based on.

In Electrical Engineering there are High Speed Electronics and Low speed Electronics. High Speed Electronics requires really skilled design people who knows how to design things at about 1Gig and there are a lot of design rules that will have to take place -Low Speed Electronics are the things we can solder at home.

The SoM-based approach to building products is important for developers entering the market because high-speed electronics are complicated to build (dense packaging, impedance matching requirements, noise/interference considerations).

Google also manages software updates to the soms in the forms of BSP Board Support Package. This layer of separation makes your code portable to other supported hardware platforms if the needs of your design change.

Develop with the power of Android

And when you are building on this platform, you are Leverage Android Ecosystem. As a developer you have full access to Android SDK and all of the rich APIs that are available in mobile development today. You also get access to Android Studio and developer tools. Android Things also enables you to Integrate with Google Services such as Google Play Services, Firebase and Google Cloud Platform.

With Android Things, images are signed and verified by Google to prevent tampered images from loading into the device. Devices are also protected against corrupted image downloads through Android’s existing verified boot. This blocks the device from booting into an unknown state with an image whose signature and contents cannot be verified.

Rollback protection is also provided by the A/B update mechanism, which guarantees the system always boots into a known good state.

Devices receive security updates to devices automatically, even if the device manufacturer doesn’t provide an updated image or abandons the device.

Google Cloud IoT

Then there is the Google Cloud IoT Core. It is used specifically for connecting IoT devices to the Google Cloud Platform. It allows a user to securely connect millions of IoT devices to cloud. It has a number of services such as MQTT (a lightweight protocol used for communications as well as industrial purposes)Protocol Support.I t also provides Automatic Load Balancing where you can connect one device or million device and all still work the same way.

Cloud IoT Core provides Global Access Point. With this, No matter what region your device in, you can use the same configuration and connect to the same Google Cloud. It allows you to interact with your devices in the field — This gives you the ability to configure individual devices and control those devices, set up alerts. It also

Cloud IoT Core also connects your device with benefits of Google Cloud Platform such as Big Table and Big and Big Query that to allow you to input all the data that you are gathering from your IoT device and visualize and query the them. You also get Cloud ML — This allows you to make more complicated machine Learning models based on the data collected using the power of the cloud

Google Play Services

Android Things also gives you access to a things like Mobile Vision API, to enable you to identify people in an Image, faces, and their expression, Nearby API , to allows you to when you have devices near each other allow them to interact with each other, Cast API, from your Android Things Device cast to a device somewhere else, Location Services that enable you to query things near you device and Google Fit which allows you to attach sensors and accelerometer to your device and then visualize this data in interesting ways.

Firebase

Firebase has an amazing applications and services that are useful for IoT. Real time database, for example,which makes it easier to synchronize the state of various devices across mobile app and between IoT Devices, and Authentication that enables you to associate devices with the users account.

Here is an example of how you can use it. Imagine you have a GDG after party and you have developed a system that manages people who comes to this party. When someone approaches the gate, the system takes an image of him/her, check if they are supposed to be in this party. If they were invited, the system opens the gate. If not, the system denies them access to the party. And when it does this, it informs the organizer of this party through notifications.

Google Assistant

Google Assistant enables users to get things done with the power of conversation. It provides a new view or service for users to explore. Before, it was only available in Google home, and then into Mobile and even wear.

Now you can extend Google assistant as developer to support conversations with your own apps using the action on Google platform. Google Assistant supports both texts and voice based audio inputs and outputs.

Google has a great tool api.ai which uses machine learning to extract entities out of sentences from the user. It allows you to implement the conversational interfaces with ease.

TensorFlow

You can also add intelligence on your product with on device processing. You may wonder though if you are making an Internet connected device, why do you need this on device processing? There are actually several reasons why it is really important.

  1. Bandwidth

You save a great deal of bandwidth by not sending the data on cloud.

2. Intermediate Connection (Internet)

If your device only sometimes connect to the internet for it to be really functioning it needs to have on board processing for when it is off line.

3. Real time Applications

If you are making an IoT application such as a robot that has to navigate through an environment, you want to have a real time on device processing so that when something comes in front of that robot you will be able to react to the situation.

What’s Next?

To learn more about how to get started, check out on the documentation.

There are also several online communities where thousands of people are already asking questions, sharing their ideas, their prototypes and getting feedback! Join the IoT developers’ community online here:

  1. Google’s IoT Developers Community
  2. Hackster.io Community

--

--

Ngesa Marvin 10x
IoT/5G Extreme Ideas Lab

Electronic Engineer. Engineering Manager. AI Innovator, Intel. Grew @LiquidInTech, Deep Learning Abantu. Wabi -Sabi. #AI #Cloud #5G Freak. Opinions are my own