What is Proviz?
Throughout the last decade, the research area of wirelessly networked sensors has been one of the most popular among computer engineers and scientists. With recent initiatives such as Cyber-Physical Systems, Internet of Things, and Planetary Skin, sensor-based applications have gained new momentum in the research community and industry beyond the realm of computer engineers and scientists. Therefore, today wireless sensors are not only used by computer engineers and scientists, but also by ecologists for observing wildlife, geophysicists for monitoring seismic activities of volcanoes, farmers for precision agriculture, civil engineers for monitoring the health of deteriorating civil structures like highways and bridges, medical doctors and nurses for monitoring patients, and technology enthusiasts to develop applications.
Currently this diverse group of engineers and scientists have two options: expend considerable expense on proprietary data acquisition systems, or expend considerable time on learning the development and engineering skills necessary to create their own solutions from more affordable off the shelf components. Neither of these solutions is truly optimal and thus hamper the development and data collection experience. To minimize the complexity and reduce the cost of implementing these sensor networks, a new extensible, scalable, cross-platform, and open-source wireless sensor software development framework called PROVIZ is proposed in this project.
Need For Sensor Development Framework
There are many scenarios in which engineers and scientists may need to acquire data from a system or environment using a network of sensors. These sensors are tools and a means to the end of acquiring relevant data. A minimum of time and effort should be dedicated to configuring and maintaining them. Using and configuring these sensor networks should not require any special knowledge from the user, it should be a simple tool. Current options require either software development expertise or incur large costs for specialized proprietary systems. The proviz project attempts to remove the barriers of entry into the growing IoT world so engineers and scientist have the tools they need to continue to push innovation and science.
Proviz Topology Overview
Proviz consist of four main components,
- The Proviz Main Application and User Interface
- The Proviz Server
- The Client Mananger
- The Sensor Application
Figure 1: Proviz Topology Overview
Proviz Main Application
The Proviz main application was designed for end user and it has user friendly interfaces. It was written by using JAVA language and it can work with Windows, Linux and OS X without any problem. It supports panther language, over the air feature as well as basic board and sensor operations.
Figure 02: Proviz Main Application Topology View
Figure 03 shows visual based programming feature. Users can configure their sensor’s bounds. Each sensor has upper bound and lower bound in order to warn user if there is any radical changes on sensor’s value.
Figure 03: Proviz Visual Based Programming
User can add sensor into their boards by using either visual based programming or code based programming feature. If user wants to add new sensor, user needs to use one of the sensor addition way. For visual based programming, user can click button that has plus icon, then after visual sensor addition window appears, like Figure 04.
Figure 04: Visual Based Programming, Sensor Selection Window
Figure 04: Visual Based Programming, Pin Selection Window
In addition to visual based programming, Proviz has code based programming. While Proviz main application was developing, Panther language appeared that has programming capability of Arduino, Raspberry Pi and Beaglebone. Before Panther language, user needs to learn three different language in order to program these boards, but under flavor of Panther language, user can easily program these devices by using only one language which is Panther. Figure 05 shows code based programming windows.
Figure 05: Code Based Programming
Proviz Client Application
The Proviz client application is designed to be easily installed and take care all all steps need to get a device up and running as quickly as possible. The client application will control the separate sensor application starting, stopping and replacing the as need. All communication between sensors and device will be relayed back to the Proviz server for the user.
On the Arduino platform the client application takes the form of a C/C++ library. When the user auto-generates the sensor code the library is included and is used in the same regard, controlling the sensor application and relaying data.
Panther Programming Language
Figure 06: Panther Language
** Project Name: SI2-SSE: A Sustainable Wireless Sensor Software Development Framework for Science and Engineering Researchers.
Project Sponsor: National Science Fondation
Project Duration: 09/01/13-08/31/16
- Shruthi Ravichandran, Ramalingam K. Chandrasekar, A. Selcuk Uluagac, and R. A. Beyah,”A Simple Visualization and Programming Framework for Wireless Sensor Networks: PROVIZ,” Elsevier Ad Hoc Networks Journal, Volume 53, 15 December 2016, Pages 1-16, ISSN 1570-870, [bibtex],[pdf]
- Ramalingam K. C., A.Selcuk Uluagac, and R. A. Beyah,“PROVIZ: An Integrated Visualization and Programming Framework for WSNs,“ in Proceedings of the 8th IEEE Workshop on Practical Issues in Building Sensor Network Applications 2013 (IEEE SenseApp 2013), Australia, October 2013, [bibtex],[pdf]
You can reach Proviz source code by filling source code release request form.