樹莓派開機自動運行定時訪問DHT22並將溫溼度保存到mysql數據庫

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
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章