The utilization of sensors in industry and military settings has been around for a long time. Today, myriads of companies offer sensor-based solutions, and the usage of billions of networked sensors are envisioned to be deployed on land, in sea, air, and space to detect and predict the environmental changes in an effort to build a globally pervasive nervous system. Given their low cost and multiple functionalities, they have been predicted to be one of the ten technologies that will change the world in the next 10 years. Moreover, 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.
Accordingly, throughout the last decade, the research area of wirelessly networked sensors has been one of the most favorite among computer engineers and scientists. Similarly, the use of wireless sensors has also started to gain popularity among researchers other than computer engineers and scientists. For instance, today sensors are used to enable civil engineers monitor the structural health of deteriorating infrastructure such as highways and bridges (Figure 1), farmers to develop precision-agriculture techniques, ecologists to observe wildlife in their natural habitat, and geophysicists to capture seismic activity of volcanoes.
Fig.1: An example wireless sensor structural health monitoring system deployed by civil engineers .
Hence, the wireless sensor researchers’ community comprises of advanced sensor application and protocol developers and scientists/engineers who use wireless sensor networks (WSNs) for simple data gathering. However, the task of developing software applications for wireless sensors is challenging for researchers because sensors have limited technical capabilities and software implementations for sensors require meticulous procedures and extra operations to provide a desired level of services (e.g., reliability, security) for applications. This situation is even further exacerbated for researchers in other fields of engineering and science (e.g., civil engineers and geophysicists) as they may not have a rigorous programming background.
Moreover, engineering and science researchers working with wireless sensors utilize different software tools to achieve the goals of their research activities. For instance, in order to develop, test, visualize, and monitor a WSN application, a developer may need a programming tool, a simulator, and a visualization tool. However, for engineers, scientists, and researchers of other fields (e.g., civil engineer, geophysicist) whose primary goal is to utilize a wireless sensor as an intermediary tool to accomplish the specific tasks of their domains (e.g., collect structural health data from bridges), using a multitude of tools may pose confusion and hamper an efficient scientific experiment opportunity with wireless sensors. An example internal view of wired components and their interactions with each other for a sensor program using TinyOS  and nesC  is given in Figure 2.
Fig. 2: Internal view of an example wireless sensor program using nesC
As can be seen by the visual complexity of Figure 2, programming wireless sensors is not a trivial task; it requires a sophisticated understanding of the inner architecture of the software environment. In fact, for researchers in other fields of engineering and science (e.g., civil engineers and geophysicists), the task is even further complicated as they may not have a rigorous programming background.
Therefore, to facilitate the design, development and implementation of wireless sensor applications, in this project, we develop a new framework called PROVIZ, which will provide visualization and programming functionalities into a common platform. Furthermore, PROVIZ can visualize the deployment of wireless sensors by continuously monitoring for their transmissions and can be used by researchers for visual debugging purposes.
PROVIZ is conceptualized as an open-source, platform independent, modular, and extensible framework with heterogeneous wireless sensors in mind. Hence, it will be able to work with various sensor types (e.g., MicaZ, Iris, TelosB) and their diverse traffic in real-time. It will provide a set of easy-to-use simplified languages (one domain specific scripting language, one icon-based drag-and-drop style visual language) and a simple programming editor for developing wireless sensor applications and a mechanism for (re)programming wireless sensor nodes remotely over-the-air by distributing the generated application image. In this way with PROVIZ, wireless software development process can be expedited and simplified. PROVIZ will have the capability to visualize wireless sensor data captured either from a packet sniffer (a live sensor-based sniffer or from a binary packet trace file (PSD format) generated by a commercial sniffer (e.g., TI SmartRF packet sniffer)) or from an external simulator (e.g., OMNeT) running a wireless sensor application. Also, PROVIZ will be able to work with multiple sniffers simultaneously in a distributed setup to visualize a large wireless sensor deployment. Finally, PROVIZ will include a built-in capability to demonstrate different sensor deployments, which will allow the science and engineering researchers to quickly craft various application scenarios and share them with their peers. An overview of PROVIZ’s design is illustrated in Figure 3. The PROVIZ framework will provide two fundamental functionalities to researchers. One is the ability to visualize the sensor data collected in real a network or generated in an external simulator while the other is the ability to easily program sensor nodes.
. Georgia Tech Laboratory for Smart Structural Systems, Development of Wireless Structural Sensing and Control Devices, http://wang.ce.gatech.edu/research.htm.
 TinyOS homepage, http://www.tinyos.net.
 nesC: A Programming Language for Deeply Networked Systems, http://nescc.sourceforge.net.