สารบัญ:
วีดีโอ: สถานีตรวจอากาศด้วย Arduino, BME280 & จอแสดงผลเพื่อดูแนวโน้มภายใน 1-2 วันที่ผ่านมา: 3 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
สวัสดี!
มีการแนะนำสถานีตรวจอากาศที่นี่แล้ว โดยจะแสดงความกดอากาศ อุณหภูมิ และความชื้นในปัจจุบัน สิ่งที่พวกเขาขาดจนถึงตอนนี้คือการนำเสนอหลักสูตรภายใน 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 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: ผลลัพธ์
หนึ่งคำในวิดีโอ: หากต้องการขยายกราฟให้มองเห็นได้ ฉันลดเวลาลงเหลือ 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 ของฉัน:
โครงการฟิสิกส์เพิ่มเติม:
ในแง่นี้ ยูเรก้า …
แนะนำ:
สถานีตรวจอากาศด้วย Arduino: 14 ขั้นตอน
Weather Station ด้วย Arduino: สร้างสถานีตรวจอากาศโดยใช้ Arduino
สถานีตรวจอากาศในห้องโดยใช้ Arduino & BME280: 4 ขั้นตอน
Room Weather Station โดยใช้ Arduino & BME280: ก่อนหน้านี้ฉันแชร์สถานีตรวจอากาศอย่างง่ายซึ่งแสดงอุณหภูมิและความชื้นของพื้นที่ ปัญหาคือต้องใช้เวลาในการอัปเดตและข้อมูลไม่ถูกต้อง ในบทช่วยสอนนี้ เราจะทำการตรวจสอบสภาพอากาศในร่ม
สร้าง Apple HomeKit Temperature Sensor (BME280) โดยใช้ RaspberryPI และ BME280: 5 ขั้นตอน
สร้าง Apple HomeKit Temperature Sensor (BME280) โดยใช้ RaspberryPI และ BME280: ฉันได้ลองใช้งานอุปกรณ์ IOT ในช่วงไม่กี่เดือนที่ผ่านมา และได้ปรับใช้เซ็นเซอร์ต่างๆ ประมาณ 10 ตัวเพื่อตรวจสอบสภาพรอบๆ บ้านและกระท่อมของฉัน และเดิมทีฉันเริ่มใช้เซ็นเซอร์วัดความชื้นสัมพัทธ์ AOSONG DHT22
อีกหนึ่งสถานีตรวจอากาศ Arduino (ESP-01 & BMP280 & DHT11 & OneWire): 4 ขั้นตอน
สถานีตรวจอากาศ Arduino อีกหนึ่งสถานี (ESP-01 & BMP280 & DHT11 & OneWire): ที่นี่คุณสามารถค้นหาการวนซ้ำของการใช้ OneWire ด้วยหมุด ESP-01 เพียงไม่กี่ตัว อุปกรณ์ที่สร้างขึ้นในคำสั่งนี้เชื่อมต่อกับเครือข่าย Wifi ของคุณ ตัวเลือก (คุณต้องมีข้อมูลประจำตัว…) รวบรวมข้อมูลทางประสาทสัมผัสจาก BMP280 และ DHT11
ESP32 WiFi Weather Station พร้อมเซ็นเซอร์ BME280: 7 ขั้นตอน (พร้อมรูปภาพ)
ESP32 WiFi Weather Station พร้อมเซ็นเซอร์ BME280: เพื่อน ๆ ที่รักยินดีต้อนรับสู่บทช่วยสอนอื่น! ในบทช่วยสอนนี้ เราจะสร้างโครงการสถานีตรวจอากาศที่เปิดใช้งาน WiFi! เราจะใช้ชิป ESP32 ใหม่ที่น่าประทับใจพร้อมกับจอแสดงผล Nextion เป็นครั้งแรก ในวิดีโอนี้เราจะ