niedziela, 17 kwietnia 2016

Sterowanie dowolnym urządzeniem nadajnikiem podczerwieni w Domoticz

Dzisiaj wykonałem odbiornik MySensors do sterowania dowolnym urządzeniem poprzez nadajnik podczerwieni.

Na razie wykorzystałem, go do włączania i wyłączania amplitunera kina domowego, ale w przyszłości zostanie wykorzystany do zdalnego włączania przenośnego klimatyzatora.

Potrzebny będzie jakiś nadajnik podczerwieni, można wymontować z starego nie używanego pilota lub kupić nowy w sklepie.
Dosyć dobrą diodą nadawczą IR jest LD271, ma ona szeroki kąt świecenia, koszt zakupu, to około 1,60 zł -> Link

Ja wykorzystałem nie używany przewód z dwiema diodami, który leżał gdzieś w szufladzie, jest to przedłużacz z jakiegoś transmitera AV.


Aby odczytać kody pilota będzie jeszcze potrzebny odbiornik podczerwieni oraz kondensator 4,7 uF i rezystor 100 ohm, ponieważ jak zaleca producent, odbiornik należy podłączyć do zasilania poprzez rezystor 100 ohm i ustabilizować zasilanie kondensatorem 4,7 uF zgodnie ze schematem.


Ja wykorzystałem odbiornik podczerwieni TSOP34136, który wymontowałem z starego panelu uszkodzonego dekodera satelitarnego.
Odbiornik ma oznaczenie V34136


Według karty katalogowej ma on takie wejścia/wyjścia:


gdzie: 1- OUT wyjście sygnału, 2- GND - masa i 3- Vs - zasilanie.

Diodę IR podłączamy do pinu D3, a odbiornik do pinu D8 według schematu.


Aby sterować urządzeniem przez Domoticz, należy najpierw odczytać kod pilota, programujemy więc Arduino kodem, do pobrania -> Link

Po zaprogramowaniu włączamy port szeregowy w Arduino i po wciśnieciu przycisku na pilocie powinien pojawić się kod pilota.


W moim przypadku jest, to kod NEC: A55A38C7 po wciśnięciu przycisku power.

Gdy mamy kod pilota, możemy go wpisać do programu, do odbiornika MySensors


Kod programu jest do pobrania tu -> Link

Teraz w Domoticz w Konfiguracja -> Urządzenia powinno być widoczne nowe urządzenie.


Klikamy w zieloną strzałkę, nadajemy nazwę i już mamy przycisk włączający i wyłączający urządzenie.

Włączanie amplitunera wygląda jak na poniższym filmie




sobota, 2 kwietnia 2016

Budowa anteny kolinearnej (colinear) 1090 Mhz

Aby zapewnić dobry zasięg dla radaru najlepszą chyba anteną jest antena kolinearna (colinear).

Do budowy anteny wykorzystałem czarny przewód Triset 113.

Potrzebne rzeczy do budowy można kupić w marketach budowlanych, ja zakupy zrobiłem w Leroy Merlin i kupiłem:

1) Rura elektroinstalacyjna 32 mm - długości 2 m -> Link - cena 5,60 zł
2) Dwie zaślepki PVC KW1 -> Link - cena 2 x 1,90 zł = 3,80 zł
3) Dławik kablowy PG 9 LEXMAN -> Link - cena 2,20 zł
4) Korek 22 mm z miedzi -> Link - cena 5,50 zł
5) 2 nyple redykcyjne 22-18 mmm z miedzi -> Link -cena 2 x 3,68 zł = 7,36 zł
6) Beczka - gniazdo F podówjne - cena 5,15 zł

Potrzebne jeszcze będą: taśma izolacyjna, gniazda F.

Z przewodu antenowego tniemy 8 odcinków po około 15 cm, odpowiednio je przycinając na długość 11 cm w izolacji.


Łączymy odcinki przewodów, tak jak pokazano to na tym filmie -> Link


Górny odcinek przygotowujemy, tak aby środowa żyła bez izolacji miała długość 68 mm, przewód w izolacji 55 mm i 2 cm na połączenie z anteną. W górnym odcinku zostawiamy trochę odizolowanego oplotu i owijamy go o środkową żyłę.


W dolnym odcinku robimy balun z korka miedzianego i 2 nypli, należy zrobić otwór w korku na wkręcenie beczki. Balun zrobiłem na długość 68 mm i odcinek przewodu na 55 mm.

Schemat


Gotowy balun


Teraz w zatyczce PVC wiercimy otwór i wkręcamy dławik


Przycinamy rurę na odpowiednią długość zostawiając od góry około 20 cm wolnej przestrzeni w rurze.


Wkładamy antenę do rury i zakładamy zatyczki.

Gotowa antena


Antenę umieściłem na dachu domku jednorodzinnego


Po zamontowaniu mam dosyć dobre osiągi, antena zlokalizowana jest około 15 km na południe od Opola i obejmuje zasięgiem prawie cała Polskę i Czechy oraz Słowację, sięgając do Austrii i Węgier.


Antenę zbudowałem w oparciu o projekt jak niżej, stosując odcinki 11 cm dla długości pół fali z współczynnikiem tłumienia i dla górnego odcinka środkowej żyły i balunu 1/4 fali bez współczynnika tłumienia.




czwartek, 31 marca 2016

Przekazywanie danych ADS-B na Flight Radar 24

W poprzednim poście opisałem jak uruchomić własny radar ADS-B na Rpi, odebrane dane z nadajników ADS-B w samolotach możemy przekazywać na stronę Flight Radar 24 i dzięki temu mamy dostęp do konta Premium. Strona jest dostępna pod adresem -> Link

Aby zainstalować FR24 na RPi wydajemy polecenie:

sudo bash -c "$(wget -O - http://repo.feed.flightradar24.com/install_fr24_rpi.sh)"

Teraz wpisujemy kolejno:

1) adres emial
2) sharing key (jeśli go nie mamy zostawiamy puste)
3) następnie pyta czy używać MLAT, wpisujemy YES
4) podajemy długość i szerokość geograficzną, uzyskamy ja na mapach google
5) podajemy wysokość nad poziomem morza w stopach, znajdziemy ja na stronie -> Link Wystarczy wpisać adres naszej lokalizacji, w moim przypadku jest to 610 feet
6) podajemy rodzaj odbiornika, wybieramy AVR Compatible nr 5
7) rodzaj połączenia internetowego 1- Network connection
8) wpisujemy adres ip rpi (w moim przypadku 192.168.3.105)
9) port odbiornika 30002
10) odpowiadamy yes
11) znów yes
12) 0
13) /var/log

Po zakończeniu konfiguracji restartujemy FR24 poleceniem:

sudo service fr24feed restart

Polecenie:

sudo service fr24feed status sprawwdza czy wszytsko jest ok


Po wpisaniu ip rpi:8754, czyli w moim przypadku 192.168.3.105:8754 mamy dostęp do konfiguracji FR24

Moja konfiguracja wygląda tak


Po poprawnej konfiguracji dajemy save i restart

Po zalogowaniu na stronie FR24 w account -> show statistics będziemy widzieć czy wszystko działa ok.

Własny radar ADB-S na Raspberry Pi

Ostatnio popularne są tunery DVB-T zbudowane na układach RTL2832U oraz R820T2, które możemy wykorzystać jako skaner częstotliwości i podsłuchiwać różne służby, pasmo amatorskie i cb radio.

Możemy go również wykorzystać jako odbiornik ADS-B i stworzyć własny radar wykrywający samoloty przelatujące w okolicy.

Tuner można znaleźć na Allegro pod hasłem RTL SDR.

Wygląda tak


Aby stworzyć odbiornik ADS-B musimy najpierw zainstalować sterownik do tunera DVB-T

Instalujemy potrzebne pakiety:

sudo apt-get install git-core
sudo apt-get install git
sudo apt-get install cmake
sudo apt-get install libusb-1.0-0-dev
sudo apt-get install build-essential

Teraz instalujemy sterowniki:

git clone git://git.osmocom.org/rtl-sdr.git
cd rtl-sdr
mkdir build
cd build
cmake ../ -DINSTALL_UDEV_RULES=ON
make
sudo make install
sudo ldconfig

cd ~
sudo cp ./rtl-sdr/rtl-sdr.rules /etc/udev/rules.d/
sudo reboot

Teraz instalujemy pakiet Dump1090

cd ~
git clone git://github.com/MalcolmRobb/dump1090.git
cd dump1090
make
./dump1090 --interactive --net --net-http-port 9090

Jeśli wyskoczy błąd:
Found 1 device(s):
0: Realtek, RTL2838UHIDIR, SN: 00000001 (currently selected)

Kernel driver is active, or device is claimed by second instance of librtlsdr.
In the first case, please either detach or blacklist the kernel module
(dvb_usb_rtl28xxu), or enable automatic detaching at compile time.

usb_claim_interface error -6
Error opening the RTLSDR device: Device or resource busy

Otwieramy plik:

cd /etc/modprobe.d
sudo nano /etc/modprobe.d/rtl-sdr-blacklist.conf

Wpisujemy:
blacklist dvb_usb_rtl28xxu
blacklist e4000
blacklist rtl2832

Zapisujemy plik Ctrl+x i restrtujemy RPi

Aby uruchomić radar wydajemy polecenie:

cd ~
cd dump1090
./dump1090 --interactive --net --net-http-port 9090

Wykorzystałem port 9090 ponieważ port 8080 jest wykorzystywany przez Domoticz.

Teraz po wpisaniu ip rpi:9090 zobaczymy mapę z wykrytymi samolotami.

Instalacja Domoticz na Raspbian Jessie

W wrześniu 2015 opisałem instalację Domoticz z gotowego obrazu, aby korzystać z najnowszej wersji Raspbiana Jessie opiszę jak zainstalować Domoticz na tej wersji Raspbiana.

Instalacja Raspbian Jessie opisana jest w tym wpisie -> Link

Logujemy się do terminala i wpisujemy kolejno poniższe polecenia, aby zaktualizować Jessie:

sudo apt-get update

sudo apt-get upgrade

sudo reboot

sudo rpi-update

sudo reboot

Po aktualizacji instalujemy Domoticz, wpisując kolejno:

mkdir ~/domoticz

cd ~/domoticz

wget http://www.domoticz.com/releases/release/domoticz_linux_armv7l.tgz

tar xvfz domoticz_linux_armv7l.tgz

rm domoticz_linux_armv7l.tgz

Aby Domoticz uruchamiał się po restarcie automatycznie wpisujemy jeszcze:

sudo cp domoticz.sh /etc/init.d

sudo chmod +x /etc/init.d/domoticz.sh

sudo update-rc.d domoticz.sh defaults

Przeprowadzamy test Domoticz poleceniem:

sudo ./domoticz

Wciskamy Ctrl+C i uruchamiamy Domoticz poleceniem:

sudo service domoticz.sh start

Domoticz teraz będzie dostępny pod adresem:

Ip Raspberry:8080, czyli w moim przypadku 192.168.3.105:8080

Aby zmienić domyślny port Domoticz, edytujemy plik /etc/init.d/domoticz.sh poleceniem:

sudo nano /etc/init.d/domoticz.sh

Domyślny port 8080 zmieniamy w linijce:

DAEMON_ARGS="-daemon -www 8080"

Rasberry Pi i Raspbian Jessie

Obecnie najnowszym systemem Raspian na Raspberry Pi jest Raspbian Jessie.
Obraz najnowszego systemu dostępny jest zawsze na stronie -> Link

Po pobraniu obraz systemu wgrywamy tak jak opisałem to w wpisie -> Link

Po wgraniu obrazu systemu postępujemy, tak samo jak we wpisie powyżej rozszerzając pojemność pamięci i ustawiając język, strefę czasową itd...

W Raspbianie Jessie inaczej ustawia się stałe IP.

Logujemy się więc, do Rpi w terminalu i wpisujemy:

ifconfig

Wyświetlą się takie informacje jak adres ip, maska sieci i brama


Po wpisaniu

sudo nano /etc/network/interfaces

zawartość pliku wygląda tak


Aby, do Rpi można było się dostać po stałym ip, edytujemy plik /etc/dhcpcd.conf, czyli wydajemy polecenie:

sudo nano /etc/dhcpcd.conf

Wpisujemy nasze ip i bramę w takiej postaci:

interface eth0
static ip_address=192.168.1.141/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1

W moim przypadku będzie to:
interface eth0
static ip_address=192.168.3.105/24
static routers=192.168.3.1
static domain_name_servers=192.168.3.1

Wciskamy Ctrl+x i zapisujemy plik.
Po restarcie mamy już ustawione stałe IP.

poniedziałek, 9 listopada 2015

Czujniki iNode w Domoticz

Dzięki uprzejmości firmy ELSAT s.c. z Piaseczna otrzymałem bezpłatnie urządzenie iNode LAN i czujniki iNode Care Sensor #3 oraz iNode Energy Meter.

iNode LAN jest to niewielkie urządzenie, które służy do odbioru danych z czujników iNode i przesyłaniu ich poprzez port LAN.

Paczka dotarła do mnie ładnie zapakowana, w środku znajdowały się 2 czujniki i iNode LAN.


Czujniki iNode są niewielkich rozmiarów i przesyłają dane przez bluetooth, zasilane są małą baterią pastylkową i pobierają bardzo mało energii.


Odbiornik iNode LAN wygląda tak, jak na zdjęciu niżej, zasilany jest poprzez wejście mini USB, można użyć zasilacza 5V lub portu USB z komputera.


iNode LAN kosztuje 179 zł i można go zakupić na stronie -> Link

Czujnik iNode Care Sensor #3 to koszt 129 zł -> Link

Czujnik pomiaru zużycia energii elektrycznej kosztuje 89 zł -> Link

Aby odbierać dane z czujników należy podłączyć iNode LAN do routera oraz zasilanie poprzez mini USB.

Po podłączeniu urządzenie iNode LAN zostanie wykryte automatycznie, bo jest ustawione w konfiguracji sieci jako DHCP.


Jak widać u mnie dla INode LAN został przydzielony adres: 192.168.3.13, wpisujemy więc ten adres w przeglądarkę internetową i ukaże nam się panel z wykrytymi czujnikami.


Jak widać mamy bezpośrednie odczyty z wykrytych czujników.

Klikając w symbol niebieskich kropek, a później SETUP można zmienić sobie adres IP, aby był przydzielony na stałe.

Moje parametry wyglądają następująco


DHCP zmieniłem na OFF i wpisałem stałe IP: 192.168.3.100, ważne jest aby wpisać poprawnie adres czasu NTP i strefę czasową, u mnie jest, to 80.50.231.226 i GMT offset +1.

Po zapisie danych czas musi być poprawny, bo będzie problem z odczytem danych w Domoticz.

Aby możliwy był odczyt danych z czujników w Domoticz poprzez Raspberry Pi musimy ściągnąć i skopiować pliki do RPi ze strony iNode.
Wchodzimy więc na stronę -> Link wpisujemy użytkownik: inode i zostawiamy puste hasło.
W bibliotece plików w PYTHON mamy plik inode.zip, ściągamy go więc i zapisujemy na komputerze, po rozpakowaniu tworzymy katalog INODE w /home/pi/ , kopiujemy pliki inode.py, aes.py, range.csv, pswd.csv, domoticz.csv, thingspeak.csv, alert.csv do folderu /home/pi/INODE/

Po skopiowaniu będąc w /home/pi/INODE/ wpisujemy w terminalu kolejno:

sudo cp inode.py /usr/local/sbin/
sudo cp aes.py /usr/local/sbin/
sudo cp inode.py /etc/init.d/
sudo chmod 755 /etc/init.d/inode.py
sudo update-rc.d inode.py defaults

Teraz w Domoticz tworzymy wirtualne urządzenie iNode, czyli klikamy Ustawienia -> Sprzęt i dodajemy tak jak niżej


Teraz klikamy utwórz wirtualne sensory w utworzonym sprzęcie i dla czujnika temperatury i wilgotności wybieramy Temp+wilg.
następnie wchodzimy w urządzenia i klikamy zieloną strzałkę i wpisujemy nazwę urządzenia, robimy tak dla wszystkich czujników jakie mamy. Ja czujnik iNode Care Sensor #3 nazwałem iNode, a czujnik pomiaru zużycia energii elektrycznej Emeter.
Należy zapamiętać jakie Idx zostało przydzielone w Domoticz, u mnie dla iNode jest to 104, a dla Emeter to 100.


Należy wyedytować jeszcze pliki domoticz.csv, pswd.csv, range.csv, alert.csv.

Plik domoticz.csv wyglada u mnie tak:
mac,name,var,idx
00126F6D3C48,iNode,HT,104
00126F6D3A1F,Emeter,E,100

gdzie wpisujemy kolejno pop przecinku adres mac czujnika, nazwę wpisaną w domoticz, rodzaj czujnika i Idx.

Plik pswd.csv
mac,name,pswd
00126F6D3C48,iNode,
00126F6D3A1F,Emeter,

Plik range.csv
mac,name,rssi,io,host,port,url
00126F6D3C48,iNode,-99,IN,,,
00126F6D3C48,iNode,-99,OUT,,,
00126F6D3A1F,Emeter,-99,IN,,,
00126F6D3A1F,Emeter,-99,OUT,,,

Plik alert.csv
mac,name,group,alert_mask,host,port,url1,url2

W ustawieniach domoticz należy zostawić w Zabezpieczenie WWW pusty login i hasło.

Aby program inode.py był uruchamiany przy włączeniu RPi wpisujemy w terminalu:
sudo crontab -e

Dodajemy wpis:
@reboot python /home/pi/INODE/inode.py &

Wciskamy Ctrl+x zapisujemy plik i restarujemy RPi, czyli: sudo reboot.

Po restarcie powinny być poprawne odczyty z czujników iNode


Czujniki iNode w porównaniu do MySensors nie wymagają zastosowania zewnętrznego zasilania 5V i mają mały rozmiar.

Niestety czujnika zużycia prądu nie mogłem przetestować, bo posiadam stary typ miernika zużycia prądu, bez migającej diody.