[아두이노] 온도측정 센서 만들기(2) - DHT11 (온도저장하기)
앞에서 측정한 온도 정보를 이용해서, DB에 저장을 해보려 한다.
1. DB 설치하기
데이터베이스는 mariaDB를 사용했다.
Download MariaDB Server - MariaDB.org
REST API Release Schedule Reporting Bugs … Continue reading "Download MariaDB Server"
mariadb.org
MSI 패키지를 다운로드 받아 설치해주면 된다.
아래와 같이 설정을 해주고 설치를 완료했다.
기본포트 : 3306
ID : root
PASS : admin
2. heidiSQL 설치하기
DB접속을 위해 heidiSQL를 이용한다.
https://www.heidisql.com/download.php
Download HeidiSQL
Ads were blocked - no problem. But keep in mind that developing HeidiSQL, user support and hosting takes time and money. You may want to send a donation instead. Download HeidiSQL 12.3, released on 05 Dec 2022 Please disable your adblocker and reload the p
www.heidisql.com
heidiSQL을 실행 후 로컬 접속을 해본다.
3. 데이터베이스 및 테이블을 생성합니다.
데이터베이스 생성
테이블 생성
테이블 명 : TEMP_TABLE
온도,습도 컬럼 생성
아래와 같이 조회해보니, 빈 테이블이 정상 생성되었다.
4. 아두이노에서 DB INSERT 해보기
온도, 습도 저장을 위해 아두이노에서 DB를 처리해준다.
MYSQL을 사용하기 위해서는 라이브러리 설치도 필요하다.
#include "DHT.h"
#include "Ethernet.h"
#include "MySQL_Connection.h"
#include "MySQL_Cursor.h"
#define DHTTYPE DHT11
#define DHTPIN 4
DHT dht(DHTPIN , DHTTYPE);
float temp;
float humid;
byte mac_addr[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
IPAddress server_addr(127,0,0,1);
char user[] = "root";
char password[] = "admin";
char INSERT_SQL[] = "";
EthernetClient client;
MySQL_Connection conn((Client *)&client);
void setup() {
Serial.begin(115200);
while(!Serial);
dht.begin();
Ethernet.begin(mac_addr);
Serial.println("Connecting...");
if(conn.connect(server_addr, 3306, user, password)){
delay(3000);
}else{
Serial.println("Connection failed.");
}
}
void loop() {
temp = dht.readTemperature();
humid = dht.readHumidity();
Serial.print("temp="); Serial.print(temp);
Serial.print(",humid="); Serial.println(humid);
MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn);
sprintf(INSERT_SQL,"INSERT INTO db_temp.TEMP_TABLE(ID,TEMP,HUMID) VALUES ('TEST01',%f,%f)",temp,humid);
cur_mem->execute(INSERT_SQL);
delay(3000);
}
결과는 실패......
몇 시간을 헤맨결과,, 이더넷 통신을 하려면 이더넷 쉴드를 통해 연결을 해서 접속을 해야 된다.
원래 WIFI 연결이 목적이었으므로, ESP8266을 이용해서 로컬 DB에 저장하는 걸 다시 해봐야겠다.