精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>LED燈具自動化

LED燈具自動化

2022-12-05 | zip | 0.07 MB | 次下載 | 免費

資料介紹

描述

介紹:

在這個項目中,我嘗試在房間燈熄滅時打開 LED。我使用 Python 控制 LED 并從螺栓云中檢索數據。機器學習技術,z 分數分析,已用于計算數據的上限和下限。如果傳感器值超出范圍,則會向我的郵箱發送一封電子郵件,并根據情況打開或關閉 LED。

Z 分數分析:

在 z 分數分析中,上限和下限會隨著數據不斷變化,因此即使異常值低于先前記錄的值,也可以檢測到異常。它具有三個因素:

?

poYBAGN6xyiAHzcvAAAiM086aww357.png
?

Mn = r 值的平均值

Zn=z分數

Tn=閾值

硬件連接

?
?
?
pYYBAGOIMkSAZD0sAAobs_nge1E169.jpg
?
1 / 3 ?面包板連接
?

?

面包板分為兩半,一半中的所有點都相互連接,兩條不同的線或不同的一半上的兩個點彼此不連接。在面包板上,LDR 與 10k電阻串聯。LDR和電阻之間的公共支路通過黃色線連接到螺栓的“A0”引腳。LDR的另一支路連接到 3v3通過綠線引腳。電阻器通過藍線連接到 LED 電阻器和 LED 之間的公共線點連接到螺栓的接地引腳。另一條腿(較長的腿)連接到“0”GPIO螺栓銷。

軟件:

?

該軟件分為兩個python程序文件。

1)email_conf.-它包含我的 mailgun 帳戶的詳細信息、我的螺栓設備名稱、api 密鑰和乘數以及用于 z 分數分析的幀大小。

API_KEY="XXXXX"
DEVICE_ID="BOLTXXXX"
MAILGUN_API_KEY="XXXXX'
SANDBOX_URL="XXXX"
SENDER_EMAIL="XXXX"
RECIPIENT_EMAIL="XXXX"
MUL_FACTOR=2
FRAME_SIZE=10

2)led_control_by_sensor:這是實現項目的主要代碼,即控制LED,獲取傳感器數據并在傳感器值越界時發送電子郵件。

import email_conf,json,time,math,statistics
from boltiot import Bolt,Email

def compute_bounds(history_data,frame_size,factor):
    if len(history_data)
        return None

    if len(history_data)>frame_size :
        del history_data[0:len(history_data)-frame_size]
    Mn=statistics.mean(history_data)
    Variance=0
    for data in history_data :
        Variance += math.pow((data-Mn),2)
    Zn = factor * math.sqrt(Variance / frame_size)
    High_bound = history_data[frame_size-1]+Zn
    Low_bound = history_data[frame_size-1]-Zn
    return [High_bound,Low_bound]

mybolt = Bolt(email_conf.API_KEY, email_conf.DEVICE_ID)
email=Email(email_conf.MAILGUN_API_KEY,email_conf.SANDBOX_URL,email_conf.SENDER_EMAIL,      email_conf.RECIPIENT_EMAIL)
history_data=[]

while True:
    response = mybolt.analogRead('A0')
    data = json.loads(response)
    if data['success'] != 1:
        print("There was an error while getting the data.")
        print("This is the error:"+data['value'])
        time.sleep(10)
        continue

    print ("This is the value "+data['value'])
    sensor_value=0
    try:
        sensor_value = int(data['value'])
    except Exception as e:
        print("There was an error while parsing the response: ",e)
        continue
    bound = compute_bounds(history_data,email_conf.FRAME_SIZE,email_conf.MUL_FACTOR)
    if not bound:
        required_data_count=email_conf.FRAME_SIZE-len(history_data)
        print("Not enough data to compute Z-score. Need ",required_data_count," more data points")
        history_data.append(int(data['value']))
        time.sleep(10)
        continue
    try:
        if sensor_value > bound[0] :
            print ("light level increased suddenly. sending email.")
            status=mybolt.analogWrite('0','0')
            print("status of led is :",status)
            response=email.send_email("alert","someone turned on the lights")
            response=json.loads(response.text)
            print("this is the response from mailgun"+str(response['message']))
        elif sensor_value < bound[1] :
            print ("light level decreased suddenly. sending email.")
            status=mybolt.analogWrite('0','20')
            print("status of led is :",status)
            response=email.send_email("alert","someone turned off the lights")
            response=json.loads(response.text)
            print("this is the response from mailgun"+str(response['message']))
        history_data.append(sensor_value);
    except Exception as e:
        print ("Error",e)
    time.sleep(10)

在上面的程序中,我們包括以下內容:

time-time.sleep() 函數暫停程序 10 秒

json-json.loads() 函數來轉換來自 boltiot 和 mailgun 的數據

statistics-statistics.mean() 函數計算均值

math-math.pow() 函數求平方

Email-創建一個它的對象來發送郵件

螺栓連接到設備

在程序中,函數 compute_bounds 計算閾值并返回它采用以下參數:傳感器數據列表、幀大小和倍增因子如果列表的長度小于幀大小,則返回無,因為所需的點數不可用。它保持列表的大小為10 通過刪除多余的起始元素。

然后我創建了 Bolt 和 Email 的對象。運行一個無限循環,我們獲取數據,如果發生錯誤,則顯示 它。然后通過調用 compute_bounds 函數獲取邊界。如果傳感器值越過邊界,則 LED 會打開或根據情況關閉并發送電子郵件并顯示 mailgun 的響應。如果值在范圍內,則將其簡單地添加到列表中。最后,程序在每次循環后暫停 10 秒。

工作模式:

下面的圖片

?
?
?
poYBAGOIMmGAFMQ-AEI-6ixGfAg158.jpg
?
1 / 7 ?傳感器初始讀數
?

顯示工作項目。

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費