Arduino IDE 환경에서 구현하며, 이전포스팅의 보드설정, 와이파이 설정이 이미 되어있는 상황에서 진행되어 집니다.
기존 아두이노보드에서 쿼리를 넘기는 방식은 php서버를 쓰는경우가 많던데 웹서버가 이미 있다면 편하겠지만,
한단계를 더 거치기 때문에 오히려 복잡하다고 생각했고, 웹서버를 구축해야한다는 귀찮음 또한 존재했다.
그래서 구글링을 통해 찾던중
github.com/ChuckBell/MySQL_Connector_Arduino
척 벨 이라는 분의 라이브러리를 찾을 수 있었다.
Mysql_connector_arduino라는 라이브러리인데 이는 아두이노 라이브러리 관리에서도 찾을수 있었다.
물론 이분의 깃헙을 들어가면 사용예제가 아주 자세하게 나와있지만, 여기서샘플 코드를 통해 소개하고자 한다.
//mysql 연결관련 헤더
#include <MySQL_Connection.h>
#include <MySQL_Cursor.h>
#include <ESP8266WiFi.h> //와이파이
#include <stdio.h>
//wifi 정보
const char* ssid = "SK_";
const char* password = "***********";
//sql 연결셋팅부
IPAddress server_addr(192, 168, 100, 19); // I여기에 IP를 넣어주세요
//char hostname[] = "#######################"; // 도메인 주소가 있다면 넣어주세요 !! 둘중 하나만 사용해야합니다!
char user[] = "###"; //계정정보 ID입니다
char password_[] = "###"; // DB password입니다
WiFiClient client;
MySQL_Connection conn(&client);
MySQL_Cursor* cursor;
char INSERT_SQL[] = "INSERT INTO test_arduino.hello_arduino (message) VALUES ('Hello, Arduino!')"; //실제 넣어줄 쿼리문입니다
void setup() {
Serial.begin(115200); //전송속도
Wifi_connect(); //와이파이 연결
setupDateTime();//시간설정
Serial.print("Connecting to SQL... ");
if (conn.connect(server_addr, 3306, user, password_)) {
Serial.println("OK.");
}
else {
Serial.println("FAILED.");
}
// create MySQL cursor object
cursor = new MySQL_Cursor(&conn);
}
void loop() {
if (WiFi.status() != WL_CONNECTED) { //와이파이 연결이 이상할시에 재접속 하는 코드
Serial.println("try reconnect");
Wifi_connect();
}
sprintf(INSERT_SQL, "INSERT INTO test.test VALUES (NOW(),%d,%d)", 22, 23); //쿼리문 온습도
if (conn.connected()) {
cursor->execute(INSERT_SQL); //실제 excute되는 시점
}
delay(300000);
}
void Wifi_connect() {
Serial.println("---------------------------------------");
Serial.println(ssid);
WiFi.begin(ssid, password); // 와이파이 이름과 비밀번호를 통해 WIFI연결을 시작 // WL_CONNECTED라는 값을 돌려준다
while (WiFi.status() != WL_CONNECTED) {
// 네트워크의 연결 상태, 8개의 리턴값
// STATUS와 WL_CONNECTED 값이 같은지를 통해 제대로 연결이 되있는지를 확인할 수 있다
delay(500);
Serial.print(".");
}
Serial.println();
Serial.println("Wifi connected!");
Serial.println("\nConnected to network");
Serial.print("My IP address is: ");
Serial.println(WiFi.localIP());
}
해당코드는 5분'마다 쿼리를 넘겨주는 코드입니다.
사용에 앞서 자신의 계정정보, 와이파이 정보들을 입력하신 후에 사용하세요
'NODEMCU' 카테고리의 다른 글
NODEMCU 와이파이 연결 및 인터넷 시간받아오기 (0) | 2021.01.24 |
---|---|
NodeMCU 1.0 아두이노IDE 연결 (0) | 2021.01.16 |