아두이노 라즈베리파이 mysql phpmyadmin android 프로젝트 3



    아두이노를 이용한 층간소음 해소3 (진행중)  아두이노 -> 라즈베리파이 -> mysql -> phpmyadmin -> json -> android

    1. 아두이노에서 소리값(데시벨), 진동값(뛰어다닐 때)을 측정

    2. VMWARE를 통해 서버(RASPBERRY PI)로 데이터를 보낸다.

    3. 서버(RASPBERRY PI) 와 MY_SQL과 연결한다.

    4. MY_SQL을 통해 DB를 생성하고 저장한다.

     

     

    여기까지는 지난번 글 서버와 클라이언트 통신에서 했었다.

    두번째라 그런지 생각보다 쉽게 느껴진다.

    처음할땐 완전 헤맸었는데...

     

     

    5.MYSQL과 PHP (phpmyadmin)를 연동을해봤는데 해야할게 생각보다 많았던거 같은데 막상 하고나니까 별거 없는거같다.

     

     

     

     

     

    먼저 라즈베리파이 (서버) 에서 작업을 했다. (MYSQL이 라즈베리 파이에 있기때문)

    1. 아파치와PHP를 설치를 했다.

    (1) SUDO APT UPDATE              (먼저 기존에 설치되어 있던 패키지를 업그레이드 해준다.)

    (2) SUDO APT UPGRADE                      (두개 동시에 하는법 - SUDO APT UPDATE &&SUDO APT UPGRADE)

    (3) sudo apt install apache2            (아파치 웹서버 패키지를 설치한다.

    - 웹서버란 웹브라우저 같은 클라이언트의 요청을 받아서 웹문서나 이미지 등을 전송해주는 역할을 한다.

    - 아파치가 정상적으로 설치가 되었는지 확인법

    192.168.43.142 이부분에 본인이 사용하고 있는 기기?의 본인 ip를 적어보면 된다. 

    ex) 라즈베리 파이에서 설치를 하였으면 라즈베리 파이의 주소를 적어주면된다.

     

    (4) 아파치의 설치가 끝났고 php를 설치할 차례

        sudo apt install php php-mysql

    (6) 설치 후 정상적으로 설치가 되었는지 확인을 한다. 

       sudo nano /var/www/html/info.php

    <?php phpinfo(); ?>

    이렇게 수정을 해준다.  ctrl +x    +   y   +  enter

    (7)php가 정상적으로 되는지 확인을 해본다.

    - (3)번에서 했듯이 ip를 적어주고 뒷부분에 /info.php              ex) 123.123.123.123/info.php

     

    (8)이제 마지막으로 phpadmin을 설치한다.

    sudo apt install phpmyadmin 

    apache2 선택

    phpmyadmin을 dbconfig - common으로 설정을 하겠냐고 물으면 yes 선택

    이제 데이터 베이스 관리자의 계정의 암호를 입력하라고 하는데 나는 이부분에서 문제가 생겼었따.

    MYSQL비밀번호를 적으면 되는데 이때 MYSQL의 비밀번호가 없었기에 비밀번호를 추가 해줬다.

    근데 에러가 또뜬다.

    문제가 뭐지 하다 보니까 프로그램을 재부팅하니까 됬다. (비밀번호 추가한게 적용이 안된 것 같다.)

    이후에 yes만 누르면 된다.

     

    설치를 마무리 하고나서 /etc/apache2/apache2.conf 여기에 데이터를 삽입한다.

    가장 마지막 부분에

     # Include the phpMyAdmin configuration

    Include /etc/phpmyadmin/apache.conf 

    을 추가한다.

     

    이후 아파치를 재시작

    sudo service apache2 restart

     

    휴 모든 설치가 끝났다.

     

    마지막으로 xampp라는 프로그램을 설치하고 실행 시켜서

    아파치와 mysql을 실행시키고 C:\xampp\htdocs 이부분에 PHP_connection.php라는 파일을 생성한다.

     

     

    이후에 아래 내용을 삽입한다.

    3번째 줄에 localhost라고 되있는데 만약에 아파치 php 등 설치를 컴퓨터가 아닌 라즈베리파이나 다른것으로 했을때는 

    그 기기의 ip를 입력해줘야한다.

    localhost, root, " ", yoohyeok       <- 순서대로 설명 하자면 root(아이디), " "(비밀번호), yoohyeok( DB명)

    14번째 줄 HumanInfo부분 테이블명

    24번째 줄을 설명하자면  DB의 구조가

            id              name            address

           id 1            name1           address1

           id 2            name2           address2

           점                  점                 점

           점                  점                 점

           점                  점                 점

     

    이런식으 구조다.

     

    다른부분은 수정할 필요가 없다.

     

    이렇게 모든과정을 하고나면 이제 mysql의 데이터가 php로오는지 확인만 하면된다.

    localhost (ip주소) /PHP_connection.php      <- 위 빨간 부분을 보면 이해가 된다.

     

    이런식으로 json 형식의 데이터가 오게된다.

     

    이제 이부분을 안드로이드에서 파싱만 하면 된다. 

     

    지난번에 날씨어플 만들때 xml형식으로 파싱을 해봤었는데 비슷한 것 같다.

     

     

     

    ---------------------------------------------------------------------------------------------------------

    05..17

    라즈베리 파이 안에 php파일을 만든 후

    위에 데이터 삽입하게되면  

     

    오른쪽 위와 같이 나오게 된다.

     

    값이 계속 해서 누적 되게 되는데 이렇게 되면 앱이 죽어버린다.....

    값을 받아올때마다 변경되게 바꾸자..

     

    간단하다.

    위 그림에서 $res부분을 보면 select*from noisy 이 부분이 noisy부분 전체를 출력하게 되는데

    이부분을 수정하게되면 될 것 같다.

     

    ------------------------------------

    위 부분 수정

    데이터가 엄청 많이 쌓이는 것을 수정 하였다.

    요롷게 마지막 데이터만 나타 나게끔 수정을 하였다.

    먼저 

    이 부분에서 보면 id라는 부분이 있는데 1부터 데이터가 쌓일때마다 숫자가 증가하게 되어있다.

     

    AUTO_INCREMENT는 새로운 열에 대해서 유니크한 (unique) 값을 생성할 때 사용한다:CREATE TABLE animals (     id MEDIUMINT NOT NULL AUTO_INCREMENT,     name CHAR(30) NOT NULL,     PRIMARY KEY (id) );

    http://www.mysqlkorea.com/sub.html?mcode=manual&scode=01&m_no=20181&cat1=3&cat2=94&cat3=111&lang=k 참고사이트

     

     

     

    이렇게 숫자가 자동으로 증가하게 만든다음에 

    DATA.php파일에 데이터를 이렇게 수정 하였다.

    데이터 테이블에 id속성의 최댓값을 선택한다라고 되어있다.

    밑에 no부분을 제거해야겠다.

     

    고로 가장 마지막의 데이터가 없데이트 되게 된다.

     

    아두이노 -> VMWARE (클라이언트) ->라즈베리파이 (서버)  ->  서버와 MYSQL 연결 -> MYSQL과 phpmyadmin 연결 

    ->phpmyadmin에서 json파일으로 encode   여기까지 하였다. 05.17  15.28

    ---------------------------

    안드로이드에서 json으로 파싱만 하면 끝나겠다.

    추가적으로 XAMPP파일의 역할은 라즈베리파이의 데이터를 c폴더와 연동? 함으로써 

    http://localhost/PHP_connection.php   이렇게 라즈베리 파이가 아닌 c로 들어가서도 볼수 있게 한다.

    https://alisyabob.tistory.com/54

     

    아두이노 라즈베리파이 mysql phpmyadmin android 프로젝트 4

    아두이노를 이용한 층간소음 해소4 (진행중)  아두이노 -> 라즈베리파이 -> mysql -> phpmyadmin -> json -> android 왼쪽 위부터 -> 123 아래쪽왼쪽부터 456 아두이노 -> VMWARE (클라이언트) -..

    alisyabob.tistory.com

    댓글

    Designed by JB FACTORY