1. Smart Home Control
1. Project Overview
The smart home control system can control various devices in the home via the network, such as smart lights, smart plugs, and smart thermostats. We will use Python to implement this system, covering data preparation, device control, user interface design, and practical applications.
2. Data Preparation and Device Connection
First, ensure that your smart home devices can be controlled over the network. Common devices include:
-
Smart Light: Controlled via HTTP API
-
Smart Plug: Controlled via MQTT protocol
-
Smart Thermostat: Controlled via Zigbee protocol
Install the necessary Python libraries:
pip install requests paho-mqtt zigpy
3. Control Logic Design
Write control functions for each device so that these functions can be called when needed to control the devices.
import requests
import paho.mqtt.client as mqtt
from zigpy import Zigbee
# Configure device IP and port
LIGHT_API_URL = "http://192.168.1.10:5000/light"
PLUG_MQTT_BROKER = "192.168.1.20"
THERMOSTAT_ADDRESS = "00:0d:6f:00:00:a9:6b:7e"
# Create Zigbee instance
zigbee = Zigbee()
thermostat = zigbee.get_device(THERMOSTAT_ADDRESS)
# Function to control smart light
def control_light(action):
if action in ['on', 'off']:
response = requests.post(LIGHT_API_URL, data={'action': action})
return response.status_code == 200
return False
# Function to control smart plug
def control_plug(action):
if action in ['on', 'off']:
client = mqtt.Client()
client.connect(PLUG_MQTT_BROKER)
client.publish("home/plug1", action)
client.disconnect()
return True
return False
# Function to set thermostat temperature
def set_thermostat_temperature(temperature):
try:
thermostat.set_temperature(temperature)
return True
except Exception as e:
print(f"Error setting thermostat temperature: {e}")
return False
4. User Interface Design
Design a simple user interface that allows users to enter commands via the command line to control home devices.
table = dynamodb.create_table(
def main():
while True:
print("Please choose a device to control:")
print("1. Smart Light")
print("2. Smart Plug")
print("3. Smart Thermostat")
print("4. Exit")
choice = input("Enter your choice:")
if choice == '1':
action = input("Enter action (on/off):")
if control_light(action):
print("Smart light control successful")
else:
print("Smart light control failed")
elif choice == '2':
action = input("Enter action (on/off):")
if control_plug(action):
print("Smart plug control successful")
else:
print("Smart plug control failed")
elif choice == '3':
temperature = float(input("Enter temperature:"))
if set_thermostat_temperature(temperature):
print("Smart thermostat temperature set successfully")
else:
print("Smart thermostat temperature setting failed")
elif choice == '4':
print("Exiting system")
break
else:
print("Invalid choice, please enter again")
if __name__ == "__main__":
main()
5. Practical Application and Testing
After completing the system design, perform tests to ensure all functions operate correctly. The specific testing steps are as follows:
-
Ensure all devices are correctly connected to the network. -
Run the above code and enter commands via the command line to control the devices. -
Observe whether the devices act as expected.
2. Office Automation
1. Project Overview
Office automation can help us handle tedious and repetitive tasks in daily work, such as data entry, document organization, and report generation. We will use Python’s openpyxl and sqlalchemy libraries to automate the generation of sales reports.
2. Environment Preparation
Install the necessary Python libraries:
pip install openpyxl sqlalchemy
3. Code Implementation
Assuming we have a sales data table stored in a database, we will extract data from the database, summarize and calculate, and then generate an Excel report.
import pandas as pd
import openpyxl
from sqlalchemy import create_engine
# Connect to the database
engine = create_engine('mysql+pymysql://username:password@host:port/dbname')
# Query sales data from the database
query = "SELECT * FROM sales_data"
data = pd.read_sql_query(query, engine)
# Data preprocessing: Filter valid sales records, remove duplicates and missing values
data = data.drop_duplicates()
data = data.dropna()
# Calculate monthly sales
data['Purchase Time'] = pd.to_datetime(data['Purchase Time'])
data['Month'] = data['Purchase Time'].dt.to_period('M')
monthly_sales = data.groupby('Month')['Sales Amount'].sum()
# Create a new Excel workbook
wb = openpyxl.Workbook()
ws = wb.active
# Write summary data to Excel worksheet
ws['A1'] = 'Month'
ws['B1'] = 'Sales Amount'
for i, (month, sales) in enumerate(monthly_sales.items(), start=2):
ws[f'A{i}'] = str(month)
ws[f'B{i}'] = sales
# Save the workbook
bb.save("sales_report.xlsx")
4. Practical Application and Testing
-
Ensure the database connection information is correct. -
Run the above code to generate the sales report. -
Open the generated Excel file and check if the data is correct.
1. Project Overview
Data analysis and visualization can help us extract valuable information from massive data and present it in an intuitive way. We will use Python’s pandas and matplotlib libraries to analyze and visualize sales data.
2. Environment Preparation
Install the necessary Python libraries:
pip install pandas matplotlib
3. Code Implementation
import pandas as pd
import matplotlib.pyplot as plt
# Read sales data
data = pd.read_csv("sales_data.csv")
# Data preprocessing: Filter valid sales records, remove duplicates and missing values
data = data.drop_duplicates()
data = data.dropna()
# Calculate monthly sales
data['Purchase Time'] = pd.to_datetime(data['Purchase Time'])
data['Month'] = data['Purchase Time'].dt.to_period('M')
monthly_sales = data.groupby('Month')['Sales Amount'].sum()
# Plot sales trend
plt.figure(figsize=(10, 6))
plt.plot(monthly_sales.index.astype(str), monthly_sales.values, marker='o')
plt.title('Monthly Sales Trend')
plt.xlabel('Month')
plt.ylabel('Sales Amount (Yuan)')
plt.grid(True)
plt.show()
4. Practical Application and Testing
-
Ensure the CSV file path is correct. -
Run the above code to generate the sales trend chart. -
Observe the chart and check if the data is displayed correctly.
4. Conclusion
Through the three practical cases mentioned above, we detailed Python’s applications in smart home control, office automation, and data analysis and visualization. Each case is explained in detail from project overview, environment preparation, code implementation to practical application and testing, helping beginners gradually master Python’s practical applications. We hope these cases provide valuable references for you and help you make greater progress in learning and applying Python!