PyFUNS: A Python Framework for Ubiquitous Networked Sensors

  • Stefano Bocchino
  • Szymon Fedor
  • Matteo Petracca
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8965)


In recent years Wireless Sensor Networks (WSNs) have been deployed in wide range of applications from the health and environment monitoring to building and industrial control. However, the pace of prevalence of WSN is slower than anticipated by the research community due to several reasons including required embedded systems expertise for developing and deploying WSNs; use of proprietary protocols; and limits in scalability and reliability. In this paper we propose PyFUNS (Python-based Framework for Ubiquitous Networked Sensors) to address these challenges. PyFUNS handles low level and networking functionalities, using the services provided by Contiki, and leaves to the user only the task of application development in the form of Python scripts. This approach reduces required expertise in embedded systems to develop WSN based applications. PyFUNS also uses 6LoWPAN and CoAP standard protocols to enable interoperability and ease of integration with other systems, pursuing the Internet of Things vision. Through a real implementation of PyFUNS in two constrained platforms we proved its feasibility in mote devices, as well as its performance in terms of control delay, energy consumption and network traffic in several network topologies. As it is possible with PyFUNS to easily compare performance of different deployments of distributed application, PyFUNS can be used to identify optimal design of distributed application.


Sensor Network Sensor Node Wireless Sensor Network Virtual Machine Finite State Machine 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [AP1]
    Alessandrelli, D., Petracca, M., Pagano, P.: T-Res: Enabling Reconfigurable In-network Processing in IoT-based WSNs. In: IEEE International Conference on Distributed Computing in Sensor Systems, pp. 337–344 (2013)Google Scholar
  2. [C1]
    Carboni, D., Crs Parco Tecnologico Pula: PySense: Python Decorators for Wireless Sensor Macroprogramming. In: ICSOFT, pp.165–169 (2010)Google Scholar
  3. [CA1]
    Cao, Q., Abdelzaher, T., Stankovic, J., He, T.: The LiteOS Operating System: Towards Unix-Like Abstractions for Wireless Sensor Networks. In: International Conference on Information Processing in Sensor Networks, pp. 233–244 (2008)Google Scholar
  4. [DG1]
    Dunkels, A., Gronvall, B., Voigt, T.: Contiki - A Lightweight and Flexible Operating System for Tiny Networked Sensors. In: IEEE International Conference on Local Computer Networks, pp. 148–157 (2004)Google Scholar
  5. [F1]
    Fangohr, H.: A comparison of C, Matlab and Python as teaching languages in engineering. In: International Conference in Computational Science, pp. 1210–1217 (2004)Google Scholar
  6. [HC1]
    Hui, J.W., Culler, D.: The Dynamic Behavior of a Data Dissemination Protocol for Network Programming at Scale. In: International Conference on Embedded Networked Sensor Systems, pp. 81–84 (2004)Google Scholar
  7. [HS1]
    Hojung, C., Sukwon, C., Inuk, J., Hyoseung, K., Hyojeong, S., Jaehyun, Y., Chanmin, Y.: RETOS: Resilient, Expandable, and Threaded Operating System for Wireless Sensor Networks. In: International Symposium on Information Processing in Sensor Networks, pp. 148–157 (2007)Google Scholar
  8. [JC1]
    Jaein, J., Culler, D.: Incremental network programming for wireless sensors. In: IEEE Communications Society Conference on Sensor and Ad Hoc Communications and Networks, pp. 25–33 (2004)Google Scholar
  9. [KP1]
    Koshy, J., Pandey, R.: Remote incremental linking for energy-efficient reprogramming of sensor networks. In: European Workshop on Wireless Sensor Networks, pp. 354–365 (2005)Google Scholar
  10. [LC1]
    Levis, P., Culler, D.: Mate: a tiny virtual machine for sensor networks. In: International Conference on Architectural Support for Programming Languages and Operating System, pp. 85–95 (2002)Google Scholar
  11. [MA1]
    Munawar, W., Alizai, M.H., Landsiedel, O., Wehrle, K.: Dynamic TinyOS: Modular and Transparent Incremental Code-Updates for Sensor Networks. In: IEEE International Conference on Communications (ICC), pp. 1–6 (2010)Google Scholar
  12. [MD1]
    Miller, J.S., Dinda, P.A., Dick, R.P.: Evaluating a BASIC Approach to Sensor Network Node Programming. In: ACM Conference on Embedded Networked Sensor System, pp. 155–168 (2009)Google Scholar
  13. [MP1]
    Mottola, L., Picco, G.P.: Programming Wireless Sensor Networks: Fundamental Concepts and State of the Art. ACM Comput. Surv. 43, 19:1–19:51 (2011)Google Scholar
  14. [P1]
    Prechelt, L.: An empirical comparison of seven programming languages. Computer 33, 23–29 (2000)CrossRefGoogle Scholar
  15. [PM1]
  16. [RL1]
    Reijers, N., Langendoen, K.: Efficient Code Distribution in Wireless Sensor Networks. In: ACM International Conference on Wireless Sensor Networks and Applications, pp. 60–67 (2003)Google Scholar
  17. [SC1]
    Simon, D., Cifuentes, C., Cleal, D., Daniels, J., White, D.: Java on the Bare Metal of Wireless Sensor Devices: The Squawk Java Virtual Machine. In: International Conference on Virtual Execution Environments, pp. 78–88 (2006)Google Scholar
  18. [TM1]
    Tridgell, A., Mackeras, P.: The rsync algorithm (1998),

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  • Stefano Bocchino
    • 1
  • Szymon Fedor
    • 2
  • Matteo Petracca
    • 3
  1. 1.Scuola Superiore Sant’AnnaPisaItaly
  2. 2.United Technologies Research Centre Ireland, Ltd. CorkRepublic Of Ireland
  3. 3.National Inter-University Consortium for TelecommunicationsPisaItaly

Personalised recommendations