Új hozzászólás Aktív témák

  • majer_balint

    tag

    Nos akkor át lett forrasztva, most a ls /sys/bus/w1/devices eredménye:
    00-800000000000 28-00000d5d7bcc w1_bus_master1

    cat /sys/bus/w1/devices/28-00000d5d7bcc/temperature eredménye:
    23937
    Gondolom akkor ez 23,937 fok.

    Akkor ha nincs más teendő, akkor a tervem a következő lenne, szeretnék egy grafikonon megjelenő eredményt látni, ehhez kaptam egy ilyen kódsort:

    temp-graph.sh:

    #!/usr/bin/env bash
    # idozites
    # crontab -e
    #
    # * * * * * /root/bin/temp-graph.sh > /dev/null 2>&1

    generate_rrdgraph () {
    rrdtool graph /var/www/html/temp-sensor/0${INDEX}-temp-${2}.png \
    --start -${2} \
    --title "${3} naplo" \
    --vertical-label "Hőmérséklet ??C" \
    --width 600 \
    --height 200 \
    --color GRID#C2C2D6 \
    --color MGRID#E2E2E6 \
    --dynamic-labels \
    --grid-dash 1:1 \
    --font TITLE:10 \
    --font UNIT:9 \
    --font LEGEND:8 \
    --font AXIS:8 \
    --font WATERMARK:8 \
    --lazy \
    --watermark "Raspberry Pi Hőmérséklet Monitoring // ${WTM_DATE} // " \
    DEF:temp=/var/www/html/temp-sensor/temperature.rrd:temp:AVERAGE \
    AREA:temp#FF0000AA:"" \
    LINE2:temp#FF0000
    }

    main () {
    INDEX=0
    INTERVALS="1h 2h 4h 12h 24h 1w 4w 12w"
    TITLES=('1 óra' '2 óra' '4 óra' '12 óra' '24 óra' '1 hét' '1 hónap' '3 hónap')
    WTM_DATE=$(date -R)
    for interval in ${INTERVALS}
    do
    generate_rrdgraph "${INDEX}" "${interval}" "${TITLES[$INDEX]}"
    ((INDEX += 1))
    done
    }

    main

    És kaptam egy ilyet:
    temp-sensor.sh:

    #!/usr/bin/env bash
    # idozites crontab -e
    # @reboot /root/bin/temp-sensor.sh

    create_rrdb () {
    rrdtool create ${BASEDIR}/temperature.rrd \
    --start now \
    --step 1 \
    --no-overwrite \
    DS:temp:GAUGE:5:U:U \
    RRA:AVERAGE:0.5:1:32140800 # 12hónaps * 31days * 24óras * 60min * 60sec
    }
    read_raw_data () {
    #erzekelo helye
    RAW_DATA=$(cat /sys/bus/w1/devices/28-04146dd116ff/w1_slave)
    }
    setup_webpage () {
    if [ -e ${BASEDIR}/index.html ]
    then
    return
    fi
    cat > ${BASEDIR}/index.html << __EOF__
    <!DOCTYPE html>
    <head>
    <title>Grafikus riport</title>
    <meta charset="UTF-8">
    <style>
    html {
    text-align: center;
    background: radial-gradient(circle, #DCDFEF, #7886C4);
    }
    body {
    width: 910px;
    margin: auto;
    }
    </style>
    </head>
    <body>
    <h2>Homerseklet Grafikus riport</h2><br>
    <img src="./00-temp-1h.png" alt="00-temp-1h.png">
    <img src="./01-temp-2h.png" alt="01-temp-2h.png">
    <img src="./02-temp-4h.png" alt="02-temp-4h.png">
    <img src="./03-temp-12h.png" alt="03-temp-12h.png">
    <img src="./04-temp-24h.png" alt="04-temp-24h.png">
    <img src="./05-temp-1w.png" alt="05-temp-1w.png">
    <img src="./06-temp-4w.png" alt="06-temp-4w.png">
    <img src="./07-temp-12w.png" alt="07-temp-12w.png">
    </body>
    </html>
    __EOF__
    }
    main () {
    BASEDIR="/var/www/html/temp-sensor" # html helye
    if [ ! -d ${BASEDIR} ]
    then
    mkdir ${BASEDIR}
    fi
    create_rrdb
    setup_webpage
    modprobe w1-gpio
    modprobe w1-therm
    while true
    do
    read_raw_data
    while [ "${RAW_DATA}/YES" == "${RAW_DATA}" ]
    do
    sleep 0.1
    read_raw_data
    done
    SENSOR_TEMP=$(awk "BEGIN{print ${RAW_DATA##*=}/1000}")
    rrdtool update ${BASEDIR}/temperature.rrd $(date +%s):${SENSOR_TEMP}
    sleep 1
    done
    }

    main

Új hozzászólás Aktív témák