{'fraction_non_alphanumeric': 0.02797822509178377, 'fraction_numerical': 0.010950753259906318, 'mean_word_length': 4.743002544529262, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 1, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
On-line monitoring system of PV array based on internet of things technology

The Internet of Things (IoT) Technology is used to inspect photovoltaic (PV) array which can greatly improve the monitoring, performance and maintenance of the PV array. In order to efficiently realize the remote monitoring of PV operating environment, an on-line monitoring system of PV array based on IoT is designed in this paper. The system includes data acquisition, data gateway and PV monitoring centre (PVMC) website. Firstly, the DSP-TMS320F28335 is applied to collect indicators of PV array using sensors, then the data are transmitted to data gateway through ZigBee network. Secondly, the data gateway receives the data from data acquisition part, obtains geographic information via GPS module, and captures the scenes around PV array via USB camera, then uploads them to PVMC website. Finally, the PVMC website based on Laravel framework receives all data from data gateway and displays them with abundant charts. Moreover, a fault diagnosis approach for PV array based on Extreme Learning Machine (ELM) is applied in PVMC. Once fault occurs, a user alert can be sent via E-mail. The designed system enables users to browse the operating conditions of PV array on PVMC website, including electrical, environmental parameters and video. Experimental results show that the presented monitoring system can efficiently real-time monitor the PV array, and the fault diagnosis approach reaches a high accuracy of 97.5%.


Introduction
Clean energy, especially solar energy, has become more and more popular and important due to their substantial benefits in many aspects [1]. Solar energy is regarded as an important renewable energy in the world, a large number of grid-connect photovoltaic (PV) power plants are widely distributed worldwide. However, the PV power plants are generally built in outdoor harsh environment, such as desert and roof. The PV power plants are prone to failure under such environmental conditions [2][3][4]. Accordingly, it is essential to monitor PV system for ensuring efficient power delivery.
The traditional monitoring systems mainly include manual investigation and remote wired monitoring. There exists some drawbacks such as time-consuming and wiring complexity [5], which is difficult to meet the monitoring requirement in the large-scale PV array. As the term Internet of things (IoT) is expanding, there is a huge increase in applications such as smart home, intelligent city, wisdom campus and so on [6]. The IoT reduces the effort of human by introducing machine to machine interaction, which is applied to effectively facilitate the integration of material production, service management [7,8]. It also has been applied for designing the remote monitoring system of PV array [9][10][11][12]. Soham A et al employs IoT technology to remotely monitor PV power plants, GSM/GPRS is used for communication between data logger and server [9]. Nalamwar H S et al propose a smart automated monitoring and controlling system for the PV panel via the Internet through an embedded GSM module [10]. Putta S et al present a smart power monitoring and control system through IoT using cloud data storage [11]. A solar remote monitoring system in the architecture of IoT is developed, moreover the system is installed to identify and eliminate faults of the plant [12]. All these works demonstrate that a monitoring and control system based on Iot is practical, flexible and expansible to supervise the system operation. Moreover, for monitoring PV power plants in different dimensions, it is necessary to obtain the surrounding environment of PV power plants. Thus, video surveillance is essential, yet which is not involved in the aforementioned systems. Therefore, a novel on-line monitoring system for PV arrays based on IoT is designed and implemented. The proposed system consists of data acquisition, data gateway and PV monitoring center (PVMC) website. The system uses DSP as microcontroller to collect indicators. Raspberry Pi3 has advantages of small size, fully customization and excellent scalability [13], thus it is applied to the data gateway to capture the video around PV array, obtain geographic information, store and upload data to PVMC. Moreover, Laravel is a free, open source PHP web application framework, which is suitable for designing web applications [14]. Hence, the PVMC website is developed by using Laravel PHP framework, JavaScript and MySQL database to support multiple platforms. In addition, the Extreme Learning Machine (ELM) is applied to PVMC to diagnose faults due to few adjustment parameters needed, extremely fast learning speed and good generalization performance [15][16][17]. Once fault occurs, users alerts can be sent through E-mail, and then users can browse the video content very efficiently to check out actual situation of PV array.
The rest of paper is organized as follows. Section 2 presents the system architecture. Section 3 introduces how PV array data is acquired. The data gateway is described in Section 4. Section 5 demonstrates the realization of PVMC website in detail. Section 6 illustrates the experimental results. Finally, Section 7 outlines the conclusion.  acquisition part and data gateway, and PVMC website for the entire PV array. The system acquires the temperature, irradiance, voltage and current of PV sub-arrayi, and transmits to the data gateway via the ZigBee WSN. Then, the gateway stores the data, and uploads them to the PVMC website. In addition, the monitoring video for PV sub-arrayi is sent to the PVMC website via the RTMP. PVMC website achieves data storage, user management, video surveillance and fault diagnosis. There are rich charts displayed on the PVMC website, which make it conveniently for users keep abreast of the situation of indicators of the PV array, such as daily power generation and the total historical power generation.

Data acquisition
As a well-known embedded processor, DSP-TMS320F28335 has plentiful hardware resources, such as 12-bits resolution analog-to-digital converters (ADC), serial communication interface (SCI) and abundant I/O ports [18], which make it ideal to be the microprocessor in the proposed monitoring system. The block diagram of data acquisition is shown in figure 2. The Hall sensor is used to collect voltage and current due to its high sensitivity, excellent anti-interference and low power consumption. Temperature sensor DS18B20 is applied to sensing the temperature in PV array via single bus protocol. ZigBee module is utilized to transmit the PV data to the data gateway. Irradiance sensor FZD-V1-2000 with fast response and high sensitivity is carried out to measure the irradiance. In order to ensure data transmission reliability, Md5 cryptographic algorithm with a 16 bit hash function is applied to the proposed system. It generates the public key for each node in the sensor network for authentication.  ZigBee serial transmission module and USB camera. The Raspberry Pi 3 has advantages such as costeffective, excellent interconnection, small size, powerful and low power consumption. In addition, wireless network card and Bluetooth module are embedded into Raspberry Pi 3. Hence, the data gateway applies the Raspberry Pi 3 installed with Ubuntu Mate16.04 LTS operating system as the processor. The data gateway receives the PV data via the ZigBee network, and employs the GPS module to obtain the geographical location of the PV array. The camera is applied to capture live video in the PV array. Then, the gateway connects to the Internet via wireless network card and uploads the PV data, GPS data and video to the PVMC website.

PV array monitoring centre website
To make it convenient for users to view monitoring information via web browsers, the B/S architecture is selected to design the PVMC. A monitoring centre website is designed on the base of the PHP Laravel framework that is running in the LNMP (Linux + Nginx + MySQL + PHP) installed on a server. Meanwhile, the Postfix mail server is installed to provide E-mail service for informing users the fault warning. The framework of the monitoring centre website is shown in the figure 4, the PVMC website consists of client layer, application layer and data layer. In the client layer, users can visit website via the web browser. The Laravel 5.4 is applied as the framework in the application layer, and e-mail, maps and video surveillance services is integrated in this layer to achieve data visualization, user management, and message management. The data layer selects MySQL as the database management platform to store PV data. The gateway communicates with the PVMC by representational state transfer (REST) API design patterns in website design. Moreover, the gateway integrates software development kit (SDK) coded by Python. As shown in figure 4, the database contains data access layer (DAL) and data service level (DSL).

Laravel framework
Laravel is an accessible and powerful web application framework which provides powerful tools that are needed for large-scale, robust applications [19]. Therefore, the Laravel 5.4 framework is selected to design the PVMC website. The Laravel 5.4 framework structure is shown in the The directory contains the Laravel source code and the third party dependency package

Database design
The MySQL database is employed to store data in website, the table structure of database is shown in figure 5. There are 4 tables which represent PV Array   protocol design of APIs for modern web service [20]. Therefore, the monitoring system is designed for the communication between the data gateway and PVMC based on REST API designed patterns. The flow chart of the client is shown in figure 6. Developers firstly create an account, then the obtained api_key and api_token are used as the certification mark for data uploading. Once ZigBee module receives data, the data will be updated to the PVMC. Figure 7 shows the flow chart of the server, the server is implemented based on Laravel5.4 framework, the steps is as follows:

REST API design patterns for PVMC
Step1: create the pvdata

Video surveillance
Video surveillance plays a significant role in PV monitoring system. RTMP is a TCP-based protocol for data transmission between a flash player and a server. The congestion control of the RTMP is much better than real-time transport protocol (RTP) based on UDP [21]. Hence, the RTMP is applied to transmit audio and video stream, the libffmpeg and libv4l library are installed in Raspberry Pi 3 for RTMP uploading. And libffmpeg includes encoding and decoding library of audio and video such as H.264 and aac library. Therefore, video and audio stream can be encoded by using FFmpeg library [22]. The block diagram of video surveillance is shown in figure 8.  Figure 8. The block diagram of data gateway.

PV fault diagnosis approach
The training process of ELM is fast and simple, and the parameter selection is easy [23]. Therefore, ELM is applied to train the fault diagnosis network model of PV array. The block diagram of ELM fault diagnosis network model of PV array is shown in figure 9. It includes input layer, a single-hidden layers and output layer. To create the fault diagnosis model, the labelled dataset should be prepared. Here, seven conditions of PV array are studied, including NORMAL (fault-free) condition and six typical faults. The six faults denotes as OPEN-1, OPEN-2, LL-1, LL-2, SHADOW-1 and SHADOW-2. The OPEN-1 and OPEN-2 mean open-circuit occurs in one PV string and two PV strings, respectively; LL-1 and LL-2 denote short-circuit in one PV module and two PV modules, respectively; SHADOW-1 and SHADOW-2 are a PV module and two PV modules are partial shaded, respectively. The corresponding label the claimed seven conditions are 1 to 7, respectively. Firstly, four PV data features are selected as the input attributes for the input layer as follows: Secondly, the number of hidden layer nodes (which is defined as N) greatly influence the performance of ELM. But the classification accuracy rate tends to be stable, when N is enough to describe the nonlinear relationship between input and output [22]. Hence, the N is set by the ELM performance curve.
Finally, the train data set is put into the ELM to create the PV array fault diagnosis model. Then, the PV array condition can be predicted by putting the online data that acquired by the monitoring system into the model.

Experimental results
A laboratory PV power plant and data acquisition equipment are shown in figure 10. The PV array of the PV power plant consists of three PV strings in parallel and each string consists of six PV modules in series. Irradiance sensor is installed on the same corner of the PV array to ensure the accuracy of irradiance acquisition. The temperature sensor is tied on the back of the PV module to measure the temperature. Data acquisition module collects PV array voltage and current. The data are transmitted by ZigBee module DL-20.  Figure 11. The overview of data gateway.
The overview of the gateway is shown in figure 11. Due to the waterproof and high night vision, the camera W03A is applied by the gateway to collect the video around PV array. The ubox-GPS module is selected to locate the position of PV array. And ZigBee module is employed to receive data from the data acquisition part. Raspberry Pi 3 with built-in wireless card is used to communicate with the PVMC. The homepage of the PVMC is shown in figure 12, which displays the real-time indicators in PV array, and the Baidu map is embedded to obtain geographic information of PV array. In addition, the hardware resources usage of Raspberry in gateway is also shown as below, such as disk storage usage, memory usages and CPU usage. The figure 13 shows the line chart of indicators of PV array, including temperature, irradiance, PV array voltage and current. And figure 14 shows the parameters by the form of table view. Moreover, the data can be exported in Excel format.
The video captured is shown in figure 15. According to tests, there is about 2s delay due to the limitations of RTMP protocol, while it does not affect system performance.
To verify the performance of PV fault diagnosis approach, we collect 2500 samples and divide them into 5 groups randomly, in which 4 groups are used as train dataset and the rest one is applied as the test dataset. The influence of hidden layer node numbers on classification accuracy is shown in figure 16. It is obviously that the classification accuracy tends to stable after N > 200, therefore we choose N = 210 as the node number to train the ELM model. The radar map of accuracy after 10 independent runs is shown in figure 17, we can easily find that the total average accuracy is up to 97 %. As can be seen in the figure 12, the current operating state is normal.

Conclusions
An on-line Internet of Things (IoT) based remote monitoring system for PV arrays is proposed, and a fault diagnosis approach based on ELM is studied. data gateway and PVMC website. Data acquisition part successfully collect data and transmit them to data gateway, the data gateway also capture video and acquire position information then upload them to PVMC website for supervision. In addition, a fault diagnosis approach based on ELM is implemented on PVMC website. The experimental results demonstrate that the proposed monitoring system provide users with web-based interface, in which users can browse the real-time PV indicators, geographic information, in-site monitoring video and operating condition. In addition, PVMC can send warning information to users via E-mail once PV array fault occurs. The proposed system can be a promising solution for intelligent management of PV power plants.