Internet of Things
Although there are many definitions for Internet of Things, primary concept in IoT is that things (electronic devices) are connected with each other to exchange information or to increase the range of a network. These devices can be anything that can sense and/or control its physical environment, act as a network coordinator to manage other devices or just act as a gateway to connect to other networks. When one of the other network happens to be Internet then a whole new possibilities exist for interconnected devices as shown below.
Connecting Things to Internet
IPv4 or Internet Protocol version 4 defined by RFC 791 specification is one of the workhorses behind Internet and it offers 232 or approximately 4 billion unique addresses, however with rise of Internet and number of computers connecting to Internet IPv4 cannot be used to uniquely address every device: to over come this limitation devices are assigned IPv4 addresses from the private network address pool and network address translation is required to access Internet. This limitation led to the development of IPv6 defined by RFC 2460 specification which offers an address space of 2128 or approximately 3.4 x 1029 billion addresses, this address space is large enough to uniquely address every device on this planet without the need for any gateway or router performing network address translation.
Ethernet defined by IEEE 802.3 standards is a wired communication technology. Being an established standard, lot of open source applications, protocol stacks and micro-controllers with integrated ethernet MAC and PHY are available. Ethernet has the advantage of high data rate communication at relatively low power compared to wireless technologies, however being a wired communication technology mobility is not possible hence this solution is applicable to deployment architectures where devices have fixed location.
Wi-Fi defined by IEEE 802.11 standards is a wireless communication technology. Wi-Fi has become a defacto way for computers, smartphones and tablets to securely connect to internet via Access Point or Hotspot, however this technology is not suitable to create wireless networks interconnecting sensors and other embedded devices as it consumes more power compared to ZigBee and other low power wireless personal area network standards. Wi-Fi modules with integrated TCP/IP protocol stack, HTTP web servers, DHCP client and other web applications are available for ease of integration in IoT applications, these modules typically have UART or SPI interfaces for host communication.
Mobile cellular networks can also be used to connect to Internet, cellular networks offer high flexibility for IoT applications requiring mobility and remote area deployment. External micro-controller usually communicates with GSM modules with AT commands over serial interfaces like UART or SPI, some modules also support TCP/IP communication over AT commands, however these modules are expensive and consume high power as compared to other communication technologies.
Moving to Cloud
As the number and spectrum of embedded devices connected to Internet will exponentially increase over time, managing their information content would require an infrastructure comprising web services, database connectivity, security and other resource management services, these set of services in general is referred as cloud computing. Deploying and maintaining a cloud computing system can be very expensive and challenging task. There are now many paid and free cloud services available for building IoT applications, conceptually these services expose some web interface or remote software APIs which are accessed by embedded devices and end user applications.
Future articles will look further deep into design and implementation of IoT applications based on cloud services.