이전 포스팅에서 진행한 아두이노 온습도 센서를 이용하여 측정한 값을
Wifi 모듈로 데이터베이스에 전달하였다.
이번 포스팅은 간단한 웹페이지를 만들어서 라즈베리파이
LCD 모니터를 통해 웹을 확인하는 것이 목표이다.
우선 현재 구축된 데이터 베이스를 수정한다.
이전에 포스팅에서 데이터베이스를 생성하였을 때에는
그 안에 필드로 temp와 humidity값만 저장하였다.
이번 포스팅에서는 웹페이지로 측정값을 출력하기 위해
Primary key(기본키)를 포함시킨다.
(측정값을 판단하고 구분하기 위해 ID를 Primary key로 지정)
우선 라즈베리파이 터미널창에서 자신의 데이터베이스에 접속하기 위해
-> mysql -u (ID) -p (PW)
-> use (데이터베이스명)
테이블을 확인하기 위해
-> select * from (테이블명);
그 후 Primary Key(id)를 추가하기 위해서
-> ALTER TABLE "(테이블명)" ADD "(ID)" INT(255) PRIMARY KEY AUTO_INCREMENT;
다시 테이블을 확인하기 위해
-> select * from (테이블명);
을 통해 확인한다.
PHP
데이터베이스에 측정된 값을 웹페이지로 출력하기 위해
필요한 PHP 파일이다.
우선 웹페이지를 구성하기 위해 HTML 타입을 선언한다.
<! DOCTYPE html>을 통해
HTML의 버전을 선언하여 웹 브라우저가 올바르게 표기될 수 있도록 한다.
<title></title>을 통해 웹 페이지에서 표시될 제목 탭에 표시될 내용을 SHT title로 지정하였다.
<body></body> 부분을 통해 웹 페이지에 내용이 표기될 것이다.
<body> 안에 PHP 언어로 데이터베이스를 다뤄서 데이터베이스 안에 있는
데이터 값을 웹 브라우저에 출력한다.
먼저 데이터베이스에 접속하고 이를 표 모양으로 출력하기 위해
-> echo "<table border = '2'>";
HTML 같은 경우에는 <table>을 통해 간단히 사용할 수 있지만
PHP에서는 위와 같이 따옴표로 "<>"; 지정해준다.
-> $con = mysql_connect("localhost", "데이터베이스 ID", "PW", "테이블명");
을 통해 데이터 베이스에 접근하였다.
또한 If 문을 통해서 mysql에 접속에 대한 오류를 표시할 수 있도록 하였다.
연결에 성공하였으면 else문으로 넘어가며
SELECT 문을 통해서 자신의 테이블을 선택해주어야 한다.
-> SELECT * FROM data ORDER BY ID DESC LIMIT 1";
모든 데이터 테이블에서
ID라는 (Primary Key) 기본키에 관하여 내림차순으로 정렬한 가장 첫 번째 요소를 가져온다.
(DESC를 추가한 이유는 아두이노에서 가장 최근에 측정한 센서값을 가져오기 위함이다)
그 후
result 문을 통해
mysqli_query($con, $sql); query문을 요청하게 된다.
값이 제대로 반환된 경우 계속해서 출력하기 위해 while 문을 사용한다.
row라는 변수 안에 mysqli_fetch_array($result)
mysql query를 통해 얻은 레코드를 하나씩 반환하겠다는 뜻이다.
마지막으로
ehco를 통해 테이블을 구성하고 sql 문을 종료한다.
<tr> = table row
<th> = table head
완성된 웹 페이지와 데이터베이스의 모습이다.
가장 최근의 데이터를 잘 가져온 모습이다.
'FE > Web' 카테고리의 다른 글
Web 기초 지식 (0) | 2023.06.30 |
---|---|
챗 GPT로 웹 페이지 만들기 (0) | 2023.06.16 |
Flask 사용해보기 2 (0) | 2023.05.09 |
Flask 사용해보기 (0) | 2023.05.09 |