Featured post

Arduino FreeRTOS Mutex Examples

In this section, we will explain using an example to demonstrate mutexes in Arduino using freeRTOSThere are two freeRTOS Mutex examples in this tutorial, the first example demands some hardware (LCD) While the second does not need any hardware, you can try out both if you have the resources.

In the last tutorial, we considered in detail: semaphores and mutexes and we also established the difference between binary semaphores and mutexes.
Just for a review:Recall that a mutex is a locking mechanism that implements the take and gives functionality in itself, unlike a binary semaphore. See this tutorial if you have not before continuing.
Example 1: Protecting the LCD Resource Using Mutex in freeRTOS
Program Description

In this program, we Demonstrated the use a 16x2 LCD display to implement a mutex.

The LiquidCrystal library works with all LCD displays that are compatible with the Hitachi HD44780 driver. you can usually tell them by their 16-pin interface.


* LCD RS pin to digital…

Basic Overview of the Internet of Things (IoT) and its Challenges

Understanding the Internet of things can be a very exciteful journey, in this post, we are going to fully explore the topics of interest. First, we define the term internet of things, then see some popular IoT examples, IoT companies, protocols used in IoT Applications and what the scope of IoT is.

Internet of things is a novel and fast growing technology in the world of information, communication and computing technology that soon will be affecting and structuring the lives and living standards of man on a global scale. Despise this wonderful potential, it has great challenges that if not handled effectively can be catastrophic. This article concludes by evaluating these challenges.

What is ( IoT )Internet of Things?

There is currently no agreed definition of the term internet of things, however, what all definitions have in common is the idea that the previous version of the Internet was about data created by people, while the internet of things is about data created by things. The best definition for the Internet of Things would be:

“An open and comprehensive network of intelligent objects that have the capacity to auto-organize, share information, data and resources, reacting and acting in face of situations and changes in the environment”

The Internet of Things can also be considered as a global network which allows the communication between human and objects which is and can be anything in the world as long as it has a unique identity. IoT describes a world where just about anything can be connected and communicates in an intelligent fashion that has never ever existed before. The objects involved can be connected through wired or wireless networks.

Internet of Things Companies

In this section, we will be making a list of the top 3 companies that are currently at the forefront of the Internet of things technology.

  1. Google: With the new IoT been rolled out by Google, it shows they are really taking on a serious bet in the IoT industry, millions and billions of dollars are constantly been poured into this development. For instance, the Cloud IoT Core which is a fully managed service that allows you to easily and securely connect, manage, and ingest data from millions of globally dispersed devices. In combination with other services on Google Cloud IoT platform, it provides a complete solution for collecting, processing, analyzing, and visualizing IoT data in real time. Not to mention the smart homes and other smart devices produced as a result of the acquisition of nest.

  2. CISCO: Cisco is constantly churning out different IoT solutions and products. For instance the Cisco Kinetic which can be applied in any business or industry where you need to connect IoT devices securely and at scale. Their IoT products ranges from Data Management to IoT networking to Security.

  3. IBM Solutions: IBM is also constantly pouring investments into the Internet of things industry. For instance, IBM Message Sight which enables you to Optimize wireless messaging, gain real-time messaging with huge reliability including bidirectional computation with different levels of QoS (Quality of Service). The IBM Watson is one of the most popular IoT development platforms for applications.

How IoT Works

Having established that the internet of things is a network made up of human and things who can communicate with each other that it human - human, things-human, things-things. It becomes a very important question as to how does this work? In the next sections, we will consider technologies that IoT is built on and the different protocols used in the application layer.

So how does this internet of things work?

A complete IoT application basically have the following things in common:

  1. Sensors and Sensing elements

  2. Connection facility

  3. Data Collection and Processing

  4. User Area

Sensors pick the data from the environment, examples are the temperature sensors, light sensors (LDRs), they are unable in themselves to transmit this collected data to any entity that is not on Chip, however with different connection facilities their sensed values can be converted to a wireless signal and transmitted to the internet. This can be done through a variety of methods including: WiFi, cellular, satellite, Bluetooth, ethernet etc.

The cloud picks up these values, which brings up the next question: Data processing. Data processing is very important because the system needs to know the nature of data it is receiving and its significance. Is it a video feed? or a temperature reading? It is within this data processing that inferences and control actions can be automated.

User Area deals with the interface. This combines basically data presentation using some computer visual aids to help the user understand the trend and values of data received. It could also include options to take actions like turn off the lights in a smart home, contact a doctor etc. It can be developed as a stand alone software application or as a web application.

Technologies Assisting Development of IoT

The Internet of Things as novel as it may sound is building on top of existing technologies. It is arguable that the first time the concept was implemented dates back to 1982 when a modified coke machine was connected to the internet which was able to report the drinks contained to specify whether the drinks were cold.

It is also accepted that the concept was originally inspired by members of the RFID community, who referred to the possibility of discovering information about a tagged object by browsing an internet address or database entry that corresponds to a particular RFID.

In the research paper “Research and application on the smart home based on component technologies and Internet of Things”, Among the technologies listed, RFID is the foundation and networking core of the construction of the Internet of Things.

The idea of IoT was made possible by different identification technologies like NFC, RFID and 2D barcode which provided the ability to identify a physical object over a network.

  1. Radio Frequency Identification (RFID) Technology: Radio Frequency Identification (RFID) is a system of identification using radio waves that transmits the identity of an object or person wirelessly in the form of a tagged number which is unique to that entity. In classification, we have Active RFID, Passive RFID and Semi-Passive RFID. This classification is based on power requirements.

  2. Internet Protocol (IP): This is the primary network protocol used on the Internet, developed in 1970s. IP is the principal communications protocol for relaying datagrams across network boundaries.

  3. Electronic Product Code (EPC): Electronic Product Code (EPC) is a 64 bit or 98 bit code electronically embedded on an RFID tag and developed as an improvement in the EPC barcode system. EPC code can be used to store information like the unique serial number of product, its specifications, manufacturer information....

  4. Barcode: Barcode are machine readable codes that provides a different way of encoding numbers and letters by using combination of bars and spaces of varying width.  There are 3 types of barcodes of Alpha Numeric, Numeric and 2 Dimensional.

  5. Wireless Fidelity (Wi-Fi): (Wi-Fi) is a wireless networking technology that allows computers and other devices to communicate.

  6. Bluetooth: Bluetooth wireless technology is a short-range radio technology with effective  range of 10 - 100 meters. And generally communicate at less than 1 Mbps and Bluetooth uses specification of IEEE 802.15.1 standard.

  7. ZigBee: ZigBee technology is created by the ZigBee Alliance which is founded in the year 2001. It is a low power wireless network protocol based on the IEEE 802.15.4 standard with a range of around 100 meters and a bandwidth of 250 kbps.

  8. Near Field Communication (NFC): This is a set of short-range wireless technology (4cm)  that makes it easier and more convenient for consumers around the world to make transactions, exchange digital content, and connect electronic devices with just a touch.

  9. Wireless Sensor Networks (WSN): A WSN is a wireless network consisting of spatially distributed autonomous devices using sensors to cooperatively monitor physical or environmental conditions, such as temperature, sound, vibration, pressure, motion or pollutants, at different locations (Wikipedia).

  10. Artificial Intelligence (AI): This is the theory and development of computer systems able to perform tasks normally requiring human intelligence, such as visual perception, speech recognition, decision-making, and translation between languages.

IoT Application Protocols

In the development of IoT based applications, the knowledge of IoT protocols is necessary. In this section, we will consider only a few IoT Application protocols

  • CoAP: This is an acronym for Constrained Application Protocol (CoAP).It is an application layer protocol particularly useful for developing IoT applications and arguably the most used by manufacturers. It is basically a  web transfer protocol based on REpresentational State Transfer (REST) on top of HTTP functionalities. REST presents a much more easy way to exchange data between clients and servers over HTTP.  it eliminates ambiguity by using the popular HTTP get, post, put, and delete methods.

Other application layer protocols for IoT Applications includes:

  • Advanced Message Queuing Protocol (AMQP)

  • Data Distribution Service (DDS)

  • Message Queue Telemetry Transport (MQTT)

  • Extensible Messaging and Presence Protocol (XMPP)

Examples of IoT Applications today

With the tech giants spurring the invention of the IoT, applications have been spread and is still spreading towards every facet of human activity: Commerce, manufacturing, home automation etc.

I still believe that we have not yet scratched the surface of the regions where IoT concept can  be applied. This is because the internet on its own has special features and profound facilities already that may have not been explored by IoT yet. Such as Email service, Weather forecast, exchange rates, online dictionaries, etc

Let's consider some widespread and non-obvious applications of IoT in the world today.

  1. Smart Homes: This is always the first on the list, IoT applications have aided the automation and invention of smart homes, smart cities, smart societies. You can control your garage door, make orders for groceries etc. Combined with the power of DSP, you could control your appliances with your voice, automate closing and opening of window blinds and so much more. It adds smartness to all pieces of equipment in your home. Many products are already available on Amazon.

  2.  Smart Traffic: This is just the control of traffic using the internet

  3. IoT Farm: This application reduces the stress on farmers, sensors pick up various data like moisture level, soil humidity, temperature, in order to make the decision (eg to open the water channel ) based on some programmed response and control action necessary.

  4. Wearables: This is another widespread use case of IoT, the device senses different body values and presents the data to the user, can be automated to alert a medical service

  5. Security: IoT is applied in keeping homes, environment and offices secure, through mounting various sensors and sensing devices to detect the presence of an intruder and alerting the necessary agencies or nearest agencies.

Other applications includes:

  • Smart retailing

  • Energy management

  • Healthcare

  • Transportation

  • Advertising etc

IoT Development Platforms

What is an IoT development Platform? IoT development platform can be said to be a Framework or an IDE (Integrated Development Environment) that enables you to develop, deploy and manage IoT applications, it handles and abstracts some of the intricacies and technicalities of IoT like security, interfacing, communication and protocols.

An IoT platform connects devices, smart sensors and IoT gateways to the cloud. It also has in it real-time analytics option to monitor activities and wonderful data presentation tools like graphs, charts etc.

For the student that needs to test run stuffs using IoT, there are so many development platforms out there that can help you get your hands dirty around IoT. I will be making a little note on some of the very popular and free ones.

  • Microsoft Azure IoT: Its prevalent feature is in security and authentication. It also simplify the process of IoT project development.

  • Cisco IoT Platform: Built by cisco, it provides simple and secure solutions for IoT with network connectivity, data analytics, application enablement, management and automation.

  • IBM Watson IoT: It is a wonderful development platform that supports Device management, Responsive, scalability, connectivity, security and authentication.

  • Temboo: This IoT platform provides services to integrate Arduino, Raspberry, and other platforms with different Internet services.

  • ThingWorx IoT Platform: ThingWorx is a platform for faster development, integration and deployment with huge flexibility and scalability advantages for new development.

  • Ubidots: it supports several devices, such as Arduino, Raspberry, Particle, Espressif, Onion, and provides different kinds of services, ranging from device connectivity to data visualization.

  • myDevices: My Devices supports several devices, such as Arduino, Raspberry, ESP. The strength of this platform is in its capacity to visualize data coming from remotely connected devices and control them.

  • ThingSpeak:  The strength of this platform is the IoT analytics and data visualization and its support for MATLAB, which expands its horizon to include matlab powerful data analysis and processing.

  • TheThings.io:  It supports popular development boards ( Arduino, Raspberry Pi...). In this dev platform, devices can connect to the cloud using several protocols, like MQTT, CoAP, HTTP, Websocket, etc.

  • AWS IoT: It is a cloud IoT platform managed by Amazon with a set of services to connect several devices and takes care of the security issues. 

  • Xively: It is an enterprise platform that helps to manage devices, it helps in managing the communication, security, and firmware updates.

  • Kaa: This platform helps developers to build complex IoT projects easily and fast using several protocols like CoAP and MqTT.

  • Google Cloud IoT: Powered by google, provides a good abstraction to IoT applications and a platform for integrating machine learning.

  • Predix: Predix is one of the few IoT platforms built by Apple and GE basically for industrial IoT and has in it software development tools

Challenges and Threats Facing the Internet of Things

The internet of things comes with it big time opportunities for startups, individuals and nation. It will not only improve the quality of our lives but it will also optimize and improve our efficiencies, curb manual labors which are unnecessary and provide an avenue for human beings to become more productive.

However, the IoT faces serious threats and challenges which if not addressed can bring to a halt the applications and also may cause disastrous and unpredictable damages, crime etc.

These threats include the following but not limited to:

  • Security Challenges have hampered industries from adopting IoT in automating their plant processes

  • Privacy and unauthorized access to data concerns amongst several bodies have become a major challenge

  • Frequent cyberspace terrorism, the frequent news on hacking attempts, cyber terrorism have created the notion that the internet is not secure and a place of high risks.

  • Due to the Absence of a central Government and standards, there are consistency issues

  • Power Issues in providing constant power to these devices.

  • Memory and storage Requirements as we are looking into the proliferation of the big data

  • Lack of Support of the regulatory bodies and standard organizations

  • Hardware and Software upgrades is a regular thing on the net due to more technological advancements and security improvements.

Most of these challenges are solved by using IoT development platforms which we have outlined in this post.


Popular posts from this blog

Arduino FreeRTOS Tutorial 05: Binary Semaphores and Mutexes

Arduino FreeRTOS Mutex Examples

Arduino FreeRTOS Tutorial 04: Understanding Task Scheduling and Control