หน้าแรก ดูโปรเจกต์ทั้งหมด
Intermediate

โปรเจกต์ Arduino Nano ใช้ Median Filter เพื่อแสดงผล DHT22 และ RTC

Despike และทำให้ข้อมูลจาก DHT22 เรียบขึ้นด้วย Median Filter และแสดงผลบน OLED ขนาด 0.96 inch พร้อมวันและเวลาจาก DS3231 real-time clock!

โปรเจกต์ Arduino Nano ใช้ Median Filter เพื่อแสดงผล DHT22 และ RTC

รายการอุปกรณ์และเครื่องมือ

1x DHT22 Temperature Sensor
🛒 สั่งซื้อ
1x Robojax DS3231 IIC Precision Real time Clock Module
🛒 สั่งซื้อ
1x Kuman 0.96 Inch Yellow Blue IIC OLED Module I2c
🛒 สั่งซื้อ
}

รายละเอียดและวิธีทำ

โปรเจกต์นี้ใช้ median filter เพื่อปรับข้อมูลให้เรียบและกำจัดค่าที่กระโดด (de-spike) จาก DHT22 Temperature and Humidity Sensor นอกจากนี้ยังใช้ DS3231 Real-time Clock Module (AT24C32) เพื่อแสดงวันที่/เวลาบนหน้าจอ 0.96 inch Yellow/Blue IIC OLED I2c 128x64 display

ฮาร์ดแวร์ทั้งหมดติดตั้งอยู่บน breadboard เพียงอันเดียว และใช้พลังงานผ่าน USB interface หรือเลือกใช้ external power supply ภายนอก (โดยทั่วไปจะเป็น wall wart ที่จ่ายไฟให้กับ breadboard power supply module)

ผมเลือกใช้ median filter เพื่อกำจัดสัญญาณรบกวน (jitter) จาก DHT22 ซึ่งอาจไม่จำเป็นสำหรับงานส่วนใหญ่เนื่องจาก DHT22 มีความเสถียรอยู่แล้ว แต่ตัวกรองนี้ใช้งานง่ายและช่วยกำจัดค่าที่กระโดด (spikes) ได้ จากประสบการณ์พบว่ามันสามารถกำจัด noise ได้เกือบทั้งหมดโดยส่งผลกระทบต่อ response time ของ Sensor น้อยมาก ความกว้าง (width) ของตัวกรองจะมีผลในจุดนี้และสามารถปรับเปลี่ยนได้ใน Sketch โดยค่าความกว้างต้องเป็นเลขคี่ ซึ่งค่า 5 หรือ 7 ดูเหมือนจะทำงานได้ดี ยิ่งตัวกรองกว้างเท่าไร ก็ยิ่งกำจัดค่า spikes ได้มีประสิทธิภาพมากขึ้นเท่านั้น แต่ข้อเสียคือตัวกรองที่กว้างจะทำให้ response time ลดลง

RTC ที่ใช้คือ DS3231 มาตรฐาน คุณต้องตั้งค่าเวลาและวันที่เริ่มต้นด้วย SetTime sketch ใน DS1307RTC library คุณสามารถหา library นั้นได้ที่นี่:

https://github.com/PaulStoffregen/DS1307RTC

หากคุณติดตั้งแบตเตอรี่ CR2032 เสริมใน Clock Module มันจะเก็บรักษาเวลาไว้ได้นานหลายปี ดังนั้นขั้นตอนนี้จึงทำเพียงครั้งเดียว ยกเว้นกรณีที่คุณต้องการใช้ DST คุณจะต้องรัน SetTime sketch ทุกช่วงฤดูใบไม้ผลิและฤดูใบไม้ร่วง

ผมใช้ U8glib library เพื่อขับหน้าจอ OLED display คุณสามารถดาวน์โหลดได้ที่นี่:

https://github.com/olikraus/u8glib

คุณสามารถปรับแต่ง Fonts, ปรับขนาด และอื่นๆ ได้ตามที่อธิบายไว้ที่นี่:

https://github.com/olikraus/u8glib/wiki/fontsize

Code

🔒 ปลดล็อก Code

สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้

รหัสอ้างอิงโปรเจกต์: arduino-nano-using-median-filter-to-display-dht22-and-rtc-f725d2
2450 บาท
PromptPay QR Code