Stap 4: Software Setup - Gnuplot
Gnuplot kunt uitzetten van een opgemaakte tekst dossier direct en wij net zo toevallig ene de ontleden stap vóór.
Zodra we geven aan waar in het bestand de gegevens bevindt gnuplot kunnen we de gewenste waarden worden uitgezet. I 'm gonna gebruik tijd op de X-as en onze temperatuur op de Y-as.
Plotten tijd uit mijn ervaring is het moeilijkst aangezien je moet krijgen de tijdnotatie in gnuplot overeenkomen met de indeling van het tekstbestand.
Nadat alle grafische opties voltooid zijn en aan uw voorkeur, kunt Gnuplot vervolgens een beeld van deze grafiek maken. Dit is het beeld dat we later op onze Web-pagina zal gebruiken. Ik koos om te gaan met een PNG-afbeelding en omdat ik wil vervangen de oude afbeelding op de webpagina, elke afbeelding heeft dezelfde naam zodat deze coderegel niet hoeft te wijzigen.
De tekengrootte van de afbeelding is gekoppeld aan HTML-page optimalisatie. Ik voor het eerst gespeeld rond met standaard maten dan geëxperimenteerd om de afbeelding te maken mijn scherm passen. Voor dit project, ben ik niet oude beelden opslaan zodat de fysieke grootte van het bestand in opslag niet een belangrijke factor bij de opslag van de kostbare Raspberry pi is.
Hier is een codefragment maken en opslaan van de afbeelding van de grafiek daily.png.
g = Gnuplot.Gnuplot(debug=debug)
g ('cd "' + pad + '" ")
g ('set xdata tijd')
g ('set timefmt "%d %b %Y H: % M: %S" ')
g ('set formaat x "% H:%M\\n%d%b" ")
g ('set titel "Dagelijkse huidige weergave van de temperatuur" ")
g ('set key off')
g g ('Stel raster') ('set xlabel "Time\\nDate" ")
g ('set yrange [15.0:35.0]')
g ("ylabel instellen" temperatuur "")
g ('set datafile "NaN" ontbrekende")
g (' terminal png formaat 800,400' instellen)
g ('set output "daily.png" ')
g ('plot "daily.dat" 1:($3) met lijnen')
Opmerking: De regel g ('set datafile "NaN" ontbrekende"), het doel van deze regel is uitzetten in een lege ruimte in het proefvlak. De variabele "NaN" wordt geschreven naar het bestand als het python script iets raar voor een bepaalde lezing of een seriële transmissie detecteert.
Zoals je uit de bovenstaande drie grafieken zien kunt, geeft de daily.png u een huidige tijdweergave van de gegevens terwijl de 24_hour.png dezelfde informatie weergegeven op een schaal van 24 uur heeft. De 48_hour.png-grafiek toont je de afgelopen 48 uur ter waarde van gegevens van de sensor.