Wchodzę w to i chociaż mogę wyświetlać temperaturę przez SSH, mam problem z wyświetlaniem jej na małej stronie, którą skonfigurowałem na moim Pi z Apache2. Podążyłem za tym przykładem http://www.raspberrypi.org/phpBB3/viewtopic.php?t=35487&p=310038, który zawierał AJAX i skrypt w katalogu cgi-bin, ale pojawia się błąd, mówiąc o tym $ was not defined
i będąc naprawdę nieświadomy z JavaScriptem nie mam pojęcia, gdzie leży błąd. Zastanawiam się, czy mógłby to być katalog cgi-bin. Właśnie go stworzyłem i nie mogłem znaleźć informacji o tym, czy muszę zrobić coś specjalnego, aby umożliwić jego użycie w skryptach. Czy ktoś może odpowiedzieć na to pytanie? Jeśli jest to istotne, korzystam z najnowszej wersji Raspbian.
W końcu chcę zarejestrować wartości w bazie danych i z nich wykres, ale najpierw muszę zacząć. :)
Główne pytanie brzmi: jak mogę wyświetlić temperaturę na mojej stronie internetowej z czujnika wewnętrznego?
EDYTOWAĆ
Wypróbuję pierwszą sugestię później wieczorem, kiedy wrócę do domu, ale szybko dostałem drugą (Lenik), która wydaje się działać dobrze. Musiałem jednak wprowadzić pewne zmiany, aby go uruchomić. Skrypt nie utworzyłby pliku rrd, więc utworzyłem go ręcznie, używając składni użytej w skrypcie. Zmodyfikowałem również UPDATE
polecenie, ponieważ nie podobało mu się przekazywana wartość. Musiałem usunąć tę width
część GRAPH
polecenia, ponieważ spowodowało to również błąd. Następnie na końcu dodałem cp
tak, że umieszcza plik w katalogu obrazów witryny, a następnie dodaje*/5 * * * * /home/root/scripts/temprec.sh >/dev/null 2>&1
do mojego crontab, więc działa co 5 minut. Wygląda na to, że działa, ale jak na razie tylko 4 próbki trudno jest na pewno wiedzieć. W ciągu około godziny znajdę lepszy pomysł, jeśli moje zmiany zadziałały.
#!/bin/bash
#
# update .rrd database with CPU temperature
#
# $Id: update_cputemp 275 2013-05-16 05:20:56Z lenik $
# Thanks to Lenik @ Raspberrypi.stackexchange.com.
cd /path/to/scripts
# read the temperature and convert .59234. into .59.234. (degrees celsius)
TEMPERATURE=`cat /sys/class/thermal/thermal_zone0/temp`
TEMPERATURE=`echo -n ${TEMPERATURE:0:2}; echo -n .; echo -n ${TEMPERATURE:2}`
/usr/bin/rrdtool update cputemp.rrd N:$TEMPERATURE
/usr/bin/rrdtool graph cputemp.png DEF:temp=cputemp.rrd:cputemp:AVERAGE LINE2:temp#00FF00
cp /path/to/scripts/cputemp.png /path/to/website/images
źródło
Jakiś czas temu napisałem artykuł „ Raspberry Pi :: Monitorowanie temperatury procesora za pomocą RRDTOOL ” o tym samym problemie. Moje rozwiązanie obejmuje odbieranie temperatury z procesora, zapisywanie jej w okrągłej bazie danych i tworzenie ładnego wykresu w postaci pliku .PNG, który dość łatwo można umieścić na stronie internetowej - wystarczy skopiować go gdziekolwiek chcesz. Mam nadzieję, że okażą się przydatne.
źródło
Wierzę, że możesz pobrać i przesyłać strumieniowo dane ze swojego RPi i osadzić je w przeglądarce za pomocą tego pakietu na GitHub .
Oto jak wygląda wykres: https://plot.ly/~jensb89/12/ .
Po wygenerowaniu wykresu możesz osadzić go jako element iframe za pomocą tego fragmentu:
Będziesz chciał zamienić swój adres URL w kodzie. Daj mi znać, jeśli masz jakieś problemy lub mogę w czymś pomóc. Ponadto jestem częścią Plotly, który został użyty w tym pakiecie.
Oto jak to wygląda:
źródło
Pozostałe odpowiedzi tutaj są fantastyczne. Moje rozwiązanie, używając skryptu powłoki i PHP, jest następujące:
Pamiętaj, że zrobiłem to na Raspbian Wheezy, więc lokalizacja całego mojego kodu jest w
/var/www/
. Jeśli używasz Jessie, będzie musiała znajdować się w '/ var / www / html /'Po pierwsze pozwala zmienić użytkownika na root (superużytkownik):
sudo su
(i wprowadź swoje hasło)dostać się do właściwej lokalizacji:
cd /var/www/
(Astmatyczny)Teraz stwórz tam nowy katalog:
mkdir scripts
Podaj poprawne atrybuty:
chmod 755 scripts/
Teraz stwórz w nim nowy plik, nazwijmy go „temp.sh”
nano scripts/temp.sh
Wpisz następujący kod:
Ctrl+X
-Y
-Enter
aby zapisać i wyjść.Teraz ustaw atrybuty tego pliku:
chmod 755 scripts/temp.sh
Teraz utwórz nowy katalog
mkdir include/
Ustaw to atrybuty
chmod 744 include/
OK, teraz uruchommy skrypt i przetestujemy jego wynik:
cd scripts/
./temp.sh
cd ../include/
cat temp.txt
Powinien wyświetlać się tak:
Niesamowite! Teraz uruchommy to raz na minutę. Wejdziemy do nowej linii w Crontab.
crontab -e
Wklej poniższy wiersz na dole pliku
Ctrl+X
-Y
-Enter
aby zapisać i wyjść.Teraz musimy edytować stronę, na której będą wyświetlane temperatury. Więc edytujemy plik PHP:
cd /var/www/
nano index.php
I wstaw to w wybranym
<div>
przez siebie:To wystarczy. Wystarczy ponownie załadować stronę, aby wyświetlić procesor i procesory graficzne.
Dodano premię: lubię też wymuszać ładowanie strony za każdym razem (zapobiegaj buforowaniu temperatury przez przeglądarkę) Aby to zrobić, dołączam również następujący kod PHP na samym początku pliku:
Uwagi: Powodem dla mnie jest to, że jest wyświetlany na firmowym „pulpicie nawigacyjnym”, stronie w górę w telewizorze w moim biurze, która pokazuje całą masę wykresów (status serwera, numery użytkowników, średnie obciążenia itp. Itp. itp). Skonfigurowałem pi, aby znajdowało się w trybie kiosku (przeglądarka pełnoekranowa przy rozruchu za pomocą Iceweasel) i wyświetla jedną stronę, która automatycznie przewija się w dół. Dostanie się od góry zajmuje około 4 do 5 minut, a następnie następuje automatyczne ponowne załadowanie, gdy spadnie na dno. Od czasu do czasu ładuje się ponownie, omijając potrzebę aktualizacji wyświetlacza temperatury za pomocą technologii po stronie klienta. Skonfigurowałem również przeglądanie przy użyciu różnych CSS / JS opartych na kliencie użytkownika (bez przewijania, bez aktualnego czasu w rogu, bez ponownego ładowania na dole), ale w tej wersji „
źródło