DTU

GRUPPE6

41030 MECHATRONICS ENGINEERING DESIGN

System architecture

To make sure the development teams are able to work together, we have to know what we are making. Since the work is split up into Arduino and NodeRed it can be difficult to keep track of how they communicate with each other. These problems were anticipated so we made a document to address the issue. In this document we have outlined all the functions of our product and how they will communicate with each other. We have split up all the core functionality into Arduino and NodeRed related functions. With this document we know what the core functionality for the MVP is.

We have decided that NodeRed will control most of the heavy lifting. Because of uncertainties that network controlled devices experience, it makes sense that NodeRed is the heavy backend since it reduces the number of links for information to get lost in. It will control when each product will turn on or off, and for how long. The products themselves work mostly as sensors and information processors. The idea is that they will notify NodeRed if they have been activated, then NodeRed will process that information and activate the other product. This will be done in a dynamic way. 

This way of programming allows for more flexibility in NodeRed at a later point. The hardware limitations of our mechanism will define what variables can be changed at each phase of the products. We can therefore do a lot of different things within these limitations without having to recode the arduinos. For example can the colors of the products be changed with a variable sent by the NodeRed, which allows for a lot of different possibilities without recoding the arduinos. 

We also want to make sure that the product scripts are identical except for having different unique ID’s. For this to work the code needs to work dynamically with what NodeRed outputs. This will be done with some processing scripts that activate different methods, based on the input from NodeRed. These will or can include, motor speed, colors, light intensity etc. 

With these fundamental ideas in mind, we have started development of the Arduino code and NodeRed networks.