Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

1.

Start Raspberry Pi and try various Linix 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.

ls: List files and directories in the current directory.

ls

cd: Change directory.

cd /path/to/directory

touch: Create an empty file.

touch filename.txt

mv: Move or rename files and directories.

mv oldfile.txt newfile.txt

rm: Remove/delete files or directories.

rm filename.txt

man: Access the manual pages for a command.

man ls

mkdir: Create a new directory.

mkdir new_directory

rmdir: Remove an empty directory.

rmdir empty_directory

tar: Archive files.

tar -cvf archive.tar file1 file2

gzip: Compress files.


gzip filename.txt

cat: Display the contents of a file.

cat filename.txt

more and less: Display contents of a file one screen at a time.

more filename.txt

ps: Display information about active processes.

ps aux

sudo: Execute a command with superuser privileges.

sudo apt-get update

cron: Schedule tasks to run at specific times.

crontab -e

chown: Change file owner.

chown user:group filename.txt

chgrp: Change file group.

chgrp newgroup filename.txt

ping: Test network connectivity.

ping google.com

2.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.
a) Read your name and print a Hello message with the name:

name = input("Enter your name: ")


print("Hello, " + name + "!")

b) Read two numbers and print their sum, difference, product, and division:

num1 = float(input("Enter the first number: "))


num2 = float(input("Enter the second number: "))

sum_result = num1 + num2


difference_result = num1 - num2
product_result = num1 * num2
division_result = num1 / num2

print(f"Sum: {sum_result}")
print(f"Difference: {difference_result}")
print(f"Product: {product_result}")
print(f"Division: {division_result}")

c) Word and character count of a given string:

input_string = input("Enter a string: ")

word_count = len(input_string.split())
char_count = len(input_string)

print(f"Word count: {word_count}")


print(f"Character count: {char_count}")

d) Area of a given shape (rectangle, triangle, and circle) reading shape and appropriate values
from standard input:

shape = input("Enter the shape (rectangle, triangle, or circle): ")

if shape == "rectangle":
length = float(input("Enter the length: "))
width = float(input("Enter the width: "))
area = length * width
elif shape == "triangle":
base = float(input("Enter the base: "))
height = float(input("Enter the height: "))
area = 0.5 * base * height
elif shape == "circle":
radius = float(input("Enter the radius: "))
area = 3.14 * radius * radius
else:
print("Invalid shape entered.")

print(f"Area of the {shape}: {area}")

3.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.
b) Handle Divided by Zero Exception.
c) Print current time for 10 times with an interval of 10 seconds.
d) Read a file line by line and print the word count of each line.

a) Print a name 'n' times, where name and n are read from standard input, using for and while
loops:

name = input("Enter a name: ")


n = int(input("Enter the number of times to print: "))

print("Using for loop:")


for _ in range(n):
print(name)

print("Using while loop:")


counter = 0
while counter < n:
print(name)
counter += 1

b) Handle Divided by Zero Exception:

try:
num1 = float(input("Enter the numerator: "))
num2 = float(input("Enter the denominator: "))

result = num1 / num2


print(f"Result: {result}")

except ZeroDivisionError:
print("Error: Cannot divide by zero.")
except ValueError:
print("Error: Invalid input. Please enter numeric values.")
c) Print the current time for 10 times with an interval of 10 seconds:

import time

for _ in range(10):
current_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print(f"Current time: {current_time}")
time.sleep(10)

d) Read a file line by line and print the word count of each line:

filename = input("Enter the file name: ")

try:
with open(filename, 'r') as file:
for line_number, line in enumerate(file, start=1):
word_count = len(line.split())
print(f"Line {line_number}: Word count - {word_count}")
except FileNotFoundError:
print(f"Error: File '{filename}' not found.")
except Exception as e:
print(f"Error: {e}")

4.a)Light an LED through Python program


b) Get input from two switches and switch on corresponding LEDs
c) Flash an LED at a given on time and off time cycle, where the two times
are taken from a
file.

a) Light an LED through a Python program:

import RPi.GPIO as GPIO


import time

led_pin = 17
GPIO.setmode(GPIO.BCM)
GPIO.setup(led_pin, GPIO.OUT)

GPIO.output(led_pin, GPIO.HIGH)
time.sleep(2)

GPIO.output(led_pin, GPIO.LOW)

GPIO.cleanup()
b)Get input from two switches and switch on corresponding LEDs:

import RPi.GPIO as GPIO


import time

switch_pin1 = 17
switch_pin2 = 18
led_pin1 = 22
led_pin2 = 23

GPIO.setmode(GPIO.BCM)
GPIO.setup(switch_pin1, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(switch_pin2, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(led_pin1, GPIO.OUT)
GPIO.setup(led_pin2, GPIO.OUT)

try:
while True:
if GPIO.input(switch_pin1) == GPIO.LOW:
GPIO.output(led_pin1, GPIO.HIGH)
else:
GPIO.output(led_pin1, GPIO.LOW)

if GPIO.input(switch_pin2) == GPIO.LOW:
GPIO.output(led_pin2, GPIO.HIGH)
else:
GPIO.output(led_pin2, GPIO.LOW)

except KeyboardInterrupt:
pass
finally:
GPIO.cleanup()

C)Flash an LED at a given on-time and off-time cycle, where the two times are taken from a file:

import RPi.GPIO as GPIO


import time

led_pin = 17
GPIO.setmode(GPIO.BCM)
GPIO.setup(led_pin, GPIO.OUT)

try:
with open('flash_times.txt', 'r') as file:
on_time = float(file.readline().strip())
off_time = float(file.readline().strip())

while True:
GPIO.output(led_pin, GPIO.HIGH)
time.sleep(on_time)
GPIO.output(led_pin, GPIO.LOW)
time.sleep(off_time)

except KeyboardInterrupt:
pass
finally:
GPIO.cleanup()

5.) Flash an LED based on cron output (acts as an alarm)


b) Switch on a relay at a given time using cron, where the relay's contact
terminals are
connected to a load.
c) Get the status of a bulb at a remote place (on the LAN) through web.

a) Flashing an LED based on cron output (alarm):

import RPi.GPIO as GPIO


import time

LED_PIN = 17 # Replace with your GPIO pin

GPIO.setmode(GPIO.BCM)
GPIO.setup(LED_PIN, GPIO.OUT)

def flash_led():
while True:
GPIO.output(LED_PIN, GPIO.HIGH) # Turn on LED
time.sleep(1) # Adjust for desired flash duration
GPIO.output(LED_PIN, GPIO.LOW) # Turn off LED
time.sleep(1) # Adjust for desired interval

if __name__ == '__main__':
try:
flash_led()
except KeyboardInterrupt:
GPIO.cleanup()
0 8 * * * python /path/to/your/script.py

b) Switching on a relay using cron:

import RPi.GPIO as GPIO

RELAY_PIN = 27 # Replace with your GPIO pin

GPIO.setmode(GPIO.BCM)
GPIO.setup(RELAY_PIN, GPIO.OUT)

def switch_on_relay():
GPIO.output(RELAY_PIN, GPIO.HIGH) # Activate relay

0 12 * * * python /path/to/your/relay_script.py

c) Getting bulb status through web:


1)Example using Node.js:

const express = require('express');


const app = express();

const bulbStatus = "on"; // Replace with actual status logic

app.get('/bulb-status', (req, res) => {


res.send(bulbStatus);
});

app.listen(3000, () => {
console.log('Server listening on port 3000');
});

2)Accessing Status from Web Browser:

Open a web browser and enter the remote device's IP address and port, followed by the route:
http://192.168.1.100:3000/bulb-status
The server will respond with the bulb's status.

You might also like