connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$date_tz = "UTC";
$sql = "SELECT value FROM sensors_system WHERE name = 'server_timezone'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$date_tz = $row["value"];
}
}
$date = exec('TZ='.$date_tz.' /bin/date');
$temp_type = "Fahrenheit";
$deg = "F";
$sql = "SELECT value FROM sensors_system WHERE name = 'server_temperature'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
if ($row["value"] == "Celsius") {
$temp_type = "Celsius";
$deg = "C";
}
else {
$temp_type = "Fahrenheit";
$deg = "F";
}
}
}
$sql = "SELECT * FROM sensors_info WHERE sensor_state = 'on' AND sensor_type = 'Soil Sensor'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
echo '
';
#echo '';
echo '';
echo '
';
echo '';
echo '| Sensor ID | ';
echo 'Status | ';
echo 'State | ';
echo 'Soil Temp | ';
echo 'Air Temp | ';
echo 'Humidity (%) | ';
echo 'Light (%) | ';
echo 'Moisture 1 | ';
echo 'Moisture 2 | ';
echo 'Moisture 3 | ';
echo 'Moisture 4 | ';
while($row = $result->fetch_assoc()) {
$soil_sensor = exec('/opt/tempberrypi/bin/sn-util-rpi get '.$row["sensor_bus"].' '.$row["sensor_id"].' | grep '.$row["sensor_id"].'');
if ($soil_sensor) {
$status = "
";
}
else {
$soil_sensor1 = exec('/opt/tempberrypi/bin/sn-util-rpi get 1 '.$row["sensor_id"].' | grep '.$row["sensor_id"].'');
$soil_sensor2 = exec('/opt/tempberrypi/bin/sn-util-rpi get 2 '.$row["sensor_id"].' | grep '.$row["sensor_id"].'');
$soil_sensor3 = exec('/opt/tempberrypi/bin/sn-util-rpi get 3 '.$row["sensor_id"].' | grep '.$row["sensor_id"].'');
if ($soil_sensor1) {
$status = "
";
$sql_bus = "UPDATE sensors_info SET sensor_bus = '1' WHERE `sensor_id` ='".$row["sensor_id"]."'";
$result_bus = $conn->query($sql_bus);
$row["sensor_bus"] = 1;
}
else if ($soil_sensor2) {
$status = "
";
$sql_bus = "UPDATE sensors_info SET sensor_bus = '3' WHERE `sensor_id` ='".$row["sensor_id"]."'";
$result_bus = $conn->query($sql_bus);
$row["sensor_bus"] = 2;
}
else if ($soil_sensor3) {
$status = "
";
$sql_bus = "UPDATE sensors_info SET sensor_bus = '3' WHERE `sensor_id` ='".$row["sensor_id"]."'";
$result_bus = $conn->query($sql_bus);
$row["sensor_bus"] = 3;
}
else {
$status = "
";
}
}
$low = $ini_array['low'];
$high = $ini_array['high'];
if(($row["sensor_limit1"] != "") && ($row["sensor_limit2"] != "")) {
$low = $row["sensor_limit1"];
$high = $row["sensor_limit2"];
}
else if(($row["sensor_limit3"] != "") && ($row["sensor_limit4"] != "")) {
$low = $row["sensor_limit3"];
$high = $row["sensor_limit4"];
}
$state = 'on';
if ($row["sensor_state"] == "on"){
$state = 'off';
}
$name = $row["sensor_id"];
if ($row["sensor_name"] != "") {
$name = $row["sensor_name"];
}
$raw_soil = exec('/opt/tempberrypi/bin/sn-util-rpi get '.$row["sensor_bus"].' '.$row["sensor_id"].' | grep '.$row["sensor_id"].' | grep -v Node ');
$soil_data = explode(",", $raw_soil);
$temp_value_soil = "";
$temp_value_air = "";
$temp_valueC_air = $soil_data[6];
$temp_valueC_soil = $soil_data[7];
$temp_valueF_soil = round(($soil_data[7] * (9/5) + 32) ,1);
$temp_valueF_air = round(($soil_data[6] * (9/5) + 32), 1);
if ($temp_type == "Celsius") {
$temp_value_soil = $temp_valueC_soil;
$temp_value_air = $temp_valueC_air;
}
else {
$temp_value_soil = $temp_valueF_soil;
$temp_value_air = $temp_valueF_air;
}
$temp_values_soil = explode(".", $temp_value_soil);
if ($temp_values_soil[0] > $high ) {
$state_of_sensor = 'HIGH TEMP';
}
elseif ($temp_values_soil[0] < $low ) {
$state_of_sensor = 'LOW TEMP';
}
else {
$state_of_sensor = 'GOOD';
}
$temp_values_air = explode(".", $temp_value_air);
if ($temp_values_air[0] > $high ) {
$state_of_sensor = 'HIGH TEMP';
}
elseif ($temp_values_air[0] < $low ) {
$state_of_sensor = 'LOW TEMP';
}
else {
$state_of_sensor = 'GOOD';
}
$moisture1 = 0;
$moisture2 = 0;
$moisture3 = 0;
$moisture4 = 0;
if ($soil_data[14]) {
#$moisture1 = $soil_data[14];
$moisture1 = ((-0.00078 * $soil_data[14]) + 3.41);
$moisture1 = number_format((float)$moisture1, 2, '.', '');
#if ($moisture1 < 0 ) {
# $moisture1 = 0.01;
#}
}
if ($soil_data[15]) {
$moisture2 = ((-0.078 * $soil_data[15]) + 3.41);
}
if ($soil_data[16]) {
$moisture3 = ((-0.078 * $soil_data[16]) + 3.41);
}
if ($soil_data[17]) {
$moisture4 = ((-0.078 * $soil_data[17]) + 3.41);
}
echo '
| '.$name.' |
'.$status.' |
'.$state_of_sensor.' |
'.$temp_value_soil.'°'.$deg.' |
'.$temp_value_air.'°'.$deg.' |
'.$soil_data[5].'% |
'.$soil_data[8].'% |
'.$moisture1.' |
'.$moisture2.' |
'.$moisture3.' |
'.$moisture4.' |
';
}
echo '
';
#echo 'Last Update:'.$date.'
';
echo 'Last Update:'.$date.'
';
}
else {
echo 'There are no sensors turned on under the admin section. If you want to view raw data you will need to enable some sensors.
';
}
?>