Malinowo, php, python, zegarek

2016-08-08 17.18.152016-08-08 17.24.142016-08-08 17.24.26Czwarta płytka. Rzemieślniczo dolutowane goldpiny do pi zero, a do nich podpięty chiński czterocalowy wyświetlacz. O dziwo wszystko działa i pięknie prezentuje stronę wymodzoną w pehapie, prezentującą losowe zdjęcia z żoną i synem (a co!), godzinę, datę, aktualną i w miarę przyszłą (nie wiem co prawda jak bardzo poprawną) pogodę z openweather, dane z czujników i listę najbliżej domu przelatujących samolotów. Całość działa na kweb odpalanym przy starcie malinki w “kiosk mode”. Jeszcze tylko dorobić obudowę i można stawiać na komodzie.

 

Malinowo, php, PIR HC-SR501, python

2016-03-13 12.10.02Sobota była pracująca, ale nie przeszkodziło to aby podłączyć i oprogramować czujnik ruchu PIR HC-SR501! :) Python w zależności od odczytów z czujnika generuje pliczek .json, który to jest zaciągany  przez jquerową komendę i steruje przeźroczystością warstwy mojego zegarka. W skrócie: wykryje ruch – rozjaśnia ekran, nie wykrywa ruchu przez zadany czas – ekranik się ściemnia. Poniżej trochę kodu:

ruch.py


(...)
try:
while True:
time.sleep(1)
val = GPIO.input(PIR)
if (val == True):
i = 0
f = open("/var/www/data/ruch.txt","w")
f.write("{ \"opacity\": \"1\" }")
f.close()
if (state == False):
state = True
else:
i = i + 1
if i == 10:
f = open("/var/www/data/ruch.txt","w")
f.write("{ \"opacity\": \"0.1\" }")
f.close()
if (state == True):
state = False

Część pliku “zegarka”

<script type = "text/javascript" language = "javascript">
function czytaj() {
$.getJSON('data/ruch.txt', function(jd) {
$('#opacity').fadeTo('2000', jd.opacity, function() {});
});
setTimeout('czytaj()', 500);
};
</script>

ADS-B, Flightradar, Malinowo, php

Na szybko, bo ostatnio jestem w domu zbyt nieobecny. :) Rozdzielczość “plansz” dopasowana do rozdzielczości planowanego ekranu do malinki (320×240 px), jest animacja plansz w jquery, jest wyświetlanie godziny, daty oraz aktulanej pogody z Yahoo (wraz z ikonkami!), jest też wyświetlanie samolotów z radaru. Tutaj trochę pokombinowałem i nie wystarczyło mi przerobienie wizualne wyników pracy programu “DUMP1090” tak aby zmieścić się na malutkim ekraniku. Zamiast kolumny “hex” – czyli sześcioznakowego symbolu samolotu postanowiłem że zegarek będzie wyświetlał przynajmniej znaki rejestracyjne samolotu. :) Zadanie w sumie łatwe. Wystarczyło postawić bazę danych mysql, zaimportować kilka kolumn z bazy danych “Virtual Radar”, zaprzęgnąć php do pracy i zmodyfikować “jsona” na podstawie którego DUMP1090 wyświetla dane. :) Tyle zrobione. Teraz trzeba dorobić plansze z pogodą na następny dzień i… zamówić wreszcie ekranik!

Plansze pi-zegarka
Plansze pi-zegarka

 

Malinowo, php

Na szybko. Dodałem kod czytający z yahoo pogodę i wyświetlający ją na moim wirtualnym ekranie. :)

<?php
$result = file_get_contents('http://weather.yahooapis.com/forecastrss?w=523920&u=c');
$xml = simplexml_load_string($result);
$xml->registerXPathNamespace('yweather', 'http://xml.weather.yahoo.com/ns/rss/1.0');
$location = $xml->channel->xpath('yweather:location');
foreach($xml->channel->item as $item){
$current = $item->xpath('yweather:condition');
$forecast = $item->xpath('yweather:forecast');
$current = $current[0];
$output = <<<END
<span>{$current['text']},&nbsp;{$current['temp']}&deg;C</span>
END;
}
echo $output;
?>

Oczywiście plik zaciąga dane pogodowe dla Warszawy, a odpowiada za to parametr w=523920 w pierwszej linii. Dla innego miasta trzeba to zmienić! :)