Название: The Smart Cyber Ecosystem for Sustainable Development
Автор: Группа авторов
Издательство: John Wiley & Sons Limited
Жанр: Техническая литература
isbn: 9781119761662
isbn:
1.4 Interoperability in IoT
In IoT, many heterogeneous devices, protocols, operating systems have to work together to fulfill objectives. This heterogeneity is one of the major concerns when we perform communication in the world of IoT as it requires not only anytime, anywhere but also anything enabled to communicate. “Interoperability” is a characteristic of a product or system whose interfaces are completely understood to work with other products or systems without any limitations. Interoperability is must when we would like to communicate in the era of IoT that contains heterogeneous devices [19]. So, by maintaining interoperability in the IoT network, we can have exchange of data and service in a seamless manner. In this seamless exchange of data and service, many elements are involved and perform the communication such as physical objects can communicate with other physical objects.
As per the overall goal of IoT, anytime anywhere anything (device) can be communicated with other devices, i.e., can do Device-to-Device (D2D) communication. More than these types of communication, others such as Device-to-Machine (D2M) communication, M2M communication should also be performed seamlessly in the IoT network. Hence, in this situation, the IoT network has to deal with many types of heterogeneity such as heterogeneity of different wired and wireless communication protocols. Moreover, different programming languages are used for different platforms as well as different hardwares that also vary different standards and support different languages and communication protocols. So, if we would like to perform seamless communication between such corel, heterogeneous connected components, protocols, languages, operating systems, databases, and hardwares, then interoperability among them is a must.
There are basically two types of Interoperability such as User Interoperability and Device Interoperability. User Interoperability is an interoperability problem between user and device(s) and Device Interoperability is an interoperability problem between two different devices. User interoperability problems occur when remotely located users would like to communicate with other device(s) whose product id may be written in different language, there may be differences in user syntaxes, differences in user semantics, as well as differences in user specification for those devices. So, all these types of complex veracity leads to create a simple IoT problem into a complex one that falls under the problem of interoperability.
To resolve such user syntax interoperability problems worldwide, there are different solutions that provide unique device identification addresses to devices such as Electronic Product Codes (EPC), Universal Product Code (UPC), Uniform Resource Locator (URL), and IP addresses IPv6. For resolving syntactic interoperability problems there are different approaches such as Open standard protocol (IEEE 802.15.4, IEEE 802.15.1, and Wireless HART), Closed standard protocol (Z-Wave), Service Oriented Computing (SOC), and web services. But all these approaches have the problem of heterogeneity and, therefore, incompatible with each other to perform communication. So, we have certain middleware technologies such as Universal Middleware Bridge (UMB) that resolve such devices interoperability problems that have been generated due to heterogeneity amongst them. Thus, in this topic we have discussed IoT which is surrounded by heterogeneity problems, which can be resolved using interoperability features. The next topic explains about the programming technologies concerned with IoT.
1.5 Programming Technologies in IoT
The programming technologies associated with IoT such as Arduino programming, Python programming, and Raspberry Pi are well known. Arduino programming can be done in consultation with the Arduino UNO board to accept analog and digital signals as input and generate desired output. Python is a lightweight programming language that is very much popular for IoT application development. Raspberry Pi is powerful compared to Arduino in terms of memory capacity and processing power. Raspberry Pi is a single-board, low-cost computer that provides easy access using GUI.
1.5.1 Arduino
Arduino is low resource consuming and cheaper in cost. Due to these two characteristics, it is popular worldwide for implementing the IoT. As shown in Figure 1.4, Arduino is an open source programmable board with a built-in microcontroller and the software (IDE). So, using this Arduino board, we can have input as analog or digital signals and produce digital signal as an output and there is no need to have a separate programmer to program it like traditional microprocessor 8051 and 8085. To program the Arduino microcontroller board, open source software of Arduino IDE is utilized using C or C++ programming language. IDE can be downloaded from Arduino’s official website [22].
To do programming in the Arduino board, install Arduino IDE. Now switch on the Arduino board by attaching it with USB cable to PC and launch Arduino IDE. Using the TOOLS option of this IDE, set BOARD type and PORT type. Program coded in Arduino is known as “sketch”. So, go to the file menu and click on “Create New Sketch” to write a new program in Arduino. Sketch structure in the Arduino IDE can be divided in two major functions: Setup() and Loop(). Setup() function is just like the main() of C/C++ in which we can declare input/output variables and pinmodes can also be declared over here. As per the name, Loop() function is used for iterating the instruction(s) written under it. Using the “pinMode()” function of the Arduino IDE library, we can have the syntax of this function as given below. The common functions of the Arduino library are as given in Table 1.1.
Figure 1.4 Arduino UNO board [21].
Table 1.1 Arduino function and its description.
Function | Function Description |
pinMode(pin, Mode) | Configure the input/output pin(s) with its pin number in the arduino board. pin = pin number on Arduino board, Mode = INPUT/ OUTPUT |
digitalWriter() | Write digital pin value (HIGH/LOW) |
analogRead() | Read from analog input pin |
Delay() | Provides a delay of specified time in milliseconds |
Using the above common function, we can write down a program in Arduino IDE that is used for “Blinking LED”. To perform this practical on an Arduino board, we require several objects/entities as hardware such as an Arduino micro-controller board, USB connector, LED, respective capacity of resistor, bread board, connecting wires, and as a software Arduino IDE as shown in Table 1.2.
Table 1.2 Arduino programming requirement.
Activity | Hardware Side |
Software Side
СКАЧАТЬ
|