It's a hot summer day, and air conditioners are sucking vast amounts of power from an overburdened utility grid. Your utility company desperately needs its customers to cut consumption. With your prior approval, it connects via the Internet to your home air conditioner's thermostat and sets it a couple of degrees higher. It does the same thing to thousands of other air conditioners. The resulting load reduction is enough to prevent a blackout.
Across the country, at an aquaculture facility, something has gone awry with water quality, putting thousands of valuable farm fish in danger. Sensors detect the danger, however, and automatically send an e-mail alert over the Internet. A technician arrives to correct the problem, and the fish survive.
These examples of Internet-connected embedded systems are not isolated or pie-in-the-sky scenarios. The Internet-connected thermostat is a product of Carrier Corp. (Farmington, CT), and web-enabled aquaculture monitors are available. Even vending machines are on the Internet these days. At a regularly scheduled time, a connected machine can log onto a proprietary web site and upload system and inventory status. If Diet Cokes are running low, someone knows right away and can come restock the supply.
Although Internet-connected embedded systems don't get a lot of publicity, they are rapidly outpacing PCs connected to the web. PDAs and cell phones account for much of the increase, but less obvious applications—such as energy systems and remote monitoring equipment—are also proliferating. According to Harbor Re-search (San Francisco, CA and Boston, MA), 20% of all cars, phones, and appliances will be manufactured with a built-in Internet connection within the next two to four years. By 2005, according to some accounts, the number of embedded applications connected to the Internet will dramatically exceed those of PCs, perhaps by as much as a hundredfold.
Carrier's Internet-enabled thermostat is a sign of appliance control of the future.
Most embedded-Internet applications—including the previously mentioned thermostat, water-quality monitor, and vending machine—contain an embedded Internet client, just as your PC is an Internet client. Like your PC, these clients log onto the web via an Internet service provider. Unlike your PC, though, these clients consist merely of several chips that cost only a few dollars. Those chips give a client all the capability it needs to perform its intended functions.
Web servers, instead of clients, can also reside in embedded systems. These servers present web pages to a remote PC's browser just as large, commercial web servers do, but they can also allow monitoring and even control of the remote systems and equipment in which they reside. Typically, a user sits at a PC in an office and uses a standard web browser to log onto the remote embedded server. The embedded server presents measured variables that tell the user what's going on in the remote equipment. It may also accept input from the user to alter the equipment's operation.
Internet connections—in their simplest form, at least—are well suited to embedded applications. A connection requires only a microprocessor, a modem, and a method of handling Internet communication protocols. Fairly simple microprocessors are adequate.
For designers who want to avoid chip-level design or who need to connect existing equipment to the Internet, add-on modules are available.
Things get more complicated, but not unduly so, if you want to implement an embedded server instead of a client. A server must provide web pages, not just link to them, and the HTML code that makes up the pages may not be compact enough to fit in a microprocessor's limited on-chip memory. In such cases, the HTML code can be compiled—using software from emWare, for example—to greatly reduce its size. Software tools from emWare can also mesh the HTML code with C or C++ code to provide an interface to the hardware features (sensors and potentiometers, for example) of the equipment in which the embedded server resides.
Fortunately, embedded servers offer advantages that compensate for their added complexity. The obvious advantage, of course, is that of monitoring and controlling equipment remotely with a familiar PC-based web browser. In addition, web pages on an embedded server can use hyperlinks to connect the user to other, more powerful, servers. This capability allows a remote user to connect to technical documentation and procedures, for example, or to statistical analyses of the equipment's performance. In most cases, this extra material resides on the equipment provider's corporate server. It doesn't need to reside on a user's computer or in the remote system, yet it appears to the user to be part of that system.
Another advantage of an embedded web server is that it contains a user interface, in the form of a web page, that is easy to create and modify. Simple HTML code implements the interface, which can be uploaded remotely whenever necessary. Also, because the user interface resides in the server, not in users' computers, only that one copy of the interface needs to change when a modification becomes necessary.
Internet connections don't make sense for every application, of course. For many embedded systems, however, a connection to the Internet can be a compelling addition. It can provide valuable new functions, and yet be easy and cheap to implement by taking advantage of a nearly ubiquitous communications infrastructure. Often, that's enough to make it an obvious choice.
Gary Legg is a Boston-based freelance writer. He can be reached at firstname.lastname@example.org.