ทำ DIY Raspberry Pi Weather Station ด้วยซอฟต์แวร์: 7 ขั้นตอน (พร้อมรูปภาพ)
ทำ DIY Raspberry Pi Weather Station ด้วยซอฟต์แวร์: 7 ขั้นตอน (พร้อมรูปภาพ)
Anonim
สร้างสถานีอากาศ DIY Raspberry Pi ให้สมบูรณ์ด้วยซอฟต์แวร์
สร้างสถานีอากาศ DIY Raspberry Pi ให้สมบูรณ์ด้วยซอฟต์แวร์
สร้างสถานีอากาศ DIY Raspberry Pi ให้สมบูรณ์ด้วยซอฟต์แวร์
สร้างสถานีอากาศ DIY Raspberry Pi ให้สมบูรณ์ด้วยซอฟต์แวร์

ย้อนกลับไปเมื่อปลายเดือนกุมภาพันธ์ ฉันเห็นโพสต์นี้ในไซต์ Raspberry Pi

www.raspberrypi.org/school-weather-station-…

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

ดังนั้น เช่นเดียวกับผู้ใช้ที่สอนได้ดี ฉันจึงตัดสินใจทำด้วยตัวเอง!!!

ฉันได้ค้นคว้าเพียงเล็กน้อยและพบว่ามีระบบการค้าที่ดีที่สามารถนำไปใช้ได้ ฉันพบคำแนะนำที่ดีบางอย่างเพื่อช่วยในแนวคิดของ Sensor หรือ Raspberry PI ฉันยังพบไซต์นี้ซึ่งจ่ายสกปรก พวกเขาต้องทำลายระบบ Maplin ที่มีอยู่:

www.philpot.me/weatherinsider.html

กรอไปข้างหน้าประมาณหนึ่งเดือนและฉันมีระบบการทำงานพื้นฐาน นี่คือระบบ Raspberry Pi Weather ที่สมบูรณ์โดยมีเพียงฮาร์ดแวร์กล้อง Raspberry Pi พื้นฐานและเซ็นเซอร์อนาล็อกและดิจิตอลบางตัวเพื่อทำการวัดของเรา ไม่ต้องซื้อเครื่องวัดความเร็วลมหรือเครื่องวัดปริมาณน้ำฝน เรากำลังผลิตขึ้นเอง! นี่คือคุณสมบัติ:

  • บันทึกข้อมูลไปยัง RRD และ CSV จึงสามารถจัดการหรือส่งออก/นำเข้าไปยังรูปแบบอื่นได้
  • ใช้ Weather Underground API เพื่อรับข้อมูลที่น่าสนใจ เช่น จุดสูงสุดและต่ำสุดในอดีต ข้างขึ้นข้างแรม และพระอาทิตย์ขึ้น/พระอาทิตย์ตก
  • ใช้กล้อง Raspberry Pi เพื่อถ่ายภาพนาทีละครั้ง (จากนั้นคุณสามารถใช้เพื่อสร้างไทม์แลปส์ได้)
  • มีหน้าเว็บที่แสดงข้อมูลสำหรับสภาวะปัจจุบันและประวัติบางส่วน (ชั่วโมง, วัน, 7 วัน, เดือน, ปีล่าสุด) ธีมของเว็บไซต์จะเปลี่ยนไปตามช่วงเวลาของวัน (4 ตัวเลือก: พระอาทิตย์ขึ้น พระอาทิตย์ตก กลางวันและกลางคืน)

ซอฟต์แวร์ทั้งหมดสำหรับบันทึกและแสดงข้อมูลอยู่ใน Github ฉันได้ทำการติดตามจุดบกพร่อง คำขอคุณสมบัติในนั้นด้วย:

github.com/kmkingsbury/raspberrypi-weather…

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

ขั้นตอนที่ 1: วัสดุ

วัสดุ
วัสดุ
วัสดุ
วัสดุ
วัสดุ
วัสดุ
วัสดุ
วัสดุ

อิเล็กทรอนิกส์:

  • สวิตช์กก 9 อัน (8 สำหรับทิศทางลม 1 สำหรับมาตรวัดปริมาณน้ำฝน หรือ 1 สำหรับความเร็วลมแทนเซ็นเซอร์ฮอลล์) ฉันใช้สิ่งเหล่านี้:
  • 1 Hall Sensor (สำหรับความเร็วลมเรียกว่าเครื่องวัดความเร็วลม) -
  • อุณหภูมิ (https://amzn.to/2RIHf6H)
  • ความชื้น (เซ็นเซอร์ความชื้นจำนวนมากมาพร้อมกับเซ็นเซอร์อุณหภูมิ) ฉันใช้ DHT11:
  • ความดัน (BMP มาพร้อมกับเซ็นเซอร์อุณหภูมิด้วย) ฉันใช้ BMP180 https://www.adafruit.com/product/1603 ผลิตภัณฑ์นี้เลิกผลิตแล้ว แต่มีเทียบเท่ากับ BMP280 (https://amzn.to/2E8nmhi)
  • โฟโตรีซีสเตอร์ (https://amzn.to/2seQFwd)
  • ชิป GPS หรือ USB GPS (https://amzn.to/36tZZv3)
  • แม่เหล็กแรงสูง 4 อัน (2 สำหรับเครื่องวัดความเร็วลม 1 สำหรับทิศทาง 1 สำหรับมาตรวัดปริมาณน้ำฝน) ฉันใช้แม่เหล็กหายาก ขอแนะนำ) (https://amzn.to/2LHBoKZ)
  • ตัวต้านทานสารพันจำนวนหนึ่ง ฉันมีชุดนี้ซึ่งพิสูจน์แล้วว่ามีประโยชน์อย่างยิ่งเมื่อเวลาผ่านไป:
  • MCP3008 - เพื่อแปลงอินพุตอนาล็อกเป็นดิจิตอลสำหรับ Raspberry Pi -

ฮาร์ดแวร์

  • Raspberry Pi - เดิมทีฉันใช้ 2 ตัวกับอแดปเตอร์ไร้สาย ตอนนี้ได้ 3 B+ kit พร้อมอแดปเตอร์มาด้วย (https://amzn.to/2P76Mop)
  • กล้อง Pi
  • อะแดปเตอร์แปลงไฟขนาด 5V ที่ทนทาน (กลายเป็นว่าน่ารำคาญมาก ในที่สุดฉันก็ได้ Adafruit มา มิฉะนั้น กล้องจะดึงน้ำมากเกินไปและ/จะแขวน Pi ได้ที่นี่: https://www.adafruit.com/products /501)

วัสดุ:

  • ตลับลูกปืนกันรุน 2 อัน (หรือตลับลูกปืนสเก็ตบอร์ดหรือโรลเลอร์สเก็ตก็ใช้ได้เช่นกัน) ฉันได้รับใน Amazon:
  • ตู้กันน้ำ 2 ตู้ (ฉันใช้ตู้ไฟฟ้าจากร้านกล่องใหญ่ในท้องที่) ไม่สำคัญหรอก แค่ต้องหาตู้ขนาดพอเหมาะที่จะมีพื้นที่เพียงพอและปกป้องทุกอย่างได้)
  • ท่อพีวีซีและฝาท้ายบางรุ่น (หลายขนาด)
  • ขายึดพีวีซี
  • แผ่นลูกแก้วบาง ๆ สองสามแผ่น (ไม่มีอะไรหรูหราเกินไป)
  • พลาสติกขัดแย้ง
  • สกรูขนาดเล็ก (ฉันใช้สลักเกลียวและน็อต #4)
  • เครื่องประดับต้นคริสต์มาสพลาสติก 2 ชิ้น - ใช้สำหรับเครื่องวัดความเร็วลม ฉันได้ของฉันที่ล็อบบี้งานอดิเรกในท้องถิ่น
  • เดือยขนาดเล็ก
  • ไม้อัดชิ้นเล็ก.

เครื่องมือ:

  • เดรเมล
  • ปืนกาว
  • หัวแร้ง
  • มัลติมิเตอร์
  • เจาะ

ขั้นตอนที่ 2: สิ่งที่แนบมาหลัก - Pi, GPS, กล้อง, Light

ตัวเครื่องหลัก - Pi, GPS, Camera, Light
ตัวเครื่องหลัก - Pi, GPS, Camera, Light
ตัวเครื่องหลัก - Pi, GPS, Camera, Light
ตัวเครื่องหลัก - Pi, GPS, Camera, Light
ตัวเครื่องหลัก - Pi, GPS, Camera, Light
ตัวเครื่องหลัก - Pi, GPS, Camera, Light
ตัวเครื่องหลัก - Pi, GPS, Camera, Light
ตัวเครื่องหลัก - Pi, GPS, Camera, Light

ตู้หลักประกอบด้วย PI, กล้อง, GPS และเซ็นเซอร์วัดแสง ได้รับการออกแบบมาให้กันน้ำได้เนื่องจากมีส่วนประกอบที่สำคัญทั้งหมด การวัดใช้จากตัวเครื่องระยะไกล และส่วนประกอบได้รับการออกแบบให้เปิดเผย/เปิดออกสู่องค์ประกอบต่างๆ

ขั้นตอน:

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

เอกสารแนบของฉันประกอบด้วย:

  • The raspberry pi (บน standoffs) - ต้องการชิป WIFI ไม่ต้องการใช้ Cat5e เข้าไปในสนามหลังบ้าน!
  • กล้อง (ยังขัดแย้ง)
  • ชิป GPS เชื่อมต่อผ่าน USB (โดยใช้สาย sparkfun FTDI: https://www.sparkfun.com/products/9718) - GPS ให้ละติจูดและลองจิจูดซึ่งก็ดี แต่ที่สำคัญกว่านั้นคือได้เวลาที่แม่นยำจาก จีพีเอส!
  • แจ็คอีเทอร์เน็ต/cat 5 สองตัวเพื่อเชื่อมต่อกล่องหุ้มหลักกับกล่องหุ้มอื่นที่มีเซ็นเซอร์ตัวอื่น นี่เป็นเพียงวิธีที่สะดวกในการใช้สายเคเบิลระหว่างกล่องทั้งสอง ฉันมีสายไฟประมาณ 12 เส้น และ cat5 สองตัวมีการเชื่อมต่อที่เป็นไปได้ 16 เส้น ดังนั้นฉันจึงมีพื้นที่สำหรับขยาย/เปลี่ยนแปลงสิ่งต่างๆ

มีหน้าต่างอยู่ด้านหน้าตู้ของฉันเพื่อให้กล้องมองออกไป เคสที่มีหน้าต่างนี้ช่วยปกป้องกล้อง แต่ฉันมีปัญหาที่ไฟ LED สีแดงบนกล้อง (เมื่อถ่ายภาพ) สะท้อนจากลูกแก้วและปรากฏขึ้นในภาพถ่าย ฉันใช้เทปสีดำเพื่อบรรเทาปัญหานี้และพยายามบล็อกมัน (และไฟ LED อื่นๆ จาก Pi และ GPS) แต่ยังไม่ 100%

ขั้นตอนที่ 3: 'กล่องควบคุมระยะไกล' สำหรับอุณหภูมิ ความชื้น ความดัน

'ตู้ควบคุมระยะไกล' สำหรับอุณหภูมิ ความชื้น ความดัน
'ตู้ควบคุมระยะไกล' สำหรับอุณหภูมิ ความชื้น ความดัน
'ตู้ควบคุมระยะไกล' สำหรับอุณหภูมิ ความชื้น ความดัน
'ตู้ควบคุมระยะไกล' สำหรับอุณหภูมิ ความชื้น ความดัน
'ตู้ควบคุมระยะไกล' สำหรับอุณหภูมิ ความชื้น ความดัน
'ตู้ควบคุมระยะไกล' สำหรับอุณหภูมิ ความชื้น ความดัน

นี่คือที่ที่ฉันจัดเก็บเซ็นเซอร์อุณหภูมิ ความชื้น และความดัน รวมถึง "ส่วนต่อ" สำหรับมาตรวัดปริมาณน้ำฝน ทิศทางลม และเซ็นเซอร์ความเร็วลม

ทุกอย่างตรงไปตรงมามาก หมุดที่นี่เชื่อมต่อผ่านสายอีเธอร์เน็ตกับหมุดที่จำเป็นบน Raspberry Pi

ฉันพยายามใช้เซ็นเซอร์ดิจิทัลในจุดที่ฉันทำได้ จากนั้นเพิ่มอะนาล็อกใดๆ ลงใน MCP 3008 ซึ่งใช้อะนาล็อกสูงสุด 8 ตัว ซึ่งมากเกินพอสำหรับความต้องการของฉัน แต่ให้พื้นที่ในการปรับปรุง/ขยาย

ตู้นี้เปิดสู่อากาศ (ต้องมีอุณหภูมิ ความชื้น และความดันที่ถูกต้อง) รูด้านล่างโผล่ออกมา ดังนั้นฉันจึงให้สเปรย์เคลือบซิลิโคน Conformal Coating ให้กับวงจรบางส่วน (คุณสามารถสั่งซื้อทางออนไลน์หรือที่อื่นเช่น Fry's Electronics) หวังว่ามันจะป้องกันโลหะจากความชื้นได้ แม้ว่าคุณจะต้องระวังและอย่าใช้กับเซ็นเซอร์บางตัว

ด้านบนของกล่องหุ้มยังเป็นตำแหน่งที่เซ็นเซอร์วัดความเร็วลมพอดี มันเป็นการโยนทิ้ง ฉันสามารถใส่ความเร็วลมหรือทิศทางลมไว้ด้านบนได้ ฉันไม่เห็นข้อดีที่สำคัญของข้อใดข้อหนึ่งเหนือสิ่งอื่นใด โดยรวมแล้ว คุณต้องการให้เซ็นเซอร์ทั้งสอง (ไดร์ลมและความเร็ว) สูงพอที่อาคาร รั้ว สิ่งกีดขวางจะไม่รบกวนการวัด

ขั้นตอนที่ 4: เกจวัดปริมาณน้ำฝน

เครื่องวัดปริมาณน้ำฝน
เครื่องวัดปริมาณน้ำฝน
เครื่องวัดปริมาณน้ำฝน
เครื่องวัดปริมาณน้ำฝน
เครื่องวัดปริมาณน้ำฝน
เครื่องวัดปริมาณน้ำฝน

ฉันทำตามคำแนะนำนี้เป็นหลักเพื่อสร้างมาตรวัดจริง:

www.instructables.com/id/Arduino-Weather-St…

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

ประเด็นสำคัญ:

  • เซ็นเซอร์เป็นสวิตช์กกอย่างง่ายและแม่เหล็กเหมือนการกดปุ่มในรหัส RaspberryPi ฉันนับถังอย่างง่าย ๆ เมื่อเวลาผ่านไปแล้วทำการแปลงเป็น "นิ้วของฝน" ในภายหลัง
  • ทำให้ใหญ่พอที่จะเก็บน้ำได้มากพอที่จะทิปได้ แต่ไม่มากจนต้องใช้มากจึงจะให้ทิป รอบแรกของฉัน ฉันทำให้แต่ละถาดไม่ใหญ่พอที่จะเติมและเริ่มระบายออกทางขอบก่อนที่จะพลิกคว่ำ
  • ฉันยังพบว่าน้ำที่เหลือสามารถเพิ่มข้อผิดพลาดในการวัดได้ ความหมายคือ แห้งสนิทต้องใช้ X หยดเพื่อเติมด้านหนึ่งและให้ทิป เมื่อเปียกแล้วจึงใช้ Y หยด (ซึ่งน้อยกว่า X) เพื่อเติมและให้ทิป มีไม่มากแต่ได้รับผลกระทบเมื่อพยายามสอบเทียบและรับการวัด "1 โหลดเท่ากับเท่าใด" ที่ดี
  • ทำให้สมดุล คุณสามารถโกงได้โดยเพิ่มกาวปืนกาวที่ปลายด้านล่างหากด้านหนึ่งหนักกว่าอีกข้างมาก แต่คุณต้องการให้สมดุลที่สุดเท่าที่จะทำได้
  • คุณสามารถเห็นในภาพที่ฉันติดตั้งอุปกรณ์ทดสอบขนาดเล็กโดยใช้ฟองน้ำและที่ยึดไม้เพื่อทดสอบและปรับสมดุลให้เหมาะสมก่อนทำการติดตั้ง

ขั้นตอนที่ 5: ทิศทางลม

ทิศทางลม
ทิศทางลม
ทิศทางลม
ทิศทางลม
ทิศทางลม
ทิศทางลม

นี่เป็นใบพัดสภาพอากาศที่เรียบง่าย ฉันใช้อุปกรณ์อิเล็กทรอนิกส์จากระบบ Maplin:

www.philpot.me/weatherinsider.html

ประเด็นสำคัญ:

นี่คือเซ็นเซอร์อะนาล็อก สวิตช์กกแปดตัวที่รวมกับตัวต้านทานต่างๆ แบ่งเอาต์พุตออกเป็นชิ้นๆ เพื่อให้ฉันสามารถระบุพิกัดที่เซ็นเซอร์อยู่ในค่าได้ (แนวคิดอธิบายไว้ในคำแนะนำนี้:

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

ขั้นตอนที่ 6: ความเร็วลม

ความเร็วลม
ความเร็วลม
ความเร็วลม
ความเร็วลม
ความเร็วลม
ความเร็วลม

อันนี้ฉันหันไปหาชุมชนที่สอนได้อีกครั้งและพบและปฏิบัติตามคำแนะนำนี้:

www.instructables.com/id/Data-Logging-Anemo…

ประเด็นสำคัญ:

  • คุณสามารถใช้เซ็นเซอร์ฮอลล์หรือเปลี่ยนเป็นเซ็นเซอร์รีดได้เช่นกัน เซ็นเซอร์ Hall เป็นเซ็นเซอร์อะนาล็อกมากกว่า ดังนั้นหากคุณใช้งานในรูปแบบดิจิทัล เช่น การกดปุ่ม คุณต้องแน่ใจว่าค่าที่อ่าน/แรงดันไฟฟ้าสูงพอที่จะทำหน้าที่เหมือนการกดปุ่มจริง มากกว่าไม่เพียงพอ.
  • ขนาดของถ้วยก็สำคัญ ความยาวของไม้ก็เช่นกัน! เดิมทีฉันใช้ลูกปิงปองและมันเล็กเกินไป ฉันยังใส่มันไว้บนแท่งยาวซึ่งใช้งานไม่ได้เช่นกัน ฉันหงุดหงิดมากและเจอคำแนะนำนั้น Ptorelli อธิบายได้ดีมาก และมันช่วยฉันได้เมื่อการออกแบบดั้งเดิมของฉันไม่ได้ผลเช่นกัน

ขั้นตอนที่ 7: ซอฟต์แวร์

ซอฟต์แวร์
ซอฟต์แวร์
ซอฟต์แวร์
ซอฟต์แวร์

ซอฟต์แวร์เขียนด้วยภาษา Python เพื่อบันทึกข้อมูลจากเซ็นเซอร์ ฉันใช้ไลบรารี Git ของบุคคลที่สามจาก Adafruit และอื่นๆ เพื่อรับข้อมูลจากเซ็นเซอร์และ GPS นอกจากนี้ยังมีงาน cron ที่ดึงข้อมูล API บางส่วนเช่นกัน ส่วนใหญ่จะอธิบาย/อธิบายไว้ในเอกสารประกอบ Git ที่ docs/install_notes.txt

ซอฟต์แวร์เว็บอยู่ใน PHP เพื่อแสดงบนเว็บเพจในขณะที่ใช้ YAML สำหรับไฟล์ปรับแต่งและแน่นอนว่าเครื่องมือ RRD เพื่อจัดเก็บและสร้างกราฟข้อมูล

มันใช้ Weather Underground API เพื่อรับข้อมูลที่น่าสนใจบางอย่างที่เซ็นเซอร์ไม่สามารถดึงได้: บันทึก Hi's และ Lows, Phase of the Moon, Sunset และ Sunrise นอกจากนี้ยังมี Tides ที่มีอยู่ใน API ซึ่งฉันคิดว่าเรียบร้อยมาก แต่ฉันอาศัยอยู่ในออสติน เท็กซัส ซึ่งอยู่ไกลจากน้ำมาก

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

ซอฟต์แวร์จะผ่านการเปลี่ยนธีมขึ้นอยู่กับช่วงเวลาของวัน มี 4 ขั้นตอน หากเวลาปัจจุบันคือ + หรือ - 2 ชั่วโมงนับจากพระอาทิตย์ขึ้นหรือพระอาทิตย์ตก คุณจะได้รับธีมพระอาทิตย์ขึ้นและพระอาทิตย์ตกตามลำดับ (ตอนนี้เป็นเพียงพื้นหลังที่แตกต่างกัน ฉันอาจจะใช้สีแบบอักษร/เส้นขอบที่แตกต่างกันในอนาคต) ในทำนองเดียวกันนอกช่วงเหล่านั้นจะให้ธีมกลางวันหรือกลางคืน

ขอบคุณสำหรับการอ่าน หากคุณต้องการดูรูปภาพและวิดีโอเพิ่มเติมเกี่ยวกับโครงการของฉัน ให้ลองดูช่อง Instagram และ YouTube ของฉัน

การแข่งขันวันพาย/อี
การแข่งขันวันพาย/อี
การแข่งขันวันพาย/อี
การแข่งขันวันพาย/อี

รางวัลที่สามในการประกวด Pi/e Day