connect_error) { die("Connection failed: " . $conn->connect_error); } echo "Connection succeed!
"; $data = json_decode(file_get_contents("php://input")); $datetime = $data->datetime; $deviceid = $data->device_id; $temp = $data->temp; $humidity = $data->humidity; $h2s = $data->h2s; $tvoc = $data->tvoc; $eco2 = $data->eco2; $nh3 = $data->nh3; $co = $data->co; $ch4 = $data->ch4; $pm1_0 = $data->pm1_0; $pm2_5 = $data->pm2_5; $pm10 = $data->pm10; $ver = $data->ver; $lat = $data->lat; $lng = $data->lng; $alt = $data->alt; if ($temp < -20) $temp = -20; if (!isset($lat) || $lat === null) $lat = 37.854; if (!isset($lng) || $lng === null) $lng = 127.726; if (!isset($alt) || $alt === null) $alt = 75; date_default_timezone_set('Asia/Seoul'); $date = date('Y-m-d H:i:s', time()); $sql_time = "SELECT datetime FROM ns40_1 WHERE deviceid='$deviceid' ORDER BY num DESC LIMIT 1"; $result_time = mysqli_query($conn, $sql_time); $row_time = mysqli_fetch_array($result_time); $gapMin = 999; if ($row_time) { $gapMin = (int)((strtotime($date) - strtotime($row_time['datetime'])) / 60); } if ($gapMin > 4) { // ============================ // 1️⃣ 실제 장치 INSERT // ============================ $sql = "INSERT INTO ns40_1 (num, datetime, deviceid, temp, humidity, h2s, tvoc, eco2, nh3, co, ch4, pm1_0, pm2_5, pm10, ver, lat, lng, alt) VALUES (NULL, '$datetime', '$deviceid', '$temp', '$humidity', '$h2s', '$tvoc', '$eco2', '$nh3', '$co', '$ch4', '$pm1_0', '$pm2_5', '$pm10', '$ver', '$lat', '$lng', '$alt')"; mysqli_query($conn, $sql); echo "Real device inserted!
"; // ====================================================== // 2️⃣ 실제 장치가 ns40_IjQ8242 일 경우 가상 3개 생성 // ====================================================== if ($deviceid == "ns40_IjQ8242") { $virtualDevices = [ ["id"=>"ns40_exT1234", "lat"=>37.8540, "lng"=>127.7285, "alt"=>75], ["id"=>"ns40_NgT2345", "lat"=>37.8549, "lng"=>127.7460, "alt"=>75], ["id"=>"ns40_ItQ3456", "lat"=>37.8545, "lng"=>127.7410, "alt"=>95] ]; function randomize($value) { if ($value == -9999) return -9999; $percent = rand(1,5) / 100; $direction = rand(0,1) ? 1 : -1; return $value + ($value * $percent * $direction); } foreach ($virtualDevices as $vd) { $v_temp = randomize($temp); $v_humidity = randomize($humidity); $v_h2s = randomize($h2s); $v_tvoc = randomize($tvoc); $v_eco2 = randomize($eco2); $v_nh3 = randomize($nh3); $v_co = randomize($co); $v_ch4 = randomize($ch4); $v_pm1_0 = randomize($pm1_0); $v_pm2_5 = randomize($pm2_5); $v_pm10 = randomize($pm10); $sql_virtual = "INSERT INTO ns40_1 (num, datetime, deviceid, temp, humidity, h2s, tvoc, eco2, nh3, co, ch4, pm1_0, pm2_5, pm10, ver, lat, lng, alt) VALUES (NULL, '$datetime', '{$vd['id']}', '$v_temp', '$v_humidity', '$v_h2s', '$v_tvoc', '$v_eco2', '$v_nh3', '$v_co', '$v_ch4', '$v_pm1_0', '$v_pm2_5', '$v_pm10', '$ver', '{$vd['lat']}', '{$vd['lng']}', '{$vd['alt']}')"; mysqli_query($conn, $sql_virtual); } echo "3 virtual devices inserted!"; } } $conn->close(); ?>