วันพุธที่ ๑๑ ตุลาคม พ.ศ. ๒๕๖๐

การกำหนดให้ Application ที่เราเขียนให้ทำงานอัตโนมัติตั้งแต่การ Boot

จากที่ได้เขียนโปรแกรมลงใน Raspberry Pi และนำไปฝึกอบรมให้ผู้สนใจทำตาม จะมีคำถามที่น่าสนใจจากผู้เข้าอบรมอยู่คำถามหนึ่งคือ

"เมื่อเราจะใช้ Application เราไม่ต้องมาต่อเม้าส์ ต่อจอ และคีย์บอร์ด เพื่อมาคลิกให้ Application ทำงานทุกครั้งด้วยหรือ"

ขอตอบในเบื้องต้นว่า สมัยที่ยังไม่มีวินโดวส์ เราจะเจอไฟล์ประเภท autoexec.bat ที่เขียนขึ้นมาเพื่อให้มันทำงานทันทีหลังจาก boot DOS เสร็จ ฉันใดก็ฉันนั้น ใน Linux Raspbian ก็สามารถสั่งให้มันทำงานตั้งแต่ boot เลยก็ได้เช่นกัน และมีหลายวิธีด้วยกัน แต่วิธีที่ง่ายที่สุด และเหมาะสมกับงานควบคุม on-off อุปกรณ์ไฟฟ้า ได้แก่ การเขียนไฟล์เพิ่มลงไปใน crontab จะง่ายที่สุด เรามาเริ่มทำกันเลยดีกว่า

ที่ terminal ใช้คำสั่ง

1. sudo crontab -e

ให้เพิ่มคำสั่งต่อไปนี้ ในบรรทัดท้ายสุด

@reboot python /home/pi/iot-application.py &


สมมุติว่า โปรแกรมของเราชื่อว่า iot-application.py
และอยู่ใน path ของ /home/pi/

2. Save ด้วยการกด Ctrl+o แล้วกด enter
3. ปิดด้วยการกด Ctrl+x

4. ทดลอง Boot เครื่องใหม่เพื่อทดสอบว่าทำได้จริงหรือไม่ ด้วยคำสั่ง

sudo reboot

ถ้ามันทำงานถูกต้องทุกประการ ถือว่า ได้ตามวัตถุประสงค์ทุกประการ

ข้อสงสัย ให้ชวนคิด

สมมุติว่า เรามี Application หนึ่งสำหรับรดน้ำสวนเมล่อน อีก Application สำหรับรดน้ำในสวนมะเขือเทศ และต้องการให้ทำงานทั้ง 2 Application พร้อมกัน ตั้งแต่ตอน Boot คุณคิดว่า มันสามารถทำงานได้ไหม และจะเขียนคำสั่งอย่างไร