สารบัญ:

สถานีตรวจอากาศแบบใช้มือถือ: 4 ขั้นตอน
สถานีตรวจอากาศแบบใช้มือถือ: 4 ขั้นตอน

วีดีโอ: สถานีตรวจอากาศแบบใช้มือถือ: 4 ขั้นตอน

วีดีโอ: สถานีตรวจอากาศแบบใช้มือถือ: 4 ขั้นตอน
วีดีโอ: ดูสภาพอากาศ จากดาวเทียม ผ่านมือถือ ทุกเครื่อง | ดูฝนฟ้าอากาศผ่านมือถือ | เช็คฝนฟ้าจากดาวเทียม 2024, พฤศจิกายน
Anonim
สถานีตรวจอากาศแบบใช้มือถือ
สถานีตรวจอากาศแบบใช้มือถือ
สถานีตรวจอากาศแบบใช้มือถือ
สถานีตรวจอากาศแบบใช้มือถือ
สถานีตรวจอากาศแบบใช้มือถือ
สถานีตรวจอากาศแบบใช้มือถือ

ในคำแนะนำนี้ เราจะใช้ Arduino, จอแสดงผล oled และเซ็นเซอร์สิ่งแวดล้อม SparkFun ร่วมกับเซ็นเซอร์ CCS811 และ BME280 บนบอร์ดเพื่อสร้างอุปกรณ์พกพาที่วัดอุณหภูมิ ความชื้น ระดับ TVOC ความดันบรรยากาศ และระดับคาร์บอนไดออกไซด์ คุณสามารถใช้ Arduino กับรหัสที่ให้มา แต่ฉันใช้ SparkFun Qwiic pro micro หากคุณเป็นมือใหม่ เราขอแนะนำให้คุณใช้ส่วนเดียวกันกับที่ฉันใช้อยู่ เพื่อให้ง่ายขึ้น ฉันเลือกบอร์ดไมโคร SparkFun Qwiic pro ด้วยขนาดที่เล็กและตัวเชื่อมต่อ Qwiic ทำให้ง่ายต่อการเชื่อมต่อส่วนประกอบของคุณ หากคุณใช้บอร์ดอื่น อย่าลืมซื้อหมวก Qwiic, phat หรือ shield เพื่อให้พอดีกับบอร์ดของคุณ

เสบียง:

  • SparkFun Environmental Combo Breakout -
  • SparkFun Micro OLED ฝ่าวงล้อม -
  • SparkFun Qwiic Pro Micro -
  • สายควิก 50 มม. -
  • กล่องโปรเจ็กต์ ขนาดตามส่วนประกอบของคุณ ฉันใช้ประมาณ 3 x 2 x 1 -
  • ตัวเลือกเสริม: หากคุณใช้ Qwiic Pro Micro คุณอาจต้องใช้สาย usb-c (หากยังไม่มี) สำหรับการจ่ายไฟและการตั้งโปรแกรม
  • มุ้งลวด ประมาณ 1.5 x 1.5 นิ้ว
  • สกรู (ดูภาพด้านบน)

เครื่องมือ:

  • แท่งกาวร้อนและปืนกาวร้อน
  • กรรไกร
  • ใบมีดโกนหรือมีดเอ็กซ์แอคโต สามารถตัดผ่านกล่องโปรเจ็กต์ของคุณ

ขั้นตอนที่ 1: ทำเครื่องหมายและตัดรูและใส่ในหน้าจอหน้าต่าง

ทำเครื่องหมายและตัดรูและใส่ในหน้าจอหน้าต่าง
ทำเครื่องหมายและตัดรูและใส่ในหน้าจอหน้าต่าง
ทำเครื่องหมายและตัดรูและใส่ในหน้าจอหน้าต่าง
ทำเครื่องหมายและตัดรูและใส่ในหน้าจอหน้าต่าง
ทำเครื่องหมายและตัดรูและใส่ในหน้าจอหน้าต่าง
ทำเครื่องหมายและตัดรูและใส่ในหน้าจอหน้าต่าง

เราจะทำเครื่องหมายและเจาะรูสำหรับเซ็นเซอร์ด้านสิ่งแวดล้อม oled และขั้วต่อ USB-C สำหรับการตั้งโปรแกรมและการจ่ายไฟ

  1. จัดเรียงส่วนประกอบของคุณในตำแหน่งที่คุณต้องการและทำเครื่องหมายรูสกรู
  2. ทำเครื่องหมายสี่เหลี่ยมสำหรับ oled ขนาดสี่เหลี่ยมจัตุรัสของหน้าจอและสำหรับเซ็นเซอร์สิ่งแวดล้อม สี่เหลี่ยมที่ใหญ่กว่าเล็กน้อยที่เซ็นเซอร์ 2 ตัว (ดูภาพด้านบน)
  3. ทำเครื่องหมายช่องว่างสำหรับขั้วต่อ USB-C บอร์ด Qwiic Pro Micro ของฉันมีการบัดกรีส่วนหัวอยู่แล้ว ดังนั้นฉันจึงใส่ลงในแผ่นโฟมแล้วทำเครื่องหมาย หากของคุณไม่เป็นเช่นนั้น ให้วางราบกับด้านล่างของเคสเพื่อทำเครื่องหมายรู
  4. เจาะรูที่ทำเครื่องหมายไว้และตัดขั้วต่อ USB-C ออก รูที่เจาะควรมีขนาดใหญ่พอที่จะให้สกรูผ่านได้
  5. ตัดฉากกั้นหน้าต่างสี่เหลี่ยมให้ใหญ่กว่ารูสำหรับเซ็นเซอร์เล็กน้อย ตัดช่องว่างบนหน้าจอหน้าต่างสำหรับรูสกรูและเสายึด (ดูภาพด้านบน)
  6. ติดกาวหน้าจอให้เข้าที่

ขั้นตอนที่ 2: Mount Oled และ Sensor

Mount Oled และเซ็นเซอร์
Mount Oled และเซ็นเซอร์
Mount Oled และเซ็นเซอร์
Mount Oled และเซ็นเซอร์
Mount Oled และเซ็นเซอร์
Mount Oled และเซ็นเซอร์

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

ขั้นตอนที่ 3: ติดตั้ง Arduino และเชื่อมต่อส่วนประกอบ

ติดตั้ง Arduino และเชื่อมต่อส่วนประกอบ
ติดตั้ง Arduino และเชื่อมต่อส่วนประกอบ
ติดตั้ง Arduino และเชื่อมต่อส่วนประกอบ
ติดตั้ง Arduino และเชื่อมต่อส่วนประกอบ
ติดตั้ง Arduino และเชื่อมต่อส่วนประกอบ
ติดตั้ง Arduino และเชื่อมต่อส่วนประกอบ
  1. บอร์ด Qwiic Pro Micro ของฉันมีการบัดกรีส่วนหัวอยู่แล้ว ดังนั้นฉันจึงใส่โฟมลงไปแล้วติดกาว หากคุณไม่มีส่วนหัว ให้ทากาวที่ด้านล่างของเคส ตรวจสอบให้แน่ใจว่ามีพื้นที่เพียงพอสำหรับการเชื่อมต่อสายเคเบิล Qwiic
  2. เชื่อมต่อส่วนประกอบต่างๆ ด้วยขั้วต่อ Qwiic ไม่ว่าคำสั่งหรือด้านของตัวเชื่อมต่อ Qwiic นั้นไม่สำคัญ ดูภาพด้านบนเพื่อความกระจ่าง
  3. ตอนนี้คุณสามารถรวมกล่องโครงการของคุณเข้าด้วยกัน ทำให้สาย Qwiic เชื่อมต่ออย่างแน่นหนาและไม่ถูกหนีบ

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

เพื่อให้ไมโครบอร์ด Qwiic pro ของคุณใช้งานได้ ให้ทำตามบทช่วยสอนนี้

เมื่อเสร็จแล้ว รหัสอยู่ด้านล่างของคุณสามารถค้นหาได้ใน GitHub ที่นี่

#include #include #include #include #define PIN_RESET 9#define DC_JUMPER 1#define CCS811_ADDR 0x5B // ค่าเริ่มต้น I2C AddressMicroOLED oled (PIN_RESET, DC_JUMPER);CCS811 myCCS811(CCS811_ADDR);BME280 myBME280 (100) หน่วงเวลาการตั้งค่า (); Wire.begin(); oled.begin(); // เริ่มต้น OLED oled.clear(ALL); // ล้างหน่วยความจำภายในของจอแสดงผล oled.display(); // แสดงสิ่งที่อยู่ในบัฟเฟอร์ (หน้าจอเริ่มต้น) oled.clear(PAGE); // ล้างบัฟเฟอร์ randomSeed(analogRead(A0) + analogRead(A1)); // เริ่มต้น BME280 // สำหรับ I2C ให้เปิดใช้งานสิ่งต่อไปนี้และปิดใช้งานส่วน SPI myBME280.settings.commInterface = I2C_MODE; myBME280.settings. I2CAที่อยู่ = 0x77; myBME280.settings.runMode = 3; // โหมดปกติ myBME280.settings.tStandby = 0; myBME280.settings.filter = 4; myBME280.settings.tempOverSample = 5; myBME280.settings.pressOverSample = 5; myBME280.settings.humidOverSample = 5; CCS811Core::CCS811_Status_e returnCode = myCCS811.beginWithStatus (); CCS811Core::CCS811_Status_e returnCode = myCCS811.beginWithStatus (); //การเรียก.begin() ทำให้การตั้งค่าโหลดล่าช้า(10); //ตรวจสอบให้แน่ใจว่าเซ็นเซอร์มีเวลาเพียงพอในการเปิด BME280 ต้องการ 2ms เพื่อเริ่มต้น ไบต์ id = myBME280.begin(); //ส่งคืน ID ของ 0x60 หากดีเลย์สำเร็จ (10000); }เป็นโมฆะ print_data() { oled.setFontType(0); oled.setCursor(0, 0); oled.print("TMP"); oled.setCursor(25, 0); oled.print(รอบ(myBME280.readTempF())); oled.setCursor(0, 10); oled.print("ฮึ่ม"); oled.setCursor(25, 10); oled.print(รอบ(myBME280.readFloatHumidity())); oled.setCursor(0, 20); oled.print("VOC"); oled.setCursor(25, 20); oled.print(รอบ(myCCS811.getTVOC())); oled.setCursor(0, 30); oled.print("บาร์"); oled.setCursor(25, 30); oled.print(รอบ(myBME280.readFloatPressure())); oled.setCursor(0, 40); oled.print("CO2"); oled.setCursor(25, 40); oled.print(รอบ(myCCS811.getCO2())); oled.display(); } วงเป็นโมฆะ () { ล่าช้า (2000); // ตรวจสอบเพื่อดูว่ามีข้อมูลหรือไม่ถ้า (myCCS811.dataAvailable ()) (// การเรียกใช้ฟังก์ชันนี้จะอัปเดตตัวแปร tVOC และ eCO2 ทั่วโลก myCCS811.readAlgorithmResults (); //printData ดึงค่าของ tVOC และ eCO2 float BMEtempC = myBME280.readTempC(); float BMEhumid = myBME280.readFloatHumidity(); // นี่จะส่งข้อมูลอุณหภูมิไปที่ CCS811 myCCS811.setEnvironmentalData(BMEhumid, BMEtempC); } print_data(); ล่าช้า (2000); }

วางโค้ดใน Arduino IDE แล้วคอมไพล์ หน้าจอควรแสดงโลโก้ SparkFun เป็นเวลาสองสามวินาที จากนั้นจึงเริ่มแสดงเงื่อนไขสด เงื่อนไขจะอัปเดตทุกๆ 2 วินาที ขอบคุณที่อ่าน.

มีคำถาม?

แสดงความคิดเห็นหรือส่งอีเมลถึงฉันที่นี่

แนะนำ: