Embedded systems and the internet
So far, the systems we have been looking at have been self-contained, using their own hardware and software to achieve their features. Many of the commercial embedded systems we use every day use an internet connection to enhance their feature sets. In this step we are going to explore the capabilities the internet offers.
The internet of things
The modern internet is a wonderfully powerful tool, and embedded systems are taking advantage of it. The term ‘internet of things’ is used to describe the ecosystem of both embedded and general-purpose computers that are connected and talking to each other.
Many of the embedded systems you commonly see in use around school, home, or the office leverage the power of the internet to provide powerful features to their users. These devices are often labelled ‘smart’.
When designing features for embedded systems, the size requirements for complex computation have to be taken into consideration. The internet can give embedded systems access not only to huge amounts of data, but also to processing and computational power.
In the next section we will outline some of the feature types made possible by a connection to the internet.
Embedded systems can use the internet to access and provide useful information to their users in ways that a stand-alone system cannot. The internet is a web of information, and more and more of it is open for us to use through application programming interfaces, or APIs. APIs allow us to connect to services, and use their data or processes in our own systems.
Home assistants make great use of these features. The current offerings have amazing capabilities, and you can use them to do everything from looking up recipes to checking cinema times. They can tell you what you should wear in the morning by pulling weather data (which is constantly being updated) and providing recommendations that are accurate to the minute. None of that information is stored on the device, though; it has to get it from the internet and the databases that are run by its manufacturer. Without a connection, those devices are nearly useless.
You can also use your embedded system to trigger events in other systems. Through its internet connection, your system will be connected to every other computer on the internet, and you can use that to send signals and requests. The other device must be set up to receive requests from the internet, and will have its own rules for the format of those requests.
Some features may require parts of your system to be in different locations. You can use the internet to connect the two parts of your device and share information. For example, a thermostat placed in each room of your house could send a signal to the boiler and pumps, to turn the heating on in that location when it’s needed.
Connecting to services
The internet is a thriving market with loads of services people use every day. Twitter, Spotify, and the Google suite of products are all extremely popular. You can connect your embedded system to these services to enhance their feature sets. Technically this is a crossover between the event triggering and information features; a device triggers an event and expects some information back from the service.
Twitter bots are a great example of connecting to a service; you can use the Twitter API to send a tweet from almost any device. In a nesting box, for example, you could set up a camera to snap a photo every time a bird arrives, which is then posted on the box’s Twitter account.
Google has APIs for most of its services. Your embedded system can send you email reminders by connecting to Gmail, or set events in your Google Calendar. All that is required is an internet connection and a personalised key (a very small piece of data) to send with the request, to verify your account credentials.
The list of possible connection is huge and constantly growing, as more data sets and services produce open APIs. The range of embedded systems of tomorrow will be a thing to behold.
Smart homes: a case study
- Imagine a smart home security system comprising embedded systems in different physical locations
- Create a top-down box diagram for it; try to limit yourself to four or five features
- Map the tasks out; which ones require an internet connection?
Share your findings with your fellow learners.