Week-6.pdf
Document Details
Uploaded by InvigoratingNovaculite3943
IIT Kharagpur
Full Transcript
EL Introduction to Python Programming – Part I PT Dr. Sudip Misra Associate Professor N Department of Computer Science and Engineering IIT KHARAGPUR Email:...
EL Introduction to Python Programming – Part I PT Dr. Sudip Misra Associate Professor N Department of Computer Science and Engineering IIT KHARAGPUR Email: [email protected] Website: http://cse.iitkgp.ac.in/~smisra/ Introduction to Internet of Things 1 Why Python? Python is a versatile language which is easy to script and easy to read. It doesn’t support strict rules for syntax. EL Its installation comes with integrated development environment for programming. PT It supports interfacing with wide ranging hardware platforms. With open-source nature, it forms a strong backbone to build large applications. N Introduction to Internet of Things 2 Python IDE Python IDE is a free and open source software that is used to write codes, integrate several modules and libraries. EL It is available for installation into PC with Windows, Linux and Mac. PT Examples: Spyder, PyCharm, etc. N Introduction to Internet of Things 3 Starting with Python Simple printing statement at the python interpreter prompt, >>> print “Hi, Welcome to python!” EL Output: Hi, Welcome to python! To indicate different blocks of code, it follows rigid indentation. PT if True: print “Correct" else: N print “Error" Introduction to Internet of Things 4 Data-types in Python There are 5 data types in Python: Numbers x, y, z = 10, 10.2, " Python " EL String PT x = ‘This is Python’ print x >>This is Python print x print x[2:4] N >>T >>is Introduction to Internet of Things 5 Data-types in Python (contd..) List x = [10, 10.2, 'python'] EL Tuple PT Dictionary N d = {1:‘item','k':2} Introduction to Internet of Things 6 Controlling Statements if (cond.): while (cond.): statement 1 statement 1 statement 2 statement 2 EL x = [1,2,3,4] elif (cond.): for i in x: PT statement 1 statement 1 statement 2 statement 2 else: statement 1 N statement 2 Introduction to Internet of Things 7 Controlling Statements (contd..) Break Continue for s in "string": for s in "string": EL if s == ‘n': if s == ‘y': break continue PT print (s) print (s) print “End” print “End” N Introduction to Internet of Things 8 Functions in Python Defining a function Without return value def funct_name(arg1, arg2, arg3): # Defining the function EL statement 1 statement 2 PT With return value def funct_name(arg1, arg2, arg3): # Defining the function Nstatement 1 statement 2 return x # Returning the value Introduction to Internet of Things 9 Functions in Python Calling a function def example (str): EL print (str + “!”) PT example (“Hi”) # Calling the function Output:: Hi! N Introduction to Internet of Things 10 Functions in Python (contd..) Example showing function returning multiple values def greater(x, y): if x > y: EL return x, y else: PT return y, x val = greater(10, 100) print(val) Output:: (100,10) N Introduction to Internet of Things 11 Functions as Objects Functions can also be assigned and reassigned to the variables. Example: def add (a,b) EL return a+b PT print (add(4,6)) c = add(4,6) print c N Output:: 10 10 Introduction to Internet of Things 12 Variable Scope in Python Global variables: These are the variables declared out of any function , but can be EL accessed inside as well as outside the function. Local variables: PT These are the ones that are declared inside a function. N Introduction to Internet of Things 13 Example showing Global Variable g_var = 10 EL def example(): l_var = 100 print(g_var) PT example() # calling the function N Output:: 10 Introduction to Internet of Things 14 Example showing Variable Scope var = 10 def example(): EL var = 100 print(var) PT example() # calling the function print(var) Output:: 100 N 10 Introduction to Internet of Things 15 Modules in Python Any segment of code fulfilling a particular task that can be used commonly by everyone is termed as a module. EL Syntax: import module_name #At the top of the code PT using module_name.var #To access functions and values N with ‘var’ in the module Introduction to Internet of Things 16 Modules in Python (contd..) Example: import random EL for i in range(1,10): val = random.randint(1,10) PT print (val) N Output:: varies with each execution Introduction to Internet of Things 17 Modules in Python (contd..) We can also access only a particular function from a module. Example: EL from math import pi PT print (pi) Output:: 3.14159 N Introduction to Internet of Things 18 Exception Handling in Python An error that is generated during execution of a program, is termed as exception. Syntax: EL try: statements PT except _Exception_: statements else: statements N Introduction to Internet of Things 19 Exception Handling in Python (contd..) Example: while True: try: EL n = input ("Please enter an integer: ") n = int (n) PT break except ValueError: N print "No valid integer! " print “It is an integer!" Introduction to Internet of Things 20 Example Code: to check number is prime or not x = int (input("Enter a number: ")) def prime (num): if num > 1: EL for i in range(2,num): if (num % i) == 0: print (num,"is not a prime number") PT print (i,“is a factor of”,num) break else: print(num,"is a prime number") prime (x) else: N print(num,"is not a prime number") Introduction to Internet of Things 21 EL PT N Introduction to Internet of Things 22 EL Introduction to Python Programming – Part II PT Dr. Sudip Misra Associate Professor N Department of Computer Science and Engineering IIT KHARAGPUR Email: [email protected] Website: http://cse.iitkgp.ac.in/~smisra/ Introduction to Internet of Things 1 File Read Write Operations Python allows you to read and write files No separate module or library required EL Three basic steps PT Open a file Read/Write Close the file N Introduction to Internet of Things 2 File Read Write Operations (contd..) Opening a File: Open() function is used to open a file, returns a file object open(file_name, mode) EL Mode: Four basic modes to open a file PT r: read mode w: write mode a: append mode N r+: both read and write mode Introduction to Internet of Things 3 File Read Write Operations (contd..) Read from a file: read(): Reads from a file EL file=open(‘data.txt’, ‘r’) file.read() PT Write to a file: Write(): Writes to a file N file=open(‘data.txt’, ‘w’) file.write(‘writing to the file’) Introduction to Internet of Things 4 File Read Write Operations (contd..) Closing a file: Close(): This is done to ensure that the file is free to use for other resources file.close() EL Using WITH to open a file: Good practice to handle exception while file read/write operation PT Ensures the file is closed after the operation is completed, even if an exception is encountered with open(“data.txt","w") as file: N file.write(“writing to the text file”) file.close() Introduction to Internet of Things 5 File Read Write Operations code + image with open("PythonProgram.txt","w") as file: file.write("Writing data") EL file.close() PT with open("PythonProgram.txt","r") as file: f=file.read() print('Reading from the file\n') print (f) file.close() N Introduction to Internet of Things 6 File Read Write Operations (contd..) Comma Separated Values Files CSV module supported for CSV files EL Read: Write: with open(file, "r") as csv_file: data = ["1,2,3,4,5,6,7,8,9".split(",")] file = "output.csv" PT reader = csv.reader(csv_file) print("Reading from the CSV File\n") with open(file, "w") as csv_file: for row in reader: writer = csv.writer(csv_file, delimiter=',') print(" ".join(row)) print("Writing CSV") csv_file.close() N for line in data: writer.writerow(line) csv_file.close() Introduction to Internet of Things 7 File Read Write Operations (contd..) EL PT N Introduction to Internet of Things 8 Image Read/Write Operations Python supports PIL library for image related operations Install PIL through PIP EL sudo pip install pillow PT PIL is supported till python version 2.7. Pillow supports the 3x version of python. N Introduction to Internet of Things 9 Image Read/Write Operations Reading Image in Python: PIL: Python Image Library is used to work with image files EL from PIL import Image PT Open an image file image=Image.open(image_name) Display the image image.show() N Introduction to Internet of Things 10 Image Read/Write Operations (contd..) Resize(): Resizes the image to the specified size image.resize(255,255) EL Rotate(): Rotates the image to the specified degrees, counter clockwise image.rotate(90) PT Format: Gives the format of the image Size: Gives a tuple with 2 values as width and height of the image, in pixels N Mode: Gives the band of the image, ‘L’ for grey scale, ‘RGB’ for true colour image print(image.format, image.size, image.mode) Introduction to Internet of Things 11 Image Read/Write Operations (contd..) Convert image to different mode: Any image can be converted from one mode to ‘L’ or ‘RGB’ EL mode conv_image=image.convert(‘L’) PT Conversion between modes other that ‘L’ and ‘RGB’ needs conversion into any of these 2 intermediate mode N Introduction to Internet of Things 12 Output Converting a sample image to Grey Scale EL PT N Introduction to Internet of Things 13 Output EL PT N Introduction to Internet of Things 14 Networking in Python Python provides network services for client server model. EL Socket support in the operating system allows to implement clients and servers for both connection-oriented and connectionless PT protocols. Python has libraries that provide higher-level access to specific N application-level network protocols. Introduction to Internet of Things 15 Networking in Python (contd..) Syntax for creating a socket: s = socket.socket (socket_family, socket_type, protocol=0) EL socket_family − AF_UNIX or AF_INET PT socket_type − SOCK_STREAM or SOCK_DGRAM protocol − default ‘0’. N Introduction to Internet of Things 16 Example - simple server The socket waits until a client connects to the port, and then returns a connection object that represents the connection to that client. import socket EL import sys # Create a TCP/IP socket PT sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Bind the socket to the port N server_address = ('10.14.88.82', 2017) print >>sys.stderr, 'starting up on %s port %s' % server_address sock.bind(server_address) Introduction to Internet of Things 17 Example - simple server (contd..) # Listen for incoming connections sock.listen(1) EL connection, client_address = sock.accept() #Receive command PT data = connection.recv(1024) print(data) sock.close() N Introduction to Internet of Things 18 Example - simple client import socket import sys # Create a TCP/IP socket EL client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #Connect to Listener socket PT client_socket.connect(("10.14.88.82", 2017)) print>>sys.stderr,'Connection Established' #Send command N client_socket.send('Message to the server') print('Data sent successfully') Introduction to Internet of Things 19 Code Snapshot EL PT N Introduction to Internet of Things 20 Output EL PT N Introduction to Internet of Things 21 EL PT N Introduction to Internet of Things 22 EL Introduction to Raspberry Pi – Part I PT Dr. Sudip Misra Associate Professor N Department of Computer Science and Engineering IIT KHARAGPUR Email: [email protected] Website: http://cse.iitkgp.ac.in/~smisra/ 1 Introduction to Internet of Things What is Raspberry Pi? Computer in your palm. EL Single-board computer. Low cost. PT Easy to access. N 2 Introduction to Internet of Things Specifications Key features Raspberry pi 3 model B Raspberry pi 2 Raspberry Pi zero model B RAM 1GB SDRAM 1GB SDRAM 512 MB SDRAM EL CPU Quad cortex [email protected] Quad cortex ARM 11@ 1GHz A53@900MHz PT GPU 400 MHz video core IV 250 MHz video core IV 250 MHz video core IV Ethernet 10/100 10/100 None Wireless 802.11/Bluetooth 4.0 None None Video output GPIO 40 N HDMI/Composite HDMI/Composite 40 HDMI/Composite 40 3 Introduction to Internet of Things Basic Architecture RAM EL I/O CPU/GPU USB HUB PT N ETHERNET USB 4 Introduction to Internet of Things Raspberry Pi EL PT N Introduction to Internet of Things 5 Start up raspberry pi EL PT N Introduction to Internet of Things Raspberry Pi GPIO Act as both digital output and digital input. EL Output: turn a GPIO pin high or low. PT Input: detect a GPIO pin high or low. N Introduction to Internet of Things 7 Raspberry Pi pin configuration EL PT N Source: Raspberry Pi PCB Pin Overview, Wikimedia Commons (Online) Source: Raspberry Pi GPIO, Wikimedia Commons (Online) Introduction to Internet of Things 8 Basic Set up for Raspberry Pi HDMI cable. Monitor. EL Key board. Mouse. 5volt power adapter for raspberry pi. PT LAN cable. Min- 2GB micro sd card N 9 Introduction to Internet of Things Basic Set up for Raspberry Pi EL PT N Introduction to Internet of Things10 Operating System Official Supported OS : Raspbian EL NOOBS Some of the third party OS : PT UBUNTU mate Snappy Ubuntu core Windows 10 core Pinet Risc OS Source: Downloads, Raspberry Pi Foundation N 11 Introduction to Internet of Things Raspberry Pi Setup Download Raspbian: Download latest Raspbian image from raspberry pi official site: EL https://www.raspberrypi.org/downloads/ PT Unzip the file and end up with an.img file. N 12 Introduction to Internet of Things Raspberry Pi OS Setup Write Raspbian in SD card : Install “Win32 Disk Imager” software in windows machine. Run Win32 Disk Imager EL Plug SD card into your PC Select the “Device” PT Browse the “Image File”(Raspbian image) Write N Introduction to Internet of Things13 Raspberry Pi OS Setup EL PT N Introduction to Internet of Things14 Basic Initial Configuration Enable SSH Step1 : Open command prompt and type sudo raspi-config and press enter. EL Step2: Navigate to SSH in the Advance option. PT Step3: Enable SSH N 15 Introduction to Internet of Things Basic Initial Configuration EL PT N Introduction to Internet of Things16 Basic Initial Configuration contd. Expand file system : EL Step 1: Open command prompt and type sudo raspi-config and press enter. Step 2: Navigate to Expand Filesystem PT Step 3: Press enter to expand it. N 17 Introduction to Internet of Things Basic Initial Configuration contd. EL PT N Introduction to Internet of Things18 Programming Default installed : Python EL C C++ PT Java Scratch Ruby N Note : Any language that will compile for ARMv6 can be used with raspberry pi. Source: Programming languages for Raspberry Pi, eProseed, Lonneke Dikmans, August 07, 2015 19 Introduction to Internet of Things Popular Applications Media streamer Home automation EL Controlling BOT VPN Light weight web server for IOT PT Tablet computer N 20 Introduction to Internet of Things Thank You!! EL PT N 21 Introduction to Internet of Things EL Introduction to Raspberry Pi – Part II PT Dr. Sudip Misra Associate Professor N Department of Computer Science and Engineering IIT KHARAGPUR Email: [email protected] Website: http://cse.iitkgp.ac.in/~smisra/ Introduction to Internet of Things 1 Topics Covered Using GPIO pins Taking pictures using PiCam EL PT N Introduction to Internet of Things 2 Blinking LED Requirement: Raspberry pi EL LED PT 100 ohm resistor Bread board Jumper cables N Introduction to Internet of Things 3 Blinking LED (contd..) Installing GPIO library: Open terminal EL Enter the command “sudo apt-get install python-dev” to install python development Enter the command “sudo apt-get install python-rpi.gpio” to install GPIO library. PT N Introduction to Internet of Things 4 Blinking LED (contd..) Connection: EL Connect the negative terminal of the LED to the ground pin of Pi Connect the positive terminal of PT the LED to the output pin of Pi N Introduction to Internet of Things 5 Blinking LED (contd..) Basic python coding: EL Open terminal enter the command sudo nano filename.py PT This will open the nano editor where you can write your code Ctrl+O : Writes the code to the file N Ctrl+X : Exits the editor Introduction to Internet of Things 6 Blinking LED (contd..) Code: import RPi.GPIO as GPIO #GPIO library import time EL GPIO.setmode(GPIO.BOARD) # Set the type of board for pin numbering GPIO.setup(11, GPIO.OUT) # Set GPIO pin 11as output pin for i in range (0,5): PT GPIO.output(11,True) # Turn on GPIO pin 11 time.sleep(1) GPIO.output(11,False) time.sleep(2) GPIO.output(11,True) GPIO.cleanup() N Introduction to Internet of Things 7 Blinking LED (contd..) EL PT N Introduction to Internet of Things 8 Blinking LED (contd..) The LED blinks in a loop with delay of 1 and 2 seconds. EL PT N Introduction to Internet of Things 9 EL Capture Image using Raspberry Pi PT N Introduction to Internet of Things 10 Requirement Raspberry Pi Raspberry Pi Camera EL PT N Introduction to Internet of Things 11 Raspberry Pi Camera Raspberry Pi specific camera module EL Dedicated CSI slot in Pi for connection PT The cable slot is placed between Ethernet port and HDMI port N Introduction to Internet of Things 12 Connection Boot the Pi once the camera is connected to Pi EL PT N Introduction to Internet of Things 13 Configuring Pi for Camera In the terminal run the command “sudo raspi-config” and press enter. EL Navigate to “Interfacing Options” option and press enter. Navigate to “Camera” option. PT Enable the camera. Reboot Raspberry pi. N Introduction to Internet of Things 14 Configuring Pi for Camera (contd..) EL PT N Introduction to Internet of Things 15 Capture Image Open terminal and enter the command- EL raspistill -o image.jpg PT This will store the image as ‘image.jpg’ N Introduction to Internet of Things 16 Capture Image (contd..) PiCam can also be processed using Python camera module python-picamera sudo apt-get install python-picamera EL PT Python Code: Import picamera camera = picamera.PiCamera() camera.capture('image.jpg') N Source: PYTHON PICAMERA, Raspberry Pi Foundation Introduction to Internet of Things 17 Capture Image (contd..) EL PT N Introduction to Internet of Things 18 EL PT N Introduction to Internet of Things 19 EL Implementation of IoT with Raspberry Pi: Part 1 PT Dr. Sudip Misra Associate Professor N Department of Computer Science and Engineering IIT KHARAGPUR Email: [email protected] Website: http://cse.iitkgp.ac.in/~smisra/ Introduction to Internet of Things 1 IOT Internet Of Things Creating an interactive environment EL Network of devices connected together PT N Introduction to Internet of Things 2 Sensor Electronic element Converts physical quantity into electrical signals EL Can be analog or digital PT N Introduction to Internet of Things 3 Actuator Mechanical/Electro-mechanical device Converts energy into motion EL Mainly used to provide controlled motion to other components PT N Introduction to Internet of Things 4 System Overview Sensor and actuator interfaced with Raspberry Pi Read data from the sensor EL Control the actuator according to the reading from the sensor PT Connect the actuator to a device N Introduction to Internet of Things 5 System Overview (contd..) Requirements DHT Sensor EL 4.7K ohm resistor Relay PT Jumper wires Raspberry Pi Mini fan N Introduction to Internet of Things 6 DHT Sensor Digital Humidity and Temperature Sensor (DHT) EL PIN 1, 2, 3, 4 (from left to right) PIN 1- 3.3V-5V Power PT supply PIN 2- Data PIN 3- Null N PIN 4- Ground Introduction to Internet of Things 7 Relay Mechanical/electromechanical switch EL 3 output terminals (left to right) PT NO (normal open): Common N NC (normal close) Introduction to Internet of Things 8 Temperature Dependent Auto Cooling System Sensor interface with Raspberry Pi EL Connect pin 1 of DHT sensor to the 3.3V pin of Raspberry Pi Connect pin 2 of DHT sensor to any PT input pins of Raspberry Pi, here we have used pin 11 Connect pin 4 of DHT sensor to the N ground pin of the Raspberry Pi Introduction to Internet of Things 9 Temperature Dependent Auto Cooling System (contd..) Relay interface with Raspberry Pi EL Connect the VCC pin of relay to the 5V supply pin of Raspberry Pi PT Connect the GND (ground) pin of relay to the ground pin of Raspberry Pi N Connect the input/signal pin of Relay to the assigned output pin of Raspberry Pi (Here we have used pin 7) Introduction to Internet of Things 10 Temperature Dependent Auto Cooling System (contd..) Adafruit provides a library to work with the DHT22 sensor EL Install the library in your Pi- Get the clone from GIT git clone https://github.com/adafruit/Adafruit_Python_DHT.g... PT Go to folder Adafruit_Python_DHT cd Adafruit_Python_DHT Install the library sudo python setup.py install N Source: ADAFRUIT DHTXX SENSORS, Lady Ada, 2012-07-29 Introduction to Internet of Things 11 Program: DHT22 with Pi import RPi.GPIO as GPIO from time import sleep import Adafruit_DHT #importing the Adafruit library EL GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) PT sensor = Adafruit_DHT.AM2302 # create an instance of the sensor type print (‘Getting data from the sensor’) #humidity and temperature are 2 variables that store the values received from the sensor N humidity, temperature = Adafruit_DHT.read_retry(sensor,17) print ('Temp={0:0.1f}*C humidity={1:0.1f}%'.format(temperature, humidity)) Introduction to Internet of Things 12 Program: DHT22 interfaced with Raspberry Pi Code Output EL PT N Introduction to Internet of Things 13 Connection: Relay Connect the relay pins with the Raspberry Pi as mentioned in previous slides Set the GPIO pin connected with the relay’s input pin as output in the sketch EL GPIO.setup(13,GPIO.OUT) Set the relay pin high when the temperature is greater than 30 PT if temperature > 30: GPIO.output(13,0) # Relay is active low print(‘Relay is on') sleep(5) N GPIO.output(13,1) # Relay is turned off after delay of 5 seconds Introduction to Internet of Things 14 Connection: Relay (contd..) EL PT N Introduction to Internet of Things 15 Connection: Fan Connect the Li-po battery in series with the fan NO terminal of the relay -> positive terminal of the Fan. EL Common terminal of the relay -> Positive terminal of the battery PT Negative terminal of the battery -> Negative terminal of the fan. Run the existing code. The fan should operate when the N surrounding temperature is greater than the threshold value in the sketch Introduction to Internet of Things 16 Connection: Fan (contd..) EL PT N Introduction to Internet of Things 17 Result The fan is switched on whenever the temperature is above the threshold value set in the code. EL Notice the relay indicator turned on. PT N Introduction to Internet of Things 18 EL PT N Introduction to Internet of Things 19