OfficineArduinoTorino / ITS-IoT-2019-2021

Corso di IoT tenuto presso l'ITS-ICT di Torino.
2 stars 14 forks source link

ITS-IoT-2019-2021

Corso di IoT tenuto presso l'ITS-ICT di Torino.

Lezioni:

Lezione 1

Slide di riferimento

Alcuni link emersi a lezione

La teoria delle pietre!

Lezione 2

Alcuni temi tratatti nella plennary introduttiva

Prima chiamata ad una API, quella di Madbob per GTT. Flow qui.

Lezione 3 API

An application programming interface (API) is a computing interface which defines interactions between multiple software intermediaries. It defines the kinds of calls or requests that can be made, how to make them, the data formats that should be used, the conventions to follow, etc. It can also provide extension mechanisms so that users can extend existing functionality in various ways and to varying degrees.[1] An API can be entirely custom, specific to a component, or it can be designed based on an industry standard to ensure interoperability. Some APIs have to be documented, others are designed so that they can be "interrogated" to determine supported functionality. Since other components/systems rely only on the API, the system that provides the API can (ideally) change its internal details "behind" that API without affecting its users.

Source: https://en.wikipedia.org/wiki/Application_programming_interface

Parsiamo un json usando jsonata

OpenWeather Map APi example

Lezione 4 Dashboard

Reddit ci guarda! https://www.reddit.com/r/ItalyInformatica/comments/el9xzf/api_e_basi_di_dati_interessanti_della_nostra_cara/

Abbiamo:

“Test” omnicomprensivo della dashboard → flow

Lezione 5 HTTP request

Lezione 6 HTTP request

Slide Lezione precedente.

Link e varie:

(fare riferimento alla lezione)

Flow usato, qui di seguito alcune soluzioni dei compagni

La funzione di Riccardo (vers. 1)

x = 0;
y = 0;

x = msg.req.query.val1;
y = msg.req.query.val2;

var total = parseInt(x) + parseInt(y);

var msg1 = { payload:x };
var msg2 = { payload:y };
msg.payload = total;

return [msg, msg1, msg2];

}

La funzione di Gianpaolo (un solo output)

x = 0;
y = 0;

x = msg.req.query.val1;
y = msg.req.query.val2;

var total = parseInt(x) + parseInt(y);

x=x.toString();
y=y.toString();
msg.payload = {total,x,y};

return msg;

Calcolo del tempo mancante e aggiunta nell’array

// definisco una variabile tempo, ci passo il tempo datomi da simple time
var time = msg.mytime;

// splitto minuti e ore
var hour = time.split(":")[0];
var min = time.split(":")[1];

for (var i = 0; i < msg.payload.length; i++){

    var bus_min = msg.payload[i].hour.split(":")[1];
    var bus_hour = msg.payload[i].hour.split(":")[0];

    var delta_min = parseInt(bus_min) - parseInt(min);
    var delta_hour = parseInt(bus_hour) - parseInt(hour);

    msg.payload[i].ETA = delta_hour * 60 + delta_min;
}
return msg;

Lezione 7

Temi iniziali per parlare un po', link alle slides:

Lezione 8

Iscriversi e fare (almeno) tutto il corso Basic Javascript di Freecodecamp.org (primo pezzo di “Javascript Algorithms and data Structures”)

https://www.freecodecamp.org/learn

Lezione 9

[Lampada Philips Hackerata](### Lezione 8 ) Slide: REST vs MQTT https://it.wikipedia.org/wiki/Insegnamento_capovolto

Lezione 10

link vari:

slide lezione di oggi

https://www.sqlitetutorial.net/sqlite-sample-database/

link al flow → qui

Esercitazione

Dovete andare qua e completare la parte che vi é stata assegnata

Lezione 11

http://red-bot.io/

Lecture di Guido Bellomo

Concetti di usabilità

L’utente potrebbe essere un po’ spaesato. Non lasciare l’utente mai una risposta o senza una direzione su cui deve fare. Ad ogni risposta dai sempre un informazione sul passaggio successivo

Alcuni chatbot chiedono dati. UX non lineare

Non usare mai un tono robotico

Pagamenti

→ il flow di Guidone

Lezione 12

Link alle slide

Lezione 13

“Projects”, Databases, Sensors, Bots, 🤯