Taking Arduino to the Internet of Things: The ASIP programming model

Micro-controllers such as Arduino are widely used by all kinds of makers worldwide. Popularity has been driven by Arduino's simplicity of use and the large number of sensors and libraries available to extend the basic capabilities of these controllers. The last decade has witnessed a surge of software engineering solutions for "the Internet of Things", but in several cases these solutions require computational resources that are more advanced than simple, resource-limited micro-controllers.Surprisingly, in spite of being the basic ingredients of complex hardware-software systems, there does not seem to be a simple and flexible way to (1) extend the basic capabilities of micro-controllers, and (2) to coordinate inter-connected micro-controllers in "the Internet of Things". Indeed, new capabilities are added on a per-application basis and interactions are mainly limited to bespoke, point-to-point protocols that target the hardware I/O rather than the services provided by this hardware.In this paper we present the Arduino Service Interface Programming (ASIP) model, a new model that addresses the issues above by (1) providing a "Service" abstraction to easily add new capabilities to micro-controllers, and (2) providing support for networked boards using a range of strategies, including socket connections, bridging devices, MQTT-based publish-subscribe messaging, discovery services, etc. We provide an open-source implementation of the code running on Arduino boards and client libraries in Java, Python, Racket and Erlang. We show how ASIP enables the rapid development of non-trivial applications (coordination of input/output on distributed boards and implementation of a line-following algorithm for a remote robot) and we assess the performance of ASIP in several ways, both quantitative and qualitative.

[1]  Kris Steenhaut,et al.  REST Enabled Wireless Sensor Networks for Seamless Integration with Web Applications , 2011, 2011 IEEE Eighth International Conference on Mobile Ad-Hoc and Sensor Systems.

[2]  Silvia Coradeschi,et al.  Sensor Network Infrastructure for a Home Care Monitoring System , 2014, Sensors.

[3]  Andreas Willig,et al.  A Component Framework for Content-Based Publish/Subscribe in Sensor Networks , 2008, EWSN.

[4]  Stanley B. Zdonik,et al.  “Data in your face”: push technology in perspective , 1998, SIGMOD '98.

[5]  Qian Zhu,et al.  IOT Gateway: BridgingWireless Sensor Networks into Internet of Things , 2010, 2010 IEEE/IFIP International Conference on Embedded and Ubiquitous Computing.

[6]  Carsten Bormann,et al.  The Constrained Application Protocol (CoAP) , 2014, RFC.

[7]  Edward A. Lee,et al.  Modeling Cyber–Physical Systems , 2012, Proceedings of the IEEE.

[8]  Jaeho Kim,et al.  M2M Service Platforms: Survey, Issues, and Enabling Technologies , 2014, IEEE Communications Surveys & Tutorials.

[9]  Vlad Trifa,et al.  Interacting with the SOA-Based Internet of Things: Discovery, Query, Selection, and On-Demand Provisioning of Web Services , 2010, IEEE Transactions on Services Computing.

[10]  Erik Wilde,et al.  From the Internet of Things to the Web of Things: Resource-oriented Architecture and Best Practices , 2011, Architecting the Internet of Things.

[11]  Shusen Yang,et al.  A survey on the ietf protocol suite for the internet of things: standards, challenges, and opportunities , 2013, IEEE Wireless Communications.

[12]  Kelly Androutsopoulos,et al.  A Racket-Based Robot to Teach First-Year Computer Science , 2014, ELS.

[13]  Deepak Choudhary,et al.  Internet of things: A survey on enabling technologies, application and standardization , 2018 .

[14]  David E. Culler,et al.  TinyOS: An Operating System for Sensor Networks , 2005, Ambient Intelligence.

[15]  Tarek R. Sheltami,et al.  A publish/subscribe middleware cost in wireless sensor networks: A review and case study , 2015, 2015 IEEE 28th Canadian Conference on Electrical and Computer Engineering (CCECE).

[16]  Junichi Suzuki,et al.  Self-configurable publish/subscribe middleware for wireless sensor networks , 2009 .

[17]  Anne-Marie Kermarrec,et al.  The many faces of publish/subscribe , 2003, CSUR.

[18]  Antonio Iera,et al.  The Internet of Things: A survey , 2010, Comput. Networks.

[19]  Yun Li,et al.  PID control system analysis, design, and technology , 2005, IEEE Transactions on Control Systems Technology.

[20]  Fuchun Joseph Lin,et al.  Converging MQTT Resources in ETSI Standards Based M2M Platform , 2014, 2014 IEEE International Conference on Internet of Things(iThings), and IEEE Green Computing and Communications (GreenCom) and IEEE Cyber, Physical and Social Computing (CPSCom).

[21]  Deborah Estrin,et al.  Directed diffusion for wireless sensor networking , 2003, TNET.

[22]  Kris Steenhaut,et al.  Evaluation of constrained application protocol for wireless sensor networks , 2011, 2011 18th IEEE Workshop on Local & Metropolitan Area Networks (LANMAN).

[23]  Edna Dias Canedo,et al.  IoT architecture to enable intercommunication through REST API and UPnP using IP, ZigBee and arduino , 2013, 2013 IEEE 9th International Conference on Wireless and Mobile Computing, Networking and Communications (WiMob).

[24]  Giovanni Emanuele Corazza,et al.  Introducing the QEST broker: Scaling the IoT by bridging MQTT and REST , 2012, 2012 IEEE 23rd International Symposium on Personal, Indoor and Mobile Radio Communications - (PIMRC).

[25]  Xiaoping Ma,et al.  Performance evaluation of MQTT and CoAP via a common middleware , 2014, 2014 IEEE Ninth International Conference on Intelligent Sensors, Sensor Networks and Information Processing (ISSNIP).

[26]  Paolo Barsocchi,et al.  EMS@CNR: An Energy monitoring sensor network infrastructure for in-building location-based services , 2014, 2014 International Conference on High Performance Computing & Simulation (HPCS).

[27]  Paolo Barsocchi,et al.  Smart meter led probe for real-time appliance load monitoring , 2014, IEEE SENSORS 2014 Proceedings.

[28]  Stefano Chessa,et al.  GP-m: Mobile middleware infrastructure for Ambient Assisted Living , 2014, 2014 IEEE Symposium on Computers and Communications (ISCC).

[29]  Carlos André Guimarães Ferraz,et al.  Mires: a publish/subscribe middleware for sensor networks , 2005, Personal and Ubiquitous Computing.

[30]  Hans-Christoph Steiner Firmata: Towards Making Microcontrollers Act Like Extensions of the Computer , 2009, NIME.

[31]  Morgan Quigley,et al.  ROS: an open-source Robot Operating System , 2009, ICRA 2009.

[32]  Michele Zorzi,et al.  Architecture and protocols for the Internet of Things: A case study , 2010, 2010 8th IEEE International Conference on Pervasive Computing and Communications Workshops (PERCOM Workshops).

[33]  Paolo Barsocchi,et al.  AAL Middleware Infrastructure for Green Bed Activity Monitoring , 2013, J. Sensors.

[34]  Mohsen Guizani,et al.  Internet of Things: A Survey on Enabling Technologies, Protocols, and Applications , 2015, IEEE Communications Surveys & Tutorials.

[35]  Hong Linh Truong,et al.  MQTT-S — A publish/subscribe protocol for Wireless Sensor Networks , 2008, 2008 3rd International Conference on Communication Systems Software and Middleware and Workshops (COMSWARE '08).