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

13 Jul 2016,
Share: 
Vacay banner

ใน 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

Fail2Ban แบน ip ผู้ที่พยายามสุ่มรหัส login

server ที่ online อยู่บน internet เพื่อเปิดเป็น web server หรือ อื่นๆ จําเป็นจะต้องเปิดใช้งาน SSH เพื่อ remote เข้าไปควบคุมเครื่อง server จากที่ใดก็ได้ผ่านทาง internet ซึ่งจะใช้ user และ password ในการ login เข้าใช้งาน

pointer c/c++

pointer เป็นชนิดข้อมูลประเภทหนึ่งที่สร้างจากชนิดข้อมูลแบบพื้นฐานทั่วไป โดยชนิดข้อมูลแบบ pointer จะแตกต่างกับชนิดข้อมูลพื้นฐานตรงที่ชนิดข้อมูลแบบพื้นฐานจะเก็บและดึงข้อมูลจากตัวแปรโดยตรง แต่ชนิดข้อมูลแบบ pointer จะเก็บค่าที่อยู่(Address) ของตัวแปรอื่น และใช้ค่าที่อยู่นี้อ้างอิงไปยังข้อมูลที่เก็บอยู่ในตัวแปรนั้นอีกที เพื่อทําการเก็บและดึงข้อมูลจากตัวแปรนั้นอีกที

วิธีใช้ PL2303 USB to serial TTL

PL2303 USB to serial TTL เป็น อุปกรณ์ที่ใช้แปลงจาก USB เป็น serial TTL ส่วนใหญ่จะนําไปใช้เชื่อมต่อ Computer เข้ากับ Raspberry pi


Copyright © 2019 - 2026 thiti.dev | v1.61.0 | Privacy policy | 

Build with ❤️ and Astro.

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