전체 글
- 라즈베리파이 USB 인식 /etc/fstab 설정방법 2022.08.18
- <라즈베리파이> 부팅시 자동 실행 2022.07.18
- 라즈베리파이 동영상 재생기로 사용 2022.07.13
- ESP8266 MQTT(윈도우 모스키토 설치 (Windows MQTT mosquitto) 설치 2022.03.26
- A.P.M 설치 PHP 설치 2022.03.25
- A.P.M 설치 mysql 설치 2022.03.25
- A.P.M 설치 아파치 설치 2022.03.25
- ESP8266 아두이노 마리아DB Insert 하기 2022.03.25
라즈베리파이 USB 인식 /etc/fstab 설정방법
<라즈베리파이> 부팅시 자동 실행
라즈베리파이를 이용하여 부팅시 자동으로 특정한 명령이 수행되도록 하는 방법
알려진 여러가지 방법이 있지만, 실제로 실행이 안되는 경우가 많이 있습니다.
제가 해본 여러가지 방법중에 아직까지는... 문제가 없던 방법입니다.
1. sudo nano /etc/profile
root 권한으로 해당 파일을 수정합니다.
'라즈베리파이' 카테고리의 다른 글
라즈베리파이 동영상 재생기로 사용 (0) | 2022.07.13 |
---|
라즈베리파이 동영상 재생기로 사용
라즈베리파이 동영상 재생기로 사용 : 네이버 블로그 (naver.com)
라즈베리파이 동영상 재생기로 사용
회사에서 제품 전시에 필요한 동영상 2개를 만들었다. 하나는 제품 홍보 영상, 하나는 제품 제작기(?). 문...
blog.naver.com
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=jaydee88&logNo=221342998016
'라즈베리파이' 카테고리의 다른 글
<라즈베리파이> 부팅시 자동 실행 (0) | 2022.07.18 |
---|
ESP8266 MQTT(윈도우 모스키토 설치 (Windows MQTT mosquitto) 설치
사양
OS : Windows 10 x64
MQTT
MQTT는 ISO 표준 발행-구독 기반의 메시징 프로토콜이다. TCP/IP 프로토콜 위에서 동작한다. "작은 코드 공간"이 필요하거나 네트워크 대역폭이 제한되는 원격 위치와의 연결을 위해 설계되어 있다. 발행-구독 메시징 패턴은 메시지 브로커가 필요하다.
MQTT 사용을 위해 대표적인 메시지 브로커인 모스키토(Mosquitto) 브로커를 설치 합니다.
모스키토 홈페이지에서 설치 파일을 다운로드
https://mosquitto.org/download/
Download
Source mosquitto-2.0.8.tar.gz (319kB) (GPG signature) Git source code repository (github.com) Older downloads are available at https://mosquitto.org/files/ Binary Installation The binary packages li
mosquitto.org
[ Windows Binary ]
이전 버전들에서는 OpenSSL 등 의존성 프로그램들을 따로 설치해야 했지만 지금은 모스키토 바이너리만 설치하면 작동 한다.
Mosquitto 실행 테스트
모스키토 설치 경로에서 명령 창을 열고 아래 명령을 실행 합니다.
"NAME" 따옴표 안에 이름으로 토픽을 구독(Subscribe)하겠다는 명령어 입니다.
[명령 프롬프트 1]
mosquitto_sub -t "MY_TOPIC"
새로운 명령창을 열어 해당 토픽에 메시지를 발행(Publish) 합니다.
[명령 프롬프트 2]
mosquitto_pub -t "MY_TOPIC" -m HELLO
[명령 프롬프트 1]
C:\Program Files\mosquitto>mosquitto_sub.exe -t MY_TOPIC
HELLO
구독하고 있는 명령창에 HELLO가 표시되면 정상적으로 메시지가 전송된 것으로 보시면 됩니다.
아두이노에서 MQTT 연결 하기전 설정 사항
1) mosquitto.conf 메모장으로 열고 아래와 같이 수정하세요
listener 1883
allow_anonymous true
2) 서비스 -> mosquitto Broker 재시작
* 실행 -> firewall.cpl
* 고급설정
3) 인바운드 : 1883 포트 추가
* cmd 창 관리자모드로 실행후 : mosquitto -c mosquitto.conf -v
브로커 서버 동작유무를 확인해 볼수 있어요.
모스키토 첫 설치 후 서비스 시작 문제
C:\Program Files\mosquitto>mosquitto_sub.exe -t MY_TOPIC
"Error: 대상 컴퓨터에서 연결을 거부했으므로 연결하지 못했습니다."
설치가 완료되면 모스키토가 윈도우 서비스로 등록이 되지만 실행 상태는 아니기 때문에 작업 관리자를 통하여 서비스를 실행 시켜 줘야 한다.
ESP8266 DHT11 MQTT(Mosquitto) 연결테스트
//DHT11 연결포트 : D5
//DHT_HUMIDITY
#include "DHTesp.h"
DHTesp dht;
String packet;
unsigned long lastSend = 0;
#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
#include <PubSubClient.h>
// MQTT 설정
const char* ssid = "SSID"; //WIFI 공유기 이름
const char* password = "PW"; //WIFI 패스워드
const char* mqtt_server = "19.169.0.6"; //내컴퓨터 IP주소 CMD에서 ipconfig로 확인할수 있어요
const char* mqtt_topic = "MY"; //subscribe 할 기본 TOPIC
WiFiClient espClient;
PubSubClient client(espClient);
unsigned long lastMsg = 0;
#define MSG_BUFFER_SIZE (50)
char msg[MSG_BUFFER_SIZE];
int value = 0;
////////////////////////////////////
void setup_wifi() {
delay(10);
// We start by connecting to a WiFi network
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
randomSeed(micros());
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
void callback(char* topic, byte* payload, unsigned int length) {
Serial.print("Message arrived [");
Serial.print(topic);
Serial.print("] ");
String msg = "";
for (int i = 0; i < length; i++) {
msg +=(char)payload[i];
}
Serial.println(msg);
}
void reconnect() {
// Loop until we're reconnected
while (!client.connected()) {
Serial.print("Attempting MQTT connection...");
// Create a random client ID
String clientId = "ESP8266Client-";
clientId += String(random(0xffff), HEX);
// Attempt to connect
if (client.connect(clientId.c_str())) {
Serial.println("connected");
// Once connected, publish an announcement...
client.publish("outTopic", "hello world");
// ... and resubscribe
client.subscribe(mqtt_topic);
} else {
Serial.print("failed, rc=");
Serial.print(client.state());
Serial.println(" try again in 5 seconds");
// Wait 5 seconds before retrying
delay(5000);
}
}
}
void setup() {
dht.setup(D5, DHTesp::DHT22); // D5
//SERIAL BAUDRATE
/*
pinMode(BUILTIN_LED, OUTPUT); // Initialize the BUILTIN_LED pin as an output
#if ESP8266
Serial.begin(115200, SERIAL_8N1, SERIAL_TX_ONLY);
#else // ESP8266
Serial.begin(115200, SERIAL_8N1);
#endif // ESP8266
*/
Serial.begin(115200);
// MQTT SETUP
setup_wifi();
client.setServer(mqtt_server, 1883);
client.setCallback(callback);
}
void Get_th(){
delay(dht.getMinimumSamplingPeriod());
float humidity = dht.getHumidity();
float temperature = dht.getTemperature();
packet = "TEMP: " + String(temperature) + "*C \n" + "HUMIDITY: " + String(humidity) + "%" ;
client.publish("sensor/th", (char*) packet.c_str());
client.publish("sensor/t", (char*) String(temperature).c_str());
client.publish("sensor/h", (char*) String(humidity).c_str());
}
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
if ( millis() - lastSend > 1000 ) { // Update and send only after 1 seconds
Get_th();
lastSend = millis();
}
}
MQTT subscribe 확인 (온도 / 습도값 확인방법)
mosquitto_sub -t "sensor/th" -t "sensor/t" -t "sensor/h"
cmd 에서 위와같이 입력 하세요
온도 / 습도값이 잘들어 오고 있습니다.
끝.
A.P.M 설치 PHP 설치
아두이노 프로젝트를 위한 서버 구성으로 벌써 세 번째 포스팅이네요.. 오늘은 지난 두 포스팅을 이어 서버 구성 도구 A.M.P (Apache, MySQL, PHP)에서 마지막 PHP 설치 방법에 대해 알아보겠습니다.
아두이노(Arduino) 홈 IoT(사물인터넷)을 위한 서버(Sever) 구성
그동안 아두이노와 센서의 기본적인 동작법 및 프로그램 코딩은 어느 정도 익숙해졌을 겁니다. 이제 본격적인 프로젝트를 진행하기 전에 인터넷을 통해 데이터 및 신호를 주고받을 수 있어야 아두이노를 원하는 로..
it-g-house.tistory.com
아두이노(Arduino) 홈 IoT(사물인터넷)을 위한 서버(Sever) 구성 2: MySQL 설치방법
지난 포스팅에서 아두이노 서버 구성에 대해 알아보았고 필요한 도구(Tool)로 A.M.P (Apache, MySQL, PHP) 중 Apache(아파치)를 설치하는 방법에 대해 알아보았습니다. 이어서 MySQL 설치 방법을 알아보겠습니다...
it-g-house.tistory.com
- PHP (Professional HyperText Preprocessor)
PHP는 다운로드 홈페이지 https://windows.php.net/download/ 에서 최신 버전으로 다운받으면 됩니다. 파일 항목에서 'VC15 x86 Thread Safe'가 64bit Apache(아파치)서버 환경에 해당됩니다. 'Non Thread Safe'는 IIS (Internet Information Sevices, 마이크로소프트 제공) 서버 환경에 해당하기 때문에 저는 Apache 서버와 호환을 위해 Thread Safe 파일을 다운로드하였습니다.
PHP (Professional HyperText Preprocessor) 다운로드 페이지
다운로드 완료 후 압축을 C드라이브에 풀어주고 Apache와 연동 및 정상적인 작동을 위해 역시나 메모장을 통해 몇 가지 수정을 해야 합니다. 폴더 안의 'php.ini-production' 파일을 메모장으로 열어줍니다.
PHP 설치 과정에서 'php.ini-production' 파일 수정
2/3 지점쯤에 ;Paths and Directories; 내용 부분에서 ;extension_dir = "./"에서 ';'는 삭제하고 "./"안에 압축파일 푼 경로로 수정하면서 끝에 '/ext'를 붙여서 수정합니다. 저는 C드라이브에 압축을 풀어서 아래와 같이 수정하였습니다. 여기서 주의하실 점은 하위 폴더 구분을 '/'로 하셔야 합니다.
PHP 설치 과정에서 'php.ini-production' 파일 수정
수정 후 파일 이름을 'php.ini'로 다른 이름 저장합니다.
그다음 Apache와 연동을 하기 위해 Apache설치 하위 폴더 conf에서 'httpd.conf' 파일을 수정해야 합니다.
Apache와 연동하기 위해 'httpd.conf' 파일 수정
httpd.conf 내용 중 <IfModule dir_module>에서 DirectoryIndex index.html를 다음과 같이 'index.php'를 삽입하여 수정하여 줍니다. 그리고 맨 마지막에
PHPIniDir "C:/php8"
LoadModule php_module "C:/php8/php8apache2_4.dll"
AddType application/x-httpd-php .html .php
AddHandler application/x-httpd-php .php
라고 추가 입력하고 저장합니다.
Apache와 연동하기 위해 'httpd.conf' 파일 수정
- Apache와 연동 확인하기
그럼 PHP가 Apache와 잘 연동되었는지 확인하기 위해 PHP 정보를 Apache에서 만들어준 웹서버에서 열리는지 확인할 겁니다. 먼저 빈 메모장 또는 텍스트 파일을 열어서 <? phpinfo(); ?>라고 한 줄 입력하고 'phpinfo.php' 파일명 또는 원하는 파일명에 확장자는. php로 저장을 합니다. 여기서 메모장으로 저장할 때 주의하실 점은 파일 형식을 모든 파일로 하지 않으면. txt 파일로 저장되기 때문에 웹브라우저에서 확인하려 해도 파일을 인식 못하는 상황이 발생합니다. 그렇기 때문에 꼭 확장자가 php가 되도록 저장해야 합니다.
PHP, Apache와 연동하기 확인하기 - phpinfo.php 파일 저장방법
저장할 위치는 앞서 Apache를 설치했던 폴더의 하위 폴더인 htdocs에 저장합니다. 저는 경로가 C:\httpd-2.4.41-win64-VS16\Apache24\htdocs에 저장하였습니다. 그리고 웹브라우저에서 'http://localhost/phpinfo.php'라고 입력하면 아래와 같이 PHP 정보를 확인할 수 있습니다.
PHP 정보 확인
여기까지 아두이노(Arduino) 프로젝트를 진행하기 위한 서버 구성 도구인 A.M.P (Apache, MySQL, PHP) 중 마지막인 PHP를 설치하는 방법을 알아보았습니다. Apache와 연동하는 부분이 있기 때문에 아무래도 PHP설치에 앞서 Apache를 설치할 때 설정을 잘해놔야 고생을 안 할 거 같습니다. (저는 꼼꼼하게 안 하고 휙~휙~ 넘어가서 엄청 헤맸네요 ㅠㅠ)
출처: https://it-g-house.tistory.com/entry/아두이노Arduino-홈-IoT사물인터넷을-위한-서버Sever-구성-3-PHP-설치-방법 [IT-G-House]
'ESP8266 > DB 연결' 카테고리의 다른 글
A.P.M 설치 mysql 설치 (0) | 2022.03.25 |
---|---|
A.P.M 설치 아파치 설치 (0) | 2022.03.25 |
ESP8266 아두이노 마리아DB Insert 하기 (0) | 2022.03.25 |
A.P.M 설치 mysql 설치
지난 포스팅에서 아두이노 서버 구성에 대해 알아보았고 필요한 도구(Tool)로 A.M.P (Apache, MySQL, PHP) 중 Apache(아파치)를 설치하는 방법에 대해 알아보았습니다. 이어서 MySQL 설치 방법을 알아보겠습니다. 앞 글은 아래 링크 참조 부탁드립니다 ^^
아두이노(Arduino) 홈 IoT(사물인터넷)을 위한 서버(Sever) 구성
그동안 아두이노와 센서의 기본적인 동작법 및 프로그램 코딩은 어느 정도 익숙해졌을 겁니다. 이제 본격적인 프로젝트를 진행하기 전에 인터넷을 통해 데이터 및 신호를 주고받을 수 있어야 아두이노를 원하는 로..
it-g-house.tistory.com
- MySQL
MySQL은 가장 많이 사용되고 있는 데이터베이스(Database, DB) 시스템으로, 오픈소스로 제공되고 있는 관계형 데이터베이스(RDBMS: Relational Database Management System)입니다. '데이터베이스'는 여러사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합니다. (출처: 위키페디아) 단순 저장과 공유뿐만이아니라 데이터접근성, 보완성, 일관성 및 데이터 공간 효율화 등의 정보를 저장하고 다루는데 특화된 시스템이라고 할 수 있습니다. MySQL은 파이썬, C/C++, 자바, PHP 등 다양한 프로그래밍 언어를 지원하는데 그 중 PHP(Professional HyperText Preprocessor)가 HTML처리에 강점이 있고 많은 데이터베이스를 지원가능하기 때문에 DB서버(Sever)를 구성하는데 도구로 MySQL과 같이 많이 사용되고 있습니다.
- MySQL 설치방법
MySQL 홈페이지 다운로드 페이지 https://dev.mysql.com/downloads/에서 'MySQL Installer for Windows'를 선택합니다. 용량이 더 큰 Windows (x86, 32-bit), MSI Installer로 다운로드 합니다. 그럼 로그인 관련 문구가 나오는데 아래 No thanks, 를 클릭하면 다운로드가 시작됩니다.
MySQL 홈페이지 메인화면
MySQL 다운로드 페이지
MySQL 커뮤니티 다운로드 페이지
MySQL 커뮤니티 다운로드 페이지
다운로드한 install 파일을 실행하면 설치가 진행되는데 MySQL 서버와 관련된 Tool이 설치 가능하게 선택하여 진행합니다. 읽어보시고 각자 목적에 맞게 선택하여 진행하시면 될 듯합니다.
MySQL Installer 실행 화면
MySQL 설치에 필요한 스프트웨어 설치
MySQL 설치 진행 전에 필요한 소프트웨어를 설치하라고 하는데 왠만한건 자동으로 설치 가능한데 manual이라고 표시된 소프트웨어는 직접 찾아 설치해 주어야 합니다. 근데 꼭 설치 안 해서 MySQL 설치 진행에는 큰 무리가 없는 듯합니다. 나중에 실행할 때 어떤 문제가 나올지 몰라 저는 필요한 항목을 직접 찾아 설치한 후에 계속 진행하였습니다. 사용자의 컴퓨터의 상황에 따라 항목이 다를 수 있어 추가적인 설치 방법은 skip 하겠습니다. Next를 누르면 본격적으로 MySQL 프로그램을 다운로드합니다. Execute를 누르고 모두 설치가 완료되면 Next를 누릅니다.
MySQL 설치
Standalone MySQL Sever 선택
MySQL Type and Networking 선택
웬만한 거 그냥 설정되어 있는 데로 Next를 해주면 Password 설정할 수 있습니다. 대소문자, 숫자, 특수문자를 잘 섞어주면 됩니다. 그리고 Next 누르면 SeverName을 설정할 수 있습니다. 전 생각하기 싫어서 'MySQL80' 그대로 갑니다 ㅎㅎ
MySQL Password 설정
MySQL Apply Configuration 설치
이후에 또 왠만한건 그냥 설정된 대로 Next를 해주면 Server connection check를 합니다. User name은 'root'으로 그대로 두고 Password는 아까 설정한 Password를 입력해주시고 'Check'를 클릭하면 위에 상태창에 Connection succeeded라고 메시지가 나옵니다.
MySQL Server connection check
MySQL Product Configuration 완료
마지막으로 Product Configuration 설정이 완료되고 나고 Next를 누르면 마지막 Finish 창을 볼 수 있습니다. 그럼 설치가 완료 됩니다. 수고하셨습니다 ^^
여기까지 서버(Sever) 구성하는데 필요한 도구 A.M.P (Apache, MySQL, PHP) 중 MySQL 설치 방법을 알아보았습니다. 생각보다 하나하나 포스팅이 길어지네요... 다음 포스팅에선 이어서 PHP 설치와 사용방법에 대해 알아보겠습니다.
출처: https://it-g-house.tistory.com/entry/아두이노Arduino-홈-IoT사물인터넷을-위한-서버Sever-구성-2-MySQL-PHP-설치방법 [IT-G-House]
'ESP8266 > DB 연결' 카테고리의 다른 글
A.P.M 설치 PHP 설치 (0) | 2022.03.25 |
---|---|
A.P.M 설치 아파치 설치 (0) | 2022.03.25 |
ESP8266 아두이노 마리아DB Insert 하기 (0) | 2022.03.25 |
A.P.M 설치 아파치 설치
그동안 아두이노와 센서의 기본적인 동작법 및 프로그램 코딩은 어느 정도 익숙해졌을 겁니다. 이제 본격적인 프로젝트를 진행하기 전에 인터넷을 통해 데이터 및 신호를 주고받을 수 있어야 아두이노를 원하는 로직(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
개념 정리가 조금 미흡할 수 있지만 나름 쉽게 이해하려고 한 부분을 전달하려고 노력하였습니다. 고수분들은 혹시 수정사항이나 좀 이상한 부분 있으면 언제든지 첨언 부탁드리며, 좋은 의견 댓글로 부탁드립니다.
출처: https://it-g-house.tistory.com/entry/아두이노Arduino-홈-IoT사물인터넷을-위한-서버Sever-구성 [IT-G-House]
'ESP8266 > DB 연결' 카테고리의 다른 글
A.P.M 설치 PHP 설치 (0) | 2022.03.25 |
---|---|
A.P.M 설치 mysql 설치 (0) | 2022.03.25 |
ESP8266 아두이노 마리아DB Insert 하기 (0) | 2022.03.25 |
ESP8266 아두이노 마리아DB Insert 하기
아두이노 호환 보드의 MariaDB 사용 방법입니다.
마리아DB가 MySQL과 매우 유사하다보니 같은 Connector를 사용하더라도 접근 가능합니다.
초기 설정해야할 부분이 존재합니다.
Arduino ide의 메뉴 > Sketch >Include Library > Manage Libraries 를 클릭해주세요.

저는 이미 설치해서 Install 버튼이 보이지 않지만, 초기 설정시에 mysql을 검색하게되면 install 버튼이 보이니 클릭해주세요.
이제 코드를 보겠습니다.
/*
MySQL Connector/Arduino Example : connect by wifi
This example demonstrates how to connect to a MySQL server from an
Arduino using an Arduino-compatible Wifi shield. Note that "compatible"
means it must conform to the Ethernet class library or be a derivative
thereof. See the documentation located in the /docs folder for more
details.
INSTRUCTIONS FOR USE
1) Change the address of the server to the IP address of the MySQL server
2) Change the user and password to a valid MySQL user and password
3) Change the SSID and pass to match your WiFi network
4) Connect a USB cable to your Arduino
5) Select the correct board and port
6) Compile and upload the sketch to your Arduino
7) Once uploaded, open Serial Monitor (use 115200 speed) and observe
If you do not see messages indicating you have a connection, refer to the
manual for troubleshooting tips. The most common issues are the server is
not accessible from the network or the user name and password is incorrect.
Note: The MAC address can be anything so long as it is unique on your network.
Created by: Dr. Charles A. Bell
*/
#include <ESP8266WiFi.h> // Use this for WiFi instead of Ethernet.h
#include <MySQL_Connection.h>
#include <MySQL_Cursor.h>
byte mac_addr[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress server_addr(172,30,1,30); // IP of the MySQL *server* here
char user[] = "tester"; // MySQL user login username
char password[] = "1111"; // MySQL user login password
// WiFi card example
char ssid[] = "HOLLYSCOFFEE 2.4G"; // your SSID
char pass[] = "hollys2000"; // your SSID Password
char INSERT_SQL[] = "INSERT INTO arduino.info (number, tick) VALUES ('123','hello')";
WiFiClient client; // Use this for WiFi instead of EthernetClient
MySQL_Connection conn((Client *)&client);
void setup() {
Serial.begin(9600);
while (!Serial); // wait for serial port to connect. Needed for Leonardo only
// Begin WiFi section
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, pass);
while( WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
// print out info about the connection:
Serial.println("Connected to network");
Serial.print("My IP address is: ");
Serial.println(WiFi.localIP());
// End WiFi section
Serial.println("Connecting...");
if (conn.connect(server_addr, 3306, user, password)) {
delay(1000);
MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn);
cur_mem->execute(INSERT_SQL);
delete cur_mem;
}
else
Serial.println("Connection failed.");
conn.close();
}
void loop() {
}
변수만 변경해주면 바로 사용할 수 있습니다.
server_addr = 서버의 IP 주소
user[] = DB 계정 ID
password = DB 계정 Password
ssid = 와이파이 이름
pass = 와이파이 비밀번호
IINSERT_SQL = 보내고자하는 SQL문
conn.connect 의 매개변수는 (서버주소, 포트번호, 계정ID, 계정 비밀번호) 순서로 구성되어있습니다.
'ESP8266 > DB 연결' 카테고리의 다른 글
A.P.M 설치 PHP 설치 (0) | 2022.03.25 |
---|---|
A.P.M 설치 mysql 설치 (0) | 2022.03.25 |
A.P.M 설치 아파치 설치 (0) | 2022.03.25 |