php echo 관련 질문 입니다. !
CMS/프레임워크 | 사용안함 |
---|---|
개발 언어 | PHP 7.4 |
"기진곰"님 덕분에 POST 방식도 공부해서 앞으로 추가될 변수 생각해 기존 GET방식을 POST 방식으로 잘 바꿨습니다.
질문좀 드리고자 합니다. 시간 괜찮으시다면 해결 방안을 말씀해 주시면 고맙겠습니다.
현재 PHP에서는 POST 값을 받아서 테이블이름이 value 인 db에 삽입하고 그와 동시에 테이블이름이 setup 인 db에서 0이 아닌 값만 찾아 echo로 출력하여 아두이노로 받는 방식으로
아두이노에서 서버기능을 제거할 생각입니다. 사유는 while 문 딜레이 제거?
그런데, 아무리 해봐도 php에서 echo를 아두이노에서 받지 못합니다...
header도 추가했는데 사진처럼 ? 뒤집힌 모양만 println이 아닌 print 로 출력되구요..
아래는 각 파일별 소스코드 입니다.
communication.php (PHP)
<?php
$connect = new mysqli(<hidden>);
$datetime = $_POST['datetime'];
$room_t = $_POST['room_t'];$room_h = $_POST['room_h'];$room_hic = $_POST['room_hic'];$room_index = $_POST['room_index'];$room_lux = $_POST['room_lux'];
$roomtemp = $_POST['roomtemp'];$roomhumi = $_POST['roomhumi'];$roomhic = $_POST['roomhic'];$roomindex = $_POST['roomindex'];$roomlux = $_POST['roomlux'];
$window_l = $_POST['window_l'];$window_s = $_POST['window_s'];$window_v = $_POST['window_v'];$window_ov = $_POST['window_ov'];$window_e = $_POST['window_e'];
$outdoor_t = $_POST['outdoor_t'];$outdoor_h = $_POST['outdoor_h'];$outdoor_hic = $_POST['outdoor_hic'];$outdoor_index = $_POST['outdoor_index'];
$outdoortemp = $_POST['outdoortemp'];$outdoorhumi = $_POST['outdoorhumi'];$outdoorhic = $_POST['outdoorhic'];$outdoorindex = $_POST['outdoorindex'];
$pad_t = $_POST['pad_t'];$pad_h = $_POST['pad_h'];$pad_hic = $_POST['pad_hic'];$pad_s = $_POST['pad_s'];$pad_r = $_POST['pad_r'];$pad_low = $_POST['pad_low'];$pad_high = $_POST['pad_high'];
$padtemp = $_POST['padtemp'];$padhumi = $_POST['padhumi'];$padhic = $_POST['padhic'];
$boiler_t = $_POST['boiler_t'];$boiler_h = $_POST['boiler_h'];$boiler_s = $_POST['boiler_s'];$boiler_r = $_POST['boiler_r'];$boiler_low = $_POST['boiler_low'];$boiler_high = $_POST['boiler_high'];
$boilertemp = $_POST['boilertemp'];$boilerhumi = $_POST['boilerhumi'];
$gas5 = $_POST['gas5'];$boiler5 = $_POST['boiler5'];$gas7 = $_POST['gas7'];$boiler7 = $_POST['boiler7'];
$detectflag = $_POST['detectflag'];
$connect->query("insert into value(datetime, room_t, roomtemp, room_h, roomhumi, room_hic, roomhic, room_index, roomindex, room_lux, roomlux, detectflag, window_s, window_l, window_v, window_ov, window_e, outdoor_t, outdoortemp, outdoor_h, outdoorhumi, outdoor_hic, outdoorhic, outdoor_index, outdoorindex, pad_s, pad_r, pad_t, padtemp, pad_h, padhumi, pad_hic, padhic, pad_low, pad_high, boiler_s, boiler_r, boiler_t, boilertemp, boiler_h, boilerhumi, boiler_low, boiler_high, gas5, boiler5, gas7, boiler7) values('$datetime', '$room_t', '$roomtemp', '$room_h', '$roomhumi', '$room_hic', '$roomhic', '$room_index', '$roomindex', '$room_lux', '$roomlux', '$detectflag', '$window_s', '$window_l', '$window_v', '$window_ov', '$window_e', '$outdoor_t', '$outdoortemp', '$outdoor_h', '$outdoorhumi', '$outdoor_hic', '$outdoorhic', '$outdoor_index', '$outdoorindex', '$pad_s', '$pad_r', '$pad_t', '$padtemp', '$pad_h', '$padhumi', '$pad_hic', '$padhic', '$pad_low', '$pad_high', '$boiler_s', '$boiler_r', '$boiler_t', '$boilertemp', '$boiler_h', '$boilerhumi', '$boiler_low', '$boiler_high', '$gas5', '$boiler5', '$gas7', '$boiler7')");
$sql = "SELECT window_s, pad_s, boiler_s, pad_low, pad_high, boiler_low, boiler_high FROM setup ORDER BY datetime DESC LIMIT 1";
$result = mysqli_query($connect, $sql);
while ($row = mysqli_fetch_array($result)) {
if ($row['window_s'] > 0) echo "ws=".$row['window_s'];
if ($row['pad_s'] > 0) echo "ps=".$row['pad_s'];
if ($row['boiler_s'] > 0) echo "bs=".$row['boiler_s'];
if ($row['pad_low'] > 0) echo "pl=".$row['pad_low'];
if ($row['pad_high'] > 0) echo "ph=".$row['pad_high'];
if ($row['boiler_low'] > 0) echo "bl=".$row['boiler_low'];
if ($row['boiler_high'] > 0) echo "bh=".$row['boiler_high'];
}
header("HTTP/1.1 200 OK");
header("Content-Type: text/html; charset=UTF-8");
?>
$connect = new mysqli(<hidden>);
$datetime = $_POST['datetime'];
$room_t = $_POST['room_t'];$room_h = $_POST['room_h'];$room_hic = $_POST['room_hic'];$room_index = $_POST['room_index'];$room_lux = $_POST['room_lux'];
$roomtemp = $_POST['roomtemp'];$roomhumi = $_POST['roomhumi'];$roomhic = $_POST['roomhic'];$roomindex = $_POST['roomindex'];$roomlux = $_POST['roomlux'];
$window_l = $_POST['window_l'];$window_s = $_POST['window_s'];$window_v = $_POST['window_v'];$window_ov = $_POST['window_ov'];$window_e = $_POST['window_e'];
$outdoor_t = $_POST['outdoor_t'];$outdoor_h = $_POST['outdoor_h'];$outdoor_hic = $_POST['outdoor_hic'];$outdoor_index = $_POST['outdoor_index'];
$outdoortemp = $_POST['outdoortemp'];$outdoorhumi = $_POST['outdoorhumi'];$outdoorhic = $_POST['outdoorhic'];$outdoorindex = $_POST['outdoorindex'];
$pad_t = $_POST['pad_t'];$pad_h = $_POST['pad_h'];$pad_hic = $_POST['pad_hic'];$pad_s = $_POST['pad_s'];$pad_r = $_POST['pad_r'];$pad_low = $_POST['pad_low'];$pad_high = $_POST['pad_high'];
$padtemp = $_POST['padtemp'];$padhumi = $_POST['padhumi'];$padhic = $_POST['padhic'];
$boiler_t = $_POST['boiler_t'];$boiler_h = $_POST['boiler_h'];$boiler_s = $_POST['boiler_s'];$boiler_r = $_POST['boiler_r'];$boiler_low = $_POST['boiler_low'];$boiler_high = $_POST['boiler_high'];
$boilertemp = $_POST['boilertemp'];$boilerhumi = $_POST['boilerhumi'];
$gas5 = $_POST['gas5'];$boiler5 = $_POST['boiler5'];$gas7 = $_POST['gas7'];$boiler7 = $_POST['boiler7'];
$detectflag = $_POST['detectflag'];
$connect->query("insert into value(datetime, room_t, roomtemp, room_h, roomhumi, room_hic, roomhic, room_index, roomindex, room_lux, roomlux, detectflag, window_s, window_l, window_v, window_ov, window_e, outdoor_t, outdoortemp, outdoor_h, outdoorhumi, outdoor_hic, outdoorhic, outdoor_index, outdoorindex, pad_s, pad_r, pad_t, padtemp, pad_h, padhumi, pad_hic, padhic, pad_low, pad_high, boiler_s, boiler_r, boiler_t, boilertemp, boiler_h, boilerhumi, boiler_low, boiler_high, gas5, boiler5, gas7, boiler7) values('$datetime', '$room_t', '$roomtemp', '$room_h', '$roomhumi', '$room_hic', '$roomhic', '$room_index', '$roomindex', '$room_lux', '$roomlux', '$detectflag', '$window_s', '$window_l', '$window_v', '$window_ov', '$window_e', '$outdoor_t', '$outdoortemp', '$outdoor_h', '$outdoorhumi', '$outdoor_hic', '$outdoorhic', '$outdoor_index', '$outdoorindex', '$pad_s', '$pad_r', '$pad_t', '$padtemp', '$pad_h', '$padhumi', '$pad_hic', '$padhic', '$pad_low', '$pad_high', '$boiler_s', '$boiler_r', '$boiler_t', '$boilertemp', '$boiler_h', '$boilerhumi', '$boiler_low', '$boiler_high', '$gas5', '$boiler5', '$gas7', '$boiler7')");
$sql = "SELECT window_s, pad_s, boiler_s, pad_low, pad_high, boiler_low, boiler_high FROM setup ORDER BY datetime DESC LIMIT 1";
$result = mysqli_query($connect, $sql);
while ($row = mysqli_fetch_array($result)) {
if ($row['window_s'] > 0) echo "ws=".$row['window_s'];
if ($row['pad_s'] > 0) echo "ps=".$row['pad_s'];
if ($row['boiler_s'] > 0) echo "bs=".$row['boiler_s'];
if ($row['pad_low'] > 0) echo "pl=".$row['pad_low'];
if ($row['pad_high'] > 0) echo "ph=".$row['pad_high'];
if ($row['boiler_low'] > 0) echo "bl=".$row['boiler_low'];
if ($row['boiler_high'] > 0) echo "bh=".$row['boiler_high'];
}
header("HTTP/1.1 200 OK");
header("Content-Type: text/html; charset=UTF-8");
?>
communication.ino (아두이노)
if (millis() - senddelay >= 2999) {
client.stop();
if (client.connect(domain, 80)) {
String sendvalue = "datetime=20";
sendvalue += int(year);
sendvalue += ".";
sendvalue += int(month);
sendvalue += ".";
sendvalue += int(date);
sendvalue += ".";
sendvalue += int(hours);
sendvalue += ":";
sendvalue += int(minutes);
sendvalue += ":";
sendvalue += int(seconds);
sendvalue += "&room_t=";
sendvalue += int(floor(room_t));
sendvalue += ".";
sendvalue += int((room_t - int(floor(room_t))) * 100);
sendvalue += "&room_h=";
sendvalue += int(floor(room_h));
sendvalue += ".";
sendvalue += int((room_h - int(floor(room_h))) * 100);
sendvalue += "&room_hic=";
sendvalue += int(floor(room_hic));
sendvalue += ".";
sendvalue += int((room_hic - int(floor(room_hic))) * 100);
sendvalue += "&room_index=";
sendvalue += int(floor(room_index));
sendvalue += ".";
sendvalue += int((room_index - int(floor(room_index))) * 100);
sendvalue += "&room_lux=";
sendvalue += int(floor(room_lux));
sendvalue += ".";
sendvalue += int((room_lux - int(floor(room_lux))) * 100);
sendvalue += "&detectflag=";
sendvalue += detectflag;
sendvalue += "&window_s=";
sendvalue += EEPROM.read(6);
sendvalue += "&window_l=";
sendvalue += window_l;
sendvalue += "&window_e=";
sendvalue += EEPROM.read(7);
sendvalue += "&window_v=";
sendvalue += int(floor(window_v));
sendvalue += ".";
sendvalue += int((window_v - int(floor(window_v))) * 100);
sendvalue += "&window_ov=";
sendvalue += EEPROM.read(8);
sendvalue += ".";
sendvalue += EEPROM.read(9);
sendvalue += "&outdoor_t=";
sendvalue += int(floor(outdoor_t));
sendvalue += ".";
sendvalue += int((outdoor_t - int(floor(outdoor_t))) * 100);
sendvalue += "&outdoor_h=";
sendvalue += int(floor(outdoor_h));
sendvalue += ".";
sendvalue += int((outdoor_h - int(floor(outdoor_h))) * 100);
sendvalue += "&outdoor_hic=";
sendvalue += int(floor(outdoor_hic));
sendvalue += ".";
sendvalue += int((outdoor_hic - int(floor(outdoor_hic))) * 100);
sendvalue += "&outdoor_index=";
sendvalue += int(floor(outdoor_index));
sendvalue += ".";
sendvalue += int((outdoor_index - int(floor(outdoor_index))) * 100);
sendvalue += "&pad_s=";
sendvalue += EEPROM.read(2);
sendvalue += "&pad_r=";
sendvalue += digitalRead(heatrelay);
sendvalue += "&pad_t=";
sendvalue += int(floor(pad_t));
sendvalue += ".";
sendvalue += int((pad_t - int(floor(pad_t))) * 100);
sendvalue += "&pad_h=";
sendvalue += int(floor(pad_h));
sendvalue += ".";
sendvalue += int((pad_h - int(floor(pad_h))) * 100);
sendvalue += "&pad_hic=";
sendvalue += int(floor(pad_hic));
sendvalue += ".";
sendvalue += int((pad_hic - int(floor(pad_hic))) * 100);
sendvalue += "&pad_low=";
sendvalue += EEPROM.read(0);
sendvalue += "&pad_high=";
sendvalue += EEPROM.read(1);
sendvalue += "&boiler_s=";
sendvalue += EEPROM.read(5);
sendvalue += "&boiler_r=";
sendvalue += digitalRead(boilerrelay);
sendvalue += "&boiler_t=";
sendvalue += int(floor(boiler_t));
sendvalue += ".";
sendvalue += int((boiler_t - int(floor(boiler_t))) * 100);
sendvalue += "&boiler_h=";
sendvalue += int(floor(boiler_h));
sendvalue += ".";
sendvalue += int((boiler_h - int(floor(boiler_h))) * 100);
sendvalue += "&boiler_low=";
sendvalue += EEPROM.read(3);
sendvalue += "&boiler_high=";
sendvalue += EEPROM.read(4);
sendvalue += "&gas5=";
sendvalue += int(floor(gas5.readSensor()));
sendvalue += ".";
sendvalue += int((gas5.readSensor() - int(floor(gas5.readSensor()))) * 100);
sendvalue += "&boiler5=";
sendvalue += int(floor(boiler5.readSensor()));
sendvalue += ".";
sendvalue += int((boiler5.readSensor() - int(floor(boiler5.readSensor()))) * 100);
sendvalue += "&gas7=";
sendvalue += int(floor(gas7.readSensor()));
sendvalue += ".";
sendvalue += int((gas7.readSensor() - int(floor(gas7.readSensor()))) * 100);
sendvalue += "&boiler7=";
sendvalue += int(floor(boiler7.readSensor()));
sendvalue += ".";
sendvalue += int((boiler7.readSensor() - int(floor(boiler7.readSensor()))) * 100);
sendvalue += "&roomtemp=";
sendvalue += roomtemp;
sendvalue += "&roomhumi=";
sendvalue += roomhumi;
sendvalue += "&roomhic=";
sendvalue += roomhic;
sendvalue += "&roomindex=";
sendvalue += roomindex;
sendvalue += "&roomlux=";
sendvalue += roomlux;
sendvalue += "&outdoortemp=";
sendvalue += outdoortemp;
sendvalue += "&outdoorhumi=";
sendvalue += outdoorhumi;
sendvalue += "&outdoorhic=";
sendvalue += outdoorhic;
sendvalue += "&outdoorindex=";
sendvalue += outdoorindex;
sendvalue += "&padtemp=";
sendvalue += padtemp;
sendvalue += "&padhumi=";
sendvalue += padhumi;
sendvalue += "&padhic=";
sendvalue += padhic;
sendvalue += "&boilertemp=";
sendvalue += boilertemp;
sendvalue += "&boilerhumi=";
sendvalue += boilerhumi;
client.println F("POST /communication.php HTTP/1.1");
client.println F("Host: <HIDDEN>");
client.println F("Content-Type: application/x-www-form-urlencoded");
client.print F("Content-Length: ");
client.println(sendvalue.length());
client.println();
client.println(sendvalue);
char c = client.read();
Serial.write(c);
}
senddelay = millis();
}
client.stop();
if (client.connect(domain, 80)) {
String sendvalue = "datetime=20";
sendvalue += int(year);
sendvalue += ".";
sendvalue += int(month);
sendvalue += ".";
sendvalue += int(date);
sendvalue += ".";
sendvalue += int(hours);
sendvalue += ":";
sendvalue += int(minutes);
sendvalue += ":";
sendvalue += int(seconds);
sendvalue += "&room_t=";
sendvalue += int(floor(room_t));
sendvalue += ".";
sendvalue += int((room_t - int(floor(room_t))) * 100);
sendvalue += "&room_h=";
sendvalue += int(floor(room_h));
sendvalue += ".";
sendvalue += int((room_h - int(floor(room_h))) * 100);
sendvalue += "&room_hic=";
sendvalue += int(floor(room_hic));
sendvalue += ".";
sendvalue += int((room_hic - int(floor(room_hic))) * 100);
sendvalue += "&room_index=";
sendvalue += int(floor(room_index));
sendvalue += ".";
sendvalue += int((room_index - int(floor(room_index))) * 100);
sendvalue += "&room_lux=";
sendvalue += int(floor(room_lux));
sendvalue += ".";
sendvalue += int((room_lux - int(floor(room_lux))) * 100);
sendvalue += "&detectflag=";
sendvalue += detectflag;
sendvalue += "&window_s=";
sendvalue += EEPROM.read(6);
sendvalue += "&window_l=";
sendvalue += window_l;
sendvalue += "&window_e=";
sendvalue += EEPROM.read(7);
sendvalue += "&window_v=";
sendvalue += int(floor(window_v));
sendvalue += ".";
sendvalue += int((window_v - int(floor(window_v))) * 100);
sendvalue += "&window_ov=";
sendvalue += EEPROM.read(8);
sendvalue += ".";
sendvalue += EEPROM.read(9);
sendvalue += "&outdoor_t=";
sendvalue += int(floor(outdoor_t));
sendvalue += ".";
sendvalue += int((outdoor_t - int(floor(outdoor_t))) * 100);
sendvalue += "&outdoor_h=";
sendvalue += int(floor(outdoor_h));
sendvalue += ".";
sendvalue += int((outdoor_h - int(floor(outdoor_h))) * 100);
sendvalue += "&outdoor_hic=";
sendvalue += int(floor(outdoor_hic));
sendvalue += ".";
sendvalue += int((outdoor_hic - int(floor(outdoor_hic))) * 100);
sendvalue += "&outdoor_index=";
sendvalue += int(floor(outdoor_index));
sendvalue += ".";
sendvalue += int((outdoor_index - int(floor(outdoor_index))) * 100);
sendvalue += "&pad_s=";
sendvalue += EEPROM.read(2);
sendvalue += "&pad_r=";
sendvalue += digitalRead(heatrelay);
sendvalue += "&pad_t=";
sendvalue += int(floor(pad_t));
sendvalue += ".";
sendvalue += int((pad_t - int(floor(pad_t))) * 100);
sendvalue += "&pad_h=";
sendvalue += int(floor(pad_h));
sendvalue += ".";
sendvalue += int((pad_h - int(floor(pad_h))) * 100);
sendvalue += "&pad_hic=";
sendvalue += int(floor(pad_hic));
sendvalue += ".";
sendvalue += int((pad_hic - int(floor(pad_hic))) * 100);
sendvalue += "&pad_low=";
sendvalue += EEPROM.read(0);
sendvalue += "&pad_high=";
sendvalue += EEPROM.read(1);
sendvalue += "&boiler_s=";
sendvalue += EEPROM.read(5);
sendvalue += "&boiler_r=";
sendvalue += digitalRead(boilerrelay);
sendvalue += "&boiler_t=";
sendvalue += int(floor(boiler_t));
sendvalue += ".";
sendvalue += int((boiler_t - int(floor(boiler_t))) * 100);
sendvalue += "&boiler_h=";
sendvalue += int(floor(boiler_h));
sendvalue += ".";
sendvalue += int((boiler_h - int(floor(boiler_h))) * 100);
sendvalue += "&boiler_low=";
sendvalue += EEPROM.read(3);
sendvalue += "&boiler_high=";
sendvalue += EEPROM.read(4);
sendvalue += "&gas5=";
sendvalue += int(floor(gas5.readSensor()));
sendvalue += ".";
sendvalue += int((gas5.readSensor() - int(floor(gas5.readSensor()))) * 100);
sendvalue += "&boiler5=";
sendvalue += int(floor(boiler5.readSensor()));
sendvalue += ".";
sendvalue += int((boiler5.readSensor() - int(floor(boiler5.readSensor()))) * 100);
sendvalue += "&gas7=";
sendvalue += int(floor(gas7.readSensor()));
sendvalue += ".";
sendvalue += int((gas7.readSensor() - int(floor(gas7.readSensor()))) * 100);
sendvalue += "&boiler7=";
sendvalue += int(floor(boiler7.readSensor()));
sendvalue += ".";
sendvalue += int((boiler7.readSensor() - int(floor(boiler7.readSensor()))) * 100);
sendvalue += "&roomtemp=";
sendvalue += roomtemp;
sendvalue += "&roomhumi=";
sendvalue += roomhumi;
sendvalue += "&roomhic=";
sendvalue += roomhic;
sendvalue += "&roomindex=";
sendvalue += roomindex;
sendvalue += "&roomlux=";
sendvalue += roomlux;
sendvalue += "&outdoortemp=";
sendvalue += outdoortemp;
sendvalue += "&outdoorhumi=";
sendvalue += outdoorhumi;
sendvalue += "&outdoorhic=";
sendvalue += outdoorhic;
sendvalue += "&outdoorindex=";
sendvalue += outdoorindex;
sendvalue += "&padtemp=";
sendvalue += padtemp;
sendvalue += "&padhumi=";
sendvalue += padhumi;
sendvalue += "&padhic=";
sendvalue += padhic;
sendvalue += "&boilertemp=";
sendvalue += boilertemp;
sendvalue += "&boilerhumi=";
sendvalue += boilerhumi;
client.println F("POST /communication.php HTTP/1.1");
client.println F("Host: <HIDDEN>");
client.println F("Content-Type: application/x-www-form-urlencoded");
client.print F("Content-Length: ");
client.println(sendvalue.length());
client.println();
client.println(sendvalue);
char c = client.read();
Serial.write(c);
}
senddelay = millis();
}
감사합니다.
방금 예제의 client_repeating 에서 돌려봤는데 정상출력이 됩니다..?
그럼 더더욱 이해가 되질 않습니다..
.....
댓글 2