Final Lab Manual of IoT Lab
Final Lab Manual of IoT Lab
LAB MANUAL
Internet of Things Lab (7CS4-21)
VERSION 1.0
AUTHOR / REVIEWED
APPROVED BY
OWNER BY
Dr. Pankaj Dadheech,
NAME Dr. Yogendra Gupta, Prof. (Dr.) Mukesh Kumar
Mr. M. K. Beniwal
Mr. Ankit Kumar, Gupta
Mr. Sushant Kumar
DESIGNATION Associate Professor/ Associate Professor HOD (CSE)
Assistant Professor
SIGNATURE &
REVIEW DATE
SIGNATURE &
REVIEW DATE
SIGNATURE &
REVIEW DATE
LAB RULES
Responsibilities of Users
Users are expected to follow some fairly obvious rules of conduct:
Always:
Enter the lab on time and leave at proper time.
Wait for the previous class to leave before the next class enters.
Keep the bag outside in the respective racks.
Utilize lab hours in the corresponding.
Turn off the machine before leaving the lab unless a member of lab staff has specifically told you
not to do so.
Leave the labs at least as nice as you found them.
If you notice a problem with a piece of equipment (e.g. a computer doesn't respond) or the room in
general (e.g. cooling, heating, lighting) please report it to lab staff immediately. Do not attempt to
fix the problem yourself.
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Never:
Don't abuse the equipment.
Do not adjust the heat or air conditioners. If you feel the temperature is not properly set, inform lab
staff; we will attempt to maintain a balance that is healthy for people and machines.
Do not attempt to reboot a computer. Report problems to lab staff.
Do not remove or modify any software or file without permission.
Do not remove printers and machines from the network without being explicitly told to do so by
lab staff.
Don't monopolize equipment. If you're going to be away from your machine for more than 10 or 15
minutes, log out before leaving. This is both for the security of your account, and to ensure that
others are able to use the lab resources while you are not.
Don’t use internet, internet chat of any kind in your regular lab schedule.
Do not download or upload of MP3, JPG or MPEG files.
No games are allowed in the lab sessions.
No hardware including USB drives can be connected or disconnected in the labs without prior
permission of the lab in-charge.
No food or drink is allowed in the lab or near any of the equipment. Aside from the fact that it
leaves a mess and attracts pests, spilling anything on a keyboard or other piece of computer
equipment could cause permanent, irreparable, and costly damage. (and in fact has) If you need to
eat or drink, take a break and do so in the canteen.
Don’t bring any external material in the lab, except your lab record, copy and books.
Don’t bring the mobile phones in the lab. If necessary then keep them in silence mode.
Please be considerate of those around you, especially in terms of noise level. While labs are a natural
place for conversations of all types, kindly keep the volume turned down.
If you are having problems or questions, please go to either the faculty, lab in-charge or the lab
supporting staff. They will help you. We need your full support and cooperation for smooth
functioning of the lab.
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
INSTRUCTIONS
BEFORE ENTERING IN THE LAB
All the students are supposed to prepare the theory regarding the next experiment/ Program.
Students are supposed to bring their lab records as per their lab schedule.
Previous experiment/program should be written in the lab record.
If applicable trace paper/graph paper must be pasted in lab record with proper labeling.
All the students must follow the instructions, failing which he/she may not be allowed in the
lab.
Marking/Assessment System
Total Marks -100
Distribution of Marks - 60 (Sessional)
Attendance File Work Performance Viva Total
10 10 30 10 60
The student should have hands on experience in using various sensors like temperature,
humidity, smoke, light, etc. and should be able to use control web camera, network, and
relays connected to the Pi.
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
List of Experiments
1. Start Raspberry Pi and try various Linux commands in command terminal window:
ls, cd, touch, mv, rm, man, mkdir, rmdir, tar, gzip, cat, more, less, ps, sudo, cron, chown,
chgrp, ping etc.
2. Write Run some python programs on Pi like:
a) Read your name and print Hello message with name.
b) Read two numbers and print their sum, difference, product and division.
c) Word and character count of a given string.
d) Area of a given shape (rectangle, triangle and circle) reading shape and appropriate
values from standard input.
Beyond Syllabus:
1. Study MQTT protocol in python for publishing and subscribing the message.
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
INDEX
LAB PLAN
Total number of experiment 17
Total number of turns required 17
Number of turns required for
10
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
The objective of this course is to impart necessary and practical knowledge of components of
Internet of Things and develop skills required to build real-life IoT based projects.
To introduce the terminology, technology and its applications.
To introduce the concept of M2M (machine to machine) with necessary protocols.
To introduce the Python Scripting Language which is used in many IoT devices.
To introduce the Raspberry PI platform, that is widely used in IoT applications.
To introduce the implementation of web based services on IoT devices.
Course Outcomes
Design a simple IoT system comprising Sensors, Edge Devices and Wireless
7CS4-21.5
Network Connections involving Prototyping, Programming and Data Analysis.
11
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Experiment – 1
Aim: Start Raspberry Pi and try various Linux commands in command terminal window:
ls, cd, touch, mv, rm, man, mkdir, rmdir, tar, gzip, cat, more, less, ps, sudo,cron, chown, chgrp,
ping, chmod, curl, echo, exit, find, finger, free, grep, kill etc.
Use command line terminal of linux operating system, preferably Raspberry Pi operating
system.
Linux Commands:
2. cd: cd command in linux known as change directory command. It is used to change current
working directory.
Syntax:
$ cd [directory]
touch file_name
12
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
4. mv: mv stands for move. mv is used to move one or more files or directories from one place
to another in file system.
It has two distinct functions:
- It rename a file or folder.
- It moves group of files to different directory.
Syntax:
mv [Option] source destination
5. rm: rm stands for remove here. rm command is used to remove objects such as files,
directories, symbolic links and so on from the file system
Syntax:
rm [OPTION]... FILE...
6. man: man command in Linux is used to display the user manual of any command
Syntax :
$man [OPTION]... [COMMAND NAME]...
Syntax :
$man [OPTION]... [COMMAND NAME]...
9. tar: The Linux ‘tar’ stands for tape archive, is used to create Archive and extract the
Archive files.
Syntax:
tar [options] [archive-file] [file or directory to be archived]
13
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Example:
$ gzip mydoc.txt]
11. cat: It reads data from the file and gives their content as output. It helps us to create,
view, concatenate files.
Command:
$cat filename
12. more: more command is used to view the text files in the command prompt, displaying
one screen at a time in case the file is large (For example log files). The more command also
allows the user do scroll up and down through the page.
Syntax:
more [-options] [-num] [+/pattern] [+linenum] [file_name]
∙ [-options]: any option that you want to use in order to change the way the file is displayed.
Choose any one from the followings: (-d, -l, -f, -p, -c, - s, -u)
∙ [-num]: type the number of lines that you want to display per screen. ∙ [+/pattern]: replace
the pattern with any string that you want to find in the text file.
∙ [+linenum]: use the line number from where you want to start displaying the text content.
∙ [file_name]: name of the file containing the text that you want to display on the screen.
13. Less: less command is linux utility which can be used to read contents of text file one page
(one screen) per time. It has faster access because if file is large, it don’t access complete file, but
access it page by page.
syntax :
less filename
14. ps: ps for viewing information related with the processes on a system which stands
as abbreviation for “Process Status”
Syntax –
ps [options]
15. sudo: sudo (Super User DO) command in Linux is generally used as a prefix of some
command that only superuser are allowed to run.
16. cron: automates the scheduled task at a predetermined time. It is a daemon process, which
runs as a background process.
Syntax:
cron [-f] [-l] [-L loglevel]
14
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
17. chown: chown command is used to change the file Owner or group. Whenever you want to
change ownership you can use chown command.
Syntax:
chown [OPTION]… [OWNER][: [GROUP]] FILE…
chown [OPTION]… –reference=RFILE FILE…
18. chgrp: chgrp command in Linux is used to change the group ownership of a file or
directory.
Syntax:
Chgrp [OPTION]… GROUP FILE…
chgrp [OPTION]… –reference=RFILE FILE…
19. ping: PING (Packet Internet Groper) command is used to check the network connectivity
between host and server/host.
20. chmod: the chmod command is used to change the access mode of a file.
The name is an abbreviation of change mode.
Syntax :
chmod [reference][operator][mode] file...
21. curl: curl is a command line tool to transfer data to or from a server, using any of the
supported protocols
Syntax:
curl [options] [URL...]
22. echo: echo command in linux is used to display line of text/string that are passed as an
argument .
Syntax :
echo [option] [string]
23. exit: exit command in linux is used to exit the shell where it is currently running. It takes
one more parameter as [N] and exits the shell with a return of status N.
Syntax:
15
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
exit [n]
24. find: It can be used to find files and directories and perform subsequent operations on
them. It supports searching by file, folder, name, creation date, modification date, owner and
permissions.
Syntax :
$ find [where to start searching from]
[expression determines what to find] [-options] [what to find]
25. Finger: command is a user information lookup command which gives details of all the
users logged in
Syntax:
$finger[username]
26. Free: command which displays the total amount of free space available along with the
amount of memory used and swap memory in the system, and also the buffers used by the
kernel.
.
Syntax:
$free [OPTION]
27. Grep: The grep filter searches a file for a particular pattern of characters, and displays all
lines that contain that pattern.
Syntax:
grep [options] pattern [files]
28. Kill: command in Linux (located in /bin/kill), is a built-in command which is used to
terminate processes manually. kill command sends a signal to a process which terminates the
process.
16
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Experiment – 2
Aim: Run some python programs on Pi like:
Python Program:
name = input('What is your name?\n')
print ('Hello %s.' % name)
Output:
What is your name?
Dr. Pankaj Dadheech
Hello Dr. Pankaj Dadheech.
b) Read two numbers and print their sum, difference, product and division.
Python Program:
num1 = int(input("Enter First Number: "))
num2 = int(input("Enter Second Number: "))
result = 0
if ch == '+':
result = num1 + num2
elif ch == '-':
result = num1 - num2
elif ch == '*':
result = num1 * num2
elif ch == '/':
result = num1 / num2
else:
print("Input character is not recognized!")
Output 1: Addition
Enter First Number: 100
Enter Second Number: 5
Enter which operation would you like to perform?
Enter any of these char for specific operation +,-,*,/: +
100 + 5 : 105
17
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Output 2: Subtraction
Enter First Number: 8
Enter Second Number: 7
Enter which operation would you like to perform?
Enter any of these char for specific operation +,-,*,/: -
8-7:1
Output 3: Multiplication
Enter First Number: 6
Enter Second Number: 8
Enter which operation would you like to perform?
Enter any of these char for specific operation +,-,*,/: *
6 * 8 : 48
Output 4: Division
Enter First Number: 20
Enter Second Number: 5
Enter which operation would you like to perform?
Enter any of these char for specific operation +,-,*,/: /
20 5 : 4.0
Python Program:
word_count = 0
char_count = 0
usr_input = input("Enter a string : ")
split_string = usr_input.split()
word_count = len(split_string)
for word in split_string:
char_count += len(word)
print("Total words : {}".format(word_count))
print("Total characters : {}".format(char_count))
Output:
Enter a string : Hello, How are You?
Total words : 4
Total characters : 16
d) Area of a given shape (rectangle, triangle and circle) reading shape and appropriate
values from standard input.
Python Program:
width = float(input('Please Enter the Width of a Rectangle: '))
18
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Output:
Please Enter the Width of a Rectangle: 22
Please Enter the Height of a Rectangle: 5
Area of a Rectangle is: 110.00
Perimeter of Rectangle is: 54.00
Python Program:
# Python Program to find the area of triangle
# Three sides of the triangle a, b and c are provided by the user
Output:
Enter first side: 3
Enter second side: 4
Enter third side: 5
The area of the triangle is 6.00
Python Program:
# Python Program to find Diameter, Circumference, and Area of a Circle
PI = 3.14
radius = float(input(' Please Enter the radius of a circle: '))
diameter = 2 * radius
19
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
circumference = 2 * PI * radius
area = PI * radius * radius
Output:
Please Enter the radius of a circle: 5
Diameter of a Circle = 10.00
Circumference of a Circle = 31.40
Area of a Circle = 78.50
elif s=='2':
x=int(input("Enter base:"))
y=int(input("Enter height:"))
print("Area={}".format(0.5*x*y))
elif s=='3':
x=int(input("Enter radius:"))
print("Area={}".format(3.14*x*x))
else:
print("Enter a valid choice")
20
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Experiment – 3
Aim: Run some python programs on Pi like:
a) Print a name 'n' times, where name and n are read from standard input, using for and
while loops.
Python Program:
print ("enter two no n1 and n2")
n1=raw_input()
21
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
n2=raw_input()
n1=int(n1)
n2=int(n2)
try:
div=n1/n2
print (div)
except ZeroDivisionError:
print ("zero division is handled")
Output:
Enter n1:10
Enter n2:0
zero division is handled
#DivideByZero Exception
x=int(input("First No:"))
y=int(input("Second No:"))
try:
print("x/y={}".format(x/y))
except Exception:
print("DivideByZero Exception")
Python Program:
import time
for i in range(1,11):
zz=time.asctime(time.localtime(time.time()))
zz=zz[11:19]
print (zz)
print (time.asctime(time.localtime(time.time())))
time.sleep(10)
Python Program:
#Current time 10 times
import datetime
import time
for i in range(0,10):
print(datetime.datetime.now().time())
time.sleep(10)
d) Read a file line by line and print the word count of each line.
22
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Python Program:
file=open("eee.txt","r")
line=1
for i in file:
Python Program:
# read line by line from file
while True:
count+=1
line = file1.readline()
if not line:
break
print("Word Count in Line{}: {}".format(count,
len(line.split())) )
file1.close()
23
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Experiment – 4
Explanation:
Circuit:
24
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Flowchart:
Output:
25
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Experiment – 5
Aim: LED bilking without push button using Raspberry pi on Proteus using flowchart.
Explanation:
Circuit:
26
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Flowchart:
27
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Experiment – 6
Aim: Design a flowchart Temperature and Humidity sensor and display the result using UART
on terminal.
Components: HYT271 Precision Humidity and Temperature Sensor, Groove Terminal (VT1)
for UART
Explanation:
28
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Flowchart:
Output:
29
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Experiment – 7
Explanation:
In order to develop a weather station, we require to read the values of temperature, pressure and
humidity by using the corresponding sensors.
Circuit:
30
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Flowchart:
31
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Experiment – 8
Components: Add Peripheral -> Internet of things-> VFP server (ESP8266 Wi-Fi
module)
Simulator: Proteus
Theory:
This Dust Sensor gives a good indication of the air quality in an environment by
measuring the dust concentration. The Particulate Matter level (PM level) in the air is
measured by counting the Low Pulse Occupancy time (LPO time) in given time unit.
LPO time is proportional to PM concentration. This sensor can provide reliable data for
air purifier systems; it is responsive to PM of diameter 1μm.
ESP8266 is Wi-Fi enabled system on chip (SoC) module developed by Espressif system.
It is mostly used for development of IoT (Internet of Things) embedded applications.
Circuit:
32
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Flowchart:
33
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Experiment – 9
Simulator: Proteus
Components: Add Peripheral -> Groov -> 80cm Proximity sensor module
Explanation:
Circuit:
34
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Flowchart:
35
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Experiment –10
Simulator: Proteus
Explanation:
Physical Connections:-
Back side pins of sensor:- ( in breadboard vertical connections( in between) are there)
Code:
setup() {
Serial.begin(96
00);} void
loop()
36
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
pinMode(echoPin, INPUT);
inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);
Serial.print(inches);
Serial.print("in, ");
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(1000);
{return microseconds / 74 / 2;
Verify your code in Arduino IDE that is sketch. Upload your code in Arduino IDE
After connecting, all done. Press Ctrl + shift + M. You can see output window
37
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Output:
38
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Experiment – 11
Aim: Design a system using Arduino where you can monitor Temperature and Humidity of a
place on an IDE/LCD.
Simulator: Proteus
Components: Add Peripheral -> Groov -> Temp. And Humidity Sensor
Theory:
DHT11 Sensor:
The DHT11 is a basic, low cost digital temperature and humidity sensor.
∙ DHT11 is a single wire digital humidity and temperature sensor, which provides humidity
and temperature values serially with one-wire protocol.
∙ DHT11 sensor provides relative humidity value in percentage (20 to 90% RH) and
temperature values in degree Celsius (0 to 50 °C).
∙ DHT11 sensor uses resistive humidity measurement component, and NTC temperature
measurement component.
Explanation:
Physical Connections:-
Back side pins of sensor:- ( in breadboard vertical connections( in between) are there)
Code:
#include <dht11.h>
#define DHT11PIN 4
dht11 DHT11;
void setup()
{
39
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Serial.begin(9600);
}
void loop()
{
Serial.println();
int chk = DHT11.read(DHT11PIN);
Serial.print("Humidity (%): ");
Serial.println((float)DHT11.humidity, 2);
Serial.print("Temperature (C): ");
Serial.println((float)DHT11.temperature, 2);
delay(2
000); }
Output:
40
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
41
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Experiment – 12
Aim: Design a system using Arduino where you can monitor Soil Moisture of a plant on
an IDE.
If soil moisture is less, then LED should glow.
Simulator: Proteus
Theory:
Soil moisture sensors measure the volumetric water content in soil. Since the direct gravimetric
measurement of free soil moisture requires removing, drying, and weighing of a sample, soil
moisture sensors measure the volumetric water content indirectly by using some other property
of the soil, such as electrical resistance, dielectric constant, or interaction with neutrons, as a
proxy for the moisture content.
42
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Connections:
Code:
int sensorPin = A0;
int sensorValue;
int limit = 300;
void setup() {
Serial.begin(9600);
pinMode(13, OUTPUT);
}
void loop() {
sensorValue = analogRead(sensorPin);
Serial.println("Analog Value : ");
Serial.println(sensorValue);
if (sensorValue<limit) {
digitalWrite(13, HIGH);
}
else {
digitalWrite(13, LOW);
43
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
delay(1000);
}
Output:
44
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Experiment – 13
Aim: Design a system using Arduino that blinks an LED when you detect a motion in an
area on an IDE.
Write working, connections, code and expected output.
Theory:
"Passive Infra-Red" sensor is a "Pyroelectric IR Sensor" which generates energy when exposed
to heat. Everything emits some low level of radiation, the hotter the object is, the more radiation
is emitted. When a human or an animal (with IR radiation wavelength of 9.4 µMeter) approaches
the sensors range the sensor detects the heat in the form of infrared radiation.
The sensor only detects the energy emitted by other objects and don’t produce any, that's why
the sensor is called a PIR or "Passive Infra-Red" sensor. These sensors are small, cheap,
rugged, low power and very easy to use.
Connections:
With Arduino,
∙ Connect the VCC of the PIR sensor to the 5v pin of Arduino.
∙ Then connect the output pin to D13
∙ GND to the Ground pin of the Arduino.
∙ Connect the LED to the D2 pin of the Arduino.
45
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Code:
int LED = 13; // the pin that the LED is attached to int PIR = 2; // the pin that the sensor is
attached to
void setup() {
pinMode(LED, OUTPUT); // initialize LED as an output
pinMode(PIR, INPUT); // initialize sensor as an input Serial.begin(9600); // initialize serial
}
void loop(){
if (digitalRead(PIR) == HIGH) { // check if the sensor is HIGH digitalWrite(LED, HIGH); //
turn LED ON
Serial.println("Motion detected!");
delay(100); // delay 100 milliseconds }
else {
digitalWrite(LED, LOW); // turn LED OFF
Serial.println("Motion stopped!");
delay(100); // delay 100 milliseconds }
}
Output:
Motion detected
Motion detected
Motion detected
Motion detected
Motion stopped
Motion stopped
Motion detected
Motion detected
Motion detected
Motion stopped
46
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Experiment – 14
Aim: Motion detection and blinking the light when the light intensity is low using Arduino.
Write working, connections, code and expected output.
Hardware Library: ARDUINO UNO
Components: PIR Sensor, LDR Sensor, Arduino UNO, Jumping wires, LED
Theory:
PIR Sensor
"Passive Infra-Red" sensor is a "Pyroelectric IR Sensor" which generates energy when exposed
to heat. Everything emits some low level of radiation, the hotter the object is, the more radiation
is emitted. When a human or an animal (with IR radiation wavelength of 9.4µMeter) approaches
the sensors range the sensor detects the heat in the form of infrared radiation.
The sensor only detects the energy emitted by other objects and don't produce any, that's why the
sensor is called a PIR or “Passive Infra-Red" sensor. These sensors are small, cheap, rugged,
low-power and very easy to use.
LDR Sensor
The LDR Sensor Module is used to detect the presence of light / measuring the intensity of light.
The output of the module goes high in the presence of light and it becomes low in the absence of
light. The sensitivity of the signal detection can be adjusted using potentiometer.
47
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Connections:
With Arduino,
∙ Connect the VCC of the PIR and LDR Sensor to the 5v pin of Arduino.
∙ Then connect the output pin of PIR to D13
∙ And connect the output pin of LDR to D4
∙ Connect the GND of PIR and LDR Sensor to the GND pin of the Arduino.
∙ Connect the LED to the D2 pin of the Arduino.
∙ Now upload the code and test
Code:
#define LED 2 // The pin that the LED is attached to
#define LDR 4 // The pin that the LDR Sensor is attached to
#define PIR 13 // The pin that the PIR sensor is attached to
void setup() {
pinMode(LED, OUTPUT); // initalize LED as an output
pinMode(PIR, INPUT); // initialize PIR sensor as an input
pinMode(LDR, INPUT); // initialize LDR sensor as an input
Serial.begin(9600); // initialize serial
}
void loop(){
if(digitalRead(PIR) == HIGH)
{
Serial.println("Motion detected!");
delay(100); // delay 100 milliseconds
else
{
Serial.println("Motion stopped!");
delay(100); // delay 100 milliseconds
}
}
48
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Output:
Motion detected!
Motion detected!
Motion detected!
Blinking LED since Dark
Motion detected!
Blinking LED since Dark
Motion stopped!
Motion stopped!
Motion detected!
Motion detected!
Blinking LED since Dark
Motion detected!
Motion stopped!
49
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Experiment – 15
Aim: Flash an LED at a given on time and off time cycle, where the two times are taken from a
file.
Python Program:
To start, you need to make sure that your Raspberry Pi is connected to the internet. This is
needed to track time. Then type in this code:
pin = your_output_pin_here
GPIO.setup(pin, GPIO.OUT)
while True:
time = datetime.datetime.now().strftime("%H:%M")
if time == "12:00":
GPIO.output(pin, True)
time.sleep(number_of_seconds_for_led_to_be_on_here)
GPIO.output(pin, False)
time.sleep(0.030)
Replace things like 12:00 and your_output_pin_here with your own values. Every 30
milliseconds, it checks whether it is 12:00. If it is, it turns on the LED. It then waits a number of
seconds, then turns it back off.
50
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Experiment – 16
Python Program:
Python code: blink.py
import RPi.GPIO as GPIO
import time
LedPin = 11 # pin11
def setup():
def blink():
while True:
time.sleep(1)
time.sleep(1)
def destroy():
51
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
setup()
try:
blink()
except KeyboardInterrupt: # When 'Ctrl+C' is pressed, the child program destroy() will
be executed.
destroy()
52
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Experiment – 17
Aim: Switch on a relay at a given time using cron, where the relay's contact terminals are
connected to a load.
Python Program:
# Python 2.7 on raspberry pi
# Script to trigger thermostat control on heating
# Reads room temperatures from Prodserver DONE - from Thermostat01.py
# All heating control logic is on prodserver. This just reads on/off commands
# Dependencies
# sudo pip install max7219 - 7 seg 8 digit display driver
# sudo pip install bs4 - beautiful soup web scraper
# sudo pip install requests - python http library for GET and POST
# sudo apt-get install python-blinkt blinkt led library
# GPIO PINS
# MAX7129 7 seg display
# DIN = GPIO10(MOSI)
# CS = GPIO8(SPI CE0)
# CLK = GPIO11(SPI CLK)
# Blinkt uses GPIO23,24
#Pin Constants
PIN_RELAY = 17
PIN_BOOST_DETECT = 4
import blinkt
blinkt.set_clear_on_exit(False)
blinkt.set_all(0,0,0)
blinkt.set_brightness(0.1)
blinkt.show()
# blinkt Timer leds 0,1
# blinkt Heat leds 2,3
# blinkt Boost leds 4,5
import sys
# 7 seg display set up
import max7219.led as led
device = led.sevensegment()
device.brightness(1)
import requests
from bs4 import BeautifulSoup
53
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
import datetime
import RPi.GPIO as GPIO
#GPIO setup
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(PIN_RELAY, GPIO.OUT)
GPIO.setup(PIN_BOOST_DETECT, GPIO.IN)
# GLOBALS
server = 'http://192.168.XXXXXXXXXXXXX'
now = datetime.datetime.now()
status = [now,
str(now.year)+str(now.month)+str(now.day)
+' '+str(now.hour)+':'+str(now.minute),
'no status', 0, 0, '0']
try:
txt=requests.get(server)
soup=BeautifulSoup(txt.text,"html.parser")
status[2] ="read OK"
status[3] = int(soup.select("#timer_on")[0].text)
status[4] = int(soup.select("#heat_on")[0].text)
status[5] = soup.select("#Avtemp")[0].text[:5]
return status
except Exception as e:
# in error condition heating defaults to OFF
status[2] = "Error:" + str(e)
status[3] = 0
status[4] = 0
status[5] = "99"
return status
def do_log(status):
logfile = 'logfile.txt'
fp = open(logfile,"a")
54
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
fp.write(logstring)
fp.close()
print logstring
def do_7segdisplay(status):
"display on 7 seg"
now=status[0]
segnumber = 10000*now.hour + 100*now.minute + float(status[5])
device.write_number(0,segnumber,decimalPlaces=2,zeroPad=True)
def do_timer(status):
"Deals with timer status led"
if(status[3]): # timer on
r,g,b = (0,250,0)
else:
r,g,b = (0,0,0)
blinkt.set_pixel(0,r,g,b)
#blinkt.set_pixel(1,r,g,b)
blinkt.show()
return
def do_heat(status):
"Deals with Heat status led and switches relay"
if(status[4]): # heat on
r,g,b = (200,000,000)
GPIO.output(PIN_RELAY, GPIO.LOW)
else:
r,g,b = (0,0,0)
GPIO.output(PIN_RELAY, GPIO.HIGH)
blinkt.set_pixel(2,r,g,b)
#blinkt.set_pixel(3,r,g,b)
blinkt.show()
return
def do_boost():
"No function as yet"
# MAIN PROGRAMME
status = get_status(server, status)
do_log(status)
do_7segdisplay(status)
do_timer(status)
do_heat(status)
55
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Beyond Syllabus
56
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Experiment – 1
Aim: Study MQTT protocol in python for publishing and subscribing the message.
Code:
import time
broker="broker.hivemq.com"
broker="iot.eclipse.org"
#define callback
time.sleep(1)
client.on_message=on_message
#####
print("connecting to broker ",broker)
client.connect(broker)#connect
client.subscribe("house/bulb1")#subscribe
time.sleep(2)
57
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
print("publishing ")
client.publish("house/bulb1","on")#publish
time.sleep(4)
client.disconnect() #disconnect
Code Explanation
We use the time.sleep() function to insert delays so as to give the client time to
connect etc.
Output:
Publishing
Received message=on
58
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Viva Questions
1) What is the Internet of Things (IoT)?
Internet of Things (IoT) is a network of physical objects or people called "things" that are
embedded with software, electronics, network, and sensors that allow these objects to collect and
exchange data. The goal of IoT is to extend to internet connectivity from standard devices like
computer, mobile, tablet to relatively dumb devices like a toaster.
2) Explain Raspberry Pi
Raspberry Pi is a computer which is capable of doing all the operations like a conventional
computer. It has other features such as onboard WiFi, GPIO pins, and Bluetooth in order to
communicate with external things.
Raspberry pi in headless mode can be run by using SSH. The latest operating system has an inbuilt
VNC server that is installed for taking remote desktop on Raspberry Pi.
Sensors/Devices: Sensors or devices are a key component that helps you to collect live
data from the surrounding environment. All this data may have various levels of
complexities. It could be a simple temperature monitoring sensor, or it may be in the form
of the video feed.
Connectivity: All the collected data is sent to a cloud infrastructure. The sensors should
be connected to the cloud using various mediums of communications. These
communication mediums include mobile or satellite networks, Bluetooth, WI-FI, WAN,
etc.
59
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Data Processing: Once that data is collected, and it gets to the cloud, the software product
performs processing on the gathered data. This process can be just checking the
temperature, reading on devices like AC or heaters. However, it can sometimes also be
very complex, like identifying objects, using computer vision on video.
User Interface: The information needs to be available to the end-user in some way, which
can be achieved by triggering alarms on their phones or sending them notification through
email or text message. The user sometimes might need an interface which actively checks
their IoT system.
IoT IIoT
The full form of IoT is the Internet of Things. The full form of IIoT is the Industrial Internet
of Things.
The quality of data is medium to high. The quality of data is high to very high.
Layers of IoT protocol stack are: 1) Sensing and information, 2) Network connectivity, 3)
Information processing layer, 4) Application layer.
Security: IoT technology creates an ecosystem of connected devices. However, during this
process, the system may offer little authentication control despite sufficient cybersecurity
measures.
Privacy: The use of IoT, exposes a substantial amount of personal data, in extreme detail,
without the user's active participation. This creates lots of privacy issues.
60
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Flexibility: There is a huge concern regarding the flexibility of an IoT system. It is mainly
regarding integrating with another system as there are many diverse systems involved in
the process.
Complexity: The design of the IoT system is also quite complicated. Moreover, it's
deployment and maintenance also not very easy.
Compliance: IoT has its own set of rules and regulations. However, because of its
complexity, the task of compliance is quite challenging.
8) Define Arduino
Arduino is a free electronics platform having easy to use hardware and software. It has a
microcontroller capable of reading input from sensors to control the motors programmatically.
Smoke sensor
Temperature sensors
Pressure sensor
Motion detection sensors
Gas sensor
Proximity sensor
IR sensors
10) Mention the basic difference between IoT and sensor businesses?
A sensor business does not need an active internet connection to work. Internet of Things requires
a control side to work.
61
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Technical Optimization: IoT technology helps a lot in improving techniques and making
them better. For example, with IoT, a manufacturer is able to collect data from various car
sensors. The manufacturer analyses them to improve its design and make them more
efficient.
Improved Data Collection: Traditional data collection has its limitations and its design
for passive use. IoT facilitates immediate action on data.
Reduced Waste: IoT offers real-time information leading to effective decision making &
management of resources. For example, if a manufacturer finds an issue in multiple car
engines, he can track the manufacturing plan of those engines and solves this issue with
the manufacturing belt.
Improved Customer Engagement: IoT allows you to improve customer experience by
detecting problems and improving the process.
The Bluegiga APX4 is a solution that supports both the WiFI and BLE platform, and it is based
on a 450MHz ARM9 processor.
62
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Smart Thermostats: Helps you to save resources on heating bills by knowing your usage
patterns.
Connected Cars: IoT helps automobile companies handle billing, parking, insurance, and
other related stuff automatically.
Activity Trackers: Helps you to capture heart rate patterns, calorie expenditure, activity
levels, and skin temperature on your wrist.
Smart Outlets: Remotely turn any device on or off. It also allows you to track a device's
energy level and get custom notifications directly into your smartphone.
Parking Sensors: IoT technology helps users to identify the real-time availability of
parking spaces on their phones.
Connect Health: The concept of a connected healthcare system facilitates real-time health
monitoring and patient care. It helps in improved medical decision-making based on patient
data.
PWM or Pulse Width Modulation is a variation of how much time the signal is high in an analog
fashion. The signal can be high or low, and the user can even change the proportion of the time.
Applications of PWM in IoT are controlling the speed of DC motor, Controlling the direction of a
servo moto, Dimming LED, etc.
63
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
17) What are the functions used to read analog and digital data from a sensor in Arduino?
Functions used to read analog and digital data from a sensor in Arduino are: digitalRead() and
digitalWrite().
Bluetooth Low Energy is a wireless PAN (Personal Area Network) technology. It uses less power
to transmit long-distance over a short distance.
MicroPython is a Python implementation, which includes a small subset of its standard library. It
can be optimized to run on the ModeMCU microcontroller.
Raspberry Pi 1 Model B
Raspberry Pi 1 Model B+
Raspberry Pi 1 Model A
Raspberry Pi Zero
Raspberry Pi 3 Model B
Raspberry Pi 1model A+
Raspberry Pi Zero W
Raspberry Pi 2
64
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Turbidity sensor
Total organic carbon sensor
pH sensor
Conductivity sensor
Arduino Raspberry pi
Raspberry pi is a credit card size computer. Users can run more than one program at a
time.
XMPP
AMQP
Very Simple Control Protocol (VSCP)
Data Distribution Service (DDS)
MQTT protocol
WiFi
Simple Text Oriented Messaging Protocol(STOMP)
Zigbee
IoT Publishers are sensors that send real-time data to intermediate devices or middleware.
Arduino library is a collection of code that is already written for controlling module or sensor.
65
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Thingworx is a platform for the fast development and deployment of connected devices. It is a
collection of integrated IoT development tools that support analysis, production, property, and
alternative aspects of IoT development.
The Salesforce IoT Cloud is an online platform for storing and processing IoT information.
This program gathers information from websites, devices, customers, and partners. It then triggers
actions for period responses.
GE or General Electric Predix is a software for the information assortment from industrial
instruments. It offers a PaaS which allows users performance management and operation
optimization facility. It connects instrumentation, people, and information in an exceedingly
conventional technique.
Popular companies working on IoT are: 1) Philips, 2) LG, 3) Google, 4) Apple and 5) Samsung.
Various types of CAN frames are: 1) data frame, 2) request frame, 3) error frame, and 4) overload
frame.
34) What is the main difference between floating CPU and fixed-point CPU?
Floating CPU can take floating value directly, whereas fixed CPU is converted to integer format.
Thereby, it leads to the loss of some resolution.
66
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
GPIO is a programmable pin that can be used to control input or output pins programmatically.
The main aim of airflow sensors is to measure the air level in the soil. This sensor enables one to
measure it dynamically, from one location, or multiple locations of the garden.
influx DB
Apache Cassandra
RethinkDB
MongoDB
Sqlite
Home a
Portable webserver
manipulating the robots
Internet radio
IoT Contiki is software that targets explicitly little devices connected with the Internet. It is used
with process power bandwidth, power, and restricted memory. Contiki helps for the management
of programs, resources, processes, communication, and memory.
Data in IoT refers to the information that is collected by the installed devices at any building.
67
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Majorly used IoT controllers by industries are: 1) Siemens IoT 2020 and 2) Arduino.
A crystal oscillator is the main part of the microprocessor. It executes every single pulse one
instruction in CPU.
It brings together people, processes, things, and data to make network connections valuable
and relevant.
It converts the information into actions to create new capabilities and opportunities for
businesses.
The full form of WSN is Wireless Sensor Network. It is a network of notes, design to observe and
to study physical parameters of the application.
Zigbee is the same like Bluetooth. It used in a complex system for low power operation, robustness,
and high security.
Z-Wave is an IoT technology that uses low power RF communication. It is designed for home
automation products like lamp controllers and sensors.
A new library in Arduino can be installed by selecting the library from the sketch option in Toolbar.
The full form of MQTT is Message Queue Telemetry Transport Protocol. It is a messaging
protocol that is used for tracking devices in IoT.
68
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
IoT hardware includes varieties of devices like router, bridge, sensor, etc.
Raspbian
Open ELEC (Open Embedded Linux Entertainment center)
RISC OS
Lakka
OSMC (Open Source Media Centre)
Windows IoT Core
Reducing the size of the sketch is can be reduced by removing unwanted libraries from the code
and make code short and simple.
54) What are the various types of antennas designed for IoT devices?
Chip Antenna
PCB Antenna
Wire Antenna
Proprietary Antenna
Whip Antenna
M2M IoT
It uses isolated systems of devices having the It uses integrated devices, applications, and
same standards. data across varying standards.
A cellular network or wired network is used It uses an active Internet connection for device
for device connectivity. connectivity.
69
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Machines can communicate with one machine Many machines can communicate with each
at a time. other over the Internet.
Programmers can use the Arduino IDE in order to write an Arduino program. Developers can also
use Node.js Johny five-module in order to control Arduino.
A specification called Gridfs can be used for storing high volume file into Arduino.
IoT software are: 1) Blockchain, 2) windows IoT, 3) Predix, 4) Microsoft Azure, 5) Bluemix, and
6) Node-RED.
Shodan is an IOT testing tool that can be used to discover which of your devices are connected to
the Internet. It allows you to keep track of all the computers which are directly accessible from the
Internet.
70
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
A Thermocouple is a device which consists of two different conductors joined together to form an
electrical junction.
MPU6050- Gyroscope
ADXL345
piezoelectric sensor
Accelerometer
Hardware Prototypes used in IoT are 1) Raspberry Pi, 2) ARM Cortex Family, and 3) Arduino.
IoT testing is a type of testing to check IoT devices. Today there is an increasing need to deliver
better and faster services. There is a huge demand to access, create, use, and share data from any
device. The thrust is to provide greater insight and control over various interconnected IoT devices.
Hence, the IoT testing framework is important.
Thingful is a search engine for the Internet of Things. It allows secure interoperability between
millions of IoT objects via the Internet. This IOT testing tool also to control how data is used and
empowers to take more decisive and valuable decisions.
71
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Interrupts enable specific tasks to process in the background and are enabled by default. Its main
job is to ensure the device processor responds fastly to essential events.
Asset Tracking or Asset management is the process of keeping track of physical assets and
information.
73) What are the risks associated with the IOE Internet of Everything?
Risks associated with IOE are 1) Privacy, 2) Security, 3) Network congestion, and 4) Electricity
consumption at the peaks.
74) What is the basic difference between the IoT network and Wireless Sensor Network?
Wireless Sensor Network things connected to the wireless network and gather some monitoring
environment or data. IoT contains a combination of:
WSN
Internet
Cloud Storage
web or mobile application
The network is the main part of the IoT. It is responsible for providing a practical and smart system
that makes strong infrastructure. The network offers scalability to help devices coordinate with
other lines with the Internet.
76) What is the connection between IoT and sensors in the commercial enterprise?
Sensors may be used in devices that are not net-connected, while devices need to be connected to
the Net with IoT. Yet, sensing is a part of IoT, even if the device is not connected to the Net.
72
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
Usability Testing: There are so many devices of different shape and form factors are used
by the users. Moreover, the perception also varies from one user to others. That's why
checking the usability of the system is very important in IoT testing.
Compatibility Testing: There are lots of devices that can be connected through the IoT
system. These devices have varied software and hardware configuration. Therefore, a
possible combination is huge. As a result, checking the compatibility in the IoT system is
important.
Reliability and Scalability Testing: Reliability and Scalability is important for building
an IoT test environment which involves a simulation of sensors by utilizing virtualization
tools and technologies.
Data Integrity Testing: It's important to check the Data integrity in IoT testing as it
requires a large amount of data and its application.
Security testing: In the IoT environment, many users are accessing a massive amount of
data. Thus, it is important to validate user via authentication, have data privacy controls as
part of security testing.
Performance Testing: Performance testing is important to create a strategic approach for
developing and implementing an IoT testing plan.
73
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
References:
Text Books:
1. Vijay Madisetti, Arshdeep Bahga, “Internet of Things-A Hands on Approach”,
University Press, 2015, ISBN: 9788173719547.
2. Dr. SRN Reddy, Rachit Thukral and Manasi Mishra, “Introduction to Internet of Things:
A practical Approach”, ETI Labs.
3. Pethuru Raj and Anupama C. Raman, “The Internet of Things: Enabling Technologies,
Platforms, and Use Cases”, CRC Press.
Reference Books:
1. Matt Richardson & Shawn Wallace, “Getting Started with Raspberry Pi”, O'Reilly
(SPD), 2014, ISBN: 9789350239759.
2. Jeeva Jose, “Internet of Things”, Khanna Publishing House, Delhi.
3. Adrian McEwen, “Designing the Internet of Things”, Wiley.
4. Raj Kamal, “Internet of Things: Architecture and Design”, McGraw Hill.
5. Cuno Pfister, “Getting Started with the Internet of Things”, O Reilly Media.
74
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
VISION (SKIT)
“To Promote Higher Learning in Advanced Technology and Industrial Research to make our
Country a Global Player”
MISSION (SKIT)
“To Promote Quality Education, Training and Research in the field of Engineering by establishing
effective interface with Industry and to encourage Faculty to undertake Industry Sponsored
Projects for Students”
75
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
PO2: Problem analysis: Identify, formulate, research literature, and analyze complex engineering problems
reaching substantiated conclusions using first principles of mathematics, natural sciences, and engineering
sciences.
PO3: Design/development of solutions: Design solutions for complex engineering problems and design
system components or processes that meet the specified needs with appropriate consideration for the public
health and safety, and the cultural, societal, and environmental considerations.
PO4: Conduct investigations of complex problems: Use research-based knowledge and research methods
including design of experiments, analysis and interpretation of data, and synthesis of the information to
provide valid conclusions.
PO5: Modern tool usage: Create, select, and apply appropriate techniques, resources, and modern
engineering and IT tools including prediction and modeling to complex engineering activities with an
understanding of the limitations.
PO6: The engineer and society: Apply reasoning informed by the contextual knowledge to assess societal,
health, safety, legal and cultural issues and the consequent responsibilities relevant to the professional
engineering practice.
PO7: Environment and sustainability: Understand the impact of the professional engineering solutions in
societal and environmental contexts, and demonstrate the knowledge of, and need for sustainable
development.
PO8: Ethics: Apply ethical principles and commit to professional ethics and responsibilities and norms of
the engineering practice.
76
Lab Manual 7CS4-21 (Internet of Things Lab) SKIT, Ramnagaria, Jagatpura, Jaipur
PO9: Individual and teamwork: Function effectively as an individual, and as a member or leader in diverse
teams, and in multidisciplinary settings.
PO10: Communication: Communicate effectively on complex engineering activities with the engineering
community and with society at large, such as, being able to comprehend and write effective reports and
design documentation, make effective presentations, and give and receive clear instructions.
PO11: Project management and finance: Demonstrate knowledge and understanding of the engineering
and management principles and apply these to one’s own work, as a member and leader in a team, to manage
projects and in multidisciplinary environments.
PO12: Life-long learning: Recognize the need for, and have the preparation and ability to engage in
independent and life-long learning in the broadest context of technological change.
PSO2: Graduates will demonstrate an ability to design, develop, test, debug, deploy, analyze, troubleshoot,
maintain, manage and secure the software.
PSO3: Graduates will possess the knowledge of institutions / organizations / companies related to computer
science & engineering.
77