สารบัญ:

สถานีตรวจอากาศด้วย Arduino, BME280 & จอแสดงผลเพื่อดูแนวโน้มภายใน 1-2 วันที่ผ่านมา: 3 ขั้นตอน (พร้อมรูปภาพ)
สถานีตรวจอากาศด้วย Arduino, BME280 & จอแสดงผลเพื่อดูแนวโน้มภายใน 1-2 วันที่ผ่านมา: 3 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: สถานีตรวจอากาศด้วย Arduino, BME280 & จอแสดงผลเพื่อดูแนวโน้มภายใน 1-2 วันที่ผ่านมา: 3 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: สถานีตรวจอากาศด้วย Arduino, BME280 & จอแสดงผลเพื่อดูแนวโน้มภายใน 1-2 วันที่ผ่านมา: 3 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: DIY Advanced Arduino Barometer 2024, ธันวาคม
Anonim
สถานีตรวจอากาศพร้อม Arduino, BME280 & จอแสดงผลเพื่อดูแนวโน้มภายใน 1-2 วันที่ผ่านมา
สถานีตรวจอากาศพร้อม Arduino, BME280 & จอแสดงผลเพื่อดูแนวโน้มภายใน 1-2 วันที่ผ่านมา
สถานีตรวจอากาศพร้อม Arduino, BME280 & จอแสดงผลเพื่อดูแนวโน้มภายใน 1-2 วันที่ผ่านมา
สถานีตรวจอากาศพร้อม Arduino, BME280 & จอแสดงผลเพื่อดูแนวโน้มภายใน 1-2 วันที่ผ่านมา
สถานีตรวจอากาศพร้อม Arduino, BME280 & จอแสดงผลเพื่อดูแนวโน้มภายใน 1-2 วันที่ผ่านมา
สถานีตรวจอากาศพร้อม Arduino, BME280 & จอแสดงผลเพื่อดูแนวโน้มภายใน 1-2 วันที่ผ่านมา
สถานีตรวจอากาศพร้อม Arduino, BME280 & จอแสดงผลเพื่อดูแนวโน้มภายใน 1-2 วันที่ผ่านมา
สถานีตรวจอากาศพร้อม Arduino, BME280 & จอแสดงผลเพื่อดูแนวโน้มภายใน 1-2 วันที่ผ่านมา

สวัสดี!

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

ตัวอย่างเช่น ความชื้นจะลดลงเมื่ออุณหภูมิของอากาศสูงขึ้น เนื่องจากอากาศร้อนสามารถดูดซับความชื้นได้มากกว่าอากาศเย็น หากความชื้นสัมพัทธ์อยู่ที่ประมาณ 60% ที่ 20 ° C ดังนั้นที่ 25 ° C อากาศก็สามารถดูดซับความชื้นได้มากขึ้นในแง่สัมบูรณ์ ดังนั้นความชื้นสัมพัทธ์จึงไม่ใช่ 60% อีกต่อไป ตัวอย่างเช่น ลดเพียง 50%

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

ขั้นตอนที่ 1: อะไหล่

อะไหล่
อะไหล่
อะไหล่
อะไหล่
อะไหล่
อะไหล่
อะไหล่
อะไหล่

สำหรับสถานีตรวจอากาศนี้คุณต้องการเพียง 5 ส่วน:

* Arduino mega: อีเบย์ arduino mega

* เซ็นเซอร์สภาพอากาศ BME280: อีเบย์ BME280

* จอแสดงผล 320x480 พิกเซลสำหรับ Arduino Mega: ebay 320x480 display

* + แหล่งจ่ายไฟ 9V: แหล่งจ่ายไฟอีเบย์

* สายไฟ

ค่าใช้จ่ายทั้งหมดน้อยกว่า $ 25 เท่านั้น

ขั้นตอนที่ 2: รหัส Arduino

รหัส Arduino
รหัส Arduino
รหัส Arduino
รหัส Arduino
รหัส Arduino
รหัส Arduino

วงจรนั้นง่ายมาก คุณเพียงแค่ต้องเชื่อมต่อเซ็นเซอร์กับ Arduino mega ด้วยวิธีนี้:

วิน +5V

GND GND

SDA พิน 20

SCL พิน 21

จอแสดงผลเสียบเข้ากับแถบขั้วต่อบน Arduino mega เท่านั้น

นี่คือลิงค์สำหรับห้องสมุด Arduino ที่คุณต้องการ:

BME280-library:

ไลบรารีเซ็นเซอร์ทั่วไป:

หัวใจของสถานีตรวจอากาศแห่งนี้ก็คือการแสดงข้อมูลสภาพอากาศแบบกราฟิก ในขณะนี้ ค่าต่างๆ จะอัปเดตทุกๆ 6 นาที และกราฟจะเลื่อนไปทางซ้าย 1 พิกเซล ด้วยวิธีนี้สามารถบันทึก 1.5 วันที่ผ่านมาได้ แน่นอนว่าสิ่งนี้สามารถเปลี่ยนแปลงได้ตลอดเวลา เฉพาะค่า 360000 ms (= 6 นาที) และแน่นอนว่าต้องเปลี่ยนแกนเวลาเป็นชั่วโมง ต่อไปนี้คือบรรทัดที่คุณต้องเปลี่ยน:

time_neu = มิลลิวินาที ();

if(time_neu < time_alt) // เพื่อหลีกเลี่ยงปัญหาหลังจาก millis-overflow

{

time_next = 0 + 360000;

}

if(time_neu > time_next && time_next >= 360000) // การวัดใหม่หลังจาก 6 นาที

{

ฉันได้ตัดสินใจที่จะรักษามาตราส่วนอุณหภูมิ ความกดอากาศ และความชื้นไว้ไม่เปลี่ยนแปลง เนื่องจากจะช่วยให้คุณประเมินได้อย่างรวดเร็วเมื่อเวลาผ่านไป ไม่ว่าความกดอากาศจะสูง ปานกลาง หรือต่ำ ขึ้นอยู่กับตำแหน่งของการอ่านค่าปัจจุบัน ถ้าฉันปรับขนาดครั้งแล้วครั้งเล่า ฉันจะจำสิ่งนี้ไม่ได้ในแวบแรก แกนเวลาอยู่ที่ตำแหน่ง y = 290 พิกเซล เครื่องหมายบนแกน y ห่างกัน 45 พิกเซล หากคุณต้องการแสดงความดันอากาศตั้งแต่ 940 mbar ถึง 1,000 mbar ในขั้นตอนที่ 10 mbar ให้ดำเนินการดังนี้:

ขั้นแรก ให้ตั้งสมการทั่วไป y = k * x + d ตอนนี้คุณใช้คู่ค่า 2 คู่ (x = 940, y = 290) และ (x = 950, y = 245) นี่ให้สมการ 2 สมการกับค่าที่ไม่ทราบค่าสองตัว k และ d: 290 = k * 940 + d และ 245 = k * 950 + d โดยการลบสมการทั้งสองเราได้รับ: 290 - 245 = k * 940 - k * 950 + d - d d ที่ไม่รู้จักจะหายไปด้วยวิธีนี้และเราได้รับสำหรับ k = - 45/10 = -4.5 ค่าของ k นี้อยู่ในหนึ่งในสองสมการเริ่มต้น: 290 = -4.5 * 940 + d ด้วยวิธีนี้จะได้รับค่าสำหรับ d โดยเฉพาะ d = 4520

หากคุณต้องการความกดอากาศ เช่น แสดงเพียง 955 mbar ถึง 985 mbar คุณต้องใส่คู่ของค่า (955, 290) และ (960, 245) ลงในสมการเส้นตรง จากนั้นได้ค่า k = -9 และ d = 8885 ในทำนองเดียวกัน เราจะคำนวณสมการเส้นตรงสำหรับอุณหภูมิและความชื้นในอากาศ สมการ 3 เหล่านี้ปรากฏในโปรแกรม:

สำหรับ (i = 0; i <= 348; i ++)

{

ถ้า (ความชื้น ! = -66)

{

myGLCD.setColor (255, 0, 0);

//myGLCD.drawPixel(81 + i, -4.5 * อุณหภูมิ + 200);

myGLCD.drawLine (81 + i, -4.5 * อุณหภูมิ + 200.81 + i + 1, -4.5 * อุณหภูมิ [i + 1] + 200);

myGLCD.setColor (0, 255, 0);

//myGLCD.drawPixel(81 + i, -4.5 * ความชื้น + 380);

myGLCD.drawLine (81 + i, -4.5 * ความชื้น + 380.81 + i + 1, -4.5 * ความชื้น [i + 1] + 380);

myGLCD.setColor (0, 0, 255);

//myGLCD.drawPixel(81 + i, -4.5 * ความดัน + 4520);

myGLCD.drawLine (81 + i, -9.0 * ความดัน + 8885, 81 + i + 1, -9.0 * ความดัน [i + 1] + 8885);

}

}

ขั้นตอนที่ 3: ผลลัพธ์

Image
Image
ผลลัพธ์
ผลลัพธ์
ผลลัพธ์
ผลลัพธ์

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

ฉันจะดีใจถ้านักอุตุนิยมวิทยางานอดิเรกคนใดคนหนึ่งพยายามที่จะซ่อมสถานีอากาศของฉัน การเปรียบเทียบกับสถานีตรวจวัดอย่างเป็นทางการ (เช่น มหาวิทยาลัยกราซ/ออสเตรีย) แสดงให้เห็นถึงความสามารถในการใช้งานของเส้นกราฟการวัด

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

  • https://www.instructables.com/id/DIY-LED-photomete…
  • www.instructables.com/id/DIY-Wind-Tunnel-a…
  • www.instructables.com/id/Simple-Autorange-…

ขอบคุณมากสำหรับสิ่งนี้

หากคุณสนใจโครงการฟิสิกส์เพิ่มเติม นี่คือช่อง youtube ของฉัน:

โครงการฟิสิกส์เพิ่มเติม:

ในแง่นี้ ยูเรก้า …

แนะนำ: