資料介紹
描述
介紹
這是Curam Senes ,在拉丁語中的意思是“幫助我們的老人”。
老年人面臨的最大問題之一是孤獨感,COVID-19 流行病及其導(dǎo)致我們陷入的社會孤立加劇了孤獨感。在歐洲,許多老年人擁有遠程護理系統(tǒng),這是一種連接到網(wǎng)絡(luò)的設(shè)備,帶有一個帶有按鈕的掛件,用于通知緊急情況并打開與護理人員的通信線路。他會評估情況,并在緊急情況下打電話給家人或醫(yī)生。
老年人是認知問題最多的人,同時也是服用藥物最多的人。這些設(shè)備無法幫助他們。因此,我們的目標是創(chuàng)造一種在非緊急情況下提供幫助的設(shè)備。我們想:
- 記住什么時候吃藥。
- 請記住,當(dāng)我們必須進行醫(yī)學(xué)測試時,例如,我們將測量脈搏和血液中的氧飽和度。
- 記住我們有醫(yī)生的預(yù)約。
- 如果我們在沒有警告的情況下離開家,請通知我們的護理人員,這對患有癡呆癥或阿爾茨海默氏癥的人特別有用。
用戶案例
讓我們看看設(shè)備是如何工作的,以及不同的參與者如何與之交互。
第一點是將數(shù)據(jù)輸入到系統(tǒng)中。我們開發(fā)了一個Alexa Skill ,它啟動了一個 python 函數(shù),將其(名稱和頻率)存儲在數(shù)據(jù)庫中。因此,護理人員可以與 Alexa 交談并更新有關(guān)他的患者的信息,更多詳細信息將在后面的部分中介紹。更專業(yè)的方式是將健康IT系統(tǒng)與我們的系統(tǒng)連接起來。它是一個標準的 HL7 ,它允許通信健康系統(tǒng)。我們可以將此信息導(dǎo)入為 HL7、OMP ^ O09 消息(治療順序)、SIU^S12 用于醫(yī)生預(yù)約,以及 ORU 用于醫(yī)療檢查結(jié)果。與歡笑連接(一個可以管理這些消息的開源程序),我們可以配置一個通道,在數(shù)據(jù)庫中存儲藥物的名稱和服用頻率。但我們更喜歡創(chuàng)客方式。
我們使用AWS Event Bridge管理事件,它會觸發(fā)一些 lambda 函數(shù),csDispensation01和csDispensation002 。它在數(shù)據(jù)庫中查找并為該小時內(nèi)的每個待處理信息生成一條 JSON 消息,然后我們將其發(fā)送到已掛載的 IoT 的MQTT 隊列。我們從數(shù)據(jù)庫中獲取主題,患者表。
AWS IoT Edukit 讀取這些 MQTT 消息。我從Cloud Connected Blinky示例開始。我還添加了一些任務(wù),并且我在 SDCard 中存儲了一些消息,因此我可以在需要與人互動時播放它們。我們使用閃爍的 LED來引起必須服藥的人的注意。當(dāng)它花費一段時間而不與患者互動時,它會改變顏色。藥物的名稱寫在屏幕上。我們可以展示十種不同的藥物。當(dāng)患者服用藥物時,他觸摸屏幕,系統(tǒng)會更新藥物狀態(tài)并清除屏幕。
另一個日常事件(AWS 事件橋)觸發(fā)另一個 lambda 函數(shù)csNotification02 ,該函數(shù)在數(shù)據(jù)庫中查找過去 24 小時內(nèi)未服用的藥物,并使用AWS SNS向醫(yī)療護理人員的電話發(fā)送消息。
數(shù)據(jù)模型
這是一個非常簡單的數(shù)據(jù)模型,我們會在添加改進時完成它。
有六張表:
- 病人有任何病人的數(shù)據(jù),但在這個樣本中,我們只有一個。
- dispensa_medication ,我們存儲藥物的位置以及我們的患者必須在什么時間服用它們。
- Dispens_medication_sent ,我們添加任何藥物劑量的記錄,以及它的狀態(tài)。
- test_heart ,存儲我們要求患者檢查他的心率和 O2 飽和度的時間
- test_heart_sent ,存儲檢查的措施
- 醫(yī)生預(yù)約,我們存儲與醫(yī)生的預(yù)約,因此我們可以發(fā)送警告。
相關(guān)的是 dms 表中藥物的狀態(tài),它們是:
- NULL,已發(fā)送消息但未收到設(shè)備
- 0,發(fā)送并發(fā)送一個ACK
- 1、患者已服藥
- 2、患者忘記吃藥(或在屏幕上確認)
處方藥,Alexa Skill
我們將 CuramSenes 會記住服用的藥物存儲在MariaDB表中。正如我之前告訴你的,專業(yè)的(有幾個病人,連接到醫(yī)院)的方式是使用 HL7。但就目前而言,我開發(fā)了一種更具創(chuàng)客性的 Alexa Skill。
我們從python中的 hello 單詞示例開始。代碼的某些部分是原始的。我已經(jīng)更改了名稱和調(diào)用短語,新藥。目前,它可以,但它不是一個不言自明的名字。
我使用了 2 種新聞插槽類型,一種是當(dāng)時的亞馬遜實施。對于藥物,我創(chuàng)建了一個新的,當(dāng)我在示例中使用的藥物名稱時。但是我們可以用類似Vademecum 的列表填充這個列表。
我添加了一個新的 Intent,NewMedicine。它具有可以調(diào)用的方式。
當(dāng)有人說出這些短語時,它會啟動一個 python 函數(shù),它會連接到數(shù)據(jù)庫并將信息存儲在那里。代碼在GitHub中:
這是一個示例交互。
桌子還有一個元素......
物聯(lián)網(wǎng) AWS Eduki 代碼。前端
根據(jù)論壇管理員的建議,我們使用了 ESP-IDF 開發(fā)環(huán)境,帶有Platformio和 IDE Visual Studio Code 。
起點是閃爍 LED的例子。我們保留了管理 LED 的任務(wù) blink_task,稍作修改,我們只放置了一個變量來指示它閃爍的顏色,并在第一次警告后經(jīng)過一段時間后將其更改為紅色。增加了五個任務(wù):
- ui_task ,您在設(shè)備屏幕上編寫的代碼在哪里。
- aws_iot_task ,我們在其中放置了通過 MQTT 消息與 AWS IoT 服務(wù)通信的代碼。
- cs_task ,它包含應(yīng)用程序的業(yè)務(wù)邏輯,并從后端讀取和生成消息。
- speakMe_task ,管理播放的音頻。
- blueScan_task ,管理與設(shè)備的連接
- heart_task ,管理醫(yī)學(xué)測試、心率和血氧飽和度讀取器。
在主循環(huán)中,我們有一段代碼告訴我們這些任務(wù)的堆以及在 Core2forAWS 庫中啟動的 GUI 管理任務(wù)的最大內(nèi)存消耗是多少。它允許我們調(diào)試內(nèi)存消耗并最小化我們分配給每個任務(wù)的堆,留下大約 1kb 的安全余量。
ui_task
我遵循了示例的設(shè)計。我們保留指示 WIFI 網(wǎng)絡(luò)是否已連接的文本,更改圖標的顏色。另一個文本已添加到左側(cè),啟動時顯示為“____”,連接到 AWS IoT 服務(wù)器時會顯示 MQTT 文本。我們放置這個控件是因為有時它連接到 WIFI 但不連接到消息隊列。如果我們重新啟動設(shè)備,它會重新連接。在上欄的中間部分,我們有藍牙符號,當(dāng)它連接并檢測到藍牙監(jiān)控設(shè)備的存在時,它會變成藍色。如果設(shè)備消失,它會變?yōu)榛疑?/font>
在中央部分,有一個列表,我們在其中寫下用戶等待服用的藥物名稱,如果有必要進行醫(yī)學(xué)測試(測量脈搏和血液中的氧飽和度),或者如果您與醫(yī)生預(yù)約。服藥后,觸摸此文本字段,將啟動表明您已服藥的事件(我們刪除消息,LED 停止閃爍,我們向后端發(fā)送 MQTT 消息)
這個任務(wù)有很多問題,我認為是由于 lvgl 庫中的一個我無法調(diào)試的錯誤,我們稍后會討論。
aws_iot_task
該任務(wù)負責(zé)連接到 MQTT 服務(wù)器,將其中一個標記為接收到的消息的回調(diào),并將消息發(fā)送到服務(wù)器(我們?yōu)槊糠N類型的消息使用一個控制變量)。我們保留了示例中的大部分代碼,對其進行了一些簡化,并將其放在另一個任務(wù)中。
與服務(wù)器的連接部分有點“敏感”,當(dāng)代碼被觸摸時,就會出現(xiàn)連接問題。在優(yōu)化此任務(wù)之前,我們已優(yōu)先考慮程序其他部分的開發(fā)。
我們使用的 MQTT 隊列是:
- "123DEVICENUMBER123"/medication ,接收藥物 JSON 消息。
- "123DEVICENUMBER123"/med_appointment ,這里我們收到了醫(yī)生的預(yù)約。
- "123DEVICENUMBER123"/med_test ,我們收到通知要求進行醫(yī)學(xué)測試。
- "123DEVICENUMBER123"/rtn,我們把藥的狀態(tài)返回給后臺
- “123DEVICENUMBER123”/test_heart_rtn,我們返回醫(yī)學(xué)測試的結(jié)果,BPM和氧飽和度(%)。
- “123DEVICENUMBER123”/beacon,它沒有被使用……但是它將用于通知與老人佩戴的設(shè)備失去通信,假設(shè)他們已經(jīng)離開了房子。
cs_task
在這個任務(wù)中,我們控制設(shè)備的業(yè)務(wù)邏輯。很簡單,我們將消息在屏幕上顯示的時間與預(yù)定義的變量PAST_DUE_TIME (對于測試是 10 秒,通常是一個小時)進行比較,然后我們執(zhí)行相關(guān)任務(wù):如果它大于第一,我們將 LED 的顏色更改為紅色并發(fā)出音頻消息,我們通過在qSoundQueue隊列中發(fā)送內(nèi)部消息來做到這一點。
如果大于三個,我們從列表中刪除該藥物。將藥物長期留在清單上似乎很危險,因為您可以連續(xù)服用兩劑。將來可以改進,包括在藥物的描述中,或者在服用中,如果必須刪除或不刪除。我們控制是否點擊了藥物所在的文本小部件,并清理它。
我們還讀取了一個內(nèi)部隊列,如果有新的藥物到達,我們會被通知(通過 MQTT 回調(diào))。
speakMe_task
隊列中有一個任務(wù)被阻塞,等待播放帶有 wav 文件名稱的消息。我們安裝 SD 卡,讀取文件并將其發(fā)送到揚聲器。我們已經(jīng)使用 AWS Polly 服務(wù)創(chuàng)建了音頻文件。由于SD卡使用SPI總線,就像屏幕一樣,我們每次發(fā)送消息時都會掛載和卸載設(shè)備,以避免干擾。
必須記錄音頻的比特率存在一個小問題,但它已在庫中配置并已修改為 22Kh。我們使用將文本轉(zhuǎn)換為語音的 AWS Polly 服務(wù)錄制了音頻。該系統(tǒng)可以擴展以允許與用戶進行更流暢的對話,例如告訴他要服用藥物的名稱或時間。
bluescan_task
這項任務(wù)是給我們帶來最多技術(shù)問題的任務(wù)。
一方面,platformio-ESPIDF中藍牙ble的實現(xiàn)不完整,執(zhí)行menuconfig時沒有出現(xiàn)藍牙配置選項。我們已將另一個項目的配置復(fù)制到 sdkconfig 文件中。此外,一些頭文件 (*.h) 盡管位于組件目錄中,但讀取效果不佳。我們必須將它們復(fù)制回包含目錄。我們開發(fā)了這個任務(wù),它工作得很好,但是當(dāng)它與 GUI 集成時,它給我們帶來了一個問題,guiTask 任務(wù)被鉤住,并且看門狗用回溯提醒我們。我們無法解決它,但似乎是 lvgl 庫的問題。我在書店的論壇里問過,還是沒能解決。
許多老年人都有總機,當(dāng)他們發(fā)生事故時,可以將他們連接到電話助理,然后按下脖子上的按鈕。我們希望在老年人智力受損的家庭中補充這個總機。通過在患者的項圈上添加藍牙設(shè)備,如果他不應(yīng)該離開家,該設(shè)備會通知我們。
- 我們將每位患者與終端連接起來,并使用我們保存在患者表上的藍牙 mac 地址。
- 我們控制與此設(shè)備的連接,我們對附近的藍牙設(shè)備進行掃描,如果我們看到它,我們會更新我們最后一次看到它的時間。
- 如果此時間超過閾值,我們會向后端發(fā)送一條 JSON 消息,后端會通過 SNS 通道發(fā)送一條 SMS 消息來提醒看護者。
- 如果設(shè)備是藍牙信標并且它掛在患者身上,例如。比如Tile、Airtag等,你可以使用這個平臺的應(yīng)用來定位這個人。
該功能在代碼中被禁用,等待修復(fù)錯誤。
心臟任務(wù)
這個任務(wù)有不同的生命周期管理。其他的在主函數(shù)中啟動,當(dāng)消息到達請求心臟測試時啟動。
在任務(wù)開始時,傳感器被初始化,一個max300100,它讀取每分鐘心跳和血液中氧飽和度的記錄。然后我們有一個循環(huán),我們在其中獲得幾個測量值并計算平均值。有了這些值,我們就形成了一個 JSON 消息,我們通過 MQTT 任務(wù)發(fā)送到后端,它就結(jié)束了。在后端,我們將數(shù)據(jù)存儲在 bd 中。隨后的改進將允許將這些信息傳遞給護理人員,或者通過 HL7 消息將其合并到患者的電子病歷中,或者作為帶有圖形的門戶(例如使用 Grafena)直接從數(shù)據(jù)庫中讀取這些數(shù)據(jù)。
后端代碼
應(yīng)用程序后端是使用 AWS 服務(wù)定義的。
數(shù)據(jù)使用 AWS RDS 服務(wù)存儲在 MariaDB 數(shù)據(jù)庫中。我們已經(jīng)在另一部分看到了數(shù)據(jù)模型。
后端的主要部分由 lambda 函數(shù)組成:
當(dāng)消息到達 MQTT 主題時,它們由 AWS IoT 觸發(fā):
csMQTT001:讀取患者服用藥物后端 JSON 消息的函數(shù),更新 dbd 中的狀態(tài)(已接收、已服用、已忘記)
csMQTT002: 在醫(yī)學(xué)測試后端讀取 JSON 消息的函數(shù),在本例中是心率和氧飽和度。
由 EventBridge 事件觸發(fā)
每日活動
csNotification002:檢查最后一天的用藥數(shù)據(jù),如果沒有服用任何藥物,則會向護理人員的手機發(fā)送短信通知他。
csDispense002:查閱表格以查看患者是否與醫(yī)生預(yù)約。如果是,則向設(shè)備發(fā)送 JSON-MQTT 消息以通知患者。
每小時一個事件
csDispense001:檢查表格以查看患者在接下來的一個小時內(nèi)是否需要服用任何藥物或進行檢查。如果是,則在測試表中創(chuàng)建一條記錄,并向設(shè)備發(fā)送 JSON-MQTT 消息以通知患者。
啟動此功能的事件是:
構(gòu)建項目的說明
構(gòu)建它很容易,我們只需要遵循以下幾點:
- 獲取硬件、AWS Edukit、Alexa echo 和 AWS 賬戶。
- 在 AWS IoT 中注冊 AWS Edukit
- 下載 Visual Studio Code,安裝 Platformio 和 GitHub 擴展。
- 下載設(shè)備代碼,編譯并傳輸?shù)紼dukit設(shè)備
- 創(chuàng)建 MariaDB 并創(chuàng)建數(shù)據(jù)庫
- 下載 Alexa 技能代碼并使用它創(chuàng)建一個新的 Alexa 技能
- 下載 lambda 代碼并在 AWS 中創(chuàng)建 5 個函數(shù)
- 連接這些函數(shù),其中 3 個由 EventBridge 事件觸發(fā),另外 2 個連接到 IoT 核心 MQTT 函數(shù),在那里為它們創(chuàng)建兩個規(guī)則。
- 開始玩得開心
未來的步驟
- 為看護者開發(fā)一個門戶,他們可以在其中查閱家屬的信息,他使用 Graphena 連接到數(shù)據(jù)庫并顯示 BMP 和氧飽和度數(shù)據(jù)。
- 創(chuàng)建 HL7 消息的網(wǎng)關(guān)以與醫(yī)院后端進行通信。
- 解決藍牙子系統(tǒng)中的錯誤,以便我們可以檢測到我們何時丟失設(shè)備的信號以觸發(fā)警報。我們還想閱讀設(shè)備上的按鈕,以便開始與健康助手的對話。
- 創(chuàng)建此音頻通信子系統(tǒng)以在警報出現(xiàn)時幫助人們。
- 將要執(zhí)行的新醫(yī)學(xué)測試的管理和通信(藍牙、I2C、..)與執(zhí)行這些測試的設(shè)備結(jié)合起來。例如,胰島素計、動態(tài)心電圖、氧氣泵……
- 加大屏幕尺寸,這么小的顯示器也不容易交互。
- 增加語音交互。
- 加州野火緊急通知系統(tǒng)
- 通信模組的通信線路設(shè)計
- 單片機的交通信號燈控制系統(tǒng)設(shè)計
- Linux常見緊急情況怎樣處理 0次下載
- 基于物聯(lián)網(wǎng)的概念驗證(POC)可用于跟蹤急救人員的健康和位置 3次下載
- 通信線路中電力諧波干擾與防護分析 48次下載
- 通信線路工程驗收規(guī)范—行業(yè)標準 11次下載
- 通信線路工程設(shè)計規(guī)范 PPT 77次下載
- 光纜線路工程設(shè)計基礎(chǔ)_ppt課件 0次下載
- 電信行業(yè)使用燃料電池技術(shù)作為緊急備用電源的經(jīng)濟性
- 一種基于平板電腦平臺的醫(yī)院護理系統(tǒng)
- 架空通信線路鐵件通用技術(shù)條件 YD/T 206.1-1997
- 本地網(wǎng)通信線路工程驗收規(guī)范 YD5051-97
- yd5137 2005 本地通信線路工程設(shè)計規(guī)范
- yd t5138 2005 本地通信線路工程驗收規(guī)范
- 隔離開關(guān)的作用是什么,應(yīng)當(dāng)在哪些地方設(shè)置隔離開關(guān)? 4008次閱讀
- 使用555定時器的警笛電路圖 4475次閱讀
- 報警器電路圖分享 1531次閱讀
- 適用于惡劣汽車環(huán)境的綜合電源系統(tǒng)設(shè)計 1424次閱讀
- 高動態(tài)范圍RF收發(fā)器如何解決關(guān)鍵任務(wù)通信的阻塞挑戰(zhàn) 1362次閱讀
- 研究人員提出具有葡萄糖響應(yīng)型胰高血糖素微針陣列貼片 762次閱讀
- 使用單片機實現(xiàn)交通燈設(shè)計的資料概述 8059次閱讀
- 利用ZigBee開發(fā)套件實現(xiàn)設(shè)計智能無線管理系統(tǒng) 2977次閱讀
- 緊急切斷閥的工作原理_緊急切斷閥的分類 1.1w次閱讀
- 必達安保系統(tǒng)MJM-01智能鎖介紹 1383次閱讀
- 速度繼電器是干嘛用的_速度繼電器安裝 6447次閱讀
- 防抱死制動系統(tǒng)的工作原理是什么 8674次閱讀
- 關(guān)于防抱死制動系統(tǒng)的工作原理簡析 2847次閱讀
- 發(fā)動機制動傷車嗎_利用發(fā)動機制動有什么危害 3.7w次閱讀
- 如何單獨打開Xilinx SDK項目工程 6663次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關(guān)電源設(shè)計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設(shè)計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多