
สารบัญ:
- ขั้นตอนที่ 1: เตรียม Pi
- ขั้นตอนที่ 2: วางสายทั้งหมด
- ขั้นตอนที่ 3: ทดสอบ I2C. ของคุณ
- ขั้นตอนที่ 4: ติดตั้ง MySQL และ PhpMyAdmin
- ขั้นตอนที่ 5: ติดตั้งโมดูล Python
- ขั้นตอนที่ 6: รหัสเพื่อเข้าสู่ฐานข้อมูล
- ขั้นตอนที่ 7: รหัสเพื่อแสดง Temp
- ขั้นตอนที่ 8: กล่องใส่ของที่พิมพ์ 3 มิติ
- ขั้นตอนที่ 9: สิ่งที่ต้องทำ
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-23 15:12

ในคำแนะนำนี้ฉันจะแสดงวิธีสร้างนาฬิกาเทอร์โมมิเตอร์ / บารอมิเตอร์พื้นฐานโดยใช้ Raspberry Pi 2 พร้อมเซ็นเซอร์ BMP180 I2C ที่แสดงบนจอแสดงผล I2C ของ Adafruit 4 หลัก 7 ส่วน Pi ยังใช้โมดูลนาฬิกา I2C แบบเรียลไทม์ DS3231 เพื่อจับเวลาเมื่อรีสตาร์ท Pi
นาฬิกาวนรอบ 4 ขั้นตอนเป็นเวลา 5 วินาทีในแต่ละ ขั้นแรกจะแสดงอุณหภูมิเป็นเซลเซียส จากนั้นเป็นฟาเรนไฮต์ ตามด้วยความกดอากาศในหน่วย kPa *(ตัวเลขนี้เดินไปทางซ้ายเนื่องจากตัวเลขจำกัด) และสุดท้ายแสดงแนวโน้มการเปลี่ยนแปลงของความดันบรรยากาศระหว่างตอนนี้กับค่าเฉลี่ยของ ชั่วโมงก่อนหน้า
สิ่งที่ทำให้นาฬิกานี้แตกต่างจากนาฬิกาส่วนใหญ่คือใช้ฐานข้อมูล MySQL บน Pi เพื่อบันทึกข้อมูลจาก BMP180 ทุกนาที เนื่องจากความกดอากาศในปัจจุบันไม่ได้มีค่าเท่ากับการเคลื่อนที่ขึ้นหรือลงในช่วงเวลาที่กำหนด จึงใช้ฐานข้อมูลนี้ในการคำนวณค่าเฉลี่ยสำหรับช่วงชั่วโมงระหว่าง 2 ชั่วโมงถึง 1 ชั่วโมงที่แล้วและเปรียบเทียบกับแรงดันปัจจุบัน ความกดอากาศที่เพิ่มขึ้นอย่างมีนัยสำคัญมักจะบ่งชี้ว่าสภาพอากาศดีขึ้น ในขณะที่การลดลงมากอาจเตือนถึงพายุที่กำลังจะเกิดขึ้น
นาฬิกาอยู่ในตัวเรือน ABS พิมพ์ 3 มิติพร้อม BMP180 ในฝาปิดช่องระบายอากาศที่ด้านหลังของนาฬิกาเพื่อป้องกันไม่ให้ความร้อนที่เกิดจาก Pi ส่งผลต่อการอ่านอุณหภูมิ ฉันจะให้แผนผังการออกแบบ Autodesk 123D หากคุณต้องการพิมพ์ของคุณเอง
นาฬิกาใช้พลังงานจากหูดที่ผนัง USB มาตรฐานและดึงพลังงานทั้งหมดประมาณ 450 mA
ฉันจะไม่ลงรายละเอียดมากเกินไปเกี่ยวกับการตั้งค่าพื้นฐานของ Pi และ I2C เนื่องจากสิ่งนี้ครอบคลุมในคำแนะนำอื่น ๆ อีกมากมายที่ฉันจะให้ลิงก์
ขั้นตอนที่ 1: เตรียม Pi

ตั้งค่า Raspberry Pi ของคุณ - รายละเอียดที่ Raspberrypi.org
- ดาวน์โหลดและติดตั้ง Linux Distribution ที่คุณเลือกบนการ์ด SD - ฉันใช้ Raspbian
- เสียบ pi แล้วบูตขึ้น
- ฉันใช้อแด็ปเตอร์ micro WiFi เพื่อเชื่อมต่อ pi กับเราเตอร์ของฉัน เนื่องจากตัวเรือนนาฬิกาปิดบังพอร์ตอีเทอร์เน็ต
- ฉันใช้โหมดหัวขาดที่คุณเชื่อมต่อกับ pi โดยใช้ SSH ดังนั้นสิ่งที่คุณต้องเสียบคือพลังงาน
- กำหนดค่า I2C บน Pi - ฉันทำตามคำแนะนำเหล่านี้ในไซต์ Adafruit
ขั้นตอนที่ 2: วางสายทั้งหมด

โมดูลทั้งหมดที่ฉันใช้ในโปรเจ็กต์นี้มีความทนทาน 5V และใช้ I2C ซึ่งเป็นโปรโตคอลแบบ 2 สายที่ใช้สำหรับ IC เพื่อสื่อสารระหว่างกัน ดังนั้นการเดินสายจึงค่อนข้างง่าย เชื่อมต่อ VCC ทั้งหมดกับ 5V, Grounds ทั้งหมดเข้าด้วยกันและสาย SCA และ SCL ทั้งหมดเข้าด้วยกันตามแผนผัง งานเสร็จแล้ว
ขั้นตอนที่ 3: ทดสอบ I2C. ของคุณ

ส่วนหนึ่งของการติดตั้ง I2C คือการเรียกใช้ i2cdetect ซึ่งควรมีลักษณะเหมือนรูปภาพที่แนบมา หากทุกอย่างต่อสายอย่างถูกต้อง
ด้านล่างนี้คือที่อยู่ที่ตรงกัน
- 0x70 = การแสดงผล 7 ส่วน
- 0x77 = BMP180 เทอร์โมมิเตอร์ / เซ็นเซอร์บารอมิเตอร์
- 0x68 = DS3231 โมดูลนาฬิกาเรียลไทม์
- 0x57 = DS3231 บนบอร์ด EEPROM สำหรับจัดเก็บข้อมูลการเตือน
ขั้นตอนที่ 4: ติดตั้ง MySQL และ PhpMyAdmin

การติดตั้ง mySQL ค่อนข้างตรงไปตรงมาหากคุณทำตามบทช่วยสอนที่นี่
sudo apt-get ติดตั้ง mysql-server
ฉันยังติดตั้ง phpMyAdmin ซึ่งเป็นเว็บไซต์ที่ทำงานบน Apache ซึ่งคุณสามารถใช้เพื่อสร้างและจัดการฐานข้อมูล mySQL สอนที่นี่
sudo apt-get ติดตั้ง phpmyadmin
เมื่อติดตั้งแล้ว ฉันตั้งค่าฐานข้อมูลชื่อ BP180 โดยใช้ phpMyAdmin โดยมีโครงสร้างตามรูปภาพ
ฉันยังใช้โมดูลหลามที่เรียกว่า mysqlDB ซึ่งคุณสามารถติดตั้งได้โดยใช้
sudo apt-get ติดตั้ง python-mysqldb
ขั้นตอนที่ 5: ติดตั้งโมดูล Python
ดาวน์โหลดและติดตั้งโมดูลหลามด้านล่างซึ่งคุณจะใช้เชื่อมต่อกับเซ็นเซอร์
- Adafruit_BMP085 โมดูล
- โมดูล SDL_DS3231
- โมดูล Adafruit 7 ส่วน
ขั้นตอนที่ 6: รหัสเพื่อเข้าสู่ฐานข้อมูล
ข้อมูลโค้ดด้านล่างใช้เพื่อบันทึกอุณหภูมิและความกดอากาศ และเรียกใช้จากสคริปต์ cron (งานตามกำหนดเวลาของ Linux) ที่ทำงานทุกๆ 5 นาที หากต้องการเรียนรู้วิธีใช้ crond โปรดดูบทช่วยสอนนี้
หมายเหตุ! อย่ารบกวนทักษะการเขียนโค้ดของฉัน ฉันไม่ใช่นักพัฒนา ดังนั้นใช่แล้ว อาจมีวิธีการทำเช่นนี้ที่ดีกว่า เร็วกว่า ราบรื่นกว่า และสะอาดกว่าหลายล้านวิธี
คุณจะสังเกตเห็นในรหัสว่าอุณหภูมิลดลง 7 องศาซึ่งเทียบเท่ากับความร้อนที่เกิดจาก Raspberry Pi แม้จะติดตั้ง BMP180 ที่ด้านนอกของตัวเครื่อง เมื่อตอนแรกฉันมีมันอยู่ในตัวเรือน มันร้อนกว่าอุณหภูมิแวดล้อมประมาณ 15 องศา ดูเหมือนว่าจะค่อนข้างเป็นเส้นตรง แต่ฉันยังไม่มีโอกาสทดสอบสุดขั้ว คำติชมจากประสบการณ์ของคุณจะได้รับการชื่นชม
ขั้นตอนที่ 7: รหัสเพื่อแสดง Temp




รหัสนี้เรียกว่าวนรอบการแสดงผลตามบทนำ
อีกครั้ง ฉันไม่ใช่นักพัฒนา ดังนั้นโค้ดจึงหยาบมาก แต่ใช้งานได้
ขั้นตอนที่ 8: กล่องใส่ของที่พิมพ์ 3 มิติ




ต่อไปเป็นการออกแบบตู้ สิ่งนี้ค่อนข้างท้าทายเนื่องจากรูปร่างมีแนวโน้มที่จะบิดเบี้ยวเนื่องจากส่วนต่างๆ ของเปลือกนอกมีความหนาเพียง 2 มม. ก่อนอื่นฉันวาดรูปจำลองของ Pi และชิ้นส่วนทั้งหมด จากนั้นจึงออกแบบกล่องหุ้มรอบๆ การพิมพ์ใช้เวลาประมาณ 7 ชั่วโมงใน RapMan 3.2 ของฉัน (ซึ่งเป็นเครื่องพิมพ์ที่ค่อนข้างช้า) ที่ความลึก 0.25 ชั้น
แผนผังที่แนบมานั้นทำใน Autodesk 123D Design ซึ่งฉันคิดว่าเป็นซอฟต์แวร์ฟรีที่ยอดเยี่ยม
โปรดทราบว่ารูบางรูเช่นรูที่จำเป็นในการติดตั้ง Pi นั้นไม่ได้อยู่ในการออกแบบ เนื่องจากเป็นการดีกว่าที่จะเจาะรูในภายหลังในกรณีที่งานพิมพ์ของคุณบิดเบี้ยวเล็กน้อย เพียงใช้ดอกสว่านขนาด 3 มม. มือที่มั่นคง ทำเครื่องหมายความลึกของบิตด้วยเทปกาว เพื่อไม่ให้คุณพิมพ์ผ่าน 7 ชั่วโมงโดยไม่ได้ตั้งใจเหมือนที่ฉันทำ
ขั้นตอนที่ 9: สิ่งที่ต้องทำ

- นาฬิกาเรียลไทม์เป็นส่วนเสริมหลังจากพิมพ์กล่องหุ้มเป็นครั้งที่ 5 ดังนั้นขณะนี้จึงติดกาวร้อนที่ด้านข้างของตัวเครื่องซึ่งดูไม่ค่อยดีนัก เลยอยากจะออกแบบใหม่และเพิ่มจุดให้กับนาฬิกา
- ความสว่างของจอแสดงผล 7 ส่วนถูกตั้งค่าไว้ที่เบาที่สุด ซึ่งไม่เหมาะสมสำหรับสภาพแสงจ้า ฉันต้องการเพิ่มตัวต้านทานภาพถ่ายที่ด้านบนของตัวเครื่องและปรับความสว่าง 7 ส่วนตามสภาพแสงโดยรอบ
- มีปัญหาการออกแบบเล็กน้อยเกี่ยวกับการแตกฐานซึ่งจะได้รับการแก้ไขด้วย
- ความคิดใด ๆ ยินดีต้อนรับ
ฉันหวังว่าคุณจะสนุกกับคำแนะนำนี้และพบว่ามันเป็นแรงบันดาลใจมากพอที่จะพาคุณไป แนวคิดคือการจัดเตรียมแพลตฟอร์มที่คุณสามารถใช้เพื่อเพิ่มแนวคิดของคุณเองได้ มีความสุข!
แนะนำ:
IoT Barometer: 5 ขั้นตอน (พร้อมรูปภาพ)

บารอมิเตอร์ IoT: วัดและลงทะเบียนอุณหภูมิและความดันบรรยากาศด้วยบารอมิเตอร์ IoT นี้ ฉันต้องการนำเสนอบารอมิเตอร์ IoT อนุญาตให้วัดและจัดเก็บข้อมูลอุณหภูมิและความดันในแพลตฟอร์ม Adafruit IoT ฉันได้เผยแพร่โครงการที่คล้ายกันซึ่งม
Raspberry Pi Internet Weather Station: 5 ขั้นตอน (พร้อมรูปภาพ)

Raspberry Pi Internet Weather Station: *** อัปเดต *** คำแนะนำนี้ล้าสมัย บริการสภาพอากาศสำหรับข้อมูลสภาพอากาศที่ใช้ในคำแนะนำนี้ใช้งานไม่ได้อีกต่อไป อย่างไรก็ตาม มีโครงการทางเลือกที่ทำสิ่งเดียวกันโดยพื้นฐาน (ดีกว่าเท่านั้น - คำสั่งนี้
WiFi Clock, Timer & Weather Station, ควบคุม Blynk: 5 ขั้นตอน (พร้อมรูปภาพ)

WiFi Clock, Timer & Weather Station, Blynk Controlled: นี่คือนาฬิกาดิจิตอล Morphing (ขอบคุณ Hari Wiguna สำหรับแนวคิดและรหัส morphing) มันคือนาฬิกาอะนาล็อก สถานีรายงานสภาพอากาศ และตัวจับเวลาในครัว มันถูกควบคุมโดย a แอพ Blynk บนสมาร์ทโฟนของคุณด้วย WiFi แอพช่วยให้คุณ
Arduino Barometer พร้อม LCD Nokia 5110: 4 ขั้นตอน

Arduino Barometer พร้อม LCD Nokia 5110: นี่คือบารอมิเตอร์อย่างง่ายกับ Arduino
Nixie Clock Mood Barometer: 7 ขั้นตอน (พร้อมรูปภาพ)

Nixie Clock Mood Barometer: ความหายนะที่ไม่มีใครสังเกตของ Progress คือบารอมิเตอร์ที่บ้านแบบแอนรอยด์ ทุกวันนี้ คุณอาจยังสามารถหาตัวอย่างได้ในบ้านของผู้คนที่มีอายุมากกว่า 90 ปี แต่มีอีกนับล้านอยู่ในถังขยะหรือบนอีเบย์ อันที่จริง บารอมิเตอร์แบบเก่าไม่ได้ช่วยฉัน