import datetime
import os
import Adafruit_DHT
import time
import pymysql
from apscheduler.schedulers.blocking import BlockingScheduler
def timedTask():
sensor=Adafruit_DHT.DHT22
pin=21
humidity,temperature=Adafruit_DHT.read_retry(sensor,pin)
print("temperature:",temperature)
print("humidity:",humidity)
db = pymysql.connect("192.168.31.12","wang","123456","wendu" )
# 使用 cursor() 方法創建一個遊標對象 cursor
cursor = db.cursor()
s_time=time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
s_didan="臥室"
wendu=temperature
shidu=humidity
# SQL 插入語句
sql = "INSERT INTO wendubiao VALUES ('{時間}', '{地點}', {溫度}, \
{溼度})".format(時間=s_time,地點=s_didan,溫度=wendu,溼度=shidu)
try:
# 執行sql語句
cursor.execute(sql)
# 提交到數據庫執行
db.commit()
print(s_time)
except:
# 如果發生錯誤則回滾
db.rollback()
# 關閉數據庫連接
db.close()
if __name__ == '__main__':
scheduler=BlockingScheduler()
scheduler.add_job(timedTask,'interval',seconds=5)
#scheduler.start()
print('Press Ctrl+{0} to exit'.format('Break' if os.name == 'nt' else 'C '))
try:
scheduler.start()
except (KeyboardInterrupt, SystemExit):
pass
開機自動運行設置:
sudo nano /home/pi/.config/autostart/run.desktop
如果沒有autostart和run.desktop就創建
run.desktop內容如下:
[Desktop Entry]
Type=Application
Exec=python3 /home/pi/wendusql.py