The Internet of Things (IoT)
is the interconnection of uniquely identifiable embedded computing devices
within the existing Internet infrastructure. Typically, IoT is expected to
offer advanced connectivity of devices, systems, and services that goes
beyond machine-to-machine communications(M2M) and covers a variety of
protocols, domains, and applications. The interconnection of these
embedded devices is expected to usher in automation in nearly all fields.
The Internet of Things (IoT) is the network of physical objects accessed through the Internet as defined by technology analysts and visionaries. These objects contain embedded technology to interact with internal states or the external environment. In other words, when objects can sense and communicate, it changes how and where decisions are made, and who makes them. A common first step toward the IoT is converting networks on proprietary protocols to IP-based networks.
CoAP is designed for interoperability with the web. MQTT gives
flexibility in communication patterns and acts purely as a pipe for binary
data.
CoAP is the Constrained Application Protocol
from the CoRE (Constrained Resource Environments) IETF group. Like HTTP, CoAP
is a document transfer protocol. Unlike HTTP, CoAP is designed for the needs of
constrained devices. CoAP packets are much smaller than HTTP TCP flows.
Bitfields and mappings from strings to integers are used extensively to save
space. Packets are simple to generate and can be parsed in place without
consuming extra RAM in constrained devices.
CoAP runs over UDP not TCP.
Clients and servers communicate through connectionless datagrams. Retries and
reordering are implemented in the application stack. Removing the need for TCP
may allow full IP networking in small microcontrollers. CoAP allows UDP
broadcast and multicast to be used for addressing. CoAP follows a
client/server model. Clients make requests to servers, servers send back
responses. Clients may GET, PUT, POST and DELETE resources. CoAP is designed to
interoperate with HTTP and the RESTful web at large through simple proxies. As
CoAP is datagram based, it may be used on top of SMS and other packet based
communications protocols. tinydtls is a library for Datagram
Transport Layer Security (DTLS) covering both the client and the server state
machine. It is implemented in C and provides support for the mandatory cipher
suites specified in CoAP.
MQTT is a publish/subscribe messaging protocol
designed for lightweight M2M communications. It was originally developed by IBM
and is now an open standard. MQTT has a client/server model, where every sensor
is a client and connects to a server, known as a broker over TCP. MQTT is
message oriented. Every message is a discrete chunk of data, opaque to the
broker. Every message is published to an address, known as a topic. Clients may
subscribe to multiple topics. Every client subscribed to a topic receives every
message published to the topic.
- Contiki
- TinyOS
- RIOT
- mbedOS
- FreeRTOS
- Google Brillo
ref:
Open Interconnect Consortium(OIC) - http://openinterconnect.org/
AllSeen Alliance - https://allseenalliance.org/
Qualcomm Allseen Alliance source code download - https://allseenalliance.org/developers/download
Intel iotivity source code download - https://www.iotivity.org/downloads
IoT standards - iot.eclipse.org— Standards
Google Thread IoT - http://www.threadgroup.org/
Industrial Internet Consortium - http://www.iiconsortium.org/
Google Nest and others group - http://www.threadgroup.org/
Apple HomeKit - https://developer.apple.com/homekit/
IoT overview -
- http://www.cisco.com/web/solutions/trends/iot/overview.html
- http://www.microsoft.com/windowsembedded/en-us/internet-of-things.aspx
- http://www-01.ibm.com/software/info/internet-of-things/
- http://www.businessinsider.com/enterprise-growth-in-the-internet-of-things-market-2014-8
- http://www.mckinsey.com/insights/high_tech_telecoms_internet/the_internet_of_things
IoT protocols(MQTT, CoAP) - http://www.eclipse.org/community/eclipse_newsletter/2014/february/article2.php
libcoap: CoAP implementation in C - http://sourceforge.net/projects/libcoap/
micro-ecc - https://github.com/kmackay/micro-ecc
jCoAP: CoAP implementation in Java - https://code.google.com/p/jcoap/
CoAP.net: CoAP implementation in C# - http://sourceforge.net/projects/coapnet/
CoRE (Constrained Resource
Environments) - https://datatracker.ietf.org/doc/charter-ietf-core/
Open IoT stack for Java - http://iot.eclipse.org/java/download/
Intel IoT developer kit - https://software.intel.com/en-us/blogs/2014/09/08/announcing-intel-iot-developer-kit
Eclipse C/C++ IDE for Intel Galileo/Edison - https://software.intel.com/en-us/getting-started-for-c-c-plus-plus-eclipse-galileo-and-edison