In early years I remember how difficult was to get an embedded system do complicated things, the lack of stacks and peripheral libraries where exclusively for them that has the economical resources. Nowadays with the power of SBCs (Single Board Computers) and microcontrollers the companies released all the stacks and sufficient libraries, even third party hardware to fulfill complicated projects.
Some examples of SBCs, (and will only mention the two top ones) are the Beagleboard Black and Raspberry Pi
The new board comes with improvements of booting and a very good structure of Sitara chipset.
The RPi is a complete SBC system with a software oriented approach, you can have your own by less than 40 USD.
As you can see, we can do very handy applications with those devices. Maybe some gadgets that are internet enabled. For that reason and the expansion of the internet applications we introduce here the Client and Server Concept.
Figure 3. Client – Server Model.
The concept could be applied over a LAN or a WAN
A client, basically is the device that initiates the communication and a server is the device that accepts connections and receives and dispatch data.
When you are using client – server model and your devices is “internet connected” I recommend this scheme:
- Your devices must be a client
- The server must be a device cloud service where we connect
Why?. Well the basic reason is security!. We don’t want nobody mess with our device hacking or making it to malfunction. And the other is because all web services are managed by our cloud partner. Of course, you could do your own cloud based service, but i am focusing on the embedded world.
In resume, the client actions are:
- Put information to the server (it is called “feed”)
- Requests info of the server
In resume, the server actions are:
- Provide data to the client
- Accept incoming connections from a client or clients
We talked in upper paragraphs of “Cloud” and “Services”. Services are a conjunction of functions that provide better and easy functionality to other applications; the cloud is the term of the internet.
Cloud Services are internet enabled web services to develop applications based on the web. In the cloud services we can:
- Store information
- Get information
- Make graphs
- Trigger vents like an email, tweet, facebook status, even an alert to your cell phone
Som examples of Cloud Services that we can use are:
Every of these cloud storage services has his good and limited things. You could use what ever you want to implmenet your “thing” internet enabled. The beauty of it is that we now could focus on the embedded application and don’t need to be a web programmer for making these connected apps.
For making your thing application you must first make your gadget (we call it from here “device”). This devices could act as a web server, a client and you must decide a communication framework to work with these device server platforms mentioned above,
The device could be an intelligent device capable to connect to these cloud services or be in a network connected to a gateway and then the gateway do the job to stream data to the cloud service
Figure 4. Devices connected to a network.
(top) via a LAN (Local Area Network). (bottom) via a Gateway to the internet to a cloud storage service
Figure 5. Playstation 3 Dual Shock Controller.
Example of which device could be our “thing” internet enabled device.
Lets take an example the playstation 3 dual shock controller as our device, and imagine the no need of a gateway, it as standalone thing connected to our cloud service. With our device, we must decide which resource to publish. Maybe we want to know the XYZ values of our accelerometer and “how distant of us” is our gamepad. For that, we have to use the resources. The resources that we could use for our cloud storage services are:
- GET: To acquire the resource data, but could be something like a graph
- PUT: To update a resource data or an object
- POST: To update a resource data or an object, but has a huge amount of info, like file transfers
- UPDATE: Refresh the data or an object
- INSERT: Insert a new data or an object
- DELETE: Delete data or an object
Figure 6. JSON scripting notation. It inmerser values in the transfer protocol.
As we can see in figure above, the common notation says that our device with “id” “example” needs to “PUT” the “current_value” of “500” “at” the time stipulated, with “max_value” and “min_value” of “500” and “333”. This seems the common notation of a graph.
Moreover than send data and display it on the web, you only don’t want to send or analyze, you want to make decisions based on these actions:
- Turn on/off something
- Send an email
- Post a tweet
- Update your facebook status
Now that we have an extensive comprehensive understanding of services, cloud storage and devices, we can introduce the main idea of these entry, the IoT acronym of Internet of Things. First, and before explain it, we must know that telemetry systems where the first Internet of Things, father of these applications.
So, What is Internet of Things? IoT is an approach that connects hardware to the internet via internet protocols. This is not a new concept, but has more than “put” that on the web.
Imagine a world where everything is connected to the internet… cars, instruments, fan lights, health devices, motorcycles; now imagine those devices connected together. IoT are internet enabled applications and its called too M2M (Machine to Machine) consisting of CPS (Cyber Physical Systems). For a final visualization and control of your IoT application you could use a smartphone as the viewer or a gateway.
The goal of IoT is to achieve pervasive M2M connectivity and grand integration, provide secure, fast and personalized functionality and services such as monitoring, sensing, tracking, locating, alerting, scheduling, controlling, protecting, logging, auditing, planning, maintenance, upgrading, data mining, trending, reporting, and other applications,
Figure 7. Internet of Things Basic Approach of Libellium.
Libellium is a company that develop internet of things solutions to enterprise or people, this is one of the top companies of IoT applications. The IoT approach is Hardware (sensor/actuator) <-> Internet <-> Controlling Platform (Tablet / PC / Cell Phone)
The Internet of things Four Pilars are:
- RFID: Radio Frequency Identification, for identify or add tags to objects or people.
- WSN: Wireless Sensor Networks. Its specialty is to monitor environmental or physical conditions.
- M2M: Machine to Machine, machine communicating directly with other machines via wireless or wired network
- SCADA (Named the Internet of Controllers). Is a supervisory control an data acquisition specialized software used in industry, but it can be applied to small systems that consists of.
- HMI: Human Machine Interfaces. Could be a touch panel for user graphical information presentation.
- RTUs: Remote Terminal Units. Someones refer to them that the ones to acquire information of the enviroment and send it to the PLC
- PLC: Programmable Logic Controller. Uses its internal functions to do complicated operations, usually requests the info of RTUs and acts as a gateway to the DCS system
- DCS: Similar to SCADA, but in a low level way are in a distributed but not centralized as the SCADA.
The DNA of the IoT is the DCM
- D = Device = Thing that talk
- C = Connect = Via pervasive networks
- Manage: To create new business value
More than connect the devices to the internet is a market over this concept. You could apply this concept to make your new entrepreneur company and give services for:
- Intelligent Enviroment (smart buildings / cieties / transportation)
- Intelligent Living (automotive and consumer electronics)
- Intelligent Enterprise (Health Utilities / Construction / Agriculture)
If you want to make your internet of things devices, remember to fulfill these characteristics:
- Fulfill the 5A concept, that means, it can be intelligently processed and used:
- For anything
- Fulfill the 3I concept, that means, is an object that is:
The more steps forward of the internet of things of an architecture standarization is the WoT or World of Things, everything connected.
Finally, to conclude my “brief” introduction. There are more than one deployment models of the IoT world. You could do a “Private IoT”, it means that is operated solely by an organization or by a third party one; a “Public IoT”, availabel to the public, sells the service or an “Community IoT” where people shares the same concerns as you have.
With the concept of the Internet of Things, lets now have a simple application using labview to connect to a Xively cloud service.
If you want to view an example near the reality of IoT, see the next tutorial.