Remote Barometric Telemetry: The Bluetooth Weather Hub
การเดินสายไฟยาว 15 เมตรออกไปนอกหน้าต่างห้องนอนเพื่ออ่านค่าเซ็นเซอร์อุณหภูมินั้นล้าสมัยไปแล้วโดยสิ้นเชิง Bluetooth Weather Station นำเสนอสถาปัตยกรรมการตรวจสอบสภาพอากาศแบบไร้สายที่สมบูรณ์แบบและเป็นอิสระ! โดยใช้ Arduino Nano ที่ราคาไม่แพงอย่างเหลือเชื่อ ร่วมกับชุดเซ็นเซอร์ที่ซับซ้อน BMP280 Barometric Pressure และ DHT11 Humidity โหนดนี้จะวัดค่าพารามิเตอร์ทางความร้อนเฉพาะของสภาพแวดล้อมภายนอกอาคารอย่างต่อเนื่องและเป็นอิสระ! แทนที่จะใช้จอ LCD ที่เทอะทะ โปรเจกต์นี้จะรวมตัวแปรทั้งหมดเข้าด้วยกันอย่างสมบูรณ์แบบในรูปแบบ Serial String matrix ขนาดใหญ่ และส่งข้อมูลอย่างปลอดภัยผ่านคลื่น 2.4GHz โดยใช้ HC-05 Bluetooth module ช่วยให้คุณสามารถเปิด 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เฉพาะเพื่อเข้าสู่ Sleep Mode อย่างหนักสำหรับ HC-05 โดยจะตื่นขึ้นมาทั้งหมดผ่าน Arduino hardware Interrupt อย่างชัดเจนทุกๆ 10 นาที เพื่อส่งข้อมูล telemetry เท่านั้น!
ส่วนประกอบ Telemetry สภาพอากาศ
- Arduino Uno/Nano (สำหรับการประกอบการไหลของข้อมูลอนุกรมอิสระอย่างปลอดภัย)
- 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 ขนาดใหญ่)