9 สิงหาคม 2558

Published 8/09/2558 by with 0 comment

เขียนโปรแกรมปิดเครื่องอัตโนมัติเมื่อแบตเตอรี่ต่ำกว่าที่กำหนดในภาษาไพทอน

หลังจากบทความ เข้าถึงการทำงานฮาร์ดแวร์ข้ามแพลตฟอร์มด้วย plyer ในภาษาไพทอน ผมได้แนะนำโมดูล plyer ไปแล้ว บทความนี้เราจะมาเขียนโปรแกรมปิดเครื่องอัตโนมัติ เมื่อแบตเตอรี่ต่ำกว่าที่กำหนดกันครับ

ใช้ความรู้จากบทความ

สำหรับผู้ใช้ลินุกซ์ ให้รันโค้ดในสิทธิ์ root ครับ และแก้ไขคำสั่งปิดเครื่องตามบทความ สั่งปิดหรือรีบูตคอมด้วย Python เนื่องจากบทความนี้ผมใช้คำสั่งปิดเครื่องของ Windows ครับ

ผมกำหนดขั้นต่ำแบตเตอรี่ไว้ที่ 10%

โค้ด make1

[python]
import os,time
from plyer import battery
a = 0
while a==0:
if battery.status['percentage'] <= 10:
os.system("shutdown /s /t 60") # นับถอยหลังปิดเครื่อง 60 วินาทีใน Windows ถ้าผู้อ่านใช้ระบบปฎิบัติการอื่น อย่าลืมเปลี่ยนครับ
a += 1
else:
print("Now , Battery",battery.status['percentage']) # แสดงสถานะแบตเตอรี่
time.sleep(10) # หน่วงเวลาโปรแกรม 10 วินาที
[/python]

หลักการ

โปรแกรมจะเช็คเงื่อนไข a==0 ถ้าจริง ให้โปรแกรมจะทำการเช็คเงื่อนไข battery.status['percentage'] <= 10 ถ้าเป็นจริง โปรแกมจะสั่งปิดเครื่องภายใน 60 วินาที แล้วบวกค่า a อีก 1 ถ้า battery.status['percentage'] <= 10 เป็นเท็จให้แสดงข้อมูลสถานะของแบตเตอรี่ไปเรื่อย ๆ จนน้อยกว่าหรือเท่ากับ 10

ต่อไปเราจะมาทำระบบแจ้งเตือนกันด้วยครับ
โค้ด make2

[python]
import os,time
from plyer import battery,notification
a = 0
while a==0:
if battery.status['percentage'] <= 10:
os.system("shutdown /s /t 60") # นับถอยหลังปิดเครื่อง 60 วินาทีใน Windows ถ้าผู้อ่านใช้ระบบปฎิบัติการอื่น อย่าลืมเปลี่ยนครับ
a += 1
else:
b = "Now , Battery " + str(battery.status['percentage']) + "%"
notification.notify(title='ระบบแจ้งเตือนแบตเตอรี่', message=b, app_name='My Battery', app_icon='', timeout=10) # แสดงสถานะแบตเตอรี่
time.sleep(10) # หน่วงเวลาโปรแกรม 10 วินาที
[/python]

ผลลัพธ์

เขียนโปรแกรมปิดเครื่องอัตโนมัติเมื่อแบตเตอรี่ต่ำกว่าที่กำหนดในภาษาไพทอน

จะเห็นได้ว่า ภาษาไพทอนสามารถทำเรื่องยาก ๆ ของภาษาอื่น ๆ ให้เป็นเรื่องง่าย ๆ ได้ครับ

ลองนำโค้ดไปประยุกต์ใช้งานกันครับ

ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)