This is a series of two blog posts which briefs about IoT and Smart Home solutions. In this first post, Iâ€™m going to explain what IoT is and why one shall care. In the nextÂ post, Iâ€™m going to write about Eclipse SmartHome and its implementation OpenHAB.
Internet of Things (IoT)
IoT is one of the most popular jargons these days in tech industry. Different organizations and individuals provide distinct but somewhat similar definitions of IoT. For me Internet of Things is an extension of Internet as evident from the following definitions of Internet and IoT from Wikipedia:
“The Internet is the global system of interconnected computer networks that use the Internet protocol suite (TCP/IP) to link billions of devices worldwide.”
“IoT is the network of physical devices, vehicles, buildings and other itemsâ€”embedded with electronics, software, sensors, and network connectivity that enables these objects to collect and exchange data.”
In a nutshell, IoT is a proposed development of the Internet in which everyday objects have network connectivity, which allows them to send and receive data, also these devices can react on this data intelligently.
Why one should care about IoT:
In today’s Internet most of the information available has been generated by humans whether it is text documents, images or videos. With IoT, machine generated information is being made available on the cloud. This will increase the accuracy of available information and reduce the cost of generating it.
Internet revolutionized how people communicate and work together, information availability for everyone and everywhere. It transformed life in ways that were hard to imagine in its early stages. But the next wave of the Internet is not about people. Itâ€™s about intelligent, connected devices i.e. IoT devices.
IoT devices collect and analyse data as well as react on data by sending a notification to a human being, by taking certain action or by sending data to cloud for storage and further processing.
For example, a heart rate monitor is an IoT device which can monitor heart beat of a person (collect data), analyze it and notify the person of sudden changes in heart beat so that the person can take necessary actions. Also, the analyzed data can be sent to the cloud to be used by medical staff.
Communication in IoT:
IoT is the future in which all sorts of devices and sensors communicate with each other and with distant computers and other systems to operate in a seamless fashion and transform our world. Some devices might be hardwired into an existing network whereas others communicate wirelessly. Following three types of communications are required for IoT to function properly:
- IoT devices should communicate with each other (Device to device communication)
- Generated/collected device data must be sent to the cloud infrastructure (device to cloud communication)
- Next, cloud infrastructure has to share data with each other and possibly providing it back to devices, to analysis programs, or to people. (cloud to cloud communication)
Many protocols have been developed by different organization to meet the above mentioned requirements. Following are example of few such protocols which are already popular or gaining popularity:
- DDS (Data Distribution Service)
- OneM2M (Machine to Machine)
- MQTT (Message Queue Telemetry Transport)
- CoAP (Constrained Application Protocol )
- XMPP (Extensible Messaging and Presence Protocol)
The current state of the IoT industry is characterised by closed proprietary solutions that limit interoperability between solutions and lock customers into a particular technology.
In current state of the IoT industry above mentioned protocols (and other IoT protocols) have proprietary implementations that limit interoperability between solutions. For Internet of Things to be successful it needs to be built on the principles that made the Internet successful i.e. open standards and open source software. Here comes the Eclipse IoT, which is an ecosystem of companies and individuals that are working together to establish an Internet of Things based on open technologies. It provides open source implementation of protocols so that different vendors can utilize them in their products and solution vendors can write a single solution to control these products. Also, communication between these products is possible because they are following same standards. Eclipse IoT provides the following Implementations of IoT protocols:
- Paho (client implementations of MQTT)
- Mosquitto (server implementations of MQTT)
- Californium (implementation of CoAP)
- OM2M (implementation of One M2M)
- Leshan (implementation of lightweight M2M)
Apart from protocol implementations, Eclipse IoT also provides a few services and frameworks based on these protocols. In my next post, I will write about one such framework for home automation i.e. Eclipse SmartHome.