Slides are available from the link
This course is going to explain what IoT represents, what it consists of, also name some of the most important hardware which make it happen and try to give IoT a proper understanding of its meaning and importance.
The Internet of things has become a very widely spread concept in the last few years. The reason for this is mainly the need to computerize and control most of the surrounding objects and have access to data in real time. Think about parking sensors, about phones which can check the weather and so on.
The Internet of Things represents the whole way from collecting data, processing it, taking an action corresponding to the signification of this data to storing everything in the cloud. All this is made possible by the internet.
Let's take sensors as an example, they collect data and send it to a processing device, which will perform the convenient actions. Then, the data will be stored locally and, by using the internet, it is subsequently sent out to the cloud. The problem here is that the data stored in the cloud is sometimes not useful. There is not enough local processing happening before data is saved in the cloud.
The ideal scenario towards which the Internet of Things is headed, would be to have a computer store data locally, process it, check for abnormalities or search for relevant segments and upload only this information to the cloud. This concept is called either Edge, according to Intel, or fog computing as stated by Cisco, implying what happens before the cloud.
The IoT is involved in medicine, agriculture or transportation due to sensors and cloud storage.
They transform analog data given from scanning the environment to digital data, but they merely do any processing. On the bright side, they don't consume much power and can live on batteries for a long time. Sensors are present in everyday life more than you would expect. They improve industry, agriculture, homes, transportation or smart phones for example. They are tools which help monitoring the environment, collecting data about it and, with the help of computers, acting accordingly.
Local processing devices are the second level and third in IoT. At this point, data is locally stored and processed, ideally not sent forwards unless relevant. This part is explained in detail in the hardware section, as said devices are nothing more than microcontrollers and embeded boards, which handle the data they receive from the sensors.
There is hardware which connects to the previously described devices, pulls out data and sends it to the cloud to be stored. There are 4 protocols used at this level: CoAP, MQTT ( less secure and designed for machine to machine communication), HTTP (web protocol) and XMPP which functions as a chat.
In the cloud, which comes next, data is collected and the main goal is for it to reach the point of making predictions based on the stored information. The cloud however, even though it represents one of the most useful features of the internet, is not used properly. Data sent to the cloud didn't reach the level of beeing formerly processed. Which means there is no preselected data. The cloud is constantly loaded with irrelevant information and thus losing it's property of being practical.
An important subject concerning the IoT is open hardware. The designers of such hardware publish the schematics which, when the current started, was a real boost for the IoT.
Microcontrollers were the first one to appear as an option for developers. They are small conputing devices, easily connectable to hardware. The developement tools were, however, an obstacle and made using them very complicated.
The first easy to use microcontroller was Arduino. It is a small programmable device, on which you can run a simple, open source software called firmware. The only fault was that it didn't have enough processing power and, as a result, no more than 4 network connections were supported. Its RAM being of 2KB. Shortly, the Arduino does not run an Operating System, what it runs is called Firmware. Basically, it runs only one program. The result is that you can estimate what program sequence gets executed at a certain time. Program written to the Arduino remain there until they are replaced with another program. Even when powered off, Arduino stores its software.
Conversly, since it is a computer, the Raspberry Pi runs an Operating System. That means that you can run multiple programs on it and you can run applications that use Internet services. However, this also implies that the application you run on the Raspberry Pi is not real time, thus you cannot estimate when a certain sequence will get executed. Raspberry Pi came second with the qualities of being cheap and useful. It is actually a small computer, it runs Linux as operating system and has a full network system, solving thus the processing problem of the Arduino.
The appropriate hardware can be found by checking many aspects. There are many boards, but they are good for different kinds of projects.
Prototyping is a necessary process while building a professional product. The software used for it should be fast to write, easy to deploy when finished and it's there to make a proof of concept. However, it is not supposed to be user level grade.
Prototyping has the only property of making a statement, whereas professional programming can't have any faults, can't break and has to meet the client's needs. The softwares built for this job are Eclipse, VIM, MBED- online platform where you can write the code and download the binary file for the board- ,Intel XDK which uses JavaScript as language for developing and also offers HTML as an alternative.
The field of data aquisition and analysis brings:
Solution builders such as Wyliodrin allow prototyping and build solution projects to be sent to the clients.