Internet of Things Software Guide.

****In Development****

Protocols:

There are many protocols available for enabling wireless communication in a network of smart objects.

Zigbee a low-cost and low-power radio communications protocol based on the 802.15.4 standard for Wireless Personal Area Networks (WPANs).

6LowPAN uses the 802.15.4 standard but uses IP with the aim of achieving the wireless ‘Internet of Things’. 6LoWPAN stands for IP version 6 (IPv6) over Low Power Wireless Personal Area Networks.

JenNet-IP
Using an enhanced 6LoWPAN network layer as defined by the IETF, it targets ultra-low-power IEEE802.15.4-based wireless networking for residential and industrial applications.

The IPSO Alliance  promotes this use of IP for smart objects and there are many good arguments for using the existing IP protocol.


.NET Micro Framework:
An open source platform that expands the power and versatility of .NET to the world of small embedded applications.

Embedded Operating Systems:

System Overview Programming Model Language
Tiny OS TinyOS is an open source, BSD-licensed operating system designed for low-power wireless devices, such as those used in sensor networks, ubiquitious computing, personal area networks, smart buildings, and smart meters. A worldwide community from academia and industry use, develop, and support the operating system as well as its associated tools, averaging 35,000 downloads a year. Event Driven, support for TOS threads NesC
Contiki Contiki is an open source, highly portable, multi-tasking operating system for memory-efficient networked embedded systems and wireless sensor networks. Contiki has been used is a variety of projects, such as road tunnel fire monitoring, intrusion detection, wildlife monitoring, and in surveillance networks.Contiki is designed for microcontrollers with small amounts of memory. A typical Contiki configuration is 2 kilobytes of RAM and 40 kilobytes of ROM. Protothreads and events C
Mantis
The MANTIS Group at CU Boulder has developed an open source, multi-threaded operating system written in C for wireless sensor networking platforms. Some key features of MANTIS OS (MOS):
Developer friendly C API with Linux and Windows development environments
Automatic preemptive time slicing for fast prototyping
Diverse platform support including MICA2, MICAz, and TELOS motes
Energy-efficient scheduler for duty-cycle sleeping of sensor node
Small footprint (less than 500B RAM, 14KB flash)
Threads C
Nano-RK
Nano-RK is a fully preemptive reservation-based real-time operating system (RTOS) from  Carnegie Mellon University with multi-hop networking support for use in wireless sensor networks. Nano-RK currently runs on the FireFly Sensor Networking Platform as well as the MicaZ motes. It includes a light-weight embedded resource kernel (RK) with rich functionality and timing support using less than 2KB of RAM and 18KB of ROM. Nano-RK supports fixed-priority preemptive multitasking for ensuring that task deadlines are met, along with support for CPU, network, as well as, sensor and actuator reservations. Tasks can specify their resource demands and the operating system provides timely, guaranteed and controlled access to CPU cycles and network packets. Together these resources form virtual energy reservations that allows the OS to enforce system and task level energy budgets. Threads C
LiteOS LiteOS is an open source, interactive, UNIX-like operating system designed for wireless sensor networks. With the tools that come with LiteOS, you can operate one or more wireless sensor networks in a Unix-like manner, transferring data, installing programs, retrieving results, or configuring sensors. You can also develop programs for nodes, and wirelessly distribute such programs to sensor nodes. Threads and Events
LiteC++
FreeRTOS FreeRTOS is a real-time operating system for embedded devices, being ported to several microcontrollers. It is distributed under the GPL with an optional exception.  C

nesC
: A Programming Language for Deeply Networked Systems

Other efforts include:

SOS 
EmberNet 
Smart-its
Ant Nut/OS
Squawk Virtual Machine 




EEML: Extended Environments Markup Language
A protocol for sharing sensor data between remote responsive environments, both physical and virtual. It can be used to facilitate direct connections between any two environments

SensorML
The OpenGIS® Sensor Model Language Encoding Standard (SensorML) specifies models and XML encoding that provide a framework within which the geometric, dynamic, and observational characteristics of sensors and sensor systems can be defined. 

Websockets:
A technology providing for bi-directional, full-duplex communications channels, over a single Transmission Control Protocol (TCP) socket. It is designed to be implemented in web browsers and web servers, but it can be used by any client or server application. The WebSocket API is being standardized by the W3C, and the WebSocket protocol is being standardized by the IETF.

Because ordinary TCP connections to ports other than 80 are frequently blocked by administrators outside of home environments, it can be used as a way to overcome these restrictions and provide similar functionality with some additional protocol overhead while multiplexing several WebSocket services over a single TCP port.

For the client side, WebSocket was implemented in Firefox 4, Google Chrome 4, Opera 11, and Safari 5 

MQTT:
MQ Telemetry Transport - The MQTT protocol enables a publish/subscribe messaging model in an extremely lightweight way. It is useful for connections with remote locations where a small code footprint is required and/or network bandwidth is at a premium.

oBIX (Open Building Information Xchange):
A focused effort by industry leaders and associations working toward creating a standard XML and Web Services guideline to facilitate the exchange of information between intelligent buildings, enable enterprise application integration and bring forth true systems integration.

Constrained Application Protocol (CoAP)
A specialized RESTful (Representational State Transfer) protocol for use with constrained networks and nodes for machine-to-machine applications such as smart energy and building automation.
 


blog comments powered by Disqus

Job Listings