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.

niedziela, 18 października 2015

Modyfikacja stacji pogody

W mojej stacji pogody, której budowę opisałem w tym wpisie -> Link zasilanie było realizowane przez 4 baterie AA poprzez stabilizator 5V do Arduino Mini Pro.

Po tygodniu działania baterie zaczęły się szybko wyładowywać i postanowiłem zrealizować zasilanie z panelu solarnego.

Panel solarny zakupiłem w sklepie Botland za 25,90 zł -> Link

Ogniwo słoneczne będzie zasilać 4 akumulatorki AA poprzez moduł mini USB TP4056, a następnie podnoszone napięcie poprzez moduł step u do 5V.

Moduł ładowania i step up zakupiłem w sklepie Propix:

Moduł mini ładowarka akumulatorów Li-ion 1A TP4056 USB mini 4,90 zł -> Link

MINI przetwornica USB DC/DC STEP-UP 5V 500mA 9,80 zł -> Link

Do przeróbki użyłem 4 akumulatorki AA, kondensator 0,1 uF, rezystor 1M ohm i 680 K ohm.

W modyfikacji będzie pokazywany stan naładowania akumulatorków wykorzystujący pin A0 wg, opisu na stronie MySensors -> Link

Moje zasilanie z akumulatorków , to 2 razy po 2 akumulatorki, co daje napięcie maksymalne w zakresie 2,6 do 2,7 V, więc dokonałem obliczeń rezystora R2 - Vmax = 1.1 * (1e6+680e3)/680e3 = 2.72 V. Dokonałem modyfikacji w kodzie programu 2.72/1023 = Volts per bit = 0.0026588465298142717497.

Schemat modyfikacji wygląda tak


Koszyczek zmodyfikowałem tak, aby dawał zasilanie 2 razy 2 AA, od + akumulatorków biegnie przewód przez rezystor 1 Mohm do A0 Arduino, z masy przez rezystor 680 kohm do A0, a między masą, a pinem A0 jest kondensator 0,1 uF (100 nF).

Stacja po modyfikacji wygląda tak


Nie mam jeszcze panelu solarnego i jak tylko dotrze, będzie podłączony.

Kod programu zmodyfikowałem, tak aby w Domoticz było wyświetlane napięcie na akumulatorkach, możemy więc monitorować stan ich naładowania. Kod programu stacji po modyfikacji jest do pobrania tu -> Link

Teraz w Domoticz widać stan naładowania akumulatorków oraz oczywiście dane ze stacji pogody.



Pomysł zasięgnąłem z tej strony -> Link

sobota, 17 października 2015

Domoticz i wirtualne stacje pogody

W Domoticz istnieje możliwość dodania odczytów parametrów pogody z najbliższych stacji pogodowych.

W tym celu najpierw należy założyć konto na stronie Weather Undergound, wchodzimy więc na stronę -> Link i klikamy Sign Up for FREE


W Create Your Free Account! wpisujemy kolejno: emial, 2 x hasło i nick, zaznaczamy I agree i klikamy SIGN UP


Teraz odbieramy email i klikamy w link potwierdzający rejestrację oraz logujemy się na stronie.

Wchodzimy na stronę

Wybieramy ANVIL PLAN , Developer i klikamy Purchase Key

Teraz wpisujemy:

Contact name: imię
Project contact e-mail: adres emial
Project name: Domoticz
Project website: http://www.domoticz.com
Where will the API be used: Website
Will the API be used for commercial use: No
Will the API be used for manufacturing mobile chip processing: No
A brief description: I use the API for the greatest domotica project!

Zaznaczamy 2 ptaszki i klikamy Purchase key

Teraz zobaczymy nasz KEY ID, nie zamykamy strony, bo za chwilę będzie nam potrzebny ten klucz.

Otwieramy w nowym oknie stronę -> Link

Szukamy najbliższej stacji pogodowej i klikamy w nią, pokaże nam się Station ID


Teraz otwieramy panel Domnoticz klikamy Ustawienia -> Sprzęt i dodajemy nowy sprzęt, jako typ wybieramy Weather Underground
Wpisujemy nazwę np. Stacja Opole 2, kopiujemy na Key ID do klucz API oraz Station ID do Lokalizacja i klikamy Dodaj


Mi akurat , ta stacja nie chciała działać, więc dodałem inną najbliższą o ID 12530.
Jeżeli nie chce znaleźć urządzeń i dana stacja nie działa np. o nazwie IOPOLSKI7, to wpisujemy pws: i nazwę stacji, czyli: pws:IOPOLSKI7.

Po chwili w Ustawienia -> Urządzenia pokażą się nowe urządzenia, klikamy w zielone strzałki wpisujemy nazwy i już mamy aktualne parametry pogodowe.