Goto page 1, 2 Next
Piotrne
Guest
Fri Feb 17, 2017 1:12 am
Z okazji występującego w okolicy smogu i braku wiarygodnych
pomiarów stężenia pyłu w powietrzu, kupiłem na ebay-u za 4$
czujnik pyłu SHARP GP2Y1010AU0F. Mierzy według dokumentacji
stężenia do 500 mikrogramów na metr sześcienny. Niestety
nie pokrywa to spodziewanych stężeń (w okolicy spodziewam się
około 2000 mikrogramów), ale innego czujnika za 4$ nie było.
Poskładałem z tego i z Arduino Uno miernik - według znalezionych
opisów. Okazało się, że właściwie wszystkie opisy zawierały
błędy: zamienione zasilanie całości i diody LED, błędny wzór
wyznaczający stężenie pyłu, odwrotne włączanie/wyłączanie diody
itp. Zrobiłem to "od zera" i działa jak powinno.
Dla zainteresowanych:
https://flic.kr/s/aHskUrY3TY - kilka obrazków
Kod dla Arduino Uno poniżej.
W mieszkaniu wychodzi 75 ug/m3, za oknem 110 ug/m3.
Według pobliskiej stacji pomiarowej (Gliwice, ul. Mewy
- odległość 200 metrów), stężenie PM10 wynosi 197 ug/m3.
Jest to pomiar na osiedlu, na którym nie ma ogrzewania
węglowego ani dużych ulic, a osiedle graniczy z polami.
W centrum miasta stężenia są prawdopodobnie wielokrotnie
większe. Być może z tego powodu stację pomiarową
przeniesiono z centrum na takie osiedle - wyniki pomiarów
w centrum były nie do przyjęcia.
P.
/*******************************************************
Obsługa czujnika pyłu SHARP GP2Y1010AU0F
Program wyświetla stężenie pyłu w mikrogramach
na metr sześcienny.
Program dla Arduino Uno z nakładką LCD + klawiaturka
(2 linijki * 16 znaków, pod spodem 5 klawiszy
i dodatkowo klawisz RST).
Podłączenie czujnika pyłu: piny złącza 6-stykowego
numerowane 1 do 6, 1 przy brzegu czujnika, 6 przy
otworze na powietrze:
1: przez rezystor 150 Ohm do +5V
2: GND
3: LEDpin (wybrane wyjście cyfrowe, np. 3)
4: GND
5: ADCin (wejście analogowe inne niż 0 (już zajęte
przez klawiaturę))
6: +5V
Dodatkowo między 1 a GND: kondensator 220 uF.
Program włącza diodę i po 280 mikrosekundach mierzy
napięcie na wyjściu 5 podłączonym do ADCin.
Potem wyłącza diodę.
Przelicza napięcie na stężenie pyłu wg wykresu w dokumentacji
czujnika.
Czujnik ma zakres do 500 ug/m3, co odpowiada napięciu 3.5 V.
Powyżej tej wartości następuje nasycenie, a program
wyświetla wynik "999".
Program uśrednia 10 kolejnych pomiarów. Dlatego po włączeniu
przez kilka sekund wynikiem jest 0, dopiero później
pojawiają się właściwe wartości.
W drugiej linijce wyświetlana jest wartość z przetwornika
A/C oraz wyliczone na tej podstawie napięcie.
Piotr Fabian, 2017-02-17
Obsługa LCD: wg Mark Bramwell
Fragment obsługi czujnika: wg WaveShare (czas 280 us)
********************************************************/
#include <LiquidCrystal.h>
// Wyjścia używane przez wyświetlacz 16*2 "LCD shield"
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
#define REF_VOLTAGE 5.0 /* V */
/* Porty I/O */
const int LEDpin = 3; // Sterowanie LED czujnika
const int ADCin = 2; // Wejście analogowe
float density, voltage;
int adcval;
// wartości do obsługi klawiatury
int lcd_key = 0;
int adc_key_in = 0;
#define btnRIGHT 0
#define btnUP 1
#define btnDOWN 2
#define btnLEFT 3
#define btnSELECT 4
#define btnNONE 5
// odczyt klawiatury
int read_LCD_buttons()
{
adc_key_in = analogRead(0); // czytamy wejście analogowe
if (adc_key_in > 1000) return btnNONE; // brak klawisza
/*
// For V1.1 us this threshold
if (adc_key_in < 50) return btnRIGHT;
if (adc_key_in < 250) return btnUP;
if (adc_key_in < 450) return btnDOWN;
if (adc_key_in < 650) return btnLEFT;
if (adc_key_in < 850) return btnSELECT;
*/
// For V1.0 comment the other threshold and use the one below:
if (adc_key_in < 50) return btnRIGHT;
if (adc_key_in < 195) return btnUP;
if (adc_key_in < 380) return btnDOWN;
if (adc_key_in < 555) return btnLEFT;
if (adc_key_in < 790) return btnSELECT;
return btnNONE;
}
/* Filtrowanie: średnia krocząca */
int filterpf(int m)
{
#define bfsize 10
static int buf[bfsize];
static int flag_first=1;
static int idx=0;
static int sum=0;
int i;
if (flag_first==1)
{
for(i=0;i<bfsize;i++)
buf[i]=0;
sum=0;
flag_first=0;
}
sum-=buf[idx];
buf[idx]=m;
sum+=m;
idx++;
if (idx>=bfsize)
idx=0;
return sum / bfsize;
}
void setup(void)
{
pinMode(LEDpin, OUTPUT);
digitalWrite(LEDpin, HIGH); // LEDpin: wyłączamy diodę
lcd.begin(16, 2); // włączamy obsługę LCD
lcd.setCursor(0,0);
}
int key;
void loop(void)
{
#if 0
/* Fragment testujący diodę czujnika */
/* (dioda widoczna przez kamery i aparaty */
/* cyfrowe ze słabym filtrem IR) */
/* Dioda włączana jest klawiszem SELECT */
key = read_LCD_buttons();
lcd.setCursor(0,0);
if (key==btnSELECT)
{
lcd.print("ON ");
digitalWrite(LEDpin, LOW);
}
else
{
lcd.print("OFF");
digitalWrite(LEDpin, HIGH);
}
#else
digitalWrite(LEDpin, LOW); // ??? odwrotnie niż w przykładach?
delayMicroseconds(280);
adcval = analogRead(ADCin);
digitalWrite(LEDpin, HIGH);
lcd.setCursor(0,1);
lcd.print(" ");
lcd.print(adcval);
lcd.print(" ");
voltage = (REF_VOLTAGE / 1024.0) * adcval;
lcd.print(voltage);
lcd.print("V ");
adcval = filterpf(adcval);
voltage = (REF_VOLTAGE / 1024.0) * adcval;
// Wg dokumentacji stężenie pyłu w ug/m3
// jest równe w przybliżeniu
// 175*voltage-114
// Powyżej voltage>3.5V nasycenie, ze stężeniem pyłu powyżej 500 ug/m3
// PF, 2017-02-16
density = 175*voltage-114;
if (density<0) density=0;
if (voltage>3.5) density=999; // poza zakresem czujnika
/* wyświetlamy wyniki */
lcd.setCursor(0,0);
lcd.print((int)density);
lcd.print(" ug/m3");
lcd.print(" ");
delay(500);
#endif
}
Krzysiek
Guest
Fri Feb 17, 2017 8:13 am
W dniu 2017-02-17 o 01:12, Piotrne pisze:
Quote:
Z okazji występującego w okolicy smogu i braku wiarygodnych
pomiarów stężenia pyłu w powietrzu, kupiłem na ebay-u za 4$
czujnik pyłu SHARP GP2Y1010AU0F. Mierzy według dokumentacji
stężenia do 500 mikrogramów na metr sześcienny. Niestety
nie pokrywa to spodziewanych stężeń (w okolicy spodziewam się
około 2000 mikrogramów), ale innego czujnika za 4$ nie było.
Poskładałem z tego i z Arduino Uno miernik - według znalezionych
opisów. Okazało się, że właściwie wszystkie opisy zawierały
błędy: zamienione zasilanie całości i diody LED, błędny wzór
wyznaczający stężenie pyłu, odwrotne włączanie/wyłączanie diody
itp. Zrobiłem to "od zera" i działa jak powinno.
Dla zainteresowanych:
https://flic.kr/s/aHskUrY3TY - kilka obrazków
Tu jest opisany ten czujnik:
http://www.jarzebski.pl/arduino/czujniki-i-sensory/czujnik-pylu-gp2y1010au0f.html
Natomiast co do sensowności pomiarów za jego pomocą to
już sprawa dyskusyjna.
Coś mierzy, ale co?
Stacje podają dla PM2.5 oraz PM10 bo cząstki tej wielkości potrafią już
przeniknąć do krwiobiegu.
A z tego czujnika masz informację, że dymi i tyle. Mgłę pewnie też
wykrywa ;-)
Pozdrawiam
Piotrne
Guest
Fri Feb 17, 2017 2:23 pm
W dniu 2017-02-17 o 08:13, Krzysiek pisze:
Quote:
Widziałem to. To jest opis sprzedawanego w sklepie Elty.pl
modułu, który względem kupionego na ebay-y czujnika
z dostarczanymi luzem rezystorem i kondensatorem
jest wzbogacony o płytkę drukowaną, na której wszystkie
te elementy (czujnik, rezystor, kondensator) są zainstalowane.
Ale kosztuje 53 złote zamiast 4$, więc jednak te dwa
elementy sam przylutowałem.
Być może ten moduł coś jeszcze ma, bo program na stronie
www.jarzebski.pl... włącza diodę stanem wysokim, a wyłącza
niskim. A normalnie jest odwrotnie. Piszą też coś o dzielniku
napięcia w tym module, przez który trzeba wynik mnożyć
przez 11 - ale zmniejsza to rozdzielczość pomiaru.
Pokazane wyniki pomiarów wyglądają chaotycznie - kolejne
pomiary różnią się nawet o 50%. Czujnik który mam też
nie daje zbyt stabilnych wyników, ale aż takich wahań
nie ma.
Sprawdzę, czy da się jakoś zwiększyć zakres pomiarowy.
Może przez krótsze błyśnięcie diodą. Teraz dioda
włączana jest na 280 mikrosekund, potem mierzone jest
napięcie na wyjściu analogowym, potem dioda jest
wyłączana. W Arduino sam pomiar trwa około 100 mikrosekund,
co może trochę zaburzać odmierzanie czasu.
Sprawdziłem kilka rzeczy: wyłączenie diody przed pomiarem
też daje właściwe wyniki. Skrócenie błysku daje niższe
wartości - to może umożliwić rozszerzenie zakresu,
ale konieczna jest kalibracja. Z kolei znaczne wydłużenie
błysku daje wynik zerowy.
Przy okazji obejrzałem sklep Elty.pl. To właściwie jest
polski sklep, czy automatycznie tworzona wersja sklepu
spoza Polski? Mają np. gotowe, amatorskie frezarki CNC.
Ale opis jest bardzo dziwny, np.: "śruba: Profesjonalne
T8 screw, ołów 4mm, pokój miedzi nuts eliminując histerezy".
P.
Piotrne
Guest
Sat Feb 18, 2017 1:37 am
W dniu 2017-02-17 o 08:13, Krzysiek pisze:
Quote:
Natomiast co do sensowności pomiarów za jego pomocą to
już sprawa dyskusyjna.
Coś mierzy, ale co?
Mierzy, ile światła odbijają cząstki zawieszone w powietrzu.
Dioda podczerwona świeci na czarne tło i z boku ogląda się,
czy na tym tle widać jakieś latające śmieci. Gęstość pyłu
szacuje się na podstawie ilości odbitego światła.
Quote:
Stacje podają dla PM2.5 oraz PM10 bo cząstki tej wielkości potrafią już
przeniknąć do krwiobiegu.
Stacja w Gliwicach podaje PM2.5 i PM10, ale te dwie wartości są zawsze
prawie jednakowe (różnica kilku procent).
Quote:
A z tego czujnika masz informację, że dymi i tyle. Mgłę pewnie też
wykrywa
Nie powinien, bo świeci w podczerwieni - mgła powinna to przepuszczać.
Czujnik zadziwiająco szybko reaguje na zmianę otoczenia.
Wystarczy wystawić za okno i po około dwóch sekundach wykrywa,
że powietrze jest brudne. Tak samo szybko reaguje na powrót
do nieco czystszego powietrza w mieszkaniu.
Eksperymentalnie sprawdziłem, że skrócenie czasu błysku z 280us
do 140us powoduje zmniejszenie wyjściowego napięcia 1.32 razy.
Daje to możliwość rozszerzenia zakresu pomiarowego do około 700 ug/m3.
Krótsze czasy błysku dają niestabilne wyniki.
Wyniki pomiarów na razie zgadzają się z dokładnością ok. 20%
z tym, co podaje stacja WIOŚ. Sprawdzę, co będzie przy większym
smogu. A może być wielki:
https://flic.kr/s/aHskPugFjS
P.
Zenek Kapelinder
Guest
Sat Feb 18, 2017 4:03 am
Na tej zasadzie dzialaja detektory dymu w domowyc czujnikach dymu. Marketowa cena takiego czujnika to 19 zlotych. Kto wie czy jak by takiemu detektorowi zapodac inne parametry pracy to by sie czulszy nie zrobil. Caly czas pozostaje pytanie po co samemu to mierzyc skoro wyniki pomiarow mam w necie. Na dodatek robione sa o kilka klas lepszymi urzadzeniami pomiarowymi.
Pawel
Guest
Sat Feb 18, 2017 11:32 am
W dniu 18.02.2017 o 01:37, Piotrne pisze:
Quote:
W dniu 2017-02-17 o 08:13, Krzysiek pisze:
Natomiast co do sensowności pomiarów za jego pomocą to
już sprawa dyskusyjna.
Coś mierzy, ale co?
Mierzy, ile światła odbijają cząstki zawieszone w powietrzu.
Dioda podczerwona świeci na czarne tło i z boku ogląda się,
czy na tym tle widać jakieś latające śmieci. Gęstość pyłu
szacuje się na podstawie ilości odbitego światła.
Policz co to znaczy stężenie PM10 np. 100ug/m3. Tzn policz ile cząstek
pyłu jest m3 oraz ile ich jest niewielkiej komorze pomiarowej czujnika.
Dla uproszczenia możesz przyjąć, że pył to jednakowe kulki sadzy o
gęstości 2g/cm3.
Quote:
A z tego czujnika masz informację, że dymi i tyle. Mgłę pewnie też
wykrywa ;-)
Nie powinien, bo świeci w podczerwieni - mgła powinna to przepuszczać.
Możesz doczepić rezystor ogrzewający powietrze w komorze pomiarowej.
Kropelki wody wyparują.
Paweł
Pawel
Guest
Sat Feb 18, 2017 11:48 am
Quote:
Czujnik zadziwiająco szybko reaguje na zmianę otoczenia.
Wystarczy wystawić za okno i po około dwóch sekundach wykrywa,
że powietrze jest brudne. Tak samo szybko reaguje na powrót
do nieco czystszego powietrza w mieszkaniu.
Zaobserwowałeś różnicę wskazań wewnątrz i na zewnątrz. Może to być to
spowodowane zarówno różnicą w czystości powietrza jak i innymi
czynnikami np. inną temperaturą. Umieść czujnik na zewnątrz i ogrzej
suszarką do włosów powietrze do niego wpadające.
Paweł
AlexY
Guest
Sat Feb 18, 2017 3:12 pm
Zenek Kapelinder pisze:
[..]
Quote:
Caly czas pozostaje pytanie po co samemu to mierzyc skoro wyniki pomiarow mam w necie. Na dodatek robione sa o kilka klas lepszymi urzadzeniami pomiarowymi.
Z paru powodów:
1. bo można
2. bo nie ufam tym z neta
3. żeby sprawdzić czy słusznie im nie ufam
Aczkolwiek jak nie ma filtra coby mierzyć tylko to co trzeba to o kant
dupy takie pomiary.
--
AlexY
http://faq.enter.net.pl/simple-polish.html
http://www.pg.gda.pl/~agatek/netq.html
Piotrne
Guest
Sat Feb 18, 2017 4:01 pm
W dniu 2017-02-18 o 11:32, Pawel pisze:
Quote:
Policz co to znaczy stężenie PM10 np. 100ug/m3.
Tzn policz ile cząstek pyłu jest m3 oraz ile ich
jest niewielkiej komorze pomiarowej czujnika.
Dla uproszczenia możesz przyjąć, że pył
to jednakowe kulki sadzy o gęstości 2g/cm3.
Jeśli się nie pomyliłem, to wychodzi około jeden pyłek
PM10 na 10 cm3. Dla PM2.5 około 6 pyłków na 1 cm3.
Też wydawało mi się dziwne, że takie ilości można
optycznie wykryć. Ale w końcu widzę też w pokoju
promień wskaźnika laserowego - tylko dzięki tym
pyłkom.
Stacje pomiarowe pewnie zasysają powietrze i sprawdzają,
co zostało na filtrach. Ale raczej nie odróżniają
tego, co tam właściwie się przylepiło.
Piotr
Pawel
Guest
Sat Feb 18, 2017 4:59 pm
W dniu 18.02.2017 o 16:01, Piotrne pisze:
Quote:
W dniu 2017-02-18 o 11:32, Pawel pisze:
Policz co to znaczy stężenie PM10 np. 100ug/m3.
Tzn policz ile cząstek pyłu jest m3 oraz ile ich
jest niewielkiej komorze pomiarowej czujnika.
Dla uproszczenia możesz przyjąć, że pył
to jednakowe kulki sadzy o gęstości 2g/cm3.
Jeśli się nie pomyliłem, to wychodzi około jeden pyłek
PM10 na 10 cm3. Dla PM2.5 około 6 pyłków na 1 cm3.
Wielkość komory pomiarowej w czujniku jaki zastosowałeś to chyba
znacznie mniej niż 1 cm3. Ile jest więc tam pyłków PM10 ?
Quote:
Też wydawało mi się dziwne, że takie ilości można
optycznie wykryć. Ale w końcu widzę też w pokoju
promień wskaźnika laserowego - tylko dzięki tym
pyłkom.
Stacje pomiarowe pewnie zasysają powietrze i sprawdzają,
co zostało na filtrach. Ale raczej nie odróżniają
tego, co tam właściwie się przylepiło.
Rozróżniają. Filtry mają różne oczka.
W przypadku metody optycznej jest znacznie trudniej. Jak sam policzyłeś
dla malej komory jeden pomiar w praktyce może wykazać obecność dużej
cząstki lub jej brak. Prawdopodobnie z tego powodu tak znacząco różnią
się kolejne wyniki.
Zastanawiałem się czy nie lepiej będzie zliczać wykryte cząstki. Znając
wielkość komory pomiarowej wynik można przeliczyć na rzeczywistą
koncentrację.
Paweł
Zenek Kapelinder
Guest
Sat Feb 18, 2017 5:51 pm
Ciekawe w jaki sposob wyskalujesz zeby byc pewnym ze Twoj pokazuje dobrze. Zle wyskalowany przyrzad pomiarowy jest gorszy niz jego brak. Mowili w tv jak to profesjonalnie robia. Przepuszczaja okreslona ilosc powietrza przez dwa filtry. Pierwszy zatrzymuje powyzej 10 drugi 2,5. Potem waza. Oczami wyobrazni widze jak ktos w domu zwazy to co osiadlo na filtrach. Budowanie wykrywacza smogu w domu to jedna z wielu bzdur jakimi zajmuje sie ta grupa.
AlexY
Guest
Sun Feb 19, 2017 12:57 am
Zenek Kapelinder pisze:
Quote:
Ciekawe w jaki sposob wyskalujesz zeby byc pewnym ze Twoj pokazuje dobrze. Zle wyskalowany przyrzad pomiarowy jest gorszy niz jego brak. Mowili w tv jak to profesjonalnie robia. Przepuszczaja okreslona ilosc powietrza przez dwa filtry. Pierwszy zatrzymuje powyzej 10 drugi 2,5. Potem waza. Oczami wyobrazni widze jak ktos w domu zwazy to co osiadlo na filtrach. Budowanie wykrywacza smogu w domu to jedna z wielu bzdur jakimi zajmuje sie ta grupa.
To się nie zajmuj. Nikt nie zmusza.
--
AlexY
http://faq.enter.net.pl/simple-polish.html
http://www.pg.gda.pl/~agatek/netq.html
Zenek Kapelinder
Guest
Sun Feb 19, 2017 4:26 am
Jak lubisz Alex puszczac pare w gwizdek a nie w kola to wymysl sposob na wyskalowanie takiego zrobionego dla satysfakcji miernika smogu. Nie da sie zrobic w warunkach domowych miernika smogu bo nie da sie go wyskalowac.
AlexY
Guest
Mon Feb 20, 2017 12:26 am
Zenek Kapelinder pisze:
Quote:
Jak lubisz Alex puszczac pare w gwizdek a nie w kola to wymysl sposob na wyskalowanie takiego zrobionego dla satysfakcji miernika smogu. Nie da sie zrobic w warunkach domowych miernika smogu bo nie da sie go wyskalowac.
To że Ty czy ja nie potrafimy tego zrobić w warunkach domowych nie
znaczy że się nie da. Przyjdzie tu zaraz taki który nie wie że się nie
da i to zrobi. Gdybym miał robić taki miernik zacząłbym od filtra
mechanicznego, bo to zdaje się największy problem.
--
AlexY
http://faq.enter.net.pl/simple-polish.html
http://www.pg.gda.pl/~agatek/netq.html
Guest
Mon Feb 20, 2017 8:20 am
W dniu poniedziałek, 20 lutego 2017 00:26:50 UTC+1 użytkownik AlexY napisał:
Quote:
Zenek Kapelinder pisze:
Jak lubisz Alex puszczac pare w gwizdek a nie w kola to wymysl sposob na wyskalowanie takiego zrobionego dla satysfakcji miernika smogu. Nie da sie zrobic w warunkach domowych miernika smogu bo nie da sie go wyskalowac.
To że Ty czy ja nie potrafimy tego zrobić w warunkach domowych nie
znaczy że się nie da. Przyjdzie tu zaraz taki który nie wie że się nie
da i to zrobi. Gdybym miał robić taki miernik zacząłbym od filtra
mechanicznego, bo to zdaje się największy problem.
http://faq.enter.net.pl/simple-polish.html
http://www.pg.gda.pl/~agatek/netq.html
Dobrze Waasc prawisz. Ja w Hameryce widziałem oczyszczacze powietrza. Taki
stojący w pomieszczeniu i jeszcze do tego jonizujący powietrze. One dzialaja
w nietypowy sposób. Wewnatrz jest generator wysokiego napięcia podlaczony do
dwóch cienkich blaszek miedzianych, na ktorych elektrostatycznie osiadają te
wszystkie pylki, sadze, kurze i co tam jeszcze. Co ciekwe, to ten przyrząd nie
miał zadnego wentylatora a odczuwalo się przepływ powietrza.. Te blaszki
zaostrzone z jedej strony robily za emitery elektronow, czy jonow dodatnich,
które porywaly za soba powietrze.
Była tam jeszcze lampa kwarcowa do uśmiercania bakterii i innych zaraz. Raz na
kikka dni nalezalo przyrząd odwrocic do gory nogami by w ten sposób oczyscic z
kurzu te blachy, na których osadzal się czarny kurz.
Taki przyrząd moznaby wykorzystac jako miernik tego smoga, którego za Gierka
mimo spalania wegla jakos nie było. A teraz nagle się pojawil. Wystawic za okno
i raz na dzień zebrac i zwazyc ten czarny osad. Albo okreslac stopien pokrycia
tych elementow, na których on się osadza.
Przyrzad ten miał jakas wade fabryczna bo po roku wysiadal w nim ten generator
wysokiego napięcia.
Ale zasada pracy była ciekawa. Kosztowal około 140 dolarów. Zapewne w Polsce
tez takie sa być może chinskie czy niemieckie, mniej zawodne.
Pzdr
Tornad
Goto page 1, 2 Next