Optický senzor kvality ovzduší Sharp GP2Y1010AU0F je velice vhodný při situacích, kdy by jsme rádi měřili ve svém okolí koncentraci prachu. Tento model je citlivý hlavně na velice jemné částice a často se používá v čističkách vzduchu či detektorech cigaretového kouře. Jeho funkce je založena na dvojici součástek – infračervené diodě a fototranzistoru, kdy právě vzduch obohacený jemnými částicemi mění intenzitu světla dopadajícího z diody na fototranzistor. My pak tuto změnu zachycené intenzity měříme pomocí napětí na fototranzistoru.

Senzor prachu Sharp

Pro úspěšné propojení s Arduino deskou je nutné propojit celkem 6 vodičů. Číslování je uvedeno na obrázku se zapojením níže (je nutné dodržet pořadí, barvy drátků se mohou změnit). Zapojíme 1 přes odpor na +5V, 2 na zem, 3 na digitální pin 3, 4 na zem, 5 na analogový pin 0 a poslední 6 na +5V. Dále je ještě nutné připojit kondenzátor dle schématu, tedy kladný pól na 1 a záporný pól na zem. Zmíněný digitální a analogový pin můžeme samozřejmě připojit na jiný volný, ale je nutné tuto změnu provést i v programu pro Arduino desku.

Schéma zapojení senzoru prachu Sharp

Ukázkový kód obsahuje na svém začátku proměnné pro nastavení čísel pinů na Arduino desce a dále konstanty pro přesné měření. Tyto konstanty udává přímo výrobce, takže by jsme je neměli měnit. Jako další následují proměnné pro uložení výsledků měření a podprogram setup, ve kterém si nastavíme komunikaci přes sériovou linku a také pin ledPin jako výstupní. V nekonečné smyčce loop se nachází nejprve úsek kódu s provedením měření dle pokynů výrobce a dále jsou uvedeny výpočty pro získání reálné hodnoty napětí a poté přepočtení této hodnoty na výslednou prašnost. Poté jsou už jen výsledky vytištěny na sériovou linku a na konci smyčky je pauza 1 vteřina pro přehledný výpis výsledků.

// Optický senzor kvality ovzduší Sharp GP2Y1010AU0F

// proměnné pro nastavení propojovacích pinů
int mericiPin = A0;
int ledPin = 3;

// konstanty pro přesné měření
const int casMereni = 280;
const int casUstaleni = 40;
const int casSpanku = 9680;

// proměnné pro uložení výsledků měření
float napetiAnalog = 0;
float napetiPrepocet = 0;
float prasnost = 0;

void setup() {
  // komunikace přes sériovou linku rychlostí 9600 baud
  Serial.begin(9600);
  // nastavení ledPin jako výstupní
  pinMode(ledPin,OUTPUT);
}
  
void loop() {
  // zahájení měření
  digitalWrite(ledPin,LOW);
  delayMicroseconds(casMereni);
  // načtení analogové hodnoty napětí
  napetiAnalog = analogRead(mericiPin);
  delayMicroseconds(casUstaleni);
  digitalWrite(ledPin,HIGH);
  delayMicroseconds(casSpanku);
  // přepočet analogové hodnoty na digitální
  napetiPrepocet = napetiAnalog * (5.0 / 1024.0);
  // výpočet koncentrace prachu v okolí dle
  // informací od výrobce
  prasnost = (0.17 * napetiPrepocet - 0.1)*1000;
  Serial.print("Napeti ze senzoru: ");
  Serial.print(napetiPrepocet);
  Serial.print(" V");
  Serial.print(" -> Koncentrace prachu: ");
  Serial.print(prasnost);
  Serial.println(" ug/m3");
  // pauza pro přehlednější výpis
  delay(1000);
}

Po nahrání programu do Arduino desky dostaneme například tento výpis:

Napeti ze senzoru: 0.72 V -> Koncentrace prachu: 22.02 ug/m3
Napeti ze senzoru: 0.71 V -> Koncentrace prachu: 21.19 ug/m3
Napeti ze senzoru: 0.70 V -> Koncentrace prachu: 18.70 ug/m3
Napeti ze senzoru: 0.67 V -> Koncentrace prachu: 13.72 ug/m3
Napeti ze senzoru: 0.73 V -> Koncentrace prachu: 23.68 ug/m3
Napeti ze senzoru: 0.72 V -> Koncentrace prachu: 22.02 ug/m3
Napeti ze senzoru: 0.65 V -> Koncentrace prachu: 10.40 ug/m3

Jak je vidět, naměřené výsledky senzoru kvality ovzduší Sharp GP2Y1010AU0F jsou poněkud méně přesné. Je však nutné zmínit, že samotný senzor není schopný měřit úplně od nuly a pro naměření nějakých rozumných hodnot je třeba ho umístit někam do prašnějšího prostředí, v mém případě to bylo testování na rušné ulici. Při měření v pokoji totiž senzor při nízkých hodnotách prachu v okolí nenaměří výsledky správně a přibližně do napětí 0,6 V jsou tak přepočtené hodnoty koncentrace mínusové. A co se týká maximálních hodnot, tak ty by se podle zákonů v České republice měly pohybovat do hranice 50 ug/m3.

 

Seznam použitých komponent:

http://dratek.cz/arduino/1126-opticky-senzor-prachu-sharp-gp2y1010au0f-1449872536.html

http://dratek.cz/arduino/974-arduino-uno-r3-atmega328p-1424115860.html

http://dratek.cz/arduino-kabelaz-propoje-rozsireni/1214-arduino-vodice-samice-samice-40-kusu-1457705007.html

FB tw

Další podobné články