Witam!
Jako że jetem kompletnym laikiem jeśli chodzi o środowisko php, mysql - pozwoliłem sobie zamieścić tutaj (jeśli nie ten dział to proszę o przeniesienie) prośbę o pomoc.
Jestem piwowarem domowym i ostatnio wpadła mi w ręce fajna zabaweczka, tj. modulik ESP8266 dzięki, któremu mam możliwość sterowania i kontroli temperatury
fermentacji piwa w lodówce. Na chwilę obecną dane wrzucam na thingspeak'a tutaj macie podgląd. Koledze z forum piwo.org
udało się stworzyć skrypt który daję bardziej rozbudowany i czytelny wykres - podesłał mi do niego kod a ja niestety nie potrafię go odpowiednio "użyć". Stworzyłem sobie domenę
na darmowym serwisie hostinger.pl która obsługuję php i mysql i na tym moje umiejętności się kończą - dlatego proszę Was o pomoc w złożeniu tego w całość abym mógł w pełni wykorzystać ten modulik.
Poniżej podam Wam treść wiadomości priv kolegi, który mi udostępnił ten kod:

Najpierwskrypt zbierający dane:
wrzuć go przez SSH i dodaj go do crontab żeby co 10minut się łączył

  1. #!/bin/bash
  2. cd /var
  3. wget [url="http://ADRES_STEROWNIKA/ster"]http://ADRES_STEROWNIKA/ster[/url] -o /dev/null
  4.  
  5. if [ ! -f "/var/input" ]; then
  6. if [ ! -f "/var/wylacz" ]; then
  7. touch /var/wylacz
  8. mysql -u UZYTKOWNIK_MYSQL -pHASLO_MYSQL -e "INSERT INTO BAZA_DANYCH.TABLICA (OnOff) VALUES ('9');"
  9. fi
  10. exit 1
  11. fi
  12.  
  13. if [ -f "/var/wylacz" ]; then
  14. rm /var/wylacz
  15. fi
  16.  
  17. plik=$(cat /var/ster)
  18. onoff=`cat ster | grep Aktualna | sed 's/.*Zalaczony=<\/p><\/th><th><p align=left>//' | sed 's/<\/p><\/th><\/tr><tr><th$
  19. temp=`cat ster | grep Aktualna | sed 's/.*temperatura=<\/p><\/th><th><p align=left>//' | sed 's/<koniectempertury><\/p>$
  20.  
  21. rm /var/input
  22. mysql -u UZYTKOWNIK_MYSQL -pHASLO_MYSQL -e "INSERT INTO BAZA_DANYCH.TABLICA (temperatura, onoff) VALUES ('$temp', '$onoff');"

tu musisz się sedem pobawić bo ja mam trochę inne oprogramowanie i robiłem to trochę na oślep
przy mysqlach hasło ma być bezpośrednio po -p (to nie jest błąd!)

Potem skrypt PHP:
Musisz się pobawić i poustawiać to pod siebie i ściagnąć bibliotekę jquery oraz highcharts (ogolnie dostepne)
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html;CHARSET=UTF-8">
  5. <meta http-equiv="Cache-Control" content="no-store, no-cache, must-revalidate">
  6. <meta http-equiv="Cache-Control" content="post-check=0, pre-check=0">
  7. <meta http-equiv="Pragma" content="no-cache">
  8. <title>Temperatura w komorze fermentacyjnej</title>
  9. <script type="text/javascript" src="js/jquery.min.js"></script>
  10. <script src="js/highcharts.js"></script>
  11. <?php
  12. function czastworz()
  13. {
  14. list($usec, $sec) = explode(" ",microtime());
  15. return ((float)$usec + (float)$sec);
  16. }
  17.  
  18. $cz = czastworz();
  19. $pol = mysql_connect("localhost","UZYTKOWNIK_MYSQL","HASLO_MYSQL");
  20.  
  21. if (!$pol) { die('Nie można podłączyć do bazy SQL z powodu: ' . mysql_error()); }
  22. $teraz=strtotime(date("Y-m-d H:i:s"));
  23. $teraz=$teraz+3600;
  24.  
  25. $wroc=$teraz-(30*86400); // 30 dni
  26. $were=" AND sztempel > '".date("Y-m-d H:i:s",$wroc)."'";
  27.  
  28. mysql_select_db("BAZA_DANYCH", $pol);
  29. $zapytanie = mysql_query("SELECT sztempel, temperatura FROM TABLICA WHERE temperatura is not null and sztempel < '".date("Y-m-d H:i:s",$teraz)."'$were");
  30. while($wiersz = mysql_fetch_array($zapytanie)) {
  31. $data=strtotime ($wiersz[0])*1000;
  32. $temp .= "[".$data.",".$wiersz[1]."],";
  33. }
  34. $zapytanie = mysql_query("SELECT sztempel, onoff FROM TABLICA WHERE onoff is not null and sztempel < '".date("Y-m-d H:i:s",$teraz)."'$were");
  35. while($wiersz = mysql_fetch_array($zapytanie)) {
  36. $data=strtotime ($wiersz[0])*1000;
  37. $wl .= "[".$data.",".$wiersz[1]."],";
  38.  
  39. ?>
  40.  
  41. <script type="text/javascript">
  42. $(function () {
  43. Highcharts.setOptions({ lang: { resetZoom: 'Cofnij', resetZoomTitle: 'Kliknij by zobaczyć cały wykres',
  44. months: ['Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj', 'Czerwiec', 'Lipiec', 'Sierpień', 'Wrzesień', 'Październik', 'Listopad', 'Grudzień'],
  45. shortMonths: ['Sty', 'Luty', 'Marz', 'Kwie', 'Maj', 'Cze', 'Lip', 'Sie', 'Wrz', 'Paźdz', 'Lis', 'Gru'],
  46. weekdays: ['Niedziela', 'Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota']}
  47. });
  48. Highcharts.theme = {
  49. chart: { backgroundColor: '#FFFFFF', borderColor: '#BBBBBB', borderWidth: 1, shadow: true, plotShadow: false,margin: [55,75,30,65] },
  50. credits: { enabled: false },
  51. legend: { enabled: false },
  52. xAxis: { labels: {style: {color: '#000000'}}, gridLineWidth: 0.3, gridLineDashStyle: 'longdash' },
  53. yAxis: { tickWidth: 1, tickColor: "#000", labels: {style: {color: '#000000'}}},
  54. tooltip: { dateTimeLabelFormats:{hour:"%A, %e %B, %H:%M"} },
  55. plotOptions: { series: { marker: { enabled: false, states: { hover: { enabled: true }}}}}
  56. };
  57. var highchartsOptions = Highcharts.setOptions(Highcharts.theme);
  58. $('#divTemp').highcharts({
  59. chart: { type: 'spline', zoomType: 'x' },
  60. title: { text: 'Komora fermentacyjna', x: -20 },
  61. subtitle: { text: 'malinowy.eu', x: -20 },
  62. xAxis: { type: 'datetime', maxZoom: 2 * 3600000, // 2 godziny
  63. title: { text: null },},
  64. yAxis: [{ title: { text: 'Temperatura [°C]' }, tickinterval: 0.5, min: 1, max: 20, plotLines: [{ value: 0, width: 1,color: '#808080' }], opposite: true },
  65. { title: { text: 'Czy włączone?'}, min: 0, max: 6, tickinterval: 1 ,plotLines: [{ value: 0, width: 1, color: '#808080'}], opposite: false }],
  66. legend: { layout: 'vertical', align: 'right', verticalAlign: 'middle', borderWidth: 0 },
  67. series: [{ type: 'areaspline', fillColor : { linearGradient : { x1: 0, y1: 0, x2: 0, y2: 1 }, stops : [[0, Highcharts.getOptions().colors[5]], [1, Highcharts.Color(Highcharts.getOptions().colors[5]).setOpacity(0).get('rgba')]]},
  68. tooltip: { valueSuffix: '°C' }, name: 'Temperatura', color: 5, yAxis: 0,
  69. data: [<?php echo "$temp"; ?>]},
  70. { yAxis: 1, tooltip: { valueSuffix: '' }, name: 'Włączone',
  71. data: [<?php echo "$wl"; ?>]}]
  72. });
  73. });
  74. </script>
  75. </head>
  76. <body>
  77. <div id="divTemp" style="width: 900px; height: 500px; margin: 0 auto"></div>
  78. <font size=1 color=#dcdcdc>
  79. <?php }
  80. $czk = czastworz();
  81. $time = substr($czk - $cz, 0, 4);
  82. echo "Strona została wygnerowana w $time sekund.";
  83. ?>
  84. </font>
  85. </body>

Ja mam bazę danych ustawioną tak:
ID, sztempel, temperatura, onoff
id - numer kolejny
sztempel - czas utworzenia wpisu

edit. Zapomniałem podać linka jak wygląda taki wykres z powyższego kodu tutaj link