การใช้ Real time clock กับ Raspberry pi

13 Jul 2016

Share to:

ใน Raspberry pi จะไม่มี Real Time Clock มาให้ เมื่อเราปิดเครื่อง หรือไม่มีไฟฟ้าจ่ายให้กับ Raspberry pi วันที่และเวลาของเครื่องจะไม่เป็นปัจจุบัน วิธีที่จะทําให้เวลาของเครื่องเป็นวันที่ปัจจุบันมีด้วยกัน 2 วิธี ดังนี้

  1. ใช้ NTP server (จะต้องเชื่อมต่อกับเครือขาย internet)
  2. ใช้ Real time clock (ไม่ต้องเชื่อมต่อกับเครือขาย internet)

ในบทความนี้เราจะอธิบายวิธีใช้ Real time clock เป็นฐานเวลาให้กับ Raspberry pi ก่อนอื่นมารู้จักกันก่อนว่ามันคืออะไร Real time clock เป็น module ฐานเวลา เนื่องจากตัว module ใช้พลังงานจากถ่านกระดุมขนาดเล็กทําให้ตัว module ทํางานอยู่ตลอดเวลาแม้ไม่ได้จ่ายไฟเลี้ยง

จะนํา Real time clock มาใช้กับ Raspberry pi อย่างไร?

เมื่อ Raspberry pi เริ่มทํางานก็จะไปดึงค่าเวลาจาก Real time clock มาเซ็ตเวลาของเครื่อง ทําให้เวลาของเครื่องตรงกับปัจจุบัน Real time clock ที่ใช้จะเป็นICเบอร์ DS3231 น้าตาของบอร์ดตามรูปด้านล้างครับ

Image

real time clock ด้านหลังจะเป็น ถ่านกระดุม

Image

real time clock การเชื่อมต่อจะเป็นแบบ I2C โดยเราจะต้องต่อสายสัญญานระหว่าง Module กับ Raspberry pi ดังนี้ Raspberry pi ขา SDA<---->Real time clock ขา SDA Raspberry pi ขา SCL<---->Real time clock ขา SCL Raspberry pi ขา 3.3V<---->Real time clock ขา VCC Raspberry pi ขา GND<---->Real time clock ขา GND เมื่อเชื่อมต่อสายสัญญานเรียบร้อยแล้ว ใช้คําสั่งบน Raspberry pi ดังนี้(DS1307 และ DS3231 จะใช้ Driver ตัวเดียวกัน คือ ds1307)

# Load the module now
sudo modprobe i2c-bcm2708
# Notify Linux of the Dallas RTC device (use -0 for Model A or -1 for Model B)
echo ds1307 0x68 | sudo tee /sys/class/i2c-adapter/i2c-1/new_device

Raspberry pi2 ให้ใช้คําสั่ง “echo ds1307 0x68 | sudo tee /sys/class/i2c-adapter/i2c-1/new_device” Raspberry pi ให้ใช้คําสั่ง “echo ds1307 0x68 | sudo tee /sys/class/i2c-adapter/i2c-0/new_device”

ในขณะนี้เราสามารถใช้งาน Real time clock ได้แล้ว ขั้นตอนต่อไปเราลองดึงค่าเวลาของ Real time clock ออกมา ด้วยคําสั่งนี้

sudo hwclock

ในกรณีที่เราซื้อ Real time clock มาใหม่ เวลาของ module อาจจะไม่ตรง เราอาจจะต้องตั้งเวลาให้กับ module Real time clock ซะก่อน มีขั้นตอนดังนี้

  1. ตั้งเวลาของ Raspberry pi ให้ตรงกับปัจจุบัน(ดูวิธีการตั้งเวลา)
  2. Set เวลาให้กับ Module Real time clock

การ Set เวลาให้กับ Module Real time clock คือ

sudo hwclock -w

ถ้าเราต้องการจะดึงเวลาใน Real time clock มา Set ให้กับ  Raspberry pi ใช้คําสั่งนี้

sudo hwclock -s

เท่านี้เวลาของ Raspberry pi ก็จะตรงกับปัจจุบัน

วิธีทําให้ Set เวลา ทุกครั้งที่เปิดเครื่อง

ให้เราเปิดไฟล์ “/etc/re.local” ด้วยคําสั่ง nano ดูวิธีใช้คําสั่ง nano คลิก

sudo nano /etc/rc.local

แล้ว เพิ่มคําสั่งนี้ ก่อนบันทัด “exit 0”

echo ds1307 0x68 | sudo tee /sys/class/i2c-adapter/i2c-1/new_device
sudo hwclock -s

Raspberry pi2 ให้ใช้คําสั่ง “echo ds1307 0x68 | sudo tee /sys/class/i2c-adapter/i2c-1/new_device” Raspberry pi ให้ใช้คําสั่ง “echo ds1307 0x68 | sudo tee /sys/class/i2c-adapter/i2c-0/new_device”

เมื่อแก้ไข้ แล้วให้ Reboot เครื่อง หลังจากนี้เวลาเปิด Raspberry pi ขึ้นมาเวลาจะถูก Set เป็นปัจจุบันทุกครั้ง

Suggestion blogs

Disable service worker ใน React

Service Worker คือ JavaScript ทำงานบนเว็บเบราเซอร์ ซึ่งจะทำงานอยู่เบื้องหลังแยกออกจากตัวเว็บโดยตัว Service Worker นิยมใช้ทำ Offline mode ที่เราพบเห็นจากเว็บส่วนใหญ่ของ Google รวมถึงการเพื่อทำ Web Push Notification และจะมีความสามารถอื่นๆ เพิ่มเข้ามาในอนาคต และ Service Worker สามารถดัก Network Request ของเว็บ เช่น HTTP Request, โหลดรูป หรือ API Call โดยทุก Request ที่ออกจากเว็บเราจะผ่าน Service worker ทั้งหมดทำให้เราสามารถจัดการ Network Request ได้ดีขึ้น เช่น การคืนค่าจาก Cache แทนที่จะส่ง Request นั้นออกไปจริงๆ หรือในกรณีที่ไม่สามารถเชื่อมต่ออินเตอร์เน็ตได้

Git commit message convention เขียน git commit message ให้เข้าใจง่าย

สวัสดีครับ บทความนี้เราจะมาเรียนรู้การเขียน Git commit message อย่างไรให้เข้าใจง่ายกันนะครับ (git commit message convention)

Go EP.4 Syntax ของภาษา Go

สวัสดีครับ ในบทความนี้ก็เป็น EP.4 แล้วนะครับ โดยเนื้อหาจะเป็นเรื่องเกี่ยวกับ Syntax ของภาษา Go ว่าภาษา Go มีรูปแบบการเขียนเป็นอย่างไร แต่ละคําสั่งใช้อย่างไรสําหรับท่านใดที่ยังไม่ได้อ่าน EP.3 ท่านสามารถกลับไปอ่านก่อนได้นะครับที่นี่ Go EP.3 Go packages คืออะไรมาเริ่มเรียนรู้ไปด้วยกันตามหัวข้อด้านล่างเลยครับ


Copyright © 2019 - 2024 thiti.dev |  v1.41.0 |  Privacy policy | 

Build with ❤️ and Astro.

Github profile   Linkedin profile   Instagram   X profile   Youtube channel   Telegram   Email contact   วงแหวนเว็บ