Berkomunikasi antara Python dan Arduino UNO Over Serial memungkinkan Anda untuk mengontrol perangkat keras menggunakan skrip Python atau mengirim data dari Arduino ke Python untuk diproses. Tutorial ini akan memandu Anda melalui pengaturan dan menggunakan Python untuk berkomunikasi dengan Arduino Uno melalui koneksi serial.
Apa yang Anda Butuhkan
- Arduino Uno dengan kabel USB
- Python diinstal di komputer Anda (Versi 3.x disarankan)
- IDE Arduino diinstal
- Perpustakaan untuk Komunikasi Serial Python (mis.,
pyserial
)
Langkah 1: Instal perangkat lunak yang diperlukan
1. Pasang Python
Jika Anda tidak menginstal Python, unduh dari python.org dan ikuti instruksi instalasi.
2. Pasang IDE ARDUINO
Unduh dan instal IDE Arduino dari Arduino.cc.
3. Instal Perpustakaan Pyserial
Pyserial diperlukan untuk Python untuk berkomunikasi melalui port serial. Instal menggunakan perintah berikut:
pip install pyserial
Langkah 2: Tulis dan unggah kode Arduino
Arduino akan mengirim dan menerima data melalui port serial. Di bawah ini adalah contoh sketsa:
Kode Arduino
void setup() {
Serial.begin(9600); // Start serial communication at 9600 baud
while (!Serial); // Wait for the serial port to connect
Serial.println("Arduino is ready!");
}
void loop() {
// Check if data is available on the serial port
if (Serial.available()) {
String data = Serial.readString(); // Read the incoming data
Serial.print("Received: ");
Serial.println(data); // Echo the data back
// Optional: Respond based on the received data
if (data.trim() == "LED_ON") {
Serial.println("Turning LED on");
} else if (data.trim() == "LED_OFF") {
Serial.println("Turning LED off");
}
}
}
- Buka Ide Arduino.
- Tempel kode di atas ke editor.
- Pilih yang benar Papan Dan Pelabuhan di bawah Peralatan menu.
- Klik Mengunggah Untuk mengunggah kode ke Arduino UNO.
Langkah 3: Tulis kode Python
Di bawah ini adalah contoh skrip Python untuk berkomunikasi dengan Arduino:
Kode Python
import serial
import time
# Configure the serial connection
arduino = serial.Serial(port='COM3', baudrate=9600, timeout=1) # Replace 'COM3' with your Arduino's port
def send_data(data):
print(f"Sending: {data}")
arduino.write(f"{data}\n".encode()) # Send data to Arduino
time.sleep(0.1)
response = arduino.readline().decode().strip() # Read response from Arduino
if response:
print(f"Arduino responded: {response}")
if __name__ == "__main__":
time.sleep(2) # Wait for Arduino to initialize
print("Connected to Arduino")
# Example: Send commands to Arduino
send_data("LED_ON")
time.sleep(2)
send_data("LED_OFF")
# Close the serial connection
arduino.close()
Langkah 4: Uji pengaturan
- Hubungkan Arduino ke komputer Anda melalui USB.
- Temukan port Arduino:
- Di Windows: Periksa port di Device Manager (mis., COM3).
- Pada macOS/linux: gunakan
ls /dev/tty.*
Perintah untuk menemukan port yang benar (mis.,/dev/ttyUSB0
).
- Perbarui
port
Nilai dalam skrip Python agar sesuai dengan port Arduino Anda. - Jalankan skrip Python menggunakan perintah:
python your_script_name.py
- Amati komunikasi antara Python dan Arduino di terminal dan monitor serial.
Aplikasi Komunikasi Python-Oduino
- Mengotomatiskan tugas perangkat keras (mis., Menghidupkan LED, mengendalikan motor)
- Data sensor logging ke file atau database
- Membuat GUI Kustom untuk Proyek Arduino Menggunakan Perpustakaan Python Seperti Tkinter atau Pyqt
- Mengintegrasikan Arduino dengan platform IoT
Pemecahan masalah
-
Tidak ada koneksi ke Arduino:
- Pastikan port yang benar ditentukan dalam skrip Python.
- Pastikan Baud Rate cocok dengan sketsa Arduino.
-
Tidak ada tanggapan dari Arduino:
- Tambahkan penundaan setelah membuka koneksi serial (
time.sleep(2)
). - Pastikan Arduino tidak digunakan oleh program lain (mis., Monitor serial di IDE Arduino).
- Tambahkan penundaan setelah membuka koneksi serial (
-
UnicodedecodeError:
- Periksa pengkodean data yang dikirim/diterima. Menggunakan
.decode(errors='ignore')
jika perlu.
- Periksa pengkodean data yang dikirim/diterima. Menggunakan
Kesimpulan
Anda telah berhasil mengatur komunikasi antara Python dan Arduino Uno over Serial. Ini membuka kemungkinan tanpa akhir untuk mengintegrasikan perpustakaan Python yang kuat dengan kemampuan perangkat keras Arduino. Eksperimen lebih lanjut dengan menambahkan sensor, motor, atau menciptakan GUI yang berbasis di Python untuk proyek Anda!