The concept of IoT dates back to 1999 when Kevin Ashton, who was working at MIT’s media center at that time wanted to represent concept of computers and machines with sensors, which connects to the internet to report statuses and accept control commands. IoT in reality has been around for a long time, but it didn’t have a name.
Machine-to-Machine (M2M) communications have been in existence for many decades, often using dedicated networks that eventually converged over to the Internet. IoT is also referred in another name, such as ‘Ubiquitous Computing’ and the ‘Internet of Everything’. No matter what the name, IoT is progressively affecting more people in their everyday activities as time progress.
IoT for the Software Engineers
The Microcontrollers are tiny computers that can execute instructions. Most of the modern microcontrollers have “Von Neumann” or “Harvard” architectures. These tiny chips consist of ALUs (Arithmetic and Logical Unit), ROMs, RAMs, MPU (Memory Protection Unit), Interrupts controllers and a lot of peripherals. They are designed to execute ordered instruction sets. The Microcontrollers are also called as ‘Reduced Instruction Set Computers’ (RISC) because of this phenomena. Microcontrollers come in different ALU, working register sizes and pin configurations. Today we can find as low as 8-bit to as high as 64-bit microcontrollers in the market. You should select the one that suits you the most. There are endless possibilities that even a tiny 8-bit microcontroller can do.
Bellow shown is a functional block diagram of the PIC16F877A microcontroller.
The Microcontroller has its own flash memory. In order to write programs into a microcontroller, a special device is used. This is often called as a “Programmer”. There are various chip programmers in the market depending on the chip brand. The program flashes the chip’s flash memory using a high voltage signal. A typical microcontroller life span has more than 1000 reads and write.
If you find yourself lost, please be calm, there’s an easier way to get started. That’s where “Arduino” stands out.
Arduino is an open source hardware and software platform. By logging into http://www.arduino.cc you can select a suitable board from the range of product it offers.
If you’re a newbie, you might like to start with an Arduino UNO (ATMega328 chip) which is a great way to learn about electronics. The best thing about the Arduino is that you only need a USB cable to start developing.
Arduino UNO Development Kit
Arduino comes with pre-loaded “boot loader” that is capable of communicating with a computer using serial protocol. Engineers use these tiny computers to gather information using sensors and transfer data to computers for faster data processing.
Microcontroller comes handy when you want to interface with sensors and actuators.
On the other hand systems like Raspberry Pi gives you the luxury of running the full featured operating systems, preferably Linux, on them.
Raspberry Pi Model B+
It’s also known as “Single Board Computer” (SBC) in short. Most of the SBCs feature industry’s most trusted ARM core CPUs. ARM offers three major processor types. Cortex A, Cortex R and Cortex M. Both Cortex R and M are used for embedded applications. M series is designed with low power and high efficiency in mind. R series have very low latency and powerful interrupt handling thus used for applications that need real-time processing. “A” series is handy for application developers since those processors are capable of running full-featured operating systems. These are the processors we find inside our smartphones. Raspberry Pi comes with a considerable amount of RAM and other peripherals. It is also capable of running LAMP (Linux, Apache, MYSQL, and PHP) package and also includes a powerful GPU capable of running HD videos. These devices are great for deploying your next big idea.
When it comes to hardware, what confuses most of us is choosing the correct hardware for the project. To make this a less complex task, we need to segment our idea.
Before searching the Internet for a microcontroller, you should list all the components that are there in your project. There are various types of sensors in the market. Devices that have serial interfaces for communication can save tons of GPIO (General Purpose Input and Output) Pins in a micro-controller. It’s preferred to give priority for sensors that have SPI or I2C (two wire) communication interfaces. Usually, a microcontroller with 32KB-256KB flash memory is more than enough for general IoT projects. The more pins you have more components can be connected to the controller. If you’re planning to do the Signal Processing, 32-bit cores would be a great choice to start as they support precision floating point operations.
IoT and Mobile
Mobile phones are used by many of us on a daily basis. If you want your IoT project to be more user-friendly, being able to communicate with a smartphone is a must.
There are many ways we could connect a hardware device to a smartphone but out of everything, the cheapest way would be using the Internet. The internet is already connected to most of the devices such as routers, modems, LAN cables etc. that can be found at any house easily these days. What you need is an idea.
If you’re looking for rapid prototyping of your idea, you should check what “www.parse.com” has offered for IoT base projects. “Parse for IoT” is a great place to start building mobile apps with a butt back end. Parse has a user-friendly “C” API for “REST”. You can use those APIs on Raspberry Pi and some of the Arduino boards. If you’re more of a “maker” kind of person, you should definitely research more on “ESP8266” chip. “ESP8266 Wi-Fi Module” is a self-contained SOC (System on Chip) with integrated TCP/IP protocol stack that can give any microcontroller access, to your Wi-Fi network.
Parse mobile SDKs provide easy access to my butt. So, that you can communicate with hardware devices without much hassle using a smart phone.
Apart from the Internet, Bluetooth, NFC and IR can also be used to connect external devices to the phone but, they need additional hardware for interfacing with a mobile.
Above mentioned connectivity forms are great for making wearable and medical electronics. They have lightweight communication protocols that can be easily integrated on a micro-controller. If your project contains lots of sensors, using above mentioned connectivity forms would make your life easy. One real world example of such cases would be “Beacons”. The popular type of beacons are the ones that use Bluetooth low energy to connect with mobile devices. These devices are capable of sensing the proximity information and also present information to the nearby mobile devices.
The Internet can be accessed nearly anywhere. Beyond smartphones and smartwatches, the Internet of things movement has brought to market an increasing number of everyday objects equipped with network connectivity, allowing them to send and receive data.
Increased connectivity means increased streams of data, which worries many about the safety of such devices. And despite the convenience of connected devices from a thermostat that heats up the bedroom right before you hop out of the bed in the morning to the refrigerator that warns about the expired food – risk should also be weighed against reward.
The issue of data security will take center stage as more and more connected devices come to market.
What does this mean for the Engineers?
It means a renewed awareness of security and privacy in the design stage of IoT devices. We have already collectively decided there are benefits to connecting devices to the Internet and allowing them to make smarter choices, but we must also draw the line before compromising safety. Machine-to-machine communication is not a new idea, but this is the turning point for IoT in which it becomes more mainstream. Think of the early aviators at the turn of the 20th century. Certainly, the Wright brothers were more concerned with getting their aircraft to fly than they were with whether or not it was entirely safe to do so! It was only after this had been accomplished that safety and structure were taken into consideration.
Of course, consumers must remain diligent about the selection and use of these devices as well. Imagine using an app to access your home; IoT devices have tremendous potential for this type of use, but the user in such a case may decide the risk of a home invasion far outweighs the benefit of using their smartphone rather than a standard key to unlock their door. However, many consumers are purchasing wearable and connected devices without full knowledge or understanding of the data they are exposing.
National governments and large institutions have a responsibility to facilitate discussions on privacy and security while recognizing that there is a limit to the policies they can implement and enforce. Informed conversation and education are the first steps to tackling the issue of data security in the IoT.
As engineers, it is our collective obligation to assist in these discussions and help those outside of the industry understand this issue. We can play a role in shaping the future of security and privacy for the IoT devices, as we are ultimately the people creating the technology fueling the movement.