In many organizations, negotiating rooms are used inefficiently. There are two main reasons for this state of affairs. The first is that someone, having booked a negotiation room, may not use it at the appointed time. The second reason is that the meeting ended earlier than planned, everyone dispersed, but those who could use the room did not know about it.
We have created an intelligent booking system for meeting rooms (Smart Conference Room System, SCR) in order to help everyone with these problems to cope.
general review
With our development, you can, in real time, assess the situation in the negotiation room. The system is able to determine if there are people in the room, and if they are not there, notify the server that the reservation schedule can be changed. It helps to effectively and conveniently use the resources of the organization.
The system is based on the following hardware components:
')
- Intel Edison board.
- Arduino expansion board.
- XBee ZB S2 ZigBee Module.
- Android smartphone.
- Push server.
- ZigBee light sensor.
- ZigBee Infrared Presence Detector.
- Intellectual socket of ZigBee.
- ZigBee alarm.
ZigBee is a specification of a set of high-level communication protocols that are used to create personal networks based on small, low-power digital transmitters. ZigBee protocols are based on the IEEE 802.15.4 standard and are intended for use in embedded devices that require low power consumption and are capable of operating normally at low data transfer rates. ZigBee based network will be very economical in terms of energy consumption. In order to get certified ZigBee, the device must operate on batteries for at least two years. Typical applications for such devices are home automation. For example, intelligent presence sensors, lighting systems, thermostats.
Arduino is an open software and hardware platform around which a community of hardware manufacturers and developers has been formed. The usual scope of this platform is the development of devices that are able to determine the state of the environment and interact with it.
An important aspect of the Arduino platform is the standardized connectors that allow you to connect to the main unit with a microcontroller a variety of interchangeable expansion modules, known as shields. The Intel Edison board also supports Arduino. This makes Edison compatible with thousands of modules for the Arduino, for example, with the XBee ZigBee.
XBee is the brand name of the family of radio modules from Digi International, produced in standard form factors. XBee ZB supports the ZigBee PRO protocol for creating networks with a mesh topology.
From a software point of view, the system consists of the following parts:
- Server software.
- Application for Android-smartphone.
- Firmware for Intel Edison.
This is how, in the most general terms, the work of the Smart Conference Room System looks.
SCR work pattern
Hardware
Let us dwell on the hardware on which our project is based.
Intel Edison Arduino Switchboard is the core of the system. Since Edison is compatible with Arduino, devices that can work with Arduino are also suitable for Edison. For example, this is the XBee ZB S2 radio module that connects to Edison using an Arduino expansion board.
Intel Edison and XBee Radio
As a Push server, we used a Fujitsu STYLISTIC Q702 Windows tablet with an Intel Core i5-3427U processor (frequency 1.80 GHz), equipped with 4 GB of RAM.
Fujitsu STYLISTIC Q702 Tablet
In order to make it easier to work with our system, we created an Android mobile application for it. His tests were conducted on a Lenovo K900 smartphone. It is equipped with an Intel Atom Z2580 processor (2 GHz frequency) and 2 GB of RAM.
Lenovo K900 smartphone
The role of the ZigBee coordinator is played by the XBee ZB S2 radio module, made in the form factor of the Arduino expansion board and complying with the requirements of the ZigBee protocol. It controls the ZigBee sensors connected to it.
Radio module XBee ZB S2
The project involved a light sensor Netvox Z311X. It meets the requirements of the ZigBee standard and is responsible for measuring the level of illumination in the room.
Light sensor
The presence sensor is an infrared sensor Netvox ZB11D. It also supports work on the ZigBee protocol and plays the role of the end network device.
Occupancy sensor
The system uses the Netvox Z602A alarm module. This device combines the means of sound and light warning and is used in emergency situations. The module is based on the ZigBee HA standard.
Signaling
The intelligent ZigBee socket used in the project is the Netvox Z809AG. The device combines the functions of electricity metering and control of electrical circuits. With it, you can turn on and off the power of various electrical appliances in the room.
Intellectual socket
Hardware infrastructure
Here are the links between the hardware involved in the project.
System layout
The hardware architecture of the system can be divided into the following four parts:
- Smartphone.
- Push server.
- Gateway based on Intel Edison.
- A set of ZigBee sensors.
These hardware blocks are focused on the three main functions of SCR.
- Monitoring the room and assessing the situation . ZigBee light and presence sensors, in real time, provide information about the situation in the room to the gateway based on Intel Edison. The ZigBee network is used to connect the sensors and the gateway. Edison analyzes the readings, determines if there is anyone in the room, and then sends its findings to the push server via Wi-Fi.
- Room reservation and intellectual schedule . Employees can reserve meeting rooms, which, according to the system, are free. This is done using an Android smartphone. If there are no meeting rooms available, the employee can select the occupied room and turn on the waiting mode for the release of the meeting room. As soon as the system, in particular - Intel Edison, finds that the selected room is free, a message about this will go to the server, which will send a notification to the application on the smartphone.
- Remote access and control . Applications can query the status of a reserved room via Wi-Fi via a push server in order to control devices in the room, for example, turn the lights on and off, and receive real-time information from ZigBee sensors.
Software
As we have said, many organizations' resources, such as meeting rooms, are not used in the most efficient way. This especially applies to large companies. For example, Officer A, using a corporate website, reserved a meeting room from 8.00 to 10.00. The meeting ended at 9.00, that is, from this moment the room is free, it may well take advantage of someone else. Suppose that at the same time, employee B, using the same site, is looking for an empty room. But the one that employee A has reserved, he cannot choose, because in the database she is listed as busy, although in fact she is free. Therefore, employee B will have to look for another option, and the vacated room will be empty.
The figure below shows the block diagram of the software solution used.
Software solution architecture
Push server
As a push server, we used GlassFish 4.0. This is what the server architecture looks like.
Server architecture
The server system diagram is shown below. When Edison, using information from ZigBee sensors, determines that the state of the room has changed from “free” to “busy”, or vice versa, he will notify the server about it. The server, in turn, will change the corresponding entry in the database, and then, if the room is empty, will send a message to the Android application.
Push Server Workflow
Intel Edison and ZigBee
In Arduino, the interface between Intel Edison and the XBee coordinator is emulated as a serial port. An application running on Intel Edison works as a ZigBee gateway. With it, we can send commands to ZigBee sensors and receive responses from them.
The ZigBee coordinator is also responsible for transferring information from the sensors to the push server.
ZigBee stack device in Arduino
We designed and implemented a simple ZigBee stack in the Arduino environment, which is used to interact with sensors. The board operates in the coordinator mode, which monitors the status of the sensors, and, if available, allows them to be managed.
ZigBee stack classes
Class
| Function
|
XBeeAddress
| ZigBee Base Device Address Class
|
XBeeAddress64
| The 64-bit IEEE address of the ZigBee device
|
XBeeAddress16
| ZigBee 16-bit network address
|
Payload
| ZigBee command frame payload
|
ExplicitAddressCommand
| ZigBee command frame used in home automation specification
|
ExplicitAddressCommandResponse
| Response to a command to an explicit address
|
XBeeSensor
| Base class ZigBee sensor
|
XBeeLightSensor
| ZigBee Light Sensor
|
XBeeInfraSensor
| ZigBee presence sensor
|
XBeeAlarm
| ZigBee Alarm
|
The main functions of the ArduinoXBee
The main class of ArduinoXBee is XBeeCoordinator. This class is responsible for controlling ZigBee sensors. Its main tasks are to collect information from the sensors and send them commands to remotely control their behavior. Here is a description of the functions used to work with sensors.
Int getLightValue (XBeeLightSensor lightSensor) . This feature is used to get information from the light sensor. The object of the illumination sensor is fed to its input, and the output is an integer in the range from 0 to 65535.
bool getInfraValue (XBeeInfraSensor infraSensor) . The function receives the readings of a given presence sensor. When called, the object of the presence sensor is transmitted to it, and it returns a logical value. True indicates that there is someone in the room, False indicates that the room is empty.
void turnOnAlarm (XBeeAlarm alarm) and
void turnOffAlarm (XBeeAlarm alarm) . These functions, respectively, enable and disable the alarm. When they are called, an object symbolizing the desired device is used; they do not return anything.
void turnOnSwitch (XBeeSmartPlug plug) and
void turnOffSwitch (XBeeSmartPlug plug) . These features allow you to turn on and turn off the power supply by smart sockets. When calling functions, they are given an object corresponding to the outlet; they do not return anything.
Android app
When a user starts an application, he has the opportunity to create a new schedule or manage an existing one, namely, delete it. Creating a new schedule, the user can search for negotiation time and location. If the room is free, it can be immediately reserved. If the room is busy, the user can select the option to wait for the room to clear. As soon as the ZigBee sensors detect the release of a room within the specified time range, the push server will send a notification to the application, and the user who receives this notification can reserve the room.
System diagram of work with Android application
Android user interface
We called the Android application “Smart Conference Room System”. Using it, an employee of the organization can reserve a meeting room and manage reserved rooms. This is what the main screen of the application looks like.
Application main screen
Here, the commands located on the left are used to create new schedules, manage existing ones, and work with the account and settings.
Using the
My Scheduling command, users can book meeting rooms (blue is used to indicate that a room is free, gray is that it is already booked). If the room is not free, the user can enable standby mode to release it.
Room reservation
Users can check the status of the rooms they have booked, or those whose release is awaited. Successfully reserved rooms are displayed in blue, those in which an employee is waiting for release are displayed in gray. Here you can manage your schedule.
Schedule Management
When the system detects that a certain room is free, it sends out notifications to all users who are waiting for its release. Here is what the notification looks like.
Room release notice
The one who responds first can reserve a room that has just been vacated. The rest will be on the waiting list again.
findings
We have developed an intelligent system for managing meeting rooms, based on a simple ZigBee stack for Arduino. The system can determine, in real time, free room or busy. This allows you to simplify the booking of premises, make it more convenient, increase the efficiency of use of meeting rooms.
Much has already been done, but we, however, still face some difficulties. This applies to various aspects of the system. So, if we talk about its internal structure, about the stack on which it is based, these are limitations of the stack API functions and the entire complex. In addition, it is necessary to improve the stability of the system and other aspects of its operation. We are planning to create the next version of the Smart Conference Room System, which will be more functional, stable and convenient, and therefore will allow us to better solve its main task: optimizing the use of meeting rooms in organizations.