Pokazywanie postów oznaczonych etykietą MySensors. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą MySensors. Pokaż wszystkie posty

środa, 22 listopada 2017

Sprzedam bramki i odbiorniki MySensors

Mam na sprzedaż gotowe zaprogramowane i przetestowane bramki MySensors 3 szt. i jeden odbiornik MySensors.



Cena bramki - 90 zł

Cena odbiornika 40 zł.

W sprawie kupna proszę o kontakt na email: roman.kubat.rk@gmail.com

poniedziałek, 17 kwietnia 2017

Bramka Ethernet MySensors

Jeżeli nie mamy możliwości podłączenia bramki MySensors do portu USB w Rasberry Pi, możemy zbudować bramkę Ethernet podłączaną do domowej sieci lan za pomocą skrętki.

Budowa bramki MySensors Ethernet opisana jest na stronie MySensors -> Link

Ja do budowy bramki wykorzystałem Arduino Uno i Ethernet Shield z czytnikiem kart microSD, widoczny niżej.


Schemat podłączenia modułu NRF24L01 do Ethernet Shield.


Do Arduino Uno wgrywamy kod -> Link

W 35 linijce kodu wpisujemy adres ip bramki, ja akurat mam Ip z zakresi 192.168.3.1 do 200, więc wpisałem sobie:

#define MY_IP_ADDRESS 192,168,3,160 // wpisz adres ip bramki

W 39 linijce kodu wpisujemy numer portu bramki, ja wpisałem sobie:

#define MY_PORT 9003 //wpisz numer portu bramki, wcześniej zdefiniowany w kodzie programu.

Po wgraniu dodajemy bramkę w Domoticz -> Konfiguracja -> Sprzęt jak niżej, wpisując adres Ip i port bramki.


W logach Domoticz -> Konfiguracja -> Logi powinno się pojawić:

MySensors: connected to: 192.168.3.160:9003
MySensors: Gateway Ready...
MySensors: Gateway Version: 2.1.1

Jeżeli mamy jakieś odbiorniki MySensors powinny wkrótce pojawić się w logach i pokazać w Urządzeniach, dodajemy je klikając w zieloną strzałkę.

niedziela, 16 kwietnia 2017

MySensors - komunikacja przewodowa RS485

Jeżeli nie chcemy korzystać z komunikacji bezprzewodowej za pomocą modułów NRF24L01 pomiędzy bramką MySensors, a odbiornikami MySensors możemy wykorzystać bramkę np. na Arduino Uno z podłączonym modułem RS485 i przekazywać i odbierać dane do kolejnych Arduino z modułami RS485.

Moduł RS485 wygląda i posiada takie sygnały jak pokazano niżej.


Więcej o komunikacji RS485 można poczytać tu -> Link

Moduły do komunikacji używają gniazd oznaczonych jako A i B, łączymy je ze sobą, od pierwszego modułu do drugiego, od drugiego do trzeciego itd...

Moduły RS485 wymagają zasilania 5V, pin RO łączymy do pinu 8 Arduino, DI do pinu 9, a RE i DE łączymy razem do pinu 2 Arduino.

Ja bramkę zbudowałem na Arduino Uno, a odbiornik na Arduino Mini Pro 5V i schemat połączenia wygląda tak.


Zgodnie z tym, co napisali na stronie Mysensors -> Link, do poprawnego działania wymagana jest biblioteka AltSoftSerial, do pobrania tu -> Link, wypakowujemy ją do: Moje dokumenty\Arduino\libraries.

Do bramki wgrywamy kod -> Link

Do odbiornika przykładowy kod ze strony MySensors na czujnik ruchu PIR -> Link

Czujnik ruchu PIR podłączamy do pinu 3 Arduino w odbiorniku i VCC oraz GND do Arduino.

Po wgraniu kodu do bramki podłączamy ją do Raspberry Pi do portu USB i dodajemy bramkę Mysensors jak niżej.


U mnie bramka działa na porcie ACM0.

Po dodaniu bramki i połączeniu odbiornika zgłosi się nam w logach Domoticz (Konfiguracja -> Logi) bramka i czujnik ruchu PIR.


Dodajemy go w Konfiguracja -> Urządzenia klikając w zieloną strzałkę, pojawi się w menu Przełączniki.

Zmieniamy jeszcze rodzaj na Motion Sensor i już powinno działać wykrywanie ruchu.




Inne kody programów do odbiorników z RS485.

Kod programu do odbiornika na przekażnik -> Link


Kod programu dla czujnika temperatury i wilgotności DHT11 lub DHT22 -> Link

niedziela, 27 listopada 2016

Testy i połączenie różnych czujników MySensors

Dzisiaj opiszę testy i kombinacje połączeń różnych czujników do odbiornika MySensors.

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

piątek, 18 listopada 2016

Nowa wersja oprogramowania RFLink z obsługą MySensors

Pojawiła się nowa wersja oprogramowania dla RFLink R44 z obsługą MySensors, do pobrania tu -> Link

Dla dobrego zasięgu najlepiej zamontowac moduł NRF24L01 z zewnętrzną antenką.


Po ściągnięciu rozpakowujemy archiwum i programujemy tak jak opisałem we wcześniejszym wpisie na blogu -> Link

Uruchamiamy plik RFLinkLoader.exe i w Select file wybieramy plik RFLink.cpp.hex z rozpakowanego archiwum, odpowiedni port com w Serial Port i klikamy Upload/Program Firmware to device.

Po wgraniu oprogramowania klikamy Serial Port Logging i najlepiej włączyć wszystkie opcje dla modułu NRF, czyli NodoNRF:ON, MiLight:ON, BLE:ON, MySensors:ON.


Po włączeniu tych opcji powinniśmy zobaczyć wykryte urządzenia w logu jak wyżej.

Teraz już wystarczy podłączyć i dodać RFLink jak opisałem we wcześniejszym wpisie na blogu -> Link

Po jakimś czasie w Konfiguracja -> Urządzenia powinniśmy zobaczyć wykryte urządzenia MySensors przez RFLink.


Dodajemy je klikając w zieloną strzałkę i wpisując nazwę.

Z tego co zauważyłem RFLink nie pokazuje poprawnych wartości dla niektórych odbiorników MySensors i nie wykrywa wszystkich rodzaji czujników MySensors, nie wykrywa mi np. czujnika jakości powietrza z czym bramka MySensors nie ma problemu.

czwartek, 10 listopada 2016

Test czujnika jakości powietrza GP2Y1010AU0F na MySensors

Dzisiaj opiszę działanie czujnika pyłu i jakości powietrza Sharp GP2Y1010AU0F na odbiorniku MySensors.

Czujnik można kupić za około 30 zł w tym sklepie -> Link

Czujnik GP2Y1010AU0F wygląda, jak na zdjęciu niżej i w zestawie otrzymujemy rezystor 150 ohm i kondensator 220 uF.


Czujnik GP2Y1010AU0F posiada następujące parametry techniczne:

napięcie zasilania: DC5 ± 2 V
pobór Prądu: 20mA (szczyt)
czułość: 0.5 V/(0.1 mg/m3)
minimalny poziom wykrywanych cząstek: 0.8 μm
temperatura pracy:-10 ~ 65
wymiary: 46mm x 30mm x 17.6mm

Schemat podłączenia do odbiornika MySensors wygląda następująco.


Czujnik GP2Y1010AU0F posiada przewody, które podłączamy następująco:

1. Biały podłączamy przez rezystor 150 ohm do zasilania 5V
2. Niebieski do GND
3. Zielony do pinu 3 Arduino
4. Żółty do GND
5. Czarny do pinu analogowego A1 Arduino
6. Czerwony do zasilania 5V

Między białym (plus) przed rezystorem 150 ohm, a masą GND (minus) na niebieskim, dajemy kondensator 220 uF.

Kod programu do wgrania do Arduino jest do pobrania tu -> Link

Na końcu kodu w delay(10000); określamy sobie czas w milisekundach między kolejnymi odczytami.
Ja ustawiłem na 10000 milisekund, czyli 10 sekund.

Po wgraniu kodu do Arduino w logach Domoticz (Konfiguracja -> Logi) pojawi się log z nazwą programu.


Teraz już tylko wystarczy wejść w Konfiguracja -> Urządzenia i kliknąć w zieloną strzałkę, aby dodać urządzenie.


Czujnik będzie widoczny w zakładce użytkowe.


Działanie czujnika widać na poniższym filmie.


Jak widać po zapaleniu papierosa, wzrosło stężenie cząstek.

Normalnie w pomieszczeniu pokazuje stężenie 10 ug/m3, po wystawieniu za okno wzrosło do około 42 ug/m3, co w okresie grzewczym na wsi mieści się w zakresie dopuszczalnym.

Zmodyfikowany i ulepszony kod programu, do pobrania -> Link

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