- รับลิงก์
- X
- อีเมล
- แอปอื่นๆ
งานที่ 18/63
โปรเจค Arduino Nodemcu เครื่องวัดฝุ่น PM2.5 ด้วย Sensor GP2Y1010AU0F
โปรเจค Arduino Nodemcu เครื่องวัดฝุ่น PM2.5 ด้วย Sensor GP2Y1010AU0F
สวัสดีครับช่วงนี้กระแสเกี่ยวกับ ฝุ่น ควันพิษ PM2.5 กำลังมาแรง ในช่วงที่แอดมินเขียนบทความก็จะเป็นช่วงปลายเดือน มิถุนายน ของทุกปี ก็จะมีฝุ่น ควัน จากไฟป่าประเทศอินโดนนีเซีย พัดพากลุ่มควันไฟป่ามายังภาพใต้ของประเทศไทยทุกปี เป็นประจำ และช่วง ปลายหนาวของประเทศไทย ก็จะเป็นช่วงที่พี่น้อง ชาวเกษตรกร เผ่าอ้อยกันทุกปี ควัน ฝุ่นพิษ PM2.5 กวนอยู่แถวภาคกลาง กรุงเทพ เป็นประจำ ปีนี้บูมมาก ทำให้เรได้รู้ถึงควันพิษ ฝุ่นละอองขนาดเล็ก PM2.5 มันอันตรายแค่ไหน .
วันนี้ทาง เว็บก็ได้จัดทำ Mini Project อย่างง่ายๆมาให้เล่นกัน ครับ เป็นโปรเจค สำหรับวัดฝุ่นละอองภายในบ้านราคาถูก สามารถพัฒนาต่อยอดได้หลากหลาย สามารถพัฒนาต่อยอดไปทางด้าน IOT (Internet of things) ได้อีกด้วย
อุปกรณ์มีดังต่อไปนี้
- Nodemcu esp8266 V.2 https://www.ab.in.th/p/98
- Sensor Dust GP2Y1010AU0F https://www.ab.in.th/p/89
- จอแสดงผล LCD I2C https://www.ab.in.th/product/tag/lcd-i2c
- Shield Nodemcu Dust V1.2 https://www.ab.in.th/p/630
การต่อวงจร รวมไปถึงตัวอย่างโปรเจคสามารถดูได้ที่นี้เลย
Code ตัวอย่าง
#include <LiquidCrystal_I2C.h> | |
LiquidCrystal_I2C lcd(0x27, 16, 2); //Module IIC/I2C Interface บางรุ่นอาจจะใช้ 0x3f | |
int measurePin = A0; | |
int ledPower = D5; //Pin LED | |
int samplingTime = 280; | |
int deltaTime = 40; | |
int sleepTime = 9680; | |
float voMeasured = 0; | |
float calcVoltage = 0; | |
float dustDensity = 0; | |
void setup() { | |
Serial.begin(9600); | |
pinMode(ledPower, OUTPUT); | |
lcd.begin(); | |
lcd.backlight(); // เปิด backlight | |
} | |
void loop() { | |
digitalWrite(ledPower, LOW); // power on the LED | |
delayMicroseconds(samplingTime); | |
voMeasured = analogRead(measurePin); // read the dust value | |
delayMicroseconds(deltaTime); | |
digitalWrite(ledPower, HIGH); // turn the LED off | |
delayMicroseconds(sleepTime); | |
// 0 - 3.3V mapped to 0 - 1023 integer values | |
// recover voltage | |
calcVoltage = voMeasured * (3.3 / 1024); | |
// linear eqaution taken from http://www.howmuchsnow.com/arduino/airquality/ | |
// Chris Nafis (c) 2012 | |
dustDensity = 0.17 * calcVoltage - 0.1; | |
Serial.print("Raw Signal Value (0-1023): "); | |
Serial.print(voMeasured); | |
Serial.print(" - Voltage: "); | |
Serial.print(calcVoltage); | |
if (dustDensity <= 0.00) { | |
dustDensity = 0.00; | |
} | |
dustDensity = dustDensity * 1000; | |
Serial.print(" - Dust Density: "); | |
Serial.print(dustDensity); | |
Serial.println(" µg/m³"); | |
lcd.home(); | |
lcd.setCursor(1, 0); | |
lcd.print("Dust Density "); | |
lcd.setCursor(2, 1); | |
lcd.print(dustDensity); | |
lcd.print(" ug/m3 "); | |
delay(1000); | |
} |
- รับลิงก์
- X
- อีเมล
- แอปอื่นๆ
ความคิดเห็น
แสดงความคิดเห็น