基于物聯(lián)網(wǎng)的跌倒檢測(cè),使用NodeMCU ESP8266和加速度計(jì)MPU6050
掃描二維碼
隨時(shí)隨地手機(jī)看文章
跌倒檢測(cè)系統(tǒng)對(duì)老年人非常有用。它可以在發(fā)現(xiàn)任何跌倒時(shí)通知有關(guān)人員或家庭成員,并可以減少延遲就醫(yī)的風(fēng)險(xiǎn)。這導(dǎo)致了許多不同類型的自動(dòng)跌倒檢測(cè)系統(tǒng)的發(fā)展。如今,你可以在智能手表、健身追蹤器和其他類型的可穿戴設(shè)備上找到跌倒探測(cè)器。
因此,在本教程中,我們將使用NodeMCU和MPU6050傳感器模塊構(gòu)建一個(gè)跌倒檢測(cè)設(shè)備。MPU6050傳感器模塊具有陀螺儀和加速度計(jì)。陀螺儀用于確定方向,加速度計(jì)提供有關(guān)角參數(shù)的信息,如三軸數(shù)據(jù)。為了檢測(cè)下降,我們將比較加速度大小和閾值。如果檢測(cè)到摔倒,該設(shè)備將向相關(guān)人員發(fā)送短信。這里使用NodeMCU作為微控制器和Wi-Fi模塊,連接IFTTT發(fā)送短信。
組件的要求
?NodeMCU ESP8266
?MPU6050加速度計(jì)
?蜂鳴器
?連接電線
線路圖
下面給出了使用NodeMCU的基于物聯(lián)網(wǎng)的跌倒檢測(cè)器的電路圖。
MPU6050工作在I2C協(xié)議上,所以我們只需要兩根線來連接NodeMCU和MPU6050。MPU6050的SCL和SDA引腳連接到NodeMCU的D1和D2引腳,MPU6050的VCC和GND引腳連接到NodeMCU的3.3V和GND。我們之前使用MPU6050構(gòu)建手勢(shì)控制機(jī)器人。
MPU6050傳感器模塊
MPU6050傳感器模塊是完整的6軸(3軸加速度計(jì)和3軸陀螺儀)微機(jī)電系統(tǒng)(MEMS),用于測(cè)量加速度、速度、方向、位移和許多其他運(yùn)動(dòng)相關(guān)參數(shù)。除此之外,它還有一個(gè)額外的芯片溫度傳感器。
MPU6050模塊具有體積小、功耗低、重復(fù)率高、耐沖擊、用戶價(jià)格低等特點(diǎn)。MPU6050帶有I2C總線和輔助I2C總線接口,可以很容易地干擾其他傳感器,如磁力計(jì)和微控制器。
IFTTT設(shè)置跌倒檢測(cè)器
IFTTT (If This Then That)是一個(gè)基于web的服務(wù),我們可以通過它創(chuàng)建條件語句鏈,稱為applet。使用這些小程序,我們可以發(fā)送電子郵件,Twitter, Facebook通知。在這個(gè)項(xiàng)目中,我們使用IFTTT在設(shè)備檢測(cè)到跌倒時(shí)發(fā)送消息通知。
要使用IFTTT,請(qǐng)登錄您的IFTTT帳戶(如果您已經(jīng)有一個(gè)帳戶)或創(chuàng)建一個(gè)帳戶。
現(xiàn)在搜索“Webhooks”并點(diǎn)擊“服務(wù)中的Webhooks”部分。
現(xiàn)在,在Webhooks窗口中,單擊右上角的“Documentation”以獲取私鑰。
復(fù)制這個(gè)密鑰。它將在程序中使用。
獲得私鑰后,現(xiàn)在使用Webhooks和Email服務(wù)創(chuàng)建一個(gè)applet。要?jiǎng)?chuàng)建applet,請(qǐng)單擊您的個(gè)人資料,然后單擊“創(chuàng)建”。
現(xiàn)在,在下一個(gè)窗口中,單擊“This”圖標(biāo)。
現(xiàn)在在搜索欄中搜索Webhooks,然后點(diǎn)擊“Webhooks”。
現(xiàn)在選擇“Receive a Web Request”觸發(fā)器,在下一個(gè)窗口中,輸入事件名稱為fall_detect,然后單擊“create a trigger”。
現(xiàn)在要完成applet,單擊“That”為fall_detect事件創(chuàng)建一個(gè)響應(yīng)。
這里我們通過發(fā)送消息來響應(yīng)fall_detect事件。在搜索欄中搜索“Android device”,然后選擇“Android SMS”。
現(xiàn)在,它將要求您輸入電話號(hào)碼和消息正文。輸入手機(jī)號(hào)碼和消息正文,然后點(diǎn)擊“創(chuàng)建操作”完成流程。
現(xiàn)在,我們將創(chuàng)建另一個(gè)applet,在檢測(cè)到墜落時(shí)播放特定的歌曲。
為此,請(qǐng)遵循上述相同的程序,但不是“Android SMS”,而是單擊“Android設(shè)備”,然后單擊“播放特定歌曲”。
在下一步中,輸入歌曲名稱,然后單擊Create。
代碼的解釋
使用NodeMCU的跌倒檢測(cè)器的完整代碼在頁面末尾給出。這里我們將解釋一些重要的部分。
像往常一樣,通過包含所有必需的庫(kù)來開始代碼。Wire.h庫(kù)允許您與I2C / TWI設(shè)備通信,而ESP8266.h庫(kù)提供了NodeMCU特定的Wi-Fi例程,我們正在調(diào)用這些例程連接到網(wǎng)絡(luò)。
在接下來的幾行中,輸入Wi-Fi名稱和密碼以及IFTTT帳戶憑據(jù)。
在void setup()中,初始化波特率、線庫(kù)和通過電源管理寄存器傳輸?shù)臄?shù)據(jù)。
現(xiàn)在在void loop()中,讀取MPU6050傳感器數(shù)據(jù)。2050、77、1947是加速度計(jì)的校準(zhǔn)值。陀螺儀相同,在原始值中添加校準(zhǔn)值。
在得到加速度計(jì)和陀螺儀的值后,計(jì)算加速度計(jì)值的幅值矢量。
該程序首先檢查加速度計(jì)值是否超過較低的閾值,如果是,則等待0.5秒并檢查較高的閾值。如果加速度計(jì)的值超過更高的閾值,那么它檢查陀螺儀的值來計(jì)算方向的變化。如果方向突然改變,它會(huì)等待10秒,檢查方向是否保持不變。如果是,那么它會(huì)激活墜落探測(cè)器警報(bào)。
在mpu_read循環(huán)()中,讀取加速度計(jì)和陀螺儀的X、Y和Z軸的所有六個(gè)寄存器。
測(cè)試物聯(lián)網(wǎng)墜落探測(cè)器
一旦你的代碼和硬件準(zhǔn)備好了,上傳代碼。為了測(cè)試這個(gè)項(xiàng)目,把MPU6050拿在手里,假裝慢慢走,然后突然絆倒在一個(gè)平臺(tái)上,如下面的視頻所示。如果幅度超過閾值,設(shè)備將激活跌倒檢測(cè)警報(bào)并向注冊(cè)號(hào)碼發(fā)送消息。
本文編譯自iotdesignpro