Python Cơ Bản Cho IoT
Cơ bản10/1/2024

Python Cơ Bản Cho IoT

Học Python cơ bản dành cho IoT, từ biến, kiểu dữ liệu, điều kiện, vòng lặp, hàm, xử lý file đến cách ứng dụng Python để đọc dữ liệu cảm biến, lưu log, gửi dữ liệu lên server và tự động hóa thiết bị.

PythonProgrammingSerialJSONIoT
891 lượt thích5.7k người đã làm1 giờ 30 phút7 bước
← Quay lại dự án
Hướng dẫn chi tiết

Phần 3: Làm việc với hàm và xử lý file

1. Khái niệm về hàm trong Python, 2. Cách định nghĩa và gọi hàm, 3. Tham số và giá trị trả về, 4. Xử lý file (mở, đọc, ghi file), 5. Ví dụ thực hành: Đọc và ghi dữ liệu cảm biến vào file, 6. Giới thiệu về JSON và cách làm việc với dữ liệu JSON.

Cập nhật 01/06/2026

Phần 3: Làm việc với hàm và xử lý file

1. Khái niệm về hàm trong Python

Hàm trong Python là một đoạn mã được định nghĩa trước để thực hiện một nhiệm vụ cụ thể. Hàm giúp tổ chức mã, giảm thiểu sự lặp lại và cải thiện khả năng bảo trì của chương trình. Hàm có thể nhận đầu vào, thực hiện các phép toán và trả về kết quả.

2. Cách định nghĩa và gọi hàm

Để định nghĩa một hàm trong Python, chúng ta sử dụng từ khóa def, theo sau là tên hàm và các tham số (nếu có) trong dấu ngoặc. Cú pháp như sau:

def ten_ham(tham_so1, tham_so2):
    # Thực hiện một số thao tác
    return ket_qua

Ví dụ, chúng ta có thể định nghĩa một hàm tính tổng của hai số:

def tinh_tong(a, b):
    return a + b

# Gọi hàm
tong = tinh_tong(5, 10)
print(tong)  # Kết quả: 15

3. Tham số và giá trị trả về

Hàm có thể nhận nhiều tham số, và chúng ta cũng có thể định nghĩa tham số mặc định. Giá trị trả về của hàm được sử dụng bằng từ khóa return. Nếu không có return, hàm sẽ trả về None.

def chao_mung(ten="Khách"):
    return f"Chào mừng {ten} đến với IoT!"

# Gọi hàm với tham số mặc định
print(chao_mung())  # Kết quả: Chào mừng Khách đến với IoT!
# Gọi hàm với tham số khác
print(chao_mung("Nam"))  # Kết quả: Chào mừng Nam đến với IoT!

4. Xử lý file (mở, đọc, ghi file)

Python cung cấp các phương thức đơn giản để làm việc với file. Chúng ta có thể mở file bằng hàm open(), sau đó thực hiện các thao tác đọc hoặc ghi. Để đảm bảo file được đóng đúng cách, chúng ta nên sử dụng khối with.

# Mở và ghi vào file
with open('du_lieu.txt', 'w') as f:
    f.write("Dữ liệu cảm biến: 25.5°C\n")

# Mở và đọc từ file
with open('du_lieu.txt', 'r') as f:
    noi_dung = f.read()
    print(noi_dung)  # Kết quả: Dữ liệu cảm biến: 25.5°C

5. Ví dụ thực hành: Đọc và ghi dữ liệu cảm biến vào file

Giả sử chúng ta có một cảm biến nhiệt độ và chúng ta muốn ghi lại dữ liệu vào file để phân tích sau này. Dưới đây là ví dụ đơn giản:

import random
import time

def ghi_du_lieu_cambien(ten_file):
    with open(ten_file, 'a') as f:  # 'a' để ghi thêm vào file
        nhiet_do = random.uniform(20.0, 30.0)  # Giả lập đọc dữ liệu cảm biến
        f.write(f"{time.ctime()}: Nhiệt độ: {nhiet_do:.2f}°C\n")

# Ghi dữ liệu vào file mỗi 5 giây
for _ in range(5):
    ghi_du_lieu_cambien('du_lieu_cambien.txt')
    time.sleep(5)

Trong ví dụ trên, chúng ta đã tạo một hàm ghi_du_lieu_cambien để ghi dữ liệu nhiệt độ vào file. Dữ liệu được ghi theo định dạng thời gian và nhiệt độ. Chúng ta sử dụng vòng lặp để ghi dữ liệu mỗi 5 giây.

6. Giới thiệu về JSON và cách làm việc với dữ liệu JSON

JSON (JavaScript Object Notation) là định dạng dữ liệu nhẹ, dễ đọc và dễ ghi. Python cung cấp thư viện json để làm việc với định dạng này. Chúng ta có thể chuyển đổi giữa các đối tượng Python và chuỗi JSON.

import json

# Dữ liệu mẫu
du_lieu = {
    "thong_so": {
        "nhiet_do": 25.5,
        "do_am": 60
    },
    "thoi_gian": time.ctime()
}

# Chuyển đổi đối tượng Python thành chuỗi JSON
du_lieu_json = json.dumps(du_lieu)
print(du_lieu_json)

# Chuyển đổi chuỗi JSON thành đối tượng Python
du_lieu_phan_tich = json.loads(du_lieu_json)
print(du_lieu_phan_tich["thong_so"]["nhiet_do"])  # Kết quả: 25.5

Trong ví dụ trên, chúng ta đã tạo một từ điển Python và chuyển đổi nó thành chuỗi JSON bằng json.dumps(). Sau đó, chúng ta chuyển đổi chuỗi JSON trở lại thành đối tượng Python bằng json.loads().

Lưu ý: Khi làm việc với file và dữ liệu JSON, hãy luôn kiểm tra lỗi để đảm bảo rằng chương trình của bạn không bị lỗi khi gặp sự cố trong quá trình đọc hoặc ghi dữ liệu.