การวัดและส่งข้อมูลความกดอากาศจากระยะไกล: ศูนย์กลางสภาพอากาศ Bluetooth
การเดินสายไฟยาว 15 เมตร ออกไปนอกหน้าต่างห้องนอนเพื่ออ่านค่าเซ็นเซอร์อุณหภูมิเป็นเรื่องที่ล้าสมัยอย่างยิ่ง Bluetooth Weather Station นำเสนอสถาปัตยกรรมการตรวจสอบสภาพอากาศแบบไร้สายอย่างสมบูรณ์และเป็นอิสระ! โดยใช้อุปกรณ์ราคาถูกอย่าง Arduino Nano ร่วมกับชุดเซ็นเซอร์ที่ซับซ้อนอย่าง BMP280 Barometric Pressure และ DHT11 Humidity โหนดนี้จะวัดพารามิเตอร์ทางความร้อนเฉพาะของสภาพแวดล้อมภายนอกอาคารได้อย่างอิสระและไม่หยุดหย่อน! แทนที่จะใช้ LCD ที่ใช้งานยาก โปรเจกต์นี้จะรวบรวมตัวแปรทั้งหมดไว้อย่างสมบูรณ์แบบในรูปแบบ Serial String matrix ขนาดใหญ่ และส่งข้อมูลอย่างปลอดภัยผ่านคลื่น 2.4GHz ด้วยโมดูล Bluetooth HC-05 ทำให้คุณสามารถเปิด Smartphone Terminal ของคุณได้ทันที และรับข้อมูลการวิเคราะห์สภาพอากาศแบบเรียลไทม์ได้อย่างต่อเนื่องจากเตียงนอนของคุณ!

การจัดโครงสร้างการส่งข้อมูลแบบ Serial (การรวม DHT และ BMP เข้าด้วยกัน)
Arduino ทำหน้าที่เป็นผู้ประสานงานทางคณิตศาสตร์เพียงผู้เดียว
- BMP280 สื่อสารโดยใช้โปรโตคอล I2C
<Wire.h>ขนาดใหญ่ (ขาA4, A5) โดยตรง - DHT11 สื่อสารผ่านโปรโตคอล 1-Wire ที่กำหนดเองซึ่งเข้มงวดอย่างไม่น่าเชื่อ
- ทุกๆ 2000 มิลลิวินาที โปรเซสเซอร์จะเรียกใช้ทั้งสองไลบรารีโดยตรง, ดึงค่า
floatที่แท้จริง, จัดรูปแบบอย่างสวยงามโดยใช้ตัวคั่นข้อความธรรมดา และส่งออกทั้งหมดผ่านขาSoftwareSerial!
#include <SoftwareSerial.h>
#include <DHT.h>
#include <Adafruit_BMP280.h>
SoftwareSerial BTSerial(10, 11); // TX explicitly routed via 1K/2K Voltage Divider
DHT dht(2, DHT11);
Adafruit_BMP280 bmp;
void setup() {
BTSerial.begin(9600); // Initialize the HC-05 2.4GHz RF Link
dht.begin();
bmp.begin(0x76); // Initialize I2C Barometer hardware!
}
void loop() {
float currentTemp = dht.readTemperature();
float currentHumid = dht.readHumidity();
float currentPressure = bmp.readPressure() / 100.0; // Math translation to standard hPa units!
// Package entirely as a single contiguous Android-readable string!
BTSerial.print("Temp: ");
BTSerial.print(currentTemp);
BTSerial.print(" C | Humid: ");
BTSerial.print(currentHumid);
BTSerial.print(" % | Pressure: ");
BTSerial.print(currentPressure);
BTSerial.println(" hPa"); // Explicit carriage return triggers the screen update on the phone!
delay(2000); // Absolute lockout. The DHT11 crashes totally if queried faster than 2.0s!
}
การสร้างกล่องหุ้มภายนอกที่ปรับปรุงการใช้พลังงานแบตเตอรี่
การวางเซ็นเซอร์ไว้ภายนอกอาคารจะทำให้พวกมันเผชิญกับความเสียหายจากสิ่งแวดล้อมที่ร้ายแรงได้โดยตรง!
- การออกแบบ Stevenson Screen: คุณต้องติดตั้ง DHT11 ไว้ภายในกล่องพลาสติกสีขาวแบบมีช่องระบายอากาศที่ออกแบบมาโดยเฉพาะ! หากแสงแดดส่องกระทบชิป BMP280 สีดำโดยตรง อุณหภูมิจะสูงขึ้นผิดปกติถึง 15 องศา! กล่องหุ้มจะต้องยอมให้อากาศไหลเวียนได้ แต่ต้องป้องกันรังสีโฟตอนโดยสมบูรณ์!
- การจัดการพลังงาน:
HC-05จะส่งสัญญาณ RF อย่างต่อเนื่อง ซึ่งจะทำให้แบตเตอรี่ 9V หมดอย่างรวดเร็ว โหนดระดับมืออาชีพจะใช้AT Commandsที่เฉพาะเจาะจงเพื่อนำHC-05เข้าสู่ Sleep Mode อย่างสมบูรณ์ โดยจะตื่นขึ้นมาผ่านArduino hardware Interruptอย่างชัดเจนเพียงครั้งเดียวทุก 10 นาทีเพื่อส่งข้อมูล telemetry เท่านั้น!
องค์ประกอบการวัดและส่งข้อมูลสภาพอากาศ
- Arduino Uno/Nano (ทำหน้าที่รวบรวมข้อมูล serial ที่เป็นอิสระอย่างปลอดภัย)
- DHT11 หรือ Elite DHT22 Sensor (DHT22 ให้ข้อมูลสภาพอากาศที่มีความแม่นยำทศนิยม ซึ่งเหนือกว่า DHT11 ที่เป็นจำนวนเต็มแบบดั้งเดิมอย่างสมบูรณ์)
- BMP180 / BMP280 I2C Barometric Sensor (ใช้ในการพยากรณ์พายุที่กำลังจะมาถึงได้อย่างน่าทึ่ง โดยการติดตามการลดลงของความกดอากาศแบบไดนามิกโดยตรง!)
- HC-05 หรือ HM-10 Bluetooth Module (ทำหน้าที่เป็นสายต่อ UART ไร้สายที่มองไม่เห็นระหว่าง Nano และ Smartphone โดยตรง!)
- Android Smartphone (ใช้ในการรันแอปพลิเคชัน "Serial Bluetooth Terminal" ขั้นสูงอย่างปลอดภัยเพื่อดักจับรูปแบบสตริง ASCII ขนาดใหญ่)