Join Michael Lehman for an in-depth discussion in this video Defining things, part of Programming the Internet of Things with Android.
- So as we begin, let's take a look at a few things. Let's figure out what is a thing, so we can define exactly what is a thing in the internet of things. We'll take a look at some existing example commercial things, both things which are complete commercial products, as well as commercial offerings for developers that you can use to prototype new things. Then we'll take an in depth look at the things in this course and then we'll talk about the entire universe of things and what you might build in the future. In the process of all of this, we'll be talking about sensors, effectors and connectivity.
Because sensors, effectors and connectivity are what define a thing. A thing consists of at least one sensor or effector, some kind of computational capability and a communications channel. So, in other words, you could have a thing which does nothing but take a picture and send it over the internet, or a thing which does nothing other than close or open a relay, to flip a switch. For example, I have a switch on the furnace in my house, which is great in the summertime in Seattle because we don't generally have air conditioners, but what this switch does, is it turns on the furnace to start blowing the cool air from downstairs into the upstairs to cool down the house.
I've got a thing that I built that allows me with my phone to not have to go downstairs and wind a way around all of the boxes to get to the switch, I can simply bring up the app on my phone, tap on the screen and the fan comes on. Sensors and effectors are everything you need to have a thing in terms of interfacing with the real world. Sensors are things which detect the real world environment. Effectors on the other hand are things which actually change the real world environment. These are things like lights, things like relays, which will allow you to turn on and off high voltage devices, beepers, buzzers, motors, anything that can actually change things in the real world outside of the CPU.
The computational capability needs to be able to save the status from the sensor or receive a command over the communications channel and activate one or more of the effectors. It can also, in certain kinds of things, interpret the sensor data. For example, if your device has an accelerometer on it, you can use the compute power to decide, for example, if the user is creating an up and down motion or if they've dropped it, or if they've taken a step, or if they're sitting up straight and then pass that along over the communications channel to a device that's listening.
An accelerometer is a good example of where the raw data is data that can potentially be coming hundreds of times a second and telling you X, Y, Z acceleration, but none of that is useful to be sending over a Bluetooth channel, for example, because that's too much data. You only want to send over a notification when, for example, somebody drops the device or somebody picks it up. Finally, the communications channel, that allows you to connect up to the network, because of course, without a network connection you don't have an internet of things.
Now sometimes, you have to have assisted internet connectivity. For example, oftentimes a thing connects up with Bluetooth. Now Bluetooth can't connect directly to the internet, which is where your phone or your tablet comes in. So your phone can be an assisting device to connect up between say your thermometer and the internet. Now there are also some kinds of internet of things devices, which are directly connected to the internet using TCP/IP. They can either be wired devices like the Phillips Hue lighting system has a bridge, which uses a certain kind of radio connection to talk between the base and the radios, but actually plugs into your local WiFi router network to connect up to the internet so that you can turn your lights on and off or change their colors even when you're not home.
So before we start looking at how to build a thing, let's take a look at some existing example things both commercial and developer tools available right now.
- Exploring the Internet of Things
- Understanding sensors and effectors
- Connecting inputs and outputs
- Connecting to devices via Wi-Fi or Bluetooth
- Creating Bluetooth apps using Android
- Creating your own things with programmable hardware
- Using IFTTT to program things
- Exploring the trends in things