Test czujnika DHT 22
Czujnik DHT22 i DHT11 posiada cztery nóżki, które kolejno od lewej posiadają wejścia 1 - VCC, 2 - Data, 3 - nie używany, 4 - GND
Do nóżki numer 2 - Data należy podłączyć zasilanie poprzez rezystor podciągający 10K.
Schemat podłączenia do odbiornika MySensors
Do podłączenia czujnika DHT wykorzystano pin 3 odbiornika MySensors.
Kod programu do wgrania do Arduino jest do pobrania tu -> Link
W 14-stej linijce kodu, określono nr pinu do przesyłania danych:
#define DHT_DATA_PIN 3
W 21-szej linijce kodu określony jest czas w milisekundach pomiędzy kolejnymi odczytami i przesyłaniem danych do Domoticz:
static const uint64_t UPDATE_INTERVAL = 30000;
Możemy go dowolnie modyfikować pamiętając, że minimalny czas dla czujnika DHT22 to 1000 ms, czyli 1 sekunda, a dla DHT11 to 2000 ms, czyli 2 sekundy.
Po wgraniu do Arduino w logach Domoticz -> Konfiguracja -> Logi wyświetli się nazwa programu.
Po wejściu w Konfiguracja -> Urządzenia w Domoticz pojawi się czujnik.
Urządzenie dodajemy po kliknięciu w zieloną strzałkę i po wpisaniu nazwy odczyt temperatury i wilgotności będzie widoczny w zakładce Temperatura.
Test czujnika ruchu PIR HC-SR501
Do testów wykorzystałem czujnik PIR HC-SR501 niebieski.
Czujnik posiada 2 potencjometry T1 i T2, zworkę którą można ustawić w pozycji L lub H i wyjścia/wejścia VCC, OUT i GND.
Potencjometrami T1 i T2 regulujemy:
T1 - czas trwania stanu wysokiego po wykryciu obiektu
T2 - czułość czujnika (dystans, w którym wykrywa ruch obiektu)
Zworkę proponuję ustawić w pozycji H, co będzie skutkowało, tym że po wykryciu ruchu na pinie OUT pojawi się stan wysoki i będzie on utrzymywany dopóki trwa ruch, w pozycji L po wykryciu ruchu na wyjściu OUT pojawi się stan wysoki i zaraz przejdzie w stan niski.
Potencjometr T1, czyli czas reakcji proponuję ustawić maksymalnie w lewo, a T2 czyli odległość na jakiej będzie wykrywany ruch tak jak pokazano niżej.
Kod programu do wgrania do Arduino jest do pobrania tu -> Link
W kodzie programu w 41 linijce kodu określamy pin Arduino, do którego podłączamy wyjście OUT czujnika PIR.
Ja wykorzystałem pin 4, czyli:
#define DIGITAL_INPUT_SENSOR 4
W 40 linijce kodu ustawiamy czas w milisekundach, pomiędzy którym będzie wykrywany ruch, najlepiej ustawić go na jak najmniejszy ja ustawiłem 1 sekundę czyli 1000 ms:
unsigned long SLEEP_TIME = 1000;
Schemat podłączenia
Po wgraniu kodu do Arduino w logach Domoticz wyświetli się nazwa programu:
W urządzeniach pojawi się:
Po kliknięciu w zielona strzałkę czujnik pir pojawi się w Przełącznikach w menu Domoticz jak zwykły włącznik, musimy jeszcze kliknąc Edycja i zmienić go na Motion Sensor.
Tak wygląda dodany czujnik ruchu.
Po wykryciu ruchu czujnik podświetli się na czerwono.
Połączenie czujnika DHT22 i czujnika PIR HC-SR501
Kod wykorzystujący jednocześnie czujnik DHT22 i czujniku ruchu PIR HC-SR501 na jednym odbiorniku MySensors jest do pobrania tu -> Link
Podłączamy:
Pin 3 - czujnik DHT22
Pin 4 - czujnik PIR HC-SR501
Numery pinów zostały zdefiniowane w 13 i 14 linijce kodu programu:
#define DHT_DATA_PIN 3 // pin podlaczenia czujnika DHT
#define DIGITAL_INPUT_SENSOR 4 //pin podlaczenia czujnika ruchu PIR
Czas odczytu danych i przesyłania danych do Domoticz został określony w 21 linijce kodu i jest ustawiony na 1000 ms czyli 1 sekundę:
static const uint64_t UPDATE_INTERVAL = 1000;
Po dodaniu w Domoticz mamy:
Zmontowane czujniki na odbiorniku MySensors
Czujnik PIR możemy wykorzystać do włączania różnych urządzeń tworząc zdarzenia w Konfiguracja -> Więcej opcji -> Zdarzenia.
Przykładowe zdarzenie, które włącza lampkę przy biurku na 1 minutę.
Działanie czujnika PIR widać na poniższym filmie, po wykryciu ruchu zapala się lampka przy biurku.
Połączenie czujnika jakości powietrza GP2Y1010AU0F i DHT22
Czujnik jakości powietrza GP2Y1010AU0F opisałem w tym wpisie na blogu -> Link
Kod programu wykorzystujący jednocześnie czujnika jakości powietrza i czujnik DHT22 jest do pobrania tu -> Link
Czujnik jakości powietrza wykorzystuje piny A1 i 3, a czujnik DHT22 pin 4, jest to zdefiniowane w 15 do 17 linijce kodu programu:
#define DUST_SENSOR_ANALOG_PIN 1
#define DUST_SENSOR_DIGITAL_PIN 3
#define DHT_DATA_PIN 4 // Ustawienie pinu wyjsciowego DHT
Czas przesyłania danych i odczytów został ustawiony na 30 sekund w 26 linijce kodu programu:
unsigned long SLEEP_TIME = 30000; //czas miedzy kolejnymi odczytami
Po dodaniu do Domoticz mamy:
Zmontowane czujniki
Połączenie czujnika gazu MQ-2 i DHT22
Czujnik gazu MQ-2 opisałem w tym wpisie na blogu -> Link
Kod programu wykorzystujący czujnik MQ-2 i DHT22 jednocześnie na odbiorniku MySensors jest do pobrania tu -> Link
Podłączenie:
DHT22 - pin 3 Arduino
Czujnik MQ-2 - A0 - pin A1 Arduino
GND - masa
VCC - zasilanie +5V
Czujnik DHT22 podłączony do zasilania tak jak na początku wpisu na blogu, poprzez rezystor podciągający 10K.
W Domoticz mamy:
Zmontowane czujniki
Połączenie czujnika ciśnienia BMP180 i DHT22
Czujnik ciśnienia BMP180 wykorzystałem w budowie mojej stacji pogody, którą opisałem w tym wpisie na blogu -> Link
Czujnik BMP180 wymaga zasilania 3,3V i działa jedynie na pinach SCL i SDA Arduino, są to odpowiednio piny A5 i A4, na innych pinach czujnik nie będzie działać.
Czujnik BMP180 wygląda tak:
Podłączamy go tak:
VIN - zasilanie 3,3V
GND - GND
SCL - pin A5
SDA - pin A4
Czujnik DHT22 wykorzystuje pin 3 Arduino.
Kod programu do pobrania jest tu -> Link
W przeciwieństwie do kodu programu, który wykorzystałem w opisie budowy stacji pogody, kod ten wykorzystuje już biblioteki MySensors 2.0.
W kodzie programu w linijce 41 musimy wpisać wysokość nad poziomem morza w metrach swojej lokalizacji, możemy to sprawdzić na stronie -> Link
const float ALTITUDE = 312;
Po dodaniu w Domoticz mamy:
Połączenie czujnika ciśnienia BMP180, DHT22 i GP2Y1010AU0F
Podłączenie:
BMP180:
VIN - zasilanie 3,3V
GND - GND
SCL - pin A5
SDA - pin A4
DHT22 - pin 4
GP2Y1010AU0F - pin analogowy A1, pin cyfrowy - pin 3
Kod programu -> Link
Wysokość nad poziomem morza definiujemy w linijce 40 kodu.
Po wgraniu do Arduino w Domoticz mamy:
Zamontowane czujniki