Мой проект за 2011 год, термометр помещения + выносной на улицу датчик
всё кроме модуля работы с I2C по COM написано самим Коваленко А.В.
(С)Коваленко А.В.
(С)avk013
І часть: серверная
1. add.php
________
2. config.php
_______
3. gr.php
_______
4. Шаблон gr.tpl
______
5. часть таблицы БД:
______
II часть:клиентская часть на компьютере с COM портом и датчиком.
файл проекта на VB 6.0
====
всё кроме модуля работы с I2C по COM написано самим Коваленко А.В.
(С)Коваленко А.В.
(С)avk013
І часть: серверная
1. add.php
________
<? require('config.php'); $temp0=(float)$_GET['temp0']; $temp1=(float)$_GET['temp1']; $usr=$_GET['usr']; if (!isset($temp0)) $temp0=0.0;//внутр if (!isset($temp1)) $temp1=0.0;//внешн $usr=substr($usr, 0, 10); if (($temp0 != 0.0 || $temp1 != 0.0) && ( $temp1 !=-60 || $temp0 !=-60)) {$date_today = date("m.d.y"); $today = date("H:i:s"); echo("Текущее время: $today и дата: $date_today ."); echo "<BR>температура сервере: ".$temp0." и ".$temp1; ...
if(!mysql_select_db($db,$conn)) { ?> <p>ошибка открытия ТБЛ <p> <?php mysql_close($conn); exit(); } {$pto="id, temp0, temp1, dt"; $sql="select $pto from temp order by Id desc limit 1 "; $result=mysql_query($sql); $row=mysql_fetch_object($result); $temp01=$row->temp0;$temp11=$row->temp1;$id=$row->id; mysql_free_result($result); if ($temp11!=$temp1) { $sql='INSERT INTO temp (id, temp0, temp1, dt) VALUES (NULL, '.$temp0.', '.$temp1.', now())'; $a=mysql_query($sql) or die("Invalid query: " . mysql_error());} else { $cto="dt=now()"; $usl='id='.$id; $sql="UPDATE temp SET $cto WHERE $usl"; $result=mysql_query($sql); ...====================
2. config.php
_______
<?php $serv="localhost"; $db="database"; $us="superuser"; $pasw="lalala";?>====================
3. gr.php
_______
<? {require('config.php'); require('../../admin/templ.php'); $parse->get_tpl('gr.tpl'); $conn=MYSQL_CONNECT($serv,$us,$pasw); if(!$conn) echo("error open DB"); if(!mysql_select_db($db,$conn)) echo ("error select"); $sql='SELECT temp1 FROM temp ORDER BY temp1 DESC LIMIT 1'; $a=mysql_query($sql); while($row=mysql_fetch_array($a)) {$max=$row[0];} $sql='SELECT temp1 FROM temp ORDER BY temp1 LIMIT 1'; $a=mysql_query($sql); while($row=mysql_fetch_array($a)) {$min=$row[0];} $sql='SELECT * FROM temp ORDER BY `dt` DESC limit 96'; $a=mysql_query($sql); $i=95; while($row=mysql_fetch_array($a)) {$dat = explode(" ",$row[3]); $ch= explode(":",$dat[1]); while (($old_ch-1>$ch[0]) and ($old_ch>0) and $i>0) {$old_ch=$old_ch-1; $chas=$chas."data.setValue(".$i.", 0, '".$old_ch."');\n"; $temp=$temp."data.setValue(".$i.", 1, ".$old_temp.");\n";$i--;} if ($i>0) {$chas=$chas."data.setValue(".$i.", 0, '".(int)$ch[0]."');\n"; $temp=$temp."data.setValue(".$i.", 1, ".$row[2].");\n"; $temp0=$temp0."data.setValue(".$i.", 2, ".$row[1].");\n"; $i--;} else break; $old_temp=(int)$row[2];$old_temp0=(int)$row[1];$old_ch=$ch[0];} mysql_close($conn);} $parse->set_tpl("{min}",$min);$parse->set_tpl("{max}",$max); $parse->set_tpl("{temp}",$temp);$parse->set_tpl("{chas}",$chas); $parse->tpl_parse();print $parse->template;?>==============
4. Шаблон gr.tpl
______
<html><head> <script type="text/javascript" src="https://www.google.com/jsapi"></script> <script type="text/javascript"> google.load("visualization", "1", {packages:["corechart"]}); google.setOnLoadCallback(drawChart); function drawChart() { var data = new google.visualization.DataTable(); data.addColumn('string', 'час'); data.addColumn('number', 'зовнішня температура'); data.addRows(96); {chas} {temp} var chart = new google.visualization.LineChart(document.getElementById('chart_div')); chart.draw(data, { width: 1000, height: 600, title: 'графік змін температури за останні 48 годин' }); } </script> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"><title>температура</title><style type="text/css"> <!-- body { background-color: #E1E1E1; } --> </style></head> <body> <div align="center" id="chart_div"></div> <table width="90%" border="0" align="center"> <tr> <td> </td> <td align="right"><strong>зовнішня</strong></td><td> </td><td> </td> </tr> <tr> <td> </td> <td align="right">мінімальна: {min} °C </td><td> </td><td> </td> </tr> <tr> <td> </td> <td align="right">максимальна: {max} °C </td><td>за період спостереження</td><td> </td> </tr> </table> <div align="center"><input type="button" onclick="history.back()" value="<<повернутись на попередню сторінку" /><BR><h6>(С) Реалізація та ідея: студ. Дуков М., викл.Коваленко О.В. 2011+</h6> </div></body></html>=========
5. часть таблицы БД:
______
INSERT INTO `temp` (`id`, `temp0`, `temp1`, `dt`) VALUES (2366, 27.0, 20.0, '2011-08-01 07:30:24'), (2367, 27.0, 20.5, '2011-08-01 08:00:25'), (2368, 27.0, 21.5, '2011-08-01 08:30:25'), (2369, 27.0, 23.0, '2011-08-01 09:00:25'),+++++++++++++++++++++++++++++++++++++++++++++++++++++++
II часть:клиентская часть на компьютере с COM портом и датчиком.
файл проекта на VB 6.0
====
... Private Sub Form_Load() update_com_port update_sample_rate ... Private Sub Timer1_Timer() Dim t As Double Dim unit As String unit = "°C " t = temperature(&H48) If t = ERROR_TEMPERATURE_NOT_READ Then MsgBox "Unable to read internal temperature", vbOKOnly, "Error" Timer1.Enabled = False label_temperature_indoor.Caption = "--.-" + unit Else label_temperature_indoor.Caption = Format(t, "#0.0" + unit) End If t = temperature(&H49) If t = ERROR_TEMPERATURE_NOT_READ Then MsgBox "Unable to read external temperature", vbOKOnly, "Error" Timer1.Enabled = False label_temperature_outside.Caption = "--.-" + unit Else label_temperature_outside.Caption = Format(t, "#0.0" + unit) End If frm_thermometer.Caption = label_temperature_indoor.Caption + " ( out " + label_temperature_outside.Caption + " )" End Sub ... Sub tempr() temp0 = temperature(&H48) temp0 = temperature(&H48) temp1 = temperature(&H49) ... WebBrowser1.Navigate url End Subhttps://github.com/avk013/termo-cite-php_vb.git
Комментариев нет:
Отправить комментарий