Temat: Skrypty do stacji meteo
Nowy system: http://eko.one.pl/forum/viewtopic.php?id=12533
MR3420v2 + 2xWDR3600 + Foxconn NT-435 + Foxconn NT-535.
Niestety teraz wynajmuję mieszkanie więc tymczasowo plany rozbudowy wstrzymane
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
eko.one.pl → Termometr → Skrypty do stacji meteo
Zaloguj się lub zarejestruj by napisać odpowiedź
Nowy system: http://eko.one.pl/forum/viewtopic.php?id=12533
Dziękuję
W takim razie ja także dorzucę coś od siebie. A jest to schemat konwertera USB - 1wire na FT232RL oraz DS2480B z sampli od maxima. Jest to alternatywa dla konwertera MP00202. Jedyne czym się podejrzewam różnią to zabezpieczeniem przed iskrą z palca. Mój konwerter ma diodę zenera na 5V a MP00202 dedykowany układ od maxima.
Tutaj zostawiam link do płytki i schematu. Zdaje sobię sprawę z tego że mogę urazić wielu ludzi którzy cenią sobie estetyczność ale nie miałem czasu na pierdoły Także jak ktoś chce mieć taki konwerterek w miare tanio a interesuje sie troche elektroniką jest to super alternatywa.
I jeszcze tylko wygląd bym stuningował za pomocą Twitter Boostrap
@bbarwik to może jeszcze wrzuć skrypt do sterowania przekaźnikiem w zależności od temperatury.
Ja też byłbym zainteresowany sterowaniem w zależności od temperatury i godziny.
Skrypt sterujący przekaźnikiem to raptem kilka linijek kodu o ile wystarczy Wam rozdzielczość co jeden stopień np.
#!/bin/sh
temeperatura=`cat /plik_z_temperaturami.txt | tail -1 | cut -d "." -f 1`
if [ "$temperatura" -lt "21" ] ; then
polecenie włączenia dla przekaźnika
else
polecenie wyłączenia dla przekaźnika
fi
w/w kod to tylko przykład więc trzeba zmodyfikować odczyt temperatury w zależności od zawartości pliku z temperaturami.
Witam, super projekt!
Widzę że koledzy są dość zaawansowani w tym temacie, ja staram się w tym połapać i mam początkujące pytania:
1. w zdjęciu: Jesteś ciekaw jak wygląda stacja?, w opisie chyba jest literówka, Konwerter MR00202 a w poradniku jest MP00202
2. dobrze rozumiem jak to jest podłączone
a. jest tylko 1 x Konwerter MP00202 podłączony do Hub-a aktywnego, chyba sam router mógłby nie dać rady to zasilić?
b. 8 termometrów DS18B20 podłączone do konwertera MP00202 za pomocą 16 tu kabli (zmostkowałeś skrajne nóżki termometru i wykorzystałeś do tego jeden kabel, czyli razem 2 kable na termometr)
c. patrze na zdjęcie Konwertera MP00202 widzę tam 4 śruby na wkrętak płaski i zastanawiam się gdzie podłączyłeś kable od tych termometrów
d. patrząc tylko pod względem pomiaru temperatury (pomijając sterowanie piecem), rozumiem że więcej urządzeń elektronicznych w tym zestawie nie ma
Pozdrawia Krynio
Dobrze rozumiesz w ten sposób można połączyć w trybie pasywnym , jeśli chcesz długi przewód wpiąć np kilkanaście czujników na nim podłączyć to zaleca się tryb aktywny czyli zasilanie 5V z rezystorem podciągającym do pinu data przy czujniku.
A kable podłączone są do pinu GND i DATA jeśli są tylko dwa
Jak ktoś chce sobie dodać jakąś akcje na daną temperaturę to niech skrypt meteo.php zedtuje.
foreach($e as $v) {
$e1 = explode(" ",$v);
$id = $e1[0]; // Id Termometra
$temp = $e1[2]; // Temperatura na termometrze
...
$a[($id)] = $temp;
// W tym miejscu własne skrypty
}
Skrypty można uzależnić od $id i $temp, np.:
if($id == 2 && $temp < 20.5)
system("dowonla komenda systemowa");
Takie coś uruchomi komendę systemową jak na termometrze z id 2 będzie mniej niż 20.5 stopnia.
Jak się wybierze sypialnie w Twoim wypadku to pokazuję wszystkie temperatury, jak kuchnie, zewnatrz to jest wykres dla danego miejsca. Trza by było poprawić sypialnie. Dobra robota, zabierałem się za HIGHCHARTS kilka razy i nie mogłem sobie poradzić. Dzięki.
A no jest jeden błąd.
w 16 lini trzeba zmienić
if(empty($id) || !isset($temp[($id)]))
na
if(!isset($temp[($id)]))
I nie będzie pokazywać wszystkich temperatur jak się termometr z id 0 kliknie
bbarwik możesz jeszcze wstawić kilka linijek z bazy danych? digitemp nie chce mi działać, wiec spróbuje to na owfs zrobić bo z nim nie mam problemu
Baza danych z których korzysta highcharts może wyglądać np tak:
[1376634068000,18.19],[1376634128000,18.19],[1376634188000,18.06] ... itd.
w owfs musisz sobie generować odczyt czasu w timestamp do bazy bo wtakiej formie jest czytany, po przecinku jest temperatura.
a co jeśli mam 2 termometry? (lub n termometrów)
dla każdego termometru osobna baza?
na razie wyszło mi coś takiego:
#!/bin/sh
NOW=`date -u +%s`
TEMPOUT=`sed 's/^[ ]*//' /tmp/owfs/28.DF7425030000/temperature`
TEMPIN=`sed 's/^[ ]*//' /tmp/owfs/28.C93825030000/temperature`
echo [$NOW,$TEMPOUT,$TEMPIN] > /root/temptest.txt
Tak dla każdego termometru osobna.
Z tym, że $NOW *1000 jak ma działać data dobrze.
zapisz sobie tak:
echo ["$NOW"000,$TEMPOUT,$TEMPIN] > /root/temptest.txt
Dziękuje za pomoc, jeszcze tylko mała poprawka. Jak zrobić aby do bazy zapisywał temperaturę do 1 miejsca po przecinku?
Zmień sobie lepiej w index.php
valueDecimals: 2
na
valueDecimals: 1
Jepiej byloby do bazy zapisywac mniej cyferek
Nie wiem czy owfs ma taką funkcję ale w samym skrypcie gdzie masz odczyt możesz sobie sam zaokrąglić, albo przesiądź się na digitemp'a o ma taką funkcję.
z digitemp moja przejsciowka nie chce dzialac. Najlepiej byloby zaokraglic w skrypcie, tylko jak ?
w php masz round()
np:
round(5.44, 1);
Jednak wolalbym w bashu ...
Zaloguj się lub zarejestruj by napisać odpowiedź
eko.one.pl → Termometr → Skrypty do stacji meteo
Forum oparte o PunBB, wspierane przez Informer Technologies, Inc