환경은 라즈베리파이를 putty로 연결해서 사용했다
먼저, mariadb를 설치하기
mysql에 root 사용자로 접속하기
-p라고 하면 비밀번호를 쳐서 들어가게 되는데 안 되거나 모르겠다면 sudo mysql -u root 라고 명령어를 쳐서 들어가보기
그리고 데이터베이스 테이블을 생성한다
utf8은 한글을 쓰기 위함이라나,,,?
그리고 사용자를 create해서 그 사용자로 접속할 수 있도록 한다
여기서는 raspi_user라는 사용자를 만들었고 비밀번호는 password라고 지정했다
그리고 root 사용자에서 raspi_user로 바꾸기
ctrl+c를 눌러서 mariadb를 종료한 후에 다시 들어갔다
비밀번호는 위에서 지정한 password
아까 만들어둔 db를 사용
테이블을 생성한 뒤 show tables로 잘 만들어졌나 볼 수 있다
ctrl+c로 mariadb에서 빠져나온 뒤 파일을 수정한다
꼭 sudo nano로 파일을 수정해주어야 한다!
/etc/mysql/mariadb.conf.d 디렉토리의 50-server.cnf 파일의 bind-address = 127.0.0.1로 되어있는 문장을 주석처리(#)한다
그리고 mariadb 재가동 해주기
명령어는 sudo service mysql restart
파이썬에서 db 접속하기
대충 sudo pip3 install pymysql 해서 파이썬 설치하기
대충 warning이 나와도 당황하지 않고 하란대로 하기
파이썬 코드
nano 파일이름.py 라고 저장하면 된다
# sensor data insert to RDS
import RPi.GPIO as GPIO
import sys
import time
import Adafruit_DHT as dht
import pymysql
sensor = dht.DHT22 #센서
#연결자 = pymysql.connect(연결옵션)
conn=pymysql.connect(host="localhost",
user="user",
passwd="123456",
db="rds")
#host=서버주소, user=사용자, passwd=서버암호, db=데이터베이스, 스키마 이름, charset=문자세트(utf8)
pin = 4 #온습도센서 GPIO 핀번호
try:
with conn.cursor() as cur : #커서객체 생성, 커서 객체에 DB작업을 위한 함수들이 포함되어 있기 때문에 생성
sql="insert into test_data(sensor, nowdate, temp, humi) values(%s, %s, %s, %s)"
#각 자리에 문자열 하나씩
while True:
humidity, temperature = dht.read_retry(sensor, pin)
if humidity is not None and temperature is not None:
print('Temp=%0.1f*c Humidity=%0.1f'%(temperature, humidity))
cur.execute(sql,
('DHT22',time.strftime("%Y-%m-%d %H:%M",time.localtime()), temperature, humidity))
#cur.execute('sql실행문')
#time.strftime('포맷',시간객체):날짜/시간 객체를 문자열로
#time.localtime()=time에서 반환한 값을 날짜와 시간 형태로 변환
conn.commit() #입력한 데이터 저장
else:
print("Failed to get reading.")
time.sleep(10)
except KeyboardInterrupt :
exit()
finally:
conn.close() #연결 종료
sudo python3 파일이름.py
위의 명령으로 실행시킬 수 있다!
이런 식으로 온도와 습도를 알 수 있다!
'AWS > PROJECT' 카테고리의 다른 글
윈도우에 AWS CLI 설치하기 (0) | 2022.08.09 |
---|---|
AWS S3에 파일 업로드 해서 웹페이지 만들기 (0) | 2022.08.03 |
[AWS Greengrass] AWS IoT Greengrass 라즈베리파이 배포 오류 (0) | 2022.05.09 |
AWS Greengrass Lamdba (0) | 2022.04.15 |
라즈베리파이에 greengrass 설치 (0) | 2022.03.09 |