Okos Otthon összefoglaló
Gyorskeresés
Legfrissebb anyagok
- Bemutató Route 66 Chicagotól Los Angelesig 2. rész
- Helyszíni riport Alfa Giulia Q-val a Balaton Park Circiut-en
- Bemutató A használt VGA piac kincsei - Július I
- Bemutató Bakancslista: Route 66 Chicagotól Los Angelesig
- Tudástár AMD Radeon undervolt/overclock
Általános témák
LOGOUT.hu témák
- [Re:] [Luck Dragon:] Asszociációs játék. :)
- [Re:] [bitpork:] Fogyasztásra ítélve
- [Re:] [bobalazs:] RTX 4070 Super Undervolting and Overclocking Alulfeszelés és túlhajtás
- [Re:] [sh4d0w:] Rebel Moon - Ne nézd meg!
- [Re:] [gban:] Ingyen kellene, de tegnapra
- [Re:] [CPT.Pirk:] "Fényhűtés" ciksorozat (tuningnet.hu)
- [Re:] [sziku69:] Fűzzük össze a szavakat :)
- [Re:] [Luck Dragon:] MárkaLánc
- [Re:] PLEX: multimédia az egész lakásban
- [Re:] [ubyegon2:] Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
Szakmai témák
PROHARDVER! témák
Mobilarena témák
IT café témák
Téma összefoglaló
Hozzászólások
vargalex
félisten
Sziasztok!
Én is jó dolognak tartom, hogy indult egy ilyen topic is. Én 2014 májusában kezdtem foglalkozni a dologgal és idő hiányában sajnos megakadt a dolog a hőmérséklet mérésnél. Egy Raspberry Pi-re van kötve 4 db DS18B20 szenzor, illetve magának a Raspberry-nek a CPU/GPU hőmérésékletét mérem. Az értékeket percenként olvassa, mySQL adatbázisba rögzíti. MySQL-ben egy trigger összesítő táblákba számolja az értékeket a gyors megjelenítés miatt. A szenzorok adatait shell script olvassa ki és hajtja végre az insert-et:
#!/bin/bash
HOST=db_host
USER=db_user
PASSWORD=db_user_pass
DATABASE=database_name
MYSQL=/usr/bin/mysql
W1_SLAVES_COUNT=0
W1_SLAVES=/sys/devices/w1_bus_master1/w1_master_slaves
W1_SLAVES_DIR=/sys/bus/w1/devices/
SQLFILE=/tmp/temperature.sql
DATUM=$(date '+%Y-%m-%d %H:%M:%S')
CPUTEMP=$(cat /sys/class/thermal/thermal_zone0/temp | awk '{ print $1/1000}')
GPUTEMP=$(/opt/vc/bin/vcgencmd measure_temp | cut -f 2 -d "=" | cut -f 1 -d "'")
PIDFILE=/run/lock/gettemps.sh.pid
if [ -r $PIDFILE ]; then
exit
fi
echo "$$" > $PIDFILE
for w1_slave in $(cat $W1_SLAVES)
do
((W1_SLAVES_COUNT++))
W1_SLAVE_CONTENT=$(cat $W1_SLAVES_DIR/$w1_slave/w1_slave)
while [ "$(echo "$W1_SLAVE_CONTENT" | head -n 1 | cut -f 12 -d " ")" != "YES" ]
do
sleep 1
W1_SLAVE_CONTENT=$(cat $W1_SLAVES_DIR/$w1_slave/w1_slave)
done
TEMPERATURE=$(echo "$W1_SLAVE_CONTENT" | tail -1 | cut -f 2 -d "=" | awk '{ print $1/1000}')
TEMPNAMES[$W1_SLAVES_COUNT]=$w1_slave
TEMPERATURES[$W1_SLAVES_COUNT]=$TEMPERATURE
done
rm -rf $SQLFILE
for i in $(seq 1 $W1_SLAVES_COUNT)
do
echo "insert into temperatures(sensor_id, temperature, datum) select id, ${TEMPERATURES[$i]}, '$DATUM' from sensors where name='${TEMPNAMES[$i]}';" >> $SQLFILE
done
#Inserting CPU temperature
echo "insert into temperatures(sensor_id, temperature, datum) select id, $CPUTEMP, '$DATUM' from sensors where name='cpu_sensor';" >> $SQLFILE
#Inserting GPU temperature
echo "insert into temperatures(sensor_id, temperature, datum) select id, $GPUTEMP, '$DATUM' from sensors where name='gpu_sensor';" >> $SQLFILE
echo "quit" >> $SQLFILE
$MYSQL --host=$HOST --user=$USER --password=$PASSWORD $DATABASE < $SQLFILE
rm $PIDFILE
A megjelenítéshez a szerver oldal php-ban készült, grafikonhoz pedig highchart-ot használok:
A grafikonba természetesen dinamukusan bele lehet nagyítani, egy ajax kéréssel a szerver oldalról lekéri a részletesebb adatokat, így a percenkénti értékek bármikor visszanézhetőek:
Most éppen várok néhány ESP8266-ot (ESP-12F-et) és van még elfekvőben DS18B20-am, így a terv szerint kicsit kiterjesztem további vezetékelés nélkül a mérést.
[ Szerkesztve ]
Alex
Mai Hardverapró hirdetések
prémium kategóriában
- ZOTAC GeForce GTX 1080 AMP Edition 8GB GDDR5X 256bit
- Filmes gép gyűjtemény
- Nikon D5000 + AF-S DX NIKKOR 18-105 mm
- Bontatlan Seagate & Western Digital HDD-k 3TB - 12TB -ig - Számla + Garancia, Ár alatt! BeszámítOK!
- DJI Mini 4 pro FMC drón - 3 akku, RC2 táv, 2 táska, Filterek, 2025. decemberig garancia, DJI Care