-
GAMEPOD.hu
Okos Otthon összefoglaló
Új hozzászólás Aktív témák
-
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 $PIDFILEA 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
Új hozzászólás Aktív témák
- Kínai, és egyéb olcsó órák topikja
- Anglia - élmények, tapasztalatok
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Óra topik
- Windows 11
- Freemail
- NVIDIA GeForce RTX 3080 / 3090 / Ti (GA102)
- Gmail
- Elektromos rásegítésű kerékpárok
- További aktív témák...
- Részletfizetés. Bontatlan. noblechairs EPIC székek azonnal . 24 / 36 hónap garancia . +36301300000
- Euforia kétszemélyes kanapé
- Xiaomi Mi Smart Speaker okoshangszoró dts hanggal - használt, újszerű - 1 db.
- 3D nyomtatott versenypályák
- profi traffipax és lézer detektor + blokkoló Kiyo Ultimate AP4 GPS komplett rendszer
- Workzone 2 fokos erősített acél háztartási létra fellépő
- Irobot Braava 380 felmosó és feltörlőrobot
- LDNIO SEW1080 okos konnektor dugalj Wi-Fi és Bluetooth támogatással fogyasztás mérős 3db
- Gosund SP1 wifi okos konnektor dugalj TUYA SMART 16A 3680w fogyasztás mérős 2db
- NEO NAS-WR10W WiFi okos konnektor dugalj 16A 3680W TUYA SMART 4 db fogyasztás mérős