สารบัญ:

Raspberry Pi Barometer Weather Clock: 9 ขั้นตอน (พร้อมรูปภาพ)
Raspberry Pi Barometer Weather Clock: 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Raspberry Pi Barometer Weather Clock: 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Raspberry Pi Barometer Weather Clock: 9 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: DIY Advanced Weather Station with Live Weather Data 2024, พฤศจิกายน
Anonim
นาฬิกาสภาพอากาศบารอมิเตอร์ Raspberry Pi
นาฬิกาสภาพอากาศบารอมิเตอร์ Raspberry Pi

ในคำแนะนำนี้ฉันจะแสดงวิธีสร้างนาฬิกาเทอร์โมมิเตอร์ / บารอมิเตอร์พื้นฐานโดยใช้ 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

เตรียม Pi
เตรียม Pi

ตั้งค่า Raspberry Pi ของคุณ - รายละเอียดที่ Raspberrypi.org

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

ขั้นตอนที่ 2: วางสายทั้งหมด

วางสายทั้งหมด
วางสายทั้งหมด

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

ขั้นตอนที่ 3: ทดสอบ I2C. ของคุณ

ทดสอบ I2C ของคุณ
ทดสอบ I2C ของคุณ

ส่วนหนึ่งของการติดตั้ง I2C คือการเรียกใช้ i2cdetect ซึ่งควรมีลักษณะเหมือนรูปภาพที่แนบมา หากทุกอย่างต่อสายอย่างถูกต้อง

ด้านล่างนี้คือที่อยู่ที่ตรงกัน

  1. 0x70 = การแสดงผล 7 ส่วน
  2. 0x77 = BMP180 เทอร์โมมิเตอร์ / เซ็นเซอร์บารอมิเตอร์
  3. 0x68 = DS3231 โมดูลนาฬิกาเรียลไทม์
  4. 0x57 = DS3231 บนบอร์ด EEPROM สำหรับจัดเก็บข้อมูลการเตือน

ขั้นตอนที่ 4: ติดตั้ง MySQL และ PhpMyAdmin

ติดตั้ง MySQL และ PhpMyAdmin
ติดตั้ง 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

ดาวน์โหลดและติดตั้งโมดูลหลามด้านล่างซึ่งคุณจะใช้เชื่อมต่อกับเซ็นเซอร์

  1. Adafruit_BMP085 โมดูล
  2. โมดูล SDL_DS3231
  3. โมดูล Adafruit 7 ส่วน

ขั้นตอนที่ 6: รหัสเพื่อเข้าสู่ฐานข้อมูล

ข้อมูลโค้ดด้านล่างใช้เพื่อบันทึกอุณหภูมิและความกดอากาศ และเรียกใช้จากสคริปต์ cron (งานตามกำหนดเวลาของ Linux) ที่ทำงานทุกๆ 5 นาที หากต้องการเรียนรู้วิธีใช้ crond โปรดดูบทช่วยสอนนี้

หมายเหตุ! อย่ารบกวนทักษะการเขียนโค้ดของฉัน ฉันไม่ใช่นักพัฒนา ดังนั้นใช่แล้ว อาจมีวิธีการทำเช่นนี้ที่ดีกว่า เร็วกว่า ราบรื่นกว่า และสะอาดกว่าหลายล้านวิธี

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

ขั้นตอนที่ 7: รหัสเพื่อแสดง Temp

รหัสแสดงอุณหภูมิ
รหัสแสดงอุณหภูมิ
รหัสแสดงอุณหภูมิ
รหัสแสดงอุณหภูมิ
รหัสแสดงอุณหภูมิ
รหัสแสดงอุณหภูมิ
รหัสแสดงอุณหภูมิ
รหัสแสดงอุณหภูมิ

รหัสนี้เรียกว่าวนรอบการแสดงผลตามบทนำ

อีกครั้ง ฉันไม่ใช่นักพัฒนา ดังนั้นโค้ดจึงหยาบมาก แต่ใช้งานได้

ขั้นตอนที่ 8: กล่องใส่ของที่พิมพ์ 3 มิติ

ตู้พิมพ์ 3 มิติ
ตู้พิมพ์ 3 มิติ
ตู้พิมพ์ 3 มิติ
ตู้พิมพ์ 3 มิติ
ตู้พิมพ์ 3 มิติ
ตู้พิมพ์ 3 มิติ
ตู้พิมพ์ 3 มิติ
ตู้พิมพ์ 3 มิติ

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

แผนผังที่แนบมานั้นทำใน Autodesk 123D Design ซึ่งฉันคิดว่าเป็นซอฟต์แวร์ฟรีที่ยอดเยี่ยม

โปรดทราบว่ารูบางรูเช่นรูที่จำเป็นในการติดตั้ง Pi นั้นไม่ได้อยู่ในการออกแบบ เนื่องจากเป็นการดีกว่าที่จะเจาะรูในภายหลังในกรณีที่งานพิมพ์ของคุณบิดเบี้ยวเล็กน้อย เพียงใช้ดอกสว่านขนาด 3 มม. มือที่มั่นคง ทำเครื่องหมายความลึกของบิตด้วยเทปกาว เพื่อไม่ให้คุณพิมพ์ผ่าน 7 ชั่วโมงโดยไม่ได้ตั้งใจเหมือนที่ฉันทำ

ขั้นตอนที่ 9: สิ่งที่ต้องทำ

สิ่งที่ต้องทำ
สิ่งที่ต้องทำ
  1. นาฬิกาเรียลไทม์เป็นส่วนเสริมหลังจากพิมพ์กล่องหุ้มเป็นครั้งที่ 5 ดังนั้นขณะนี้จึงติดกาวร้อนที่ด้านข้างของตัวเครื่องซึ่งดูไม่ค่อยดีนัก เลยอยากจะออกแบบใหม่และเพิ่มจุดให้กับนาฬิกา
  2. ความสว่างของจอแสดงผล 7 ส่วนถูกตั้งค่าไว้ที่เบาที่สุด ซึ่งไม่เหมาะสมสำหรับสภาพแสงจ้า ฉันต้องการเพิ่มตัวต้านทานภาพถ่ายที่ด้านบนของตัวเครื่องและปรับความสว่าง 7 ส่วนตามสภาพแสงโดยรอบ
  3. มีปัญหาการออกแบบเล็กน้อยเกี่ยวกับการแตกฐานซึ่งจะได้รับการแก้ไขด้วย
  4. ความคิดใด ๆ ยินดีต้อนรับ

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

แนะนำ: