1

(79 odpowiedzi, napisanych Termometr)

Jak macie jakieś propozycje na rozbudowę to mniej więcej do końca wtorku możecie je zgłaszać. Od czwartku do przyszłego poniedziałku będę u siebie w domu gdzie mam te systemy porobione i mogę je rozbudować.

2

(79 odpowiedzi, napisanych Termometr)

Trzeba zamienić

        if($heating["enabled"] && $id == $heating["id"]) {
            if($time == -1)

na

        if($heating["enabled"] && $id == $heating["id"]) {
            if($time == -1 && empty($extra))

Nowy convert z paczki control.zip powinien sobie poradzić z 3 miejscami po przecinku

poprawiłem pliki pod likiem do pobrania.

3

(79 odpowiedzi, napisanych Termometr)

Fakt, źle napisałem, mam trochę inną wersję. Poprawiłem post.

Zamienić

    $( document ).ready(function() {
        _chart = new Highcharts.StockChart(chart);
    });

na

$( document ).ready(function() {
    Highcharts.setOptions({
        global: {
            useUTC: false
        }
    });
    _chart = new Highcharts.StockChart(chart);
});

4

(79 odpowiedzi, napisanych Termometr)

Trzeba dodać

    Highcharts.setOptions({
        global: {
            useUTC: false
        }
    });

pod

$(function () {

czyli nad

    $('#container').highcharts('StockChart', {

ma wyglądać tak

$(function () {
    Highcharts.setOptions({
        global: {
            useUTC: false
        }
    });

    $('#container').highcharts('StockChart', {

Albo w przypadku aktualnej wersji

Zamienić

    $( document ).ready(function() {
        _chart = new Highcharts.StockChart(chart);
    });

na

$( document ).ready(function() {
    Highcharts.setOptions({
        global: {
            useUTC: false
        }
    });
    _chart = new Highcharts.StockChart(chart);
});

5

(79 odpowiedzi, napisanych Termometr)

w cron.php
if(date("i") % 10 == 0) {
na
if(date("i") % 6 == 0) {

Problemem jest chyba kiepska prędkość przesyłu danych.

E4:95:6E:40:60:58  -69 dBm / -84 dBm (SNR 15)  0 ms ago
        RX: 6.5 MBit/s, MCS 0, 20MHz                    3666 Pkts.
        TX: 28.9 MBit/s, MCS 3, 20MHz, short GI         2522 Pkts.

AC:A2:13:79:C7:D5  -62 dBm / -84 dBm (SNR 22)  30 ms ago
        RX: 26.0 MBit/s, MCS 3, 20MHz                   1943 Pkts.
        TX: 11.0 MBit/s, MCS 0, 20MHz                   1259 Pkts.

Nie mam pojęcia dlaczego bitrate jest taki mały.
Głowny router

config wifi-device 'radio0'
        option type 'mac80211'
        option channel '1'
        option hwmode '11g'
        option path 'platform/ar934x_wmac'
        option noscan '1'
        option txpower '19'
        option country 'CA'
        option htmode 'HT40+'
        option noscan 0

wlan0     ESSID: "Bobar"
          Access Point: F4:F2:6D:6D:26:6B
          Mode: Master  Channel: 1 (2.412 GHz)
          Tx-Power: 19 dBm  Link Quality: 44/70
          Signal: -66 dBm  Noise: -84 dBm
          Bit Rate: 9.1 MBit/s
          Encryption: WPA2 PSK (CCMP)
          Type: nl80211  HW Mode(s): 802.11bgn
          Hardware: unknown [Generic MAC80211]
          TX power offset: unknown
          Frequency offset: unknown
          Supports VAPs: yes  PHY name: phy0

Router który się do niego łączy

config wifi-device  radio0
        option type     mac80211
        option channel  1
        option hwmode   11g
        option path     'platform/ar933x_wmac'
        option htmode   HT40+
        option noscan   1

wlan0     ESSID: "Bobar"
          Access Point: F4:F2:6D:6D:26:6B
          Mode: Client  Channel: 1 (2.412 GHz)
          Tx-Power: 18 dBm  Link Quality: 32/70
          Signal: -78 dBm  Noise: -95 dBm
          Bit Rate: 14.4 MBit/s
          Encryption: WPA2 PSK (CCMP)
          Type: nl80211  HW Mode(s): 802.11bgn
          Hardware: unknown [Generic MAC80211]
          TX power offset: unknown
          Frequency offset: unknown
          Supports VAPs: yes  PHY name: phy0

Nie wiem co jest z nim nie tak. Oba routery bezpośrednio się widzą, odległość to jakieś 15m i 5m wysokości. Czasem jakość pokazuje jako 50/70

7

(3 odpowiedzi, napisanych Oprogramowanie / Software)

Jeśli w /etc/resolv.conf jest nameserver 8.8.8.8 i nie działa, to może zmień po prostu dl.eko.one.pl w /etc/opkg/distfeeds.conf   dl.eko.one.pl na 178.235.241.16.
Może zamiast 8.8.8.8 warto by spróbować użyć innego dns, np. 208.67.222.222

Z komputera podłączonego do sieci działa dns?

DHCP wyłączone.

Nie wiem czy powinna być sekcja ap czy nie. Jednak bez niej znika z iwinfo jedna sieć. Chyba że router tworzy sieć o takim samym bssid jak główny router.

Testowałem, nie sprawdza się (generalnie są te same problemy).
Dodatkowo przy relayd komputery mają jakieś dziwne problemy z łącznością z urządzeniami podłączonymi do innego routera (ping jest, ale nie mam pojęcia dlaczego nie mogę się połączyć z kamerą onvif)
No i automatycznie przełączenie się z jednego routera na drugi skutkuje brakiem internetu, trzeba się rozłączyć i ponownie połączyć.

Witam.

Staram się zbudować w dość sporym domie (~400m2) dobrze działającą sieć bezprzewodową, tak aby mniej więcej wszędzie był zasięg.
Do tego używam routera WDR4300 i dwóch GL-AR150. Dom ma standardowo parter, piętro i strych.

Na strychu ustawiam router WDR4300 do którego wpięty jest modem z CyfrowegoPolsatu w trybie HiLink. Działa prawidłowo.
Wireless konfiguruje w następujący sposób (5 ghz jest wyłączone, nie ma potrzeby by było aktywne):

config wifi-device 'radio0'
        option type 'mac80211'
        option channel '1'
        option hwmode '11g'
        option path 'platform/ar934x_wmac'
        option noscan '1'
        option txpower '22'
        option country 'US'
        option distance '50'
        option htmode 'HT40+'

config wifi-iface
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ssid 'Bobar'
        option encryption 'psk2'
        option key 'bobarek11'
        option wds 1

Następnie ustawiam na parterze i piętrze dwa routery GL-AR150 które mając działać jako bezprzewodowy bridge (+ repeter) w trybie wds.

config wifi-device  radio0
        option type     mac80211
        option channel  1
        option hwmode   11g
        option path     'platform/ar933x_wmac'
        option htmode   HT40+
        option noscan   1

config wifi-iface
        option device   radio0
        option network  lan
        option mode     sta
        option ssid     Bobar
        option bssid     'F4:F2:6D:6D:26:6B'
        option encryption psk2
        option key      bobarek11
        option wds      1

config wifi-iface
       option device   radio0
       option network  lan
       option mode     ap
       option ssid     Bobar
       option encryption psk2
       option key      bobarek11
       option wds      1

Jakoś sygnału jest następująca (czasem jest na poziomie 55/70):

Cell 01 - Address: F4:F2:6D:6D:26:6B
          ESSID: "Bobar"
          Mode: Master  Channel: 1
          Signal: -64 dBm  Quality: 46/70
          Encryption: WPA2 PSK (CCMP)

Quality wydaje się całkiem ok, 46/70 to chyba sporo.
Jednak są problemy z taką konfiguracją. Często ping skacze dość wysoko i zdarza się że zrywa się połączenie.
Czasem zdarzy się dłuższe zerwanie połączenia gdy laptop przepina się z jednej sieci na drugą, trzeba się od nowa połączyć.

Gdzie robię błąd?

11

(79 odpowiedzi, napisanych Termometr)

khain napisał/a:

Próbuję przenieść Twoje skrypty na raspberry pi 2, lecz skrypt meteo.php zabija mi przeglądarkę. Nie wyświetlają się wykresy. Na rpi nie ma paczki php-cli, jest tylko php5-cli, ale nie ma do niej żadnej binarki. Korzystam tylko ze skrytpu meteo.php, tzn. skopiowałem całą zawartość control.zip na rpi, ale nie mam przełączników sterujących piecem.

Bez linku do skryptu nie sprawdzę co jest nie tak.

zdzichu6969 napisał/a:

U mnie np. nie generują się pliki z danymi w katalogu /sensors, reszta się ładnie odbywa smile ->
https://temperatura.gniezno.pl/control/meteo.php

zrobilem recznie, ale tez nic sie nie dzieje - dałem prawa do zapisy dla katalogu itp.

Jeśli masz path na
$sensors_state_history_dir = "/control/sensors";
i jest utworzony folder sensors w /control to dość dziwna sprawa. Sprawdź prawda dostępu (chmod 777 /control -R)

12

(79 odpowiedzi, napisanych Termometr)

Muszą być spełnione wszystkie podane warunki odnośnie temperatury w danej regule aby piec się włączył. Gdy jakiś z nich przestanie być spełniany wtedy piec się wyłączy. Jak chcesz żeby włączył się piec jeśli w jednym z trzech pokoi spadnie temperatura poniżej X to dodaj po prostu trzy reguły.

Nie można wyłączyć pieca za pomocą komendy wyłącz jeśli działa on z powodu jakiegoś programu. Należy wyłączyć program, wtedy piec również się wyłączy.

13

(79 odpowiedzi, napisanych Termometr)

1. Może w następnej wersji pod koniec grudnia to rozbuduje
2. Bo skrypt crona sprawdza stan timera co minute. To nie znaczy że będzie działało urządzenie dokladnie minutę dłużej tylko od 0 do 60 sekund dłużej niż powinno. Dlatego lepiej pokazywać że będzie działało trochę dłużej niż żeby miał kłamać iż jest wyłączone mimo że działa
3. W pobliżu foreach($sensors  będzie
4. Szukaj po refresh w plikach

14

(79 odpowiedzi, napisanych Termometr)

Witam.

Jako że moje skrypty do stacji meteo ( http://eko.one.pl/forum/viewtopic.php?id=7073 ), wydane dość dawno bo w sumie to aż 2 lata temu, zdobyły dość sporą popularność postanowiłem opublikować nowy zestaw skryptów do sterowania domem które używam.
Dość długo trzeba było czekać, nie mieszkam już w domu jednorodzinnym tylko w mieszkaniu w Wawie, więc aktualizuje/usprawniam te systemy dopiero jak pojawiam się u siebie w domu.

Aktualnie w zestawie HomeServices znajdują się:
- Wykres z temperaturami
- Sterowanie przekaźnikami
- Automatyczne włączanie przekaźnika wg. danych z termometrów (sterowanie ogrzewaniem)
- Aplikacja na androida do sterowania

Do pełnego działania skryptów będą potrzebne następujące rzeczy:
- Urządzenie które pozwoli odczytać temperaturę lub inne wartości z sensorów. Ja stosuje MP00202 i termometry DS18B20
- Urządzenie sterujące przekaźnikami, z możliwością przełączenia przekaźnika i odczytania jego stanu. Ja używam http://allegro.pl/modul-8-przekaznikow- … 34811.html
- Serwer www, php-cli + sterowniki potrzebne do kontroli urządzeń usb.
- Przyda się z 1 mb miejsca na dysku ;d
- Podstawowa znajomość php

Na początek trzeba pobrać archiwum z adresu http://bbarwik.com/control.zip (Ostatnia aktualizacja 30 grudnia)

Struktura plików w nim:
data/ - folder na zapisywanie danych przez skrypty
sensors/ - miejsce na zapis historii temperatury
www/ - folder z plikami dostępnymi z przeglądaki
www/js/ - skrypty js do wykresów temperatury, można przerzucić na inny serwer i zaoszczędzić 300 kb
www/meteo.php - skrypt php wyświetlający wykresy temperatury
www/piec.php - skrypty php do sterowania piecem
www/meteo_data.php - skrypt wysyłający dane dla wykresów
www/index.php - strona główna, sterowanie przekaźnikami, aktualna temperatura
www/api.php - api do działania aplikacji na telefonie
config.php - praktycznie jedynie plik który trzeba edytować, konfiguracja skryptów
functions.php - dodatkowe funkcje
cron.php - skrypt który trzeba dodać do crona aby wszystko działało
convert.php - konwerter starych plików z temperaturami do nowego formatu
digitemp.conf - plik konfiguracyjny dla digitempa

Teraz trzeba to wszystko wrzucić na serwer, sugeruje utworzeniu folderu /control i wrzucenie wszystkiego do niego, api ścieżki do plików wyglądały następująco: /control/www/index.php, /control/digitemp.conf, itd...

Trzeba teraz skongurować digitempa aby dane przez niego zwracane miały format ID:WARTOŚĆ, przykład:

28B4562E0500009C:38.125000
28DC502E05000062:43.312500
281E447405000033:22.000000
28716A2E0500004D:35.250000
2873702E050000E2:41.750000
2807772E050000F7:37.187500

W tym celu kopiujemy swój config digitempa (/root/.digitemprc) do /control/digitemp.conf i zmieniamy wartość LOG_FORMAT na:

LOG_FORMAT "%R:%C"

Ok, teraz pora na konfiguracje /control/config.php
Na początek do ustawienia jest, hasło. Zmieniamy wartość hasła na takie jakie nam odpowiada

$password = "nasze_haslo";

Teraz sekcja switches, czyli nasze przekaźniki. Zakładam domyślnie że mamy ich 8, może być dowolna ilość tylko trzeba potem będzie edytować funkcje w dalszej części configa.

$switches = array(
    "1" => array("name" => "Przekaźnik 1", "www_name" => "Przekaźnik 1", "type" => 1, "timers" => array(15,30,60,120), "max_time" => 240, "timer" => "/control/data/timer_1", "custom_state" => "/control/data/cstate_1"),
    "2" => array("name" => "Przekaźnik 2", "www_name" => "Przekaźnik 2", "type" => 1, "timers" => array()),
    "3" => array("name" => "Przekaźnik 3", "www_name" => "Przekaźnik 3", "type" => 2, "timers" => array()),
    "4" => array("name" => "Przekaźnik 4", "www_name" => "Przekaźnik 4", "type" => 3, "timers" => array()),
    "5" => array("name" => "Przekaźnik 5", "www_name" => "Przekaźnik 5", "type" => 1, "timers" => array(15,60), "timer" => "/control/data/timer_5"),
    "6" => array("name" => "Przekaźnik 6", "www_name" => "Przekaźnik 6", "type" => 3, "timers" => array()),
    "7" => array("name" => "Przekaźnik 7", "www_name" => "Przekaźnik 7", "type" => 1, "timers" => array(15,60), "timer" => "/control/data/timer_7"),
    "8" => array("name" => "Przekaźnik 8", "www_name" => "Przekaźnik 8", "type" => 2, "timers" => array())
);

Wszystkie przekaźniki muszą zawierać wartości name, www_name, type i timers (jako array). Ich kolejność może być dowolna, nie ma co sugerować się wartościami od 1 do 8. Będą wyświetlane na stronie i aplikacji wg. ów kolejności.
Pierwsza wartość, czyli klucz (to przed =>) to id przekaźnika. Standardowo wartości od 1 do 8. Opis innych pól:
name - nazwa przekaźnika wyświetlana w aplikacji na telefonie
www_name - nazwa przekaźnika wyświetlana w przeglądarce
type - rodzaj przekaźnika. 0 - nie działa, 1 - przekaźnik typu on/off, 2 - przekaźnik typu switch, jedyne działanie to przełącz stan (to wyłącznika schodowego), 3 - signal (załącza przekaźnik i po 1 sec. wyłącza, do np. sterowania bramą), 5 - kategoria (do aplikacji na telefonie, grupuje przekaźniki, nie wymaga klucza i timers)
times - możliwość czasowego włączenia przekaźnika, najlepiej dawać wielokrotności dwójki w array (żeby ładnie to w aplikacji na
telefonie wyglądało). Działa póki co tylko dla type = 1, ale przy type 0,2,3 jest to pole wymagane jako array();
max_time  - maksymalny czas działania w minutach przy standardowym włączeniu, wymagany dla pieca
timer - plik z plikiem w którym będzie czas o którym przekaźnik ma się wyłączyć. Jak używamy włączenia czasowego lub dotyczy pieca to jest wymagany
custom_state - plik w którym będzie przechowywany specjalny stan przekaźnika, w praktyce tylko dla pieca, jeśli będzie działał wg. jakiegoś programu to jego nazwa będzie w nim

Kolejne wartości dotyczą sensorów (termometrów):

$sensors_state_file = "/control/data/last_meteo";
$sensors_state_history_dir = "/control/sensors";
$sensors_data_limit = 20000;
$sensors = array(
    "LABEL_TERMOMETRY" => array("type" => 2, "name" => "Termometry"),
    "281E447405000033" => array("type" => 1, "name" => "Przykładowy", "visible" => true),
);

$sensors_state_file - plik z ostatnim odczytem danych z termometrów, sugeruje nie zmieniać
$sensors_state_history_dir - katalog z plikami w których będzie historia temperatur, sugeruje nie zmieniać
$sensors_data_limit - limit pomiarów dla wykresu w meteo.php

$sensors - tutaj wrzucamy termometry, klucz to id termometra które zwraca digitemp, opis pól w array:
type - 1 to termometr, 2 to kategoria, wartość LABEL_TERMOMETRY sugeruje zostawić, oddziela termometry w apce na androidzie, można dodać własne kategorie
name - nazwa termometru/kategorii
visible - czy wyświetlać domyślnie na wykresie

Kolejny element, ogrzewanie:

$heating = array(
    "enabled" => true,
    "id" => 1,
    "programs" => "/control/data/heating_programs"
);

wartości:
enable - true/false, czy sterowanie ogrzewaniem działa
id - id przekaźnika odpowiedzialnego za ogrzewanie
programs - plik z programami dla pieca, sugeruje nie zmieniać

I ostatnie zmienne:

$extra_links = array(
    "meteo.php" => "Wykresy temperatur"
);

Są to dodatkowe linki wyświetlane na dole w index.php

Trzeba będzie jeszcze trochę pozmieniać w funkcjach.
w

function get_state()

trzeba zmienić polecenie

system("/bin/RelayBoard /dev/ttyUSB1 get > /tmp/relay_state");

W praktyce jeśli używacie RelayBoard to zmieńcie /dev/ttyUSB1 na link wskazujący na wasze urządzenie oraz ścieżkę do pliku RelayBoard. Jak nie używacie relaybaord trzeba będzie jeszcze edytować 3 następne linijki, tak aby zmienna $state zawierała stan przekaźników.

w

function update_sensors_state()

zmieniamy

    system("digitemp_DS9097U -s /dev/ttyUSB0 -q -a -c /control/digitemp.conf > /tmp/digitemp");

na naszą komendę do digitempa, w praktyce należy zmienić jedynie digitemp_DS9097U na nasz model o ile mamy inny i  /dev/ttyUSB0 na ścieżkę do naszego urządzenia

w

function power_on($id,$time = -1,$extra = "") {


trzeba zmienić

        system("/bin/RelayBoard /dev/ttyUSB1 on ".($id)."");

Na polecenie które włączy u nas przekaźnik o id $id

w

function power_off($id) {

trzeba zmienić

        system("/bin/RelayBoard /dev/ttyUSB1 off ".($id)."");

Na polecenie które wyłączy u nas przekaźnik o id $id

w

function power_inv($id) {

trzeba zmienić

        system("/bin/RelayBoard /dev/ttyUSB1 inv ".($id)."");

Na polecenie które przełączy u nas przekaźnik o id $id (to jest akcja dla type = 2)

Powoli zbliżamy się do końca.

Konwersja starych danych z temperaturą na nowy format
Nowy format danych jest mocno zoptymalizowany. Dane są przechowywane w formacie binarnym, po 6 bajtów na jeden rekord. Jest to ponad 3x mniej niż w poprzedniej wersji. 1 termometr z zapisem co 10 min przez rok wygeneruje 315 KB danych.
Co prawda dałoby się to upchać jeszcze do 5 bajtów gdyby pozbyć się sekund i jednostek minut w wartości czasu, ale nie chciało mi się już tego robić big_smile

Trzeba uruchomić skrypt convert.php z dwoma parametrami, jeden to stary plik z danymi, a drugi to lokalizacja nowego pliku z danymi, przykład

/usr/bin/php-cli convert.php '/root/stary_plik.txt' '/control/sensors/281E447405000033'

Końcowa konfiguracja

Teraz należy dodać wpis do crona aby skrypt /control/cron.php uruchamiał się co minute (Danę z sensorów będą i tak zapisywane co 10 minut, komenda crontab -e)

* * * * * cd /control; /usr/bin/php-cli cron.php

I na koniec należy skonfigurować serwer www aby umożliwiał dostęp do /control/www, najłatwiej będzie zrobić to poleceniem:

ln -s /control/www /www/control

Należy pamiętać o tym że serwer musi obsługiwać skrypty php.

Dodawanie programów dla pieca:
1. Nazwa: dowolna
2. Warunki: tutaj musi być id termometru (masz podane id poniżej przy termometrach np. 28716A2E0500004D) znak porównawczy czyli <, >, = (ciekawe czy ktoś kiedyś użyje równości) oraz temperatura, kolejne termometry oddzielone enterem (muszą się wszystkie zgadzać by program został załączony). Przykłady
28716A2E0500004D < 18
28B4562E0500009C > 19.5
albo
281E447405000033 < 10.55
3. Ramy czasowe, przykłady (zachowaj format, różne ramy czasowe oddzielone enterem, od 0:00 do 23:59, nie można dać np. 23:00-7:00 tylko trzeba 23:00-23:59 <enter> 0:00-7:00):
12:00-16:00
19:30-23:30
albo
8:00-21:00
Reszty już raczej nie muszę opisywać wink

Zostaje jeszcze aplikacja na androida, pobieramy ją z adresu http://bbarwik.com/app.apk
Po instalacji, otwieramy i klikamy na ikonkę w prawym górnym roku, wprowadzamy adres:

http://nasz_serwer/control/api.php?pass=nasze_haslo

Załadują się wtedy informacje o przekaźnikach i termometrach.

Screeny:
http://bbarwik.com:88/screens/1.jpg
http://bbarwik.com:88/screens/2.jpg
http://bbarwik.com:88/screens/3.jpg
http://bbarwik.com:88/screens/4.jpg


Kontakt do mnie to bbarwik@gmail.com, proszę jednak unikać proszenia mnie o pomoc w konfigurowaniu bo zazwyczaj nie mam czasu na takie rzeczy. Ew. błędy i propozycje proszę przedstawiać w tym temacie, jak wrócę do domu w grudniu i będę rozwijał dalej ten system to wtedy się wszystkim zajmę. Chyba że będą jakieś błędy krytyczne to poprawię je od razu.

Byłoby miło gdyby osoby które korzystają z tego, podrzuciły link do swoich wykresów temperatury, dobrze by było wiedzieć że ktoś z tego korzysta wink

Witam.

Mam w okolicy kilka sieci wifi o takiej samej nazwie

Cell 01 - Address: C2:9F:DB:8D:95:3C
          ESSID: "Evo"
          Mode: Master  Channel: 6
          Signal: -70 dBm  Quality: 40/70
          Encryption: mixed WPA/WPA2 PSK (TKIP, CCMP)

Cell 02 - Address: C2:9F:DB:27:5E:B8
          ESSID: "Evo"
          Mode: Master  Channel: 6
          Signal: -75 dBm  Quality: 35/70
          Encryption: mixed WPA/WPA2 PSK (TKIP, CCMP)

Cell 03 - Address: 24:A4:3C:04:B1:6B
          ESSID: "Evo"
          Mode: Master  Channel: 1
          Signal: -84 dBm  Quality: 26/70
          Encryption: mixed WPA/WPA2 PSK (TKIP, CCMP)

Jak ustawić wireless aby router łączył się w trybie station tylko do wifi z adresem C2:9F:DB:27:5E:B8?

16

(256 odpowiedzi, napisanych Termometr)

Faktem jest że zrobiłem błąd, zamiast

            $t .= "[".$time.",".$temp."],";

ma być

            $t .= "[".$time."000,".$temp."],";

Proszę wybaczyć że tak późno odpisuje ale mam ostatnio problemy z czasem. Żeby usunąć zera z dotychczasowego pliku najlepiej zrobić to w notepad++ (replace 000, na ,) albo za pomocą sed.
Istnieje też opcja skrócenia jeszcze bardziej wielkości pliku za pomocą zapisu binarnego. Pozwoliło by to zejście z ok 20 bajtów na pomiar do 8 (albo nawet 6) bajtów na pomiar co zmniejszyłoby rozmiar plików o 60%. Jednak minusem byłoby to że jakakolwiek edycja danych byłaby bardzo utrudniona. Możliwe że jak znajdę czas to przerobię skrypt na taką możliwość. Co prawda nie wpłynie to za bardzo na czas ładowania się wykresu, ponieważ tam dane i tak są wczytywane jako zwykły tekst.

Wszystko jest do zrobienia, jednak obecnie nie mam na to czasu (studia + dużo pracy). Ogarnę to za jakiś czas.

17

(256 odpowiedzi, napisanych Termometr)

http://bbarwik.com/meteo/newm.zip
Podrzucam pierwszą testową wersję nowego skryptu, parę zmian:
- Sterowanie piecem
- Do plików z pomiarem nie będą dodawana już 000, trzeba usunąć je z obecnych żeby działało
- Zrobiłem algorytm który ogranicza ilość wyświetlanych pomiarów temperatur. Można ustawić żeby pierwsze np. 1000 pomiarów było dokładnie pokazywanych na wykresie, a sama ich ilość była ograniczona do 9000 (kolejne będą potem przycinane, np. zamiast co 10 min, zwróci informacje co godzinę). Na mojej stacji meteo już to działa więc możecie sobie zobaczyć jak to w praktyce wygląda, skrypt ładuje się o wiele szybciej.

Przetestujcie czy działa, jak będzie OK to opisze dokładnie co i jak zrobić dla mniej zorientowanych użytkowników. Skrypt crona trzeba ustawić na co minutę zamiast co 10 minut.

18

(256 odpowiedzi, napisanych Termometr)

Witajcie.
Ostatnio mam mało czasu, ale postaram się w ten weekend podrzucić skrypty do sterowania piecem i ustawiania programów w zależności od temperatury na termometrach. Jedyne co będzie potrzebne to dostęp do jakiejś komendy która włącza/wyłącza ogrzewanie. Ja to początkowo robiłem za pomocą sterowania napięciem na porcie usb do którego podpięty był przekaźnik co sterował piecem. Potem przerzuciłem się na płytkę RealyBoard. Jak coś chcecie jeszcze to dajcie znać, to zrobię o ilę za długo nie będę musiał nad tym siedzieć.

19

(11 odpowiedzi, napisanych Gadżety USB)

Tak wyglądają wyświetlacze w gotowych ramkach
http://c3201142.cdn03.imgwykop.pl/comment_73Xeyod3OrxfwrmiGog17y4M5frImbr5.jpg

20

(11 odpowiedzi, napisanych Gadżety USB)

flankerr napisał/a:

Nie mam ani doświadczenia w programowaniu atmeg, ani programatora. Może istnieje jakieś gotowe rozwiązanie?

Napisz do 11111olo  na allegro.  Za 100 zł będziesz miał wszystko zrobione (wyświetlacz 40x4), a konfiguracja lcd4linux to nie problem.

21

(11 odpowiedzi, napisanych Gadżety USB)

pepe2k napisał/a:
bbarwik napisał/a:
Cezary napisał/a:

Aaaaaa... nie taniej tablet za 99zł? smile

Musiałbym apkę na androida napisać, a tego jeszcze nie potrafię.
Choć może kiedyś tak zrobię, dobry pomysł wink

Apkę? Wystarczyła by zwykła strona www... IMHO, strasznie przepłaciłeś za taką zabawkę.

Stronę to już mam w wersji na kompa, jak miałbym robić na tablecie to chciałbym aby było to zrobione profesjonalnie.
To akurat są pierwsze ekrany jakie kupiłem, generalnie uważam że było warto, pewnie gdybym składał wszystko sam to zaoszczędziłbym 30-40 zł, ale stracił dużo czasu bo nie znam się zbyt dobrze na takich układach.

22

(11 odpowiedzi, napisanych Gadżety USB)

Cezary napisał/a:

Aaaaaa... nie taniej tablet za 99zł? smile

Musiałbym apkę na androida napisać, a tego jeszcze nie potrafię.
Choć może kiedyś tak zrobię, dobry pomysł wink

23

(11 odpowiedzi, napisanych Gadżety USB)

Hej,

Jest już co prawda temat o lcd4linux ale postanowiłem wrzucić podgląd na to jak wykonałem to u siebie:
http://bbarwik.com/ekrany.jpg

Za jeden ekran 40x4 z modułem lcd2usb zapłaciłem 100 zł (w sumie 200 zł), to dość tanio. Do kupienia na allegro: http://allegro.pl/listing/user/listing. … id=6959016

Całość działa na lcd4linux.

W najbliższych dniach będę robił do tego ramkę wg. tego poradnika: http://mod-planet.com/zewnetrzna-obudowa-na-lcd,28.html

Mam nadzieje że się komuś przyda smile

24

(256 odpowiedzi, napisanych Termometr)

Reupload: http://bbarwik.com/meteo/meteo.rar
Ja ostatnio za bardzo nie mam czasu (OI), po 20 lutym będę zaglądał częściej.

25

(3 odpowiedzi, napisanych Oprogramowanie / Software)

Witam.

Jako że mam problem ze stabilnością systemu na pendrive (padł po 3 miesiącach działania), myślę nad lepszym nośnikiem danych dla systemu i plików.
Co moglibyście mi polecić do kwoty około 100 zł tak aby mieć pewność że system będzie działał stabilnie? Przy wyższych kwotach wybór pada na zew. dysk HDD 300-500 gb.