program digitemp do mierzenia temperatury
- wojciech_69
- Beginner
- Posty: 128
- Rejestracja: 02 stycznia 2009, 16:04
Re: program digitemp do mierzenia temperatury
OK, spróbuję .
Czyli mam rozumieć że zmienna "tempX" jest tym czym w kodzie htlm "czujnikX" (zwał jak zwał, ewentualna zamiana/nazwanie zmienne) i mam rozumieć że prościej niż poprzez liczenie linii to tego nie zrobię/zmienię?
Czyli mam rozumieć że zmienna "tempX" jest tym czym w kodzie htlm "czujnikX" (zwał jak zwał, ewentualna zamiana/nazwanie zmienne) i mam rozumieć że prościej niż poprzez liczenie linii to tego nie zrobię/zmienię?
Re: program digitemp do mierzenia temperatury
Można zrobić inaczej.
np. przez podmianę unikatowych stringów.
np. przez podmianę unikatowych stringów.
Re: program digitemp do mierzenia temperatury
Po co ty chcesz liczyć linie? Skorzystaj z takiego edytora, aby ci pokazywał numer lini.
- wojciech_69
- Beginner
- Posty: 128
- Rejestracja: 02 stycznia 2009, 16:04
Re: program digitemp do mierzenia temperatury
Wiem, że można w ten sposób odczytać numer linii. Chodzi mi ogólnie o to że w kodzie który mi podałeś:pawkrol pisze:Po co ty chcesz liczyć linie? Skorzystaj z takiego edytora, aby ci pokazywał numer lini.
Kod: Zaznacz cały
...
sed -i -r "16s,>[^<]*</,>${temp0}</," /var/www/html/temp.html
sed -i -r "21s,>[^<]*</,>${temp1}</," /var/www/html/temp.html
sed -i -r "31s,>[^<]*</,>${temp2}</," /var/www/html/temp.html
sed -i -r "41s,>[^<]*</,>${temp3}</," /var/www/html/temp.html
sed podmienia wartości na podstawie obliczenia w której linii się ona znajduje (16s, 21s, 31s, 41s)...
Możesz pokazać jak to zrobić?dedito pisze:Można zrobić inaczej.
np. przez podmianę unikatowych stringów.
Re: program digitemp do mierzenia temperatury
Przykład na bazie tego co @pawkrol z małymi modyfikacjami komendy sed:
W pliku html muszą być linie zawierające nazwę czujnika pomiędzy znacznikami > i <.
Przykładowo:
PS. Jestem przedszkolakiem w dziedzinie komendy sed, więc gdyby jakieś herezje się trafiły to proszę o poprawki.
Kod: Zaznacz cały
sed -i -r "s/>Czujnik 1:.*</>Czujnik 1: ${temp1}</" /var/www/html/temp.html
Przykładowo:
Kod: Zaznacz cały
...>Czujnik 1: 27.13 < ...
- wojciech_69
- Beginner
- Posty: 128
- Rejestracja: 02 stycznia 2009, 16:04
Re: program digitemp do mierzenia temperatury
Dobra, ale teraz pojawił się kolejny problem... Czujniki/pomiar przedstawia się następująco:
Jak będę chciał wyniki wrzucić na stronę to skąd mam wiedzieć czy czujnik umieszczony w pokoju to ten czujnik a nie czujnik z kuchni.... no bo czujniki mają swoje unikatowe numery a stosując komendy które podrzucił pawkrol nie określają który czujnik jest którym (tak by zdefiniować sobie ich nazwy)
Ps. chyba że nie ma innego wyjścia tylko podłączać pojedynczo czujniki odczytywac ich numery a pozniej mieć na uwadze że ten o konkretnym numerze będzie zmienną temp2 i jest to pokój i tą zmienną w html wyświetlić/podmienić w tej linijce a inną gdzie indziej - tylko czy po restarcie czy systemu czy digitemp nie przesortuje w inny sposób tych czujników...?
Kod: Zaznacz cały
# digitemp_DS9097U -s /dev/ttyUSB0 -a -i
DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane
GNU Public License v2.0 - http://www.digitemp.com
Turning off all DS2409 Couplers
.....
Searching the 1-Wire LAN
28FFC476931503E9 : DS18B20 Temperature Sensor
28FF995B931504FE : DS18B20 Temperature Sensor
28FF6D5D9315044E : DS18B20 Temperature Sensor
28FF5D2693150375 : DS18B20 Temperature Sensor
ROM #0 : 28FFC476931503E9
ROM #1 : 28FF995B931504FE
ROM #2 : 28FF6D5D9315044E
ROM #3 : 28FF5D2693150375
Wrote .digitemprc
Jul 08 13:00:11 Sensor 0 C: 25.69 F: 78.24
Jul 08 13:00:12 Sensor 1 C: 25.63 F: 78.13
Jul 08 13:00:13 Sensor 2 C: 25.63 F: 78.13
Jul 08 13:00:14 Sensor 3 C: 25.63 F: 78.13
w związku z tym skąd mam wiedzieć jak sortuje i wg. czego digitemp ustawia numery czujników? Bo np później można by było odczytać raz ile jest czujników pod którym numerem "ROM#1..." i później dopiero przypisać do nich zmienne "temp0, 1,2,3..."..pawkrol pisze:Dajesz polecenie:Utworzy ci się plik z listą wykrytych czujników na magistrali.Kod: Zaznacz cały
/usr/bin/digitemp_DS9097U -i -s /dev/usb1wire
Utwórz sobie skrypt basha, a w nim np:Kod: Zaznacz cały
#! /bin/bash temp0=`/usr/bin/digitemp_DS9097U -c /root/.digitemprc -t 0 -q -o%.2C` temp1=`/usr/bin/digitemp_DS9097U -c /root/.digitemprc -t 1 -q -o%.2C` temp2=`/usr/bin/digitemp_DS9097U -c /root/.digitemprc -t 2 -q -o%.2C` temp3=`/usr/bin/digitemp_DS9097U -c /root/.digitemprc -t 3 -q -o%.2C` sed -i -r "16s,>[^<]*</,>${temp0}</," /var/www/html/temp.html sed -i -r "21s,>[^<]*</,>${temp1}</," /var/www/html/temp.html sed -i -r "31s,>[^<]*</,>${temp2}</," /var/www/html/temp.html sed -i -r "41s,>[^<]*</,>${temp3}</," /var/www/html/temp.html
Ps. chyba że nie ma innego wyjścia tylko podłączać pojedynczo czujniki odczytywac ich numery a pozniej mieć na uwadze że ten o konkretnym numerze będzie zmienną temp2 i jest to pokój i tą zmienną w html wyświetlić/podmienić w tej linijce a inną gdzie indziej - tylko czy po restarcie czy systemu czy digitemp nie przesortuje w inny sposób tych czujników...?
Re: program digitemp do mierzenia temperatury
Raczej musiałbyś identyfikować wg ROM i to już powinno wystarczyć. Potem już tylko wrzucać temperatury do html wg. ROM, a tym czy master (czyli digitemp) oznaczy czujnik jako sensor 1 czy 4 się nie przejmować.
Re: program digitemp do mierzenia temperatury
Przecież w skrypcie który Ci podałem zawsze będziesz mieć pod zmienną np. temp0 czujnik dajmy na to z id 28FFC476931503E9.
No chyba, ze będziesz od nowa generować plik digitemprc to wtedy może się to zmienić.
A co ty zrobisz już ze zmiennymi od temp0 do temp4, to już Twoja inwencja. I co za problem dla zmiennej temp0, którą wartość sedem ładujesz do html dać w tym pliku np linie wyżej opis iż jest to wartość np z czujnika w kuchni.
No chyba, ze będziesz od nowa generować plik digitemprc to wtedy może się to zmienić.
A co ty zrobisz już ze zmiennymi od temp0 do temp4, to już Twoja inwencja. I co za problem dla zmiennej temp0, którą wartość sedem ładujesz do html dać w tym pliku np linie wyżej opis iż jest to wartość np z czujnika w kuchni.