Contents

วิธีใช้ Raspberry Pi เพื่อตรวจสอบอุณหภูมิด้วย Sense HAT

มีหลายวิธีในการตรวจสอบอุณหภูมิโดยรอบโดยใช้คอมพิวเตอร์บอร์ดเดี่ยว Raspberry Pi ซึ่งอาจเป็นส่วนหนึ่งของการตั้งค่าสถานีตรวจอากาศ แม้ว่าคุณสามารถใช้เซ็นเซอร์ภายนอกที่เชื่อมต่อกับพิน GPIO ของ Raspberry Pi ได้ แต่เราจะอธิบายวิธีการตรวจสอบอุณหภูมิด้วย Raspberry Pi ที่ติดตั้ง Sense HAT ในที่นี้

Sense HAT คืออะไร?

/th/images/sense-hat-angle.jpg เครดิตรูปภาพ: Raspberry Pi

บอร์ดเสริมอย่างเป็นทางการของ Raspberry Pi HAT (Hardware Attached on Top) ที่ออกแบบและผลิตโดยบริษัท Raspberry Pi นั้น Sense HAT เดิมถูกสร้างขึ้นเพื่อให้นักบินอวกาศใช้งานบนสถานีอวกาศนานาชาติ ตั้งแต่ปี 2015 คอมพิวเตอร์ Raspberry Pi สองเครื่องที่ติดตั้ง Sense HAT ได้ถูกนำมาใช้ในการทดลองทางวิทยาศาสตร์ที่ออกแบบโดยเด็กนักเรียนที่เข้าร่วมการแข่งขัน Astro Pi ที่กำลังดำเนินอยู่ ทั้งสองหน่วยได้ถูกแทนที่ด้วย เวอร์ชันอัปเกรดโดยใช้ Raspberry Pi 4 และติดตั้งกล้องคุณภาพสูง

เครดิตรูปภาพ /th/images/astro-pi.jpg: Raspberry Pi

บอร์ด Sense HAT แม้ว่าจะขาดกรอบสีเงินอันเป็นเอกลักษณ์สำหรับการใช้งานนอกโลก แต่ยังคงความสามารถในการทำงานที่เหมือนกันเมื่อจับคู่กับ Raspberry Pi รุ่นใดๆ ที่มีอินเทอร์เฟซ GPIO 40 พิน อุปกรณ์อเนกประสงค์นี้มีเซ็นเซอร์ในตัวหลายประเภทที่ช่วยให้ตรวจสอบสภาพแวดล้อมโดยรอบได้อย่างครอบคลุม รวมถึงการตรวจจับการวางแนวและการเคลื่อนไหวของตัวเอง นอกจากนี้ ยังมีเมทริกซ์ LED RGB ขนาด 8x8 ที่ช่วยอำนวยความสะดวกในการนำเสนอข้อมูล เช่น ข้อความ รูปภาพ และภาพ นอกจากนี้ จอยสติ๊กห้าตำแหน่งขนาดกะทัดรัดยังรวมอยู่ในการออกแบบอีกด้วย

ฟังก์ชันการทำงานที่ครบครันสำหรับ Sense HAT ซึ่งเกี่ยวข้องกับการตรวจจับและการรับรู้ สามารถสรุปได้ดังนี้:

อุปกรณ์ใช้เซ็นเซอร์ STMicro HTS221 ที่สามารถวัดทั้งความชื้นสัมพัทธ์และอุณหภูมิภายในช่วงความชื้นสัมพัทธ์ 0-100% และ 32°F ถึง 149°F (0°C ถึง 65°C ± 2°C) สำหรับ อุณหภูมิ.

บารอมิเตอร์ LPS25HB โดย STMicro มีช่วงการวัดตั้งแต่ 260 ถึง 1260 hPa และมีความสามารถในการตรวจจับอุณหภูมิในช่วง 59°F ถึง 104°F (15°C ถึง 40°C โดยมีความแม่นยำ +/-0.5°ซ)

สามารถรับอุณหภูมิได้จากการอ่านค่าความชื้นหรือเซ็นเซอร์ความดัน หรืออีกทางหนึ่งอาจคำนวณโดยใช้ค่าเฉลี่ยของการอ่านทั้งสองค่า

STMicro LSM9DS1 IMU ซึ่งรวมอยู่ใน Sense HAT ของ Raspberry Pi มีความสามารถในการวัดการวางแนวและความเร็วเชิงมุมของอุปกรณ์โดยคำนึงถึงระนาบภาคพื้นดิน รวมถึงอัตราการหมุนของอุปกรณ์

มาตรความเร่งเป็นส่วนประกอบหนึ่งของหน่วยวัดแรงเฉื่อย (IMU) ที่สามารถวัดแรงเร่งความเร็วในทิศทางต่างๆ

แมกนีโตมิเตอร์ภายในหน่วยวัดแรงเฉื่อย (IMU) สามารถตรวจจับสนามแม่เหล็กของโลก ทำให้สามารถยืนยันทิศทางของแม่เหล็กทิศเหนือและอ่านค่าเข็มทิศได้

ด้วยความเข้าใจที่ครอบคลุมเกี่ยวกับความสามารถและการใช้งานที่เป็นไปได้ของ Raspberry Pi HAT อเนกประสงค์ ตอนนี้จึงเหมาะสมที่จะเริ่มกระบวนการนำไปใช้สำหรับโครงการที่เกี่ยวข้องของคุณ

ขั้นตอนที่ 1: ติดตั้ง Sense HAT

หากต้องการติด Sense HAT เข้ากับ Raspberry Pi อย่างถูกต้อง ตรวจสอบให้แน่ใจว่ารุ่นหลังปิดและถอดปลั๊กจากแหล่งไฟฟ้าใดๆ แล้ว จากนั้น ค่อย ๆ เสียบ Sense HAT พร้อมด้วยส่วนต่อขยายส่วนหัวสีดำที่ให้มา เข้ากับส่วนหัว GPIO 40 พินของ Raspberry Pi ตรวจสอบให้แน่ใจว่า Sense HAT ได้รับการจัดตำแหน่งอย่างถูกต้องที่ด้านบนของ Raspberry Pi โดยมีการเชื่อมต่อทั้งหมดระหว่างบอร์ดทั้งสอง เพื่อเพิ่มความปลอดภัย คุณสามารถใช้ขาตั้งแบบขันเกลียวได้

/th/images/raspberry-pi-sense-hat-mount.jpg

คุณสามารถใช้ Raspberry Pi รุ่นทั่วไปที่มีส่วนหัว General Purpose Input/Output (GPIO) 40 พินสำหรับโปรเจ็กต์ได้ อย่างไรก็ตาม ข้อจำกัดที่สำคัญประการหนึ่งที่เกี่ยวข้องกับรุ่น Raspberry Pi 400 ก็คือส่วนหัว GPIO ของมันจะอยู่ที่ด้านหลังติดกับคีย์บอร์ดในตัว ด้วยเหตุนี้ Sense HAT จะถูกจัดวางโดยหันหน้าไปในทิศทางตรงกันข้ามระหว่างการทำงาน เพื่อแก้ไขปัญหานี้ ขอแนะนำให้ใช้สายต่อเพื่อสร้างการเชื่อมต่อระหว่างส่วนหัว GPIO และ Sense HAT

ขั้นตอนที่ 2: ตั้งค่า Raspberry Pi

เพื่อเริ่มการทำงานของ Raspberry Pi ของคุณ ให้ทำตามขั้นตอนเหล่านี้:1. เชื่อมต่อแป้นพิมพ์และเมาส์ USB เข้ากับอุปกรณ์2. ติด Raspberry Pi เข้ากับจอแสดงผลหรือจอโทรทัศน์3. ใส่การ์ด microSD ที่มีระบบปฏิบัติการ Raspberry Pi เริ่มต้นภายในช่องของอุปกรณ์ หากยังไม่ได้ดำเนินการ โปรดดูคำแนะนำในการติดตั้งระบบปฏิบัติการบน Raspberry Pi.4 เพิ่มพลังให้กับ Raspberry Pi โดยจ่ายไฟฟ้าให้กับแหล่งพลังงานของมัน

อีกทางหนึ่ง อาจใช้ Raspberry Pi ที่ผสานรวมกับ Sense HAT ในสภาพแวดล้อมแบบ sans-monitor โดยสร้างการเข้าถึงระยะไกลผ่านการเชื่อมต่อ Secure Shell (SSH) จากอุปกรณ์คอมพิวเตอร์หรืออุปกรณ์เพิ่มเติม ในสถานการณ์เช่นนี้ ผู้ใช้จะไม่สามารถใช้งาน Thonny Python Integrated Development Environment (IDE) ได้ แต่สามารถแก้ไขไฟล์โดยใช้โปรแกรมแก้ไขข้อความนาโน และรันโปรแกรมผ่านคำสั่งเทอร์มินัล

หากต้องการตรวจสอบว่าเฟิร์มแวร์ Sense HAT ได้รับการติดตั้งไว้ล่วงหน้าบน Raspberry Pi ของคุณหรือไม่ คุณสามารถเปิดแอปพลิเคชันจำลองเทอร์มินัล เช่น “Terminal” หรือ “xterm” จากเมนู Applications ใน Lubuntu จากนั้นพิมพ์คำสั่ง “sudo dmesg | เกรป เซนแฮต” หากไม่มีเอาต์พุตปรากฏขึ้น แสดงว่าติดตั้งเฟิร์มแวร์สำเร็จแล้ว อย่างไรก็ตาม หากข้อความแสดงข้อผิดพลาดปรากฏขึ้น คุณอาจต้องติดตั้งเฟิร์มแวร์ด้วยตนเองโดยใช้คำแนะนำที่ให้ไว้ก่อนหน้าในส่วนนี้

 sudo apt install sense-hat

หากเพิ่งติดตั้งแพ็คเกจบน Raspberry Pi ของคุณ ขอแนะนำให้ทำการรีสตาร์ทระบบเพื่อให้แน่ใจว่าการเปลี่ยนแปลงที่จำเป็นทั้งหมดได้รับการติดตั้งและกำหนดค่าอย่างเหมาะสม

 sudo reboot

ขั้นตอนที่ 3: เริ่มการเขียนโปรแกรมใน Python

การใช้ Raspberry Pi Sense HAT ร่วมกับ Scratch สำหรับการเขียนโปรแกรมแบบบล็อกนั้นเป็นไปได้ อย่างไรก็ตาม เราจะใช้ Python เป็นวิธีที่เราต้องการในการตีความและแสดงข้อมูลที่รวบรวมโดยเซ็นเซอร์

การใช้ Thonny Integrated Development Environment (IDE) เป็นวิธีที่มีประสิทธิภาพในการดำเนินการงานการเขียนโปรแกรมแบบ Python บน Raspberry Pi เนื่องจากมีฟังก์ชันการทำงานที่ครอบคลุมและเครื่องมือแก้ไขข้อบกพร่องที่เป็นประโยชน์ หากต้องการเข้าถึง Thonny IDE ภายในอินเทอร์เฟซผู้ใช้แบบกราฟิก (GUI) ของเดสก์ท็อปของ Raspberry Pi OS ให้ไปที่มุมซ้ายบนของหน้าจอแล้วเลือก"เมนู"ตามด้วย"การเขียนโปรแกรม"และสุดท้ายคือ"Thonny IDE"

/th/images/thonny-ide-hello-world.jpg

ขั้นตอนที่ 4: อ่านอุณหภูมิ

ในหน้าต่างหลักของ Thonny Integrated Development Environment (IDE) โปรดใส่โค้ดต่อไปนี้ภายในตัวแก้ไขโปรแกรม:

from sense_hat import SenseHat

sense = SenseHat()
sense.clear()

temp = sense.get_temperature()
print(temp) 

บรรทัดเริ่มต้นของการนำเข้าโค้ดและกำหนดคลาส SenseHat จากไลบรารี Sense\_hat Python ซึ่งได้รับการติดตั้งไว้ล่วงหน้าบน Raspberry Pi OS ต่อจากนั้นเมทริกซ์ LED ของ SenseHat จะถูกล้างโดยใช้คำแนะนำที่ให้ไว้

ต่อมาเราได้รับการวัดอุณหภูมิและแสดงภายในอินเทอร์เฟซ Shell ของ Thonny Integrated Development Environment ค่านี้แสดงเป็นองศาเซลเซียส ดังนั้นจึงอาจเป็นประโยชน์ที่จะแปลงเป็นฟาเรนไฮต์ตั้งแต่แรกเพื่อให้ตีความได้ง่ายขึ้น:

 temp = (sense.get_temperature() * 1.8 \+ 32) 

เพื่อให้แน่ใจว่าการอ่านค่าของเซ็นเซอร์วัดอุณหภูมิมีการแสดงค่าทศนิยมตำแหน่งเดียวอย่างแม่นยำ เราจะใช้ฟังก์ชันปัดเศษ () เพื่อตัดทอนทศนิยมส่วนเกินที่มีอยู่ในค่า วิธีการนี้ช่วยให้วัดอุณหภูมิได้อย่างแม่นยำและขจัดความแม่นยำที่ไม่จำเป็น

 temp = round(temp, 1) 

ฟังก์ชัน sense.get\_temperature() ดึงข้อมูลอุณหภูมิที่ได้รับจากเซ็นเซอร์อุณหภูมิในตัวภายในเซ็นเซอร์ความชื้น อีกทางเลือกหนึ่ง เราสามารถใช้วิธี sense.get\_temperature\_from\_pressure() เพื่อรับค่าการอ่านอุณหภูมิตามการวัดที่นำมาจากเซ็นเซอร์ความดัน นอกจากนี้ ยังสามารถอ่านค่าอุณหภูมิจากเซ็นเซอร์ทั้งสองได้พร้อมๆ กัน และคำนวณค่าเฉลี่ยโดยการหาค่าเฉลี่ยตามลำดับแล้วหารด้วยสอง

ขั้นตอนที่ 5: แสดงอุณหภูมิบน Sense HAT

แท้จริงแล้ว การแสดงกระแสข้อมูลอย่างต่อเนื่องแบบเรียลไทม์นั้นค่อนข้างน่าดึงดูดใจ ในกรณีนี้ เราจะนำเสนอการแสดงภาพแบบไดนามิกโดยการอัปเดตค่าอุณหภูมิปัจจุบันบนเมทริกซ์ RGB LED ของ Sense HAT เป็นระยะๆ โดยใช้ฟังก์ชัน show\_message() นอกจากนี้ เราจะใช้การวนรอบ while กับคำสั่ง"While True"เพื่อขอรับการวัดอุณหภูมิใหม่ซ้ำ ๆ ในช่วงเวลาปกติสิบวินาทีผ่านการใช้ฟังก์ชัน sleep() ที่ได้รับจากไลบรารีเวลา

นี่คือโปรแกรมที่สมบูรณ์:

 from sense_hat import SenseHat
from time import sleep

sense = SenseHat()
sense.clear()

while True:
 temp = (sense.get_temperature() * 1.8 \+ 32)
 temp = round(temp, 1)
 message = "Temp: " \+ str(temp)
 sense.show_message(message)
 sleep (10) 

ด้วยการรันโค้ดนี้ การอ่านอุณหภูมิอย่างต่อเนื่องจะแสดงบนเมทริกซ์ LED แบบเรียลไทม์ หากต้องการทดลองการตอบสนอง เพียงหายใจออกเบาๆ บน Sense HAT เพื่อสังเกตความผันผวนของอุณหภูมิที่อาจเกิดขึ้น

/th/images/raspberry-pi-sense-hat-temperature.jpg

อาจต้องทำการปรับเปลี่ยนการอ่านอุณหภูมิที่ได้รับผ่าน Sense HAT เนื่องจากอาจได้รับอิทธิพลจากการถ่ายเทความร้อนจากหน่วยประมวลผลกลางของ Raspberry Pi ที่อยู่ด้านล่างโดยตรง เพื่อให้การวัดเหล่านี้มีความแม่นยำมากขึ้น วิธีหนึ่งที่เป็นไปได้คือการใช้ส่วนหัวแบบซ้อนเพื่อยกระดับ Sense HAT ให้ห่างจาก Raspberry Pi

ใช้ Raspberry Pi เพื่อตรวจสอบอุณหภูมิ

การใช้เทอร์โมมิเตอร์อิสระสามารถทำได้สำหรับการดำเนินการนี้ อย่างไรก็ตาม Sense HAT ช่วยให้การตรวจสอบอุณหภูมิง่ายขึ้นผ่านการผสานรวมกับ Raspberry Pi นอกจากนี้ยังช่วยให้สามารถรวบรวมข้อมูลที่เกี่ยวข้องกับปัจจัยด้านสิ่งแวดล้อมต่างๆ รวมถึงความดันบรรยากาศและความชื้นสัมพัทธ์ ในขณะที่แสดงการวัดเหล่านี้บนอาร์เรย์ LED ที่สามารถระบุตำแหน่งได้แยกกัน