Raspberry Pi 2

Raspberry Pi 2

środa, 26 października 2016

Czujnik MQ-2 na odbiorniku MySensors

Dzisiaj opiszę działanie czujnika MQ-2 na odbiorniku MySensors.

Czujnik MQ-2 wykrywa takie gazy jak: propan, butan, metan, LPG, a także alkohol i dym. Czujnik mierzy stężenie tych gazów w powietrzu do wartości 10 000 ppm.

Czujnik MQ-2 wygląda jak na zdjęciu niżej, a koszt to około 10 zł.


Czujnik MQ-2 posiada następujące wejścia i wyjścia:

A0 - analogowe wyjście sygnału
D0 - cyfrowe wyjście sygnału
GND - masa
VCC - zasilanie +5V



Do odbiornika MySensors podłączamy pin A0 czujnika do pinu A1 odbiornika oraz napięcie VCC +5V i masę GND.


Do odbiornika wgrywamy kod programu ze strony MySensors -> Link

W kodzie programu ze strony MySensors musimy sobie zmodyfikować domyślny pin na A1 i możemy również czas aktualizacji i przesyłania danych na 1000 mili sekund, czyli 1 sekundę, tak jak pokazano niżej.



Zmodyfikowany kod programu do pobrania jest tu -> Link

Po wgraniu programu do Arduino, w logach Domoticz -> Konfiguracja -> Logi pojawi się nazwa programu.


Teraz, aby wykryło czujnik i był on widoczny w Urządzeniach Domoticz musimy podać gaz z zapalniczki na czujnik.
Po podaniu gazu zapali się zielona dioda na czujniku, czułość możemy regulować potencjometrem na płytce.

Powinno się pojawić w Urządzeniach Domoticz, Konfiguracja -> Urządzenia, urządzenie o nazwie Air Quality.


Teraz wystarczy już tylko kliknąć w zieloną strzałkę i wpisać nazwę urządzenia.
Urządzenie będzie widoczne w zakładce Użytkowe.


Jak już napisałem na początku czujnik MQ-2 wykrywa gaz LPG, czyli wykryje gaz z zapalniczki, co widać na poniższym filmie.


Czujnik wykrywa również alkohol, ja użyłem zwykłego perfumu.


Wykrywa również dym papierosowy.

12 komentarzy:

  1. cześć

    1. Super blog, dzięki za wpisy.
    2. Co to za płytka na zdjęciu z rozrysowanymi pinami?
    3. Czy da się wykorzystać nrf24l01 bez Arduino?
    4. Będzie coś z z-Wave?

    pozdrawiam
    Grzegorz

    OdpowiedzUsuń
  2. Ta płytka, to jest płytka gotowych odbiorników MySensors, które opisałem w tym wpisie http://projektpimalina.blogspot.com/2016/09/oferta-gotowych-odbiornikow-mysensors.html
    Na stronie MySensors jest napisane jak wykorzystać NRF24L01 podłączone bezpośrednio do RPi w roli bramki.
    Jeśli chodzi o Z-Wave, to nie zajmuję się drogimi i komercyjnymi rozwiązaniami.

    OdpowiedzUsuń
    Odpowiedzi
    1. dzięki za odpowiedź
      Co do z-Wave to faktycznie tanie nie jest, ale nie znam innego rozwiązanie, które komunikowałoby się miedzy sobą bez konieczności bezpośredniego łączenia do stacji bazowej. Chyba, że możesz zaproponować jakąś alternatywę.

      pozdr

      Usuń
  3. Super blog. Dobre przykłady.
    Z-Wave drogie i komercyjne - fakt.
    Fajnie , że pokazałes RF-linka.
    Może jeszcze można by opisać cos na ESP8266 czyli NodeMCU lub ESPEASY.

    OdpowiedzUsuń
  4. ESP mnie nie interesuje, większość rzeczy działa na MySensors i nie widze sensu robienia tego jeszcze na ESP.

    OdpowiedzUsuń
  5. Czy ktos miał jakiekolwiek problem z odbieraniem danych z Arduino do Domoticza.
    Dane sa odbierane poprawnie z czujnika MQ5 (przy podgladzie w programie Arduino to widać). Czy program działa prawidłowo.

    Ale domoticz nie widzi urządzenia, gdy korzystam z "present(CHILD_ID_MQ, S_AIR_QUALITY);" i "MyMessage msgGas(CHILD_ID_MQ, V_LEVEL);"

    Co ciekawe, gdy zmienię V_LEVEL na V_LIGHT_LEVEL to wtedy domoticz to widzi, tylko jako złe jednostki pokazuje (LUX).

    OdpowiedzUsuń
    Odpowiedzi
    1. Mi na początku też nie chciało wykryć czujnika w Domoticz, dopiero jak puściłem gaz z zapalniczki do czujnika, to go wykryło w Domoticz.

      Usuń
    2. Sam Arduino wykrywa gazy z zapalniczki. A pomimo to nie widać tego w domoticzu.

      Ale ja juz nawet za hardcodowalem wysyłanie losowej wartości z pewnego przedziału - ale bez skutku - dalej nie widzi.

      A wystarczy, że tylko zmienię na inny typ (cała reszta programu bez mian), to domoticz to widzi.

      Usuń
    3. Ja używam wersji Beta Domoticz i u mnie działa, jak masz wersję stabilną, to zmień w Ustawieniach w Aktualizacje oprogramowania - Kanał aktualizacji na Beta i zaktualizauj do wersji Beta.

      Usuń
    4. Mam Bete. Moze problemem jest to ze czujnik mam podpiety bezposrednio do arduino mega, ktore z kolei jest podpiete za pomoca USB do reaspberry.
      Nie mam polaczenia radiowego.

      Usuń
    5. To nie będzie działać, bo kod który umieściłem jest do odbiornika MySensors z modułem NR24L01, który łączy się bezprzewodowo z bramką MySensors z NRF24L01 podpięta na USB do RPi.

      Usuń
    6. Dziwne, wg mnie powinno (zmieniłem na MY_GATEWAY_SERIAL - i inne czujniki działają poprawnie - DHT11, Czujnik otwarci drzwi itd),

      Ja już zmodyfikowałem ten kod do najprostszej postaci:
      - przypisanie losowej do wartości do zmiennej
      - wysłanie tej zmiennej do kontrolera MyMessage msgGas(CHILD_ID_MQ, V_LEVEL);

      Program działa, nawet poprawnie wysyła dane do domoticza, ale gdy tylko zmienię w powyższej linii "V_LEVEL" np. na "V_LIGHT_LEVEL".

      Może domoticz inaczej rozpoznaje to gdy dostaje V_LEVEL.

      Już chyba czas odpuścić, bo pomysły się wyczerpują.

      Jeszcze tylko poskładam bramkę do radiowej komunikacji i sprawdzę.

      Usuń