- ส่วนประกอบที่จำเป็น
- BMP280 โมดูลเซ็นเซอร์ความดัน:
- แผนภาพวงจรเพื่อเชื่อมต่อ BMP280 กับ Arduino:
- โปรแกรม Arduino เพื่อเชื่อมต่อ BMP280 กับ Arduino:
- การทำงานของ Arduino BMP280 Pressure Sensor Interfacing Project
หากคุณต้องการที่จะสร้างระบบอุณหภูมิของคุณเองหรือการตรวจสอบเพื่อวัดระดับความสูงของเสียงขึ้นจมูกของคุณหรือเพียงแค่ต้องการที่จะวัดความดันบรรยากาศในพื้นที่ของคุณแล้วหนึ่งของโมดูลที่ดีที่สุดสำหรับคุณที่จะใช้ในโครงการของคุณเป็นโมดูลเซ็นเซอร์ความดัน BMP280 BMP280 คือเซ็นเซอร์ตรวจสอบความดันและอุณหภูมิสัมบูรณ์ซึ่งเป็นรุ่นอัพเกรดของเซ็นเซอร์ BMP085, BMP180, BMP183 เหตุใดจึงเรียกว่าเวอร์ชันอัปเกรด จะกล่าวถึงในส่วนต่อไปนี้ เราได้ใช้ BMP180 เวอร์ชันเก่ากับ Arduino แล้วในบทช่วยสอนก่อนหน้านี้
โมดูลเซ็นเซอร์ BMP280 สามารถใช้ร่วมกับไมโครคอนโทรลเลอร์เช่น Arduino, PIC, AVR เป็นต้นสำหรับโครงการนี้เราจะใช้Arduino Uno กับ BMP280พร้อมกับโมดูลจอแสดงผล LCD 16x2 เพื่อแสดงค่าอุณหภูมิและความดัน ก่อนที่จะเชื่อมต่อ BMP280 กับ Arduino เราจำเป็นต้องดาวน์โหลดไลบรารี BMP280 Arduinoซึ่งพัฒนาโดย Adafruit คลิกที่ลิงค์ Adafruit BMP280 libraryเพื่อเปิดหน้า Github ตามลำดับและเพิ่มไฟล์ส่วนหัวใน Arduino IDE ของคุณ
ส่วนประกอบที่จำเป็น
- Arduino
- BMP280
- การเชื่อมต่อสายไฟ
- คณะกรรมการขนมปัง
- จอแอลซีดี 16x2
BMP280 โมดูลเซ็นเซอร์ความดัน:
โมดูลเซ็นเซอร์ BMP280 ทำงานโดยใช้แรงดันไฟฟ้าต่ำสุด (VDD) ที่ 1.71V ในขณะที่โมดูลเซ็นเซอร์รุ่นก่อนหน้าทำงานบน 1.8V (VDD) เมื่อพูดถึงการบริโภคปัจจุบัน BMP280 จะใช้ 2.7uA ในขณะที่ BMP180 ใช้ 12uA และ BMP183 และ BMP085 กิน 5uA BMP280 ยังรองรับโหมดฟิลเตอร์ใหม่ ๆ โมดูลเซ็นเซอร์ BMP280 รองรับโปรโตคอล I2c และ SPIในขณะที่เซ็นเซอร์ที่เหลือรองรับ I2c หรือ SPI โมดูลเซ็นเซอร์ BMP280 มีความแม่นยำ± 0.12 hPaซึ่งเทียบเท่ากับความสูงที่แตกต่างกัน± 1 ม. เนื่องจากคุณสมบัติหลักเหล่านี้ส่วนใหญ่จะใช้ในแอพพลิเคชั่นต่างๆ เซ็นเซอร์ BMP ประกอบด้วยองค์ประกอบตรวจจับความดันองค์ประกอบตรวจจับความชื้นและองค์ประกอบตรวจจับอุณหภูมิซึ่งเชื่อมต่อกับส่วนหน้าความดันส่วนหน้าความชื้นและส่วนหน้าของอุณหภูมิ ฟรอนต์เอนด์ IC เหล่านี้เป็นแอมพลิฟายเออร์อนาล็อกความไวที่ใช้ในการขยายสัญญาณขนาดเล็ก เอาต์พุตของ IC ฟรอนต์เอนด์แบบอะนาล็อกนี้ถูกป้อนให้กับ ADC เป็นสัญญาณอินพุต ในนี้ค่าอะนาล็อกจะถูกแปลงเป็นแรงดันไฟฟ้าดิจิตอลและแรงดันไฟฟ้านี้จะถูกป้อนเข้ากับวงจรลอจิกเพื่อเชื่อมต่อกับโลกภายนอกต่อไป
โมดูลเซ็นเซอร์ BMP280 ประกอบด้วยโหมดพลังงานสามโหมดสลีปโหมดบังคับและโหมดปกติ ในโหมดสลีปจะไม่มีการวัดผลและการใช้พลังงานต่ำสุด ในโหมดบังคับการวัดครั้งเดียวจะดำเนินการตามตัวเลือกการวัดและตัวกรองที่เลือก โหมดปกติจะวนรอบอย่างต่อเนื่องระหว่างการวัดและระยะเวลาสแตนด์บายและช่วงเวลาของรอบจะถูกกำหนดโดย Tstandby กระแสไฟในโหมดสแตนด์บายสูงกว่าโหมดสลีปเล็กน้อย
แผนภาพวงจรเพื่อเชื่อมต่อ BMP280 กับ Arduino:
แผนภาพวงจรสำหรับเชื่อมต่อArduino กับเซ็นเซอร์BMP280และ LCD แสดงอยู่ด้านล่าง หากคุณยังใหม่กับ Arduino และ LCD อย่างสมบูรณ์คุณสามารถตรวจสอบบทช่วยสอน Arduino LCD นี้เพื่อทำความเข้าใจวิธีใช้ Arduino กับจอ LCD
หมุด VCC และ GND ของเซ็นเซอร์เชื่อมต่อกับหมุด 3v3 และ GND ของ Arduino พิน SCL และ SDA ของเซ็นเซอร์เชื่อมต่อกับ A5 และ A4 ของบอร์ด Arduino การเชื่อมต่อ LCD มีดังต่อไปนี้
ชื่อพิน LCD |
Arduino Pin |
VSS และ RW |
GND |
อาร์เอส |
D9 |
จ |
D8 |
D4, D5, D6, D7 |
D5, D4, D3, D2 |
โปรแกรม Arduino เพื่อเชื่อมต่อ BMP280 กับ Arduino:
โค้ด BMP280 Arduino ที่สมบูรณ์สามารถพบได้ที่ด้านล่างของหน้านี้ซึ่งสามารถอัปโหลดไปยังบอร์ด Arduino ของคุณได้โดยตรง คำอธิบายเดียวกันได้รับด้านล่าง
ไลบรารีเหล่านี้รวมอยู่เพื่อเปิดใช้งานฟังก์ชันพิเศษ #include ไฟล์ส่วนหัวเราสามารถอ่านค่าที่มาจากเซ็นเซอร์ได้โดยตรง #include
# รวม
การสร้างบนวัตถุ BMP สำหรับ Adafruit_BMP280 ไฟล์อ็อบเจ็กต์ถูกสร้างขึ้นเพื่อเข้าถึงฟังก์ชันพิเศษ
Adafruit_BMP280 bmp; // I2C
การตั้งค่าพินของ Arduino เพื่อสื่อสารกับ LCD การใช้ข้อมูลพินเหล่านี้จะถูกถ่ายโอน
LiquidCrystal LCD (9, 8, 5, 4, 3, 2);
การเริ่มต้น LCD และ Serial Communication
การตั้งค่าเป็นโมฆะ () {lcd.begin (16,2); Serial.begin (9600); Serial.println (F ("ทดสอบ BMP280")); lcd.print ("ยินดีต้อนรับสู่"); lcd.setCursor (0,1); lcd.print ("CIRCUIT DIGEST"); ล่าช้า (1,000); lcd.clear (); ถ้า (! bmp.begin ()) {Serial.println (F ("ไม่พบเซ็นเซอร์ BMP280 ที่ถูกต้องให้ตรวจสอบสายไฟ!")); ในขณะที่ (1); }
ฟังก์ชันนี้ใช้งานได้เมื่อการเตรียมใช้งานวัตถุ bmp ล้มเหลว
/ * การตั้งค่าเริ่มต้นจากแผ่นข้อมูล * / bmp.setSampling (Adafruit_BMP280:: MODE_NORMAL, / * โหมดการทำงาน. * / Adafruit_BMP280:: SAMPLING_X2, / * Temp. oversampling * / Adafruit_BMP280:: SAMPLING_X16, / * Pressure Oversampling * / Adafruit_BMPTERing * / Adafruit_BMP280:: STANDBY_MS_500); /* เวลาเตรียมพร้อม. * /}
รหัสส่วนนี้จะพิมพ์อุณหภูมิบนมอนิเตอร์แบบอนุกรมและใช้สำหรับการดีบัก
โมฆะ loop () {Serial.print (F ("Temperature =")); Serial.print (bmp.readTemperature ()); Serial.println ("* C");
ฟังก์ชัน bmp.readPressure และ bmp.readTemprature ใช้เพื่อเรียกใช้ฟังก์ชันพิเศษและส่งคืนค่าอุณหภูมิและความดัน
lcd.print (bmp.readTemperature ()); lcd.print (bmp.readPressure ());
การทำงานของ Arduino BMP280 Pressure Sensor Interfacing Project
ฟังก์ชัน bmp.readTemprature () และ bmp.readPressure () ใช้เพื่อคืนค่าอุณหภูมิและความดัน ฟังก์ชั่นเหล่านี้เป็นกลุ่มของข้อความที่ทำหน้าที่พิเศษในกรณีของเราเพื่อส่งคืนไฟล์อุณหภูมิและความดัน ฟังก์ชั่นเหล่านี้จะถูกเรียกใช้ bmp.readTemprature () และ bmp.readPressure () ฟังก์ชั่น lcd.setCursor ชุดเคอร์เซอร์ของจอแอลซีดีไปยังตำแหน่งที่ต้องการบนหน้าจอ lcd.print คำสั่งพิมพ์ข้อมูลจากตำแหน่งที่โปรแกรมเมอร์กำหนด หากไม่มีการตั้งค่าตำแหน่งสำหรับ LCD ตามค่าเริ่มต้นจะใช้ (0,0) เป็นตำแหน่งเริ่มต้นและพิมพ์ข้อมูลอย่างต่อเนื่อง ข้อมูลถัดไปจะรับตำแหน่งของคอลัมน์ถัดไปและขั้นตอนจะดำเนินต่อไปจนกว่าจะถึงจุดสิ้นสุดของแถวและเลื่อนไปยังแถวถัดไป
BMP280 สามารถใช้กับของเล่น Flying, โทรศัพท์มือถือ, แท็บเล็ต, พีซี, อุปกรณ์ GPS, อุปกรณ์ดูแลสุขภาพแบบพกพา, สถานีตรวจอากาศในบ้านเป็นต้นโดยทำตามขั้นตอนนี้และใช้ไฟล์ส่วนหัวและฟังก์ชันพิเศษบางอย่างเราสามารถเชื่อมต่อ BMP280 กับ Arduino การทำงานที่สมบูรณ์สามารถพบได้ในวิดีโอด้านล่างหวังว่าคุณจะสนุกกับการสอน BMP280 Arduinoนี้และเรียนรู้สิ่งที่มีประโยชน์ หากคุณมีคำถามใด ๆ โปรดทิ้งไว้ในส่วนความคิดเห็นด้านล่างหรือใช้ฟอรัมสำหรับคำถามทางเทคนิคอื่น ๆ