implementation of IoT
In infrastructure-based networks, such as mobile networks, infrastructure not only manages internal communications, but also connects network users to the outside world. In wireless mesh architecture, the information gateway plays the role of infrastructure and information is sent to or received from the Internet through it. On the other hand, in this architecture, routers are easily added or removed from the set (without the need for central management).
As a result, wireless mesh networks are similar to contingent networks. An interesting feature of wireless mesh networks is that if a router fails, the network will continue to operate. This property is based on the fact that in the mesh topology each node is connected to other nodes.
A wireless mesh network consists of a number of users (clients), one or more routers for moving information, and a gateway for connecting the network to the Internet (Figure 1). Users in this network are not just human beings, but any device that has the desired connectivity (for example, a smart sensor) is a user.
In fact, wireless networking is a viable option for the Internet of Things. To date, wireless mesh networks have been used in many environments, including city traffic light monitoring systems and smart water meter network monitoring. (figure 1)
Usually the communication technology used in the physical layer of wireless mesh networks is a low-power communication system such as ZigBee, which of course does not have the desired security. This network can be designed on the basis of WiFi technology to have higher security and at the same time to set it up easily. In the following sections, the implementation details of this set are described in two sections: user system implementation and network implementation.
Implement the user system
The WiFi-based user system architecture in a wireless mesh network is shown in Figure 2, which includes the power supply, microcontroller, sensor / actuator, watchdog timer, EEPROM memory, and WiFi module. The power supply provides a low level voltage to the set.
The microcontroller can also be an eight-bit ATMEGA that reads sensor information and sends it to one of the routers using a WiFi module. Recently, ready-made boards such as the Arduino have also become popular, simplifying programming for smart objects. If you use these boards with a few lines of code, you can read the sensor information and send it to the WiFi module.
The WiFi module can be selected from esp8266, which is a cheap WiFi chip. This product fully supports the TCP / IP protocol stack and its transmitted frequency is 2.4 GHz. (figure 2)
Finally, it should be noted that the MQTT protocol is recommended for the exchange of information between the user and the router. The MQTT protocol is designed for communication between machines over the Internet. This protocol has a tremendous ability to exchange low-volume messages for situations where network bandwidth is limited.
Compared to the more popular HTTP protocol, MQTT is based on publishing / membership, while HTTP is request / response based. In the diffusion / membership model, the dependency between the sender and receiver is eliminated, so that if one is out of reach, the connection is maintained. This feature is obviously useful and even necessary for wireless mesh networks, which are as unstable as contingency networks.
To add MQTT protocol to user system, MQTT client must be installed. The installation method varies depending on the type of board. For example, in connection with the Arduino board, to do this in the library management section, you must search for the phrase PubSubClient and add it to the library. Many websites have explained how to install ATMEGA boards, which can be accessed with a simple search if needed.
Mesh network design
Wireless routers in the mesh network They are responsible for communicating between users and the information gateway. Routers intended for use on a Wi-Fi mesh network must support OpenWRT software. This software makes the router programmable, so that various functions can be added to the router. For example, with this software you can turn the router into a VPN server.
Various manufacturers offer routers equipped with this software that you should pay attention to product information when buying. It is interesting to know that the Raspberry Pi board of Model B is also equipped with this feature and is a cheap option for implementing a router. After purchasing the router, you must have OpenWRT software installed on it. The installation process is described on many websites, which is different for each router brand.
Of course, there is a simpler solution for implementing network software, which we will discuss below.
The Quick Mesh Project, or qMp for short, based on OpenWRT, is a viable option for implementing a Wi-Fi-based wireless mesh network that eliminates many configuration complexities (including routing). qMp is an open source project designed in 2011 and implemented in many mesh networks.
Guifi.net, for example, is a project to provide rural Internet access to several thousand users in Spain. (This project is reviewed in the November issue of Network Monthly in an article entitled “Internet for All.”) The project uses qMp software to achieve its goal.
On the site of this software, its outstanding feature is the ability to implement quickly without the need to consider the network topology. In fact, the system automatically starts when activated. Of course, there are instructions for configuring and analyzing the system, which are described on the project website. The web user panel of this system also provides the possibility of managing the collection graphically. A view of this panel can be seen in Figure 3. (Figure 3)
The next discussion is about mesh network routing software. We know that routers send information to a destination according to a routing protocol. In wireless mesh networks, due to their contingency and unplanned nature, protocols such as OLSR and AODV designed for this purpose are suitable. Some of these protocols detect the route when sending information, and others discover all possible routes to that destination before a message is sent to a specific destination.
The first method is more scalable, at the same time it has more latency and is likely to impair the quality of service. QMp uses the BMX6 routing protocol, which is installed on Linux and is a type of protocol that specifies routes before sending information. Also, the communication in this system is based on IPv6 and users who have only IPv4 protocol in their system, connect to the network through a tunnel.
Finally, the available options should be compared in terms of the size of the developer community, the quality of the projects in which they have been implemented, and other possible parameters, and the appropriate software selected.
At the beginning of this article, we introduced wireless mesh networks and showed that these networks provide the benefits of infrastructure-based networks and contingency networks in one set. In fact, these networks can be connected to the Internet (not isolated), while being as flexible as the contingency networks in design and implementation.
In the following sections, we learned how to implement the various components of a wireless mesh network and saw that a wireless mesh network could be set up at a reasonable cost and energy.
Of course, the actual implementation will probably require a lot of detail, but there does not seem to be any major obstacle in this direction. In other words, this architecture is not a high-tech technology, so it is a good option for easy and economical implementation of the Internet of Things. On the other hand, the WiFi standard also tests itself in the field of security, communication quality, etc.
See Also How to get a better Wi-Fi signal