반응형

 

 

 

그동안 아두이노와 센서의 기본적인 동작법 및 프로그램 코딩은 어느 정도 익숙해졌을 겁니다. 이제 본격적인 프로젝트를 진행하기 전에 인터넷을 통해 데이터 및 신호를 주고받을 수 있어야 아두이노를 원하는 로직(Logic)에 맞게 동작시킬 수 있습니다. 우선 각 종 센서가 측정하는 데이터나 신호를 서버(Sever)로 송신하는 방법을 알아본 뒤 데이터를 분석하고, 적절한 명령신호를 다시 아두이노나 외부기기에 전달하는 방법을 알아보겠습니다.

 


  • 아두이노와 컴퓨터를 직접 연결하는 방법

앞서 USB 케이블을 통한 시리얼 통신(Serial communication)으로 PC에 바로 데이터를 전송하고 저장하는 방법을 알아보았습니다.  

 

아두이노(Arduino) 홈 IoT 입문 - 온습도 센서 데이터 출력/저장 방법

아두이노(Arduino)를 사용하여 온습도 센서(Temperature and Humidity sensor)를 작동하고 센싱한 값을 출력하는 것은 아두이노의 기본적인 사용법을 습득하는데 많은 도움이 됩니다. 저도 온습도 센서로 연습하면..

it-g-house.tistory.com

DHT11 온습도 센서(Temperature and Humidity sensor)로 측정된 온도와 습도 데이터를 PC로 시리얼 통신을 통해 송신하고, 컴퓨터에서 데이터를 받는데 'CoolTerm'이나 'PLX-DAQ' 프로그램을 사용하였습니다. 받은 데이터를 *. txt 파일로 저장하거나 엑셀로 연동하여 실시간 그래프를 그리거나 데이터 분석을 할 수 있었습니다.

 

아두이노(Arduino) 시리얼 통신(Serial communication)으로 PC에 데이터를 저장하는 구성

 

  • 인터넷을 이용한 데이터 송수신 방법

인터넷을 사용하여 웹을 통해 데이터를 송수신하려면 웹서버(Web sever)가 필요합니다. 파이썬(Phython)이나 C언어같은 프로그램 언어로 직접 서버를 만들 수 있으나 프로그램 언어가 능숙하지 않고 서버의 개념이 숙지되지 않은 경우 서버를 구성하는 일은 어렵습니다. 그렇다고 돈을 들여 프로그래머를 고용해서 서버를 만들정도로 고퀄이 필요한 것도 아니죠... 그래서 이렇게 직접 서버를 구성하기 힘든 개인이나 업체들을 위해 많은 기업들이 오픈소스 웹서버 프로그램을 제공하고 있습니다. 정말 고마운 일이죠~ 뮤뮤

 

아두이노(Arduino)로 인터넷(Internet)을 이용한 데이터를 송수신하기 위한 서버(Sever)구성

 

가장 많이 알려진 웹서버 프로그램은 Apache(아파치)입니다. 내컴퓨터에 웹서버를 구축하는 방법으로 Apache, MySQL, PHP 앞글자를 따서 A.M.P라고 많이 들어보셨을 겁니다. 여기서 Apache로 웹서버를 만들고 데이터를 수신할 수 있습니다. 그럼 받은 데이터를 어딘가 쌓아놓고 필요할 때 출력하거나 가공할 수 있어야 하는데.. 그 역할을 하는 게 데이터베이스 서버(DataBase server), DB서버라고 합니다. 역시나 많이 알려진 데이터베이스 프로그램이 MySQL입니다. DB는 크게 RDB, NoSQL 두 종류로 나뉘는데, RDB는 다시 RDBMS (Relational Database Management System: 관계형 데이터베이스)와 ORDBMS (Object-Relational Database Management System: 객체지향 데이터베이스)로 구분됩니다. RDB가 아닌 데이터 베이스가 NoSQL인데 RDB와는 달리 데이터 간 관계를 정의하지 않고 대용량의 데이터를 다루는데 유용해서 최근 빅데이터를 다루는데 적합하다고 합니다. (요즘 핫한 MongoDB가 NoSQL입니다.) 데이터베이스에 관해서는 추후 자세히 공부해 보도록 하겠습니다. 그리고 프로그램 언어 PHP (Professional HyperText Preprocessor)는 서버에서 해석되는 HTML에 내장되어 동작하는 스크립트 언어로 PHP 소프트웨어를 통해 코딩을 할 수 있습니다.

 

 

 


그럼 각각 프로그램을 설치하는 방법을 알아보겠습니다.

 

  • Apache(아파치) 설치방법

Apache는 홈페이지에서 다운로드할 수 있는데 메인 홈페이지가 아닌 https://www.apachelounge.com/download/에서 다운로드할 수 있습니다. 아래 공식 홈페이지에 들어가면 다운로드 받을 수 있는 파일들이 있긴 하지만 저는 쉽게 사용할 수 없는 파일 형태라서 apachelounge.com에서 다운로드하는 걸 추천드립니다.

 

Apache(아파치) 공식 홈페이지 메인 화면
Apache(아파치) 다운로드 페이지

Apache 2.4.41 Win 64 버전으로 다운로드하여서 C드라이버에 압축을 풀고 Apache24\conf 폴더 안에 'httpd.conf' 파일을 메모장으로 열어줍니다. Apache를 정상적으로 운영하기 위해 'httpd.conf' 파일을 SeverRoot, SeverName 등을 수정하는 과정이 필요합니다. (꼭 메모장이 아니더라도 수정할 수 있으면 됩니다.)

Apache(아파치) SeverRoot 설치폴더 확인

메모장에서 조금 아래 ServerRoot 부분에서 파일 압축을 푼 폴더가 "c:/Apache24"와 같은지를 확인합니다. 만약 다른 곳에 압축을 푸셨으면 폴더 경로를 수정해주시면 됩니다. 저도 아래와 같이 수정하였습니다. 여기서 주의할 점은 하위 폴더 표시를 '/'로 사용해야 합니다.

 

꽤나 더 아랫부분에 SeverName에 관한 내용이 있습니다. 여기서 '#SeverName www.example.com:80'을 '#'은 지우고 'ServerName loacalhost:80'로 수정합니다. (또는 'ServerName 127.0.0.1:80'이라고 바꿔줘도 됩니다.)

 

Apache(아파치) ServerName 변경

 

그리고 명령 프롬프트를 열어서 Apache24 폴더로 찾아가서 bin폴더에서 'httpd.exe -k install'이라고 명령어를 치면 Apache가 설치됩니다.

 

일단 설치가 진행되고 나면 윈도우 '서비스' 창에서 아래와 같이 Apache2.4가 설치된 것을 확인할 수 있습니다. 아직은 실행상태는 아닌데 다시 명령 프롬프트에서 'httpd.exe -k start'라고 입력해주시면 아래와 같이 '실행 중'이라고 표시되고 Apache가 실행된 상태입니다. (윈도우 검색창에서 '서비스'라고 입력하면 서비스 창을 실행할 수 있습니다.)

 

 

 

 

Apache를 멈추고 싶으면 'httpd.exe -k stop'을 입력하면 됩니다. 저는 명령 프롬프트가 아무래도 익숙하지 않아서 또 다른 방법을 사용하고 있습니다. 'bin'폴더 안에 'ApacheMonitor'를 실행하면 윈도우 실행창에 ApacheMonitor 아이콘이 생깁니다. 

 

ApacheMonitor
ApacheMonitor 실행
ApacheMonitor 실행

여기서 간단하게 Apache를 실행하고 정지할 수 있습니다. 아.. 진작에 이렇게 할걸...;; 죄송합니다... 그럼 Apache가 정상적으로 작동하는지 확인하기 위해 Apache를 Start 하고 웹브라우저에서 http://loacalhost라고 주소를 입력하면 아래와 같이 "It works!"라고 메시지가 나오면 정상적으로 작동하고 있는 겁니다. 와우~!! 혹시 앞에서 ServerName을 127.0.0.1:80라고 수정했으면 http://127.0.0.1라고 입력하면 됩니다.

 

Apache 정상 작동시 (http://localhost)
Apache 정상 작동시 (http://127.0.0.1)


여기까지 아두이노(Arduino)의 데이터를 웹서버를 통해 송수신하기 위한 서버(Server)의 구성과 함께 A.M.P (Apache, MySQL, PHP) 중 Apache를 실행하는 방법을 알아보았습니다. 이어서 MySQL 설치방법은 다음 포스팅으로 이어가겠습니다. 아래 링크 따라가시면 되요~ ^^

 

 

아두이노(Arduino) 홈 IoT(사물인터넷)을 위한 서버(Sever) 구성 2: MySQL 설치방법

지난 포스팅에서 아두이노 서버 구성에 대해 알아보았고 필요한 도구(Tool)로 A.M.P (Apache, MySQL, PHP) 중 Apache(아파치)를 설치하는 방법에 대해 알아보았습니다. 이어서 MySQL 설치 방법을 알아보겠습니다...

it-g-house.tistory.com

개념 정리가 조금 미흡할 수 있지만 나름 쉽게 이해하려고 한 부분을 전달하려고 노력하였습니다. 고수분들은 혹시 수정사항이나 좀 이상한 부분 있으면 언제든지 첨언 부탁드리며, 좋은 의견 댓글로 부탁드립니다.

 

 

 

반응형

+ Recent posts