Internet of Things
for Product Designers
for Product Designers
Goal
The main goal of the course is to make you a good maker capable of designing and developing IoT products integral part of a suitable ecosystem of objects that cooperating can better answer to the user needs
Topics
Introduction
IoT as a mean to get value from data collected in your surrounding environment and consequently act into the environment
Collect
Resource Constrained Networking
Protocol for data collection
Store
Analyze
Governance
Nice examples in the video below!
Efficiency is defined as the ability to accomplish something with the least amount of wasted time, money, and effort or competency in performance.
Effectiveness is defined as the degree to which something is successful in producing a desired result; success.
You, as product designers, should focus first on the effectiveness of the design. I'm not saying you have to neglect efficiency, but that is where engineers excel.
As should be now clear IoT is based on the possibility of measuring something in the physical world and possibly take proper actions by suitable actuators on the bases of the observed measures. We can distinguish two main kind of measurements:
DIRECT: When there is a sensor capable of measuring a given phenomena: As an example, temperature, humidity, PH, strength etc
INDIRECT: When there is not a sensor capable of measuring a given phenomena. In this case you need to design a proxy, namely an object capable to infer/guess the phenomena. As an example, If you need to measure the level of stress in a person, you can use as proxy ECG or SWEAT or a combination of both as a proxy.
Proxies should be in many cases designed by you.
DUMB: we simulate a simple tap. Two buttons (inject nodes) to simulate the actions on the dumb object (i.e. the tap), one to open the tap (ON), the other to close it (OFF). The actions generate reactions (set by the template node) that are visible (through the debug node). In this example the ON action generates the reaction "water flowing"
DIGITAL: the dumb object becomes digital and so potentially part of the IoT. Not yet, however, since there is no connectivity. A button (inject node) activates a digital timer (trigger node) that through actuators (template node) generates reactions: it makes water flowing for 5s and then automatically stops it.
MONITORED: finally we connect our object to the Internet. The status of the object is stored in a variable (node change) and changes each time an action is performed. The status can be monitored from the internet (nodes http in and http response) at the specified URL (i.e. /monitor)
CONTROLLED: once the object is connected we can control it. In particular, the URL /control/on allows us to activate the water and /control/off to stop the flow (nodes http in and http response)
This is simply a fancier way to simulate a thing. It employes the node-red-dashboard and a custom module (see here) to simulate a led
The most basic smart object is made of a simple led, stimulating an actuator, and a potentiometer that simulates a sensor. The value of the sensor can be read at A0 by the ADC while the actuator is governed by the GPIO D0
Code here
The file keyFileName.h must be place on the same folder where the code is and contain the following information
code here
In some cases you might need to store values. A very simple and convenient way is to use the node-red-contrib-key-value-store.
It stores values as key:values pairs ans supports json
A simple example is available here
A basic smart object with one sensor and one actuator
This is how we can connect our smart object to WiFi!
In this example we show ho to integrate openweather map API through the node-red-node-openweathermap with a map service node-red-contrib-maps. The example shows how to get the weather forecast from openweather map in a location and show them on the map at https://node-red-iot4pd-new.eu-gb.mybluemix.net/maps on a marker. All data need to be formatted in JSON
code is available here