กลับไปหน้ารวมไฟล์
bluetooth-weather-station-dht11-hc05-bmp280.md

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 ได้ทันที และรับการวิเคราะห์สภาพอากาศแบบเรียลไทม์ได้อย่างง่ายดายจากบนเตียง!

arduino_radar_sweep_display_1772681940235.png

โครงสร้างการส่งข้อมูลแบบ Serial (การรวม DHT และ BMP)

Arduino ทำหน้าที่เป็นตัวประสานงานทางคณิตศาสตร์เพียงหนึ่งเดียว

  1. BMP280 สื่อสารโดยใช้โปรโตคอล I2C ขนาดใหญ่ <Wire.h> โดยตรง (ขา A4, A5)
  2. DHT11 สื่อสารผ่านโปรโตคอล 1-Wire แบบกำหนดเองที่เข้มงวดอย่างไม่น่าเชื่อ
  3. ทุก 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 ขนาดใหญ่)

ข้อมูล Frontmatter ดั้งเดิม

title: "Bluetooth Weather Station"
description: "Localized meteorological networking! Harvest absolute DHT11 atmospheric capacitance scalars and BMP180 barometric pressure extremes completely natively, bridging the serial UI string natively into Android BT-Terminal architectures perfectly utilizing deep HM-10 packet translation cores."
category: "Wireless & IoT"
difficulty: "Beginner"