방명록
- [아두이노] 온도측정 센서 만들기(2) - DHT11 (온도저장하기)2023년 02월 14일 18시 12분 31초에 업로드 된 글입니다.작성자: 봉주니
앞에서 측정한 온도 정보를 이용해서, DB에 저장을 해보려 한다.
1. DB 설치하기
데이터베이스는 mariaDB를 사용했다.
MSI 패키지를 다운로드 받아 설치해주면 된다.
아래와 같이 설정을 해주고 설치를 완료했다.
기본포트 : 3306
ID : root
PASS : admin
2. heidiSQL 설치하기
DB접속을 위해 heidiSQL를 이용한다.
https://www.heidisql.com/download.php
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에 저장하는 걸 다시 해봐야겠다.
반응형'아두이노' 카테고리의 다른 글
[아두이노] 온도측정 센서 만들기(4) - AWS DB 생성1 (0) 2023.02.17 [아두이노] 온도측정 센서 만들기(3) - ESP8266(WIFI) (0) 2023.02.16 [아두이노] 온도측정 센서 만들기(1) - 온도 측정하기 (0) 2023.02.12 다음글이 없습니다.이전글이 없습니다.댓글