BMP085, Malinowo, php, PIR HC-SR501, python

2016-08-08 17.22.24Untitled-2Malinka #2. Podpięte czujniki ruchu (SR501), ciśnienia, temperatury (BMP085) i wilgotności (DHT11). Dodatkowo dioda wskazująca czy pomiar ciśnienia zakończył się bez błędu. (DHT11 jest dość himeryczny i trzeba go kontrolować czy nie zgłupiał). Na malince dodatkowo śmiga lighttpd, mysql i phpmyadmin, więc dane z pomiarów zapisują się do plików tekstowych oraz bazy danych celem prowadzenia statystyk i późniejszej prezentacji wyników. :)

Oprócz danych pogodowych baza danych przechowuje listę wszystkich widzianych przez radar samolotów, wraz z alertem o sytuacjach awaryjnych odczytanych z transpondera samolotowego (sqawk).  Tym sposobem wiem, mimo iż wtedy mnie nie było w domu, że 27 lipca SP-
LNA miał kłopoty z radiem.

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>