eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › Czujnik pyłu
Ilość wypowiedzi w tym wątku: 20

  • 1. Data: 2017-02-17 01:12:56
    Temat: Czujnik pyłu
    Od: Piotrne <p...@p...onet.pl>

    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
    }


  • 2. Data: 2017-02-17 08:13:48
    Temat: Re: Czujnik pyłu
    Od: Krzysiek <k...@p...onet.pl>



    W dniu 2017-02-17 o 01:12, Piotrne pisze:
    > 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/c
    zujnik-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




  • 3. Data: 2017-02-17 14:23:07
    Temat: Re: Czujnik pyłu
    Od: Piotrne <p...@p...onet.pl>

    W dniu 2017-02-17 o 08:13, Krzysiek pisze:

    > Tu jest opisany ten czujnik:
    > http://www.jarzebski.pl/arduino/czujniki-i-sensory/c
    zujnik-pylu-gp2y1010au0f.html

    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.


  • 4. Data: 2017-02-18 01:37:16
    Temat: Re: Czujnik pyłu
    Od: Piotrne <p...@p...onet.pl>

    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.

    > 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).


    > 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.


  • 5. Data: 2017-02-18 03:03:36
    Temat: Re: Czujnik pyłu
    Od: Zenek Kapelinder <4...@g...com>

    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.


  • 6. Data: 2017-02-18 11:32:59
    Temat: Re: Czujnik pyłu
    Od: Pawel <n...@n...pl>

    W dniu 18.02.2017 o 01:37, Piotrne pisze:
    > 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.

    >
    >> 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ł


  • 7. Data: 2017-02-18 11:48:33
    Temat: Re: Czujnik pyłu
    Od: Pawel <n...@n...pl>


    > 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ł


  • 8. Data: 2017-02-18 15:12:48
    Temat: Re: Czujnik pyłu
    Od: AlexY <a...@i...pl>

    Zenek Kapelinder pisze:
    [..]
    > 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


  • 9. Data: 2017-02-18 16:01:59
    Temat: Re: Czujnik pyłu
    Od: Piotrne <p...@p...onet.pl>

    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.

    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


  • 10. Data: 2017-02-18 16:51:28
    Temat: Re: Czujnik pyłu
    Od: Zenek Kapelinder <4...@g...com>

    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.

strony : [ 1 ] . 2


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: