電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>可緩解潮熱癥狀的開源項(xiàng)目

可緩解潮熱癥狀的開源項(xiàng)目

2023-07-03 | zip | 0.12 MB | 次下載 | 免費(fèi)

資料介紹

描述

該項(xiàng)目旨在緩解更年期常見的潮熱癥狀,它是一個(gè)由可穿戴設(shè)備制成的物聯(lián)網(wǎng)系統(tǒng),可跟蹤用戶在睡眠期間的皮膚溫度和運(yùn)動(dòng)。可穿戴設(shè)備通過藍(lán)牙 LE (BLE) 將溫度和運(yùn)動(dòng)數(shù)據(jù)發(fā)送到風(fēng)扇控制器,當(dāng)皮膚溫度升高時(shí)風(fēng)扇會(huì)被激活,并且數(shù)據(jù)會(huì)記錄在云服務(wù)中。用戶還可以使用谷歌助手來改變風(fēng)扇速度。

請記住,這個(gè)項(xiàng)目不會(huì)阻止您出現(xiàn)潮熱,但可以讓您感到放心,請務(wù)必咨詢您的醫(yī)生。我們認(rèn)為該項(xiàng)目不僅對更年期的女性有益,對盜汗患者也有益,從而改善睡眠質(zhì)量。

由于 COVID-19 隔離,我們想用已經(jīng)在家中的電路板/傳感器構(gòu)建一些東西,這使得獲得更多材料變得更加困難。我將嘗試描述亞伯拉罕和我如何開發(fā)這個(gè)正在進(jìn)行的項(xiàng)目,我們遇到的一些挑戰(zhàn)以及我們?nèi)绾螄L試解決它們。

可穿戴設(shè)備

該項(xiàng)目圍繞 STMicroelectronics STEVAL-BCN002V1B開發(fā)套件(又名 BlueTile)構(gòu)建。

STEVAL-BCN002V1B 支持藍(lán)牙 LE 的傳感器節(jié)點(diǎn)開發(fā)套件具有基于 BlueNRG-2 SoC 藍(lán)牙低功耗應(yīng)用處理器的 STEVAL-BCN002V1 多傳感器板。該傳感器板具有加速度計(jì)、陀螺儀、磁力計(jì)、壓力、濕度、飛行時(shí)間和麥克風(fēng)傳感器,并由通用 CR2032 紐扣電池[1]供電。
pYYBAGOXz5iAOEc-AAGVrFiSdks39.jpeg
傳感器板
?

傳感器板上的BlueNRG-2 SoC 可以使用默認(rèn)程序使用適用于 AndroidiOSSTMicro Sensor Demo App連接到您的智能手機(jī)。

這些是您可以使用傳感器演示應(yīng)用程序執(zhí)行的一些功能,您甚至可以記錄數(shù)據(jù),此功能將 CSV 文件發(fā)送到您的電子郵件。

?
?
?
pYYBAGOXz5-ANkeMAAB4mgTHEI4963.jpg
?
1 / 7 ?環(huán)境
?

BlueTile 測試

為了對傳感器板進(jìn)行編程,我們使用了您獲得套件時(shí)提供的 STEVAL-BCN002V1D編程板。您可以通過多種方式對傳感器板進(jìn)行編程,是用戶手冊。

我們使用 BlueNRG-2 Navigator 來熟悉傳感器板,您可以使用大量示例。是一個(gè)數(shù)據(jù)簡介。

?
?
?
poYBAGOXz6KARYZgAACIz1_Dyq4972.png
?
1 / 2 ? BlueNRG-2 導(dǎo)航器對傳感器板進(jìn)行編程
?

BlueNRG -2 Navigator項(xiàng)目可用于KeilAtollic 。在傳感器板上運(yùn)行的程序是Sensor Demo App. 首先我們嘗試在 中更改設(shè)備本地名稱sensors.c,以確保修改源代碼和編程板是可行的。

poYBAGOXz7OANawdAAHDg8Bumfs605.png
更改默認(rèn)名稱
?

為此,我們在使用 Keil 生成 hex 文件后使用了 BlueNRG-1_2 flasher實(shí)用程序。

值得一提的是,在刷新應(yīng)用程序之前,必須 Service Manager OTA先使用 flasher 實(shí)用程序加載第一個(gè),然后為應(yīng)用程序生成生成的 hex 文件。

pYYBAGOXz7qACpBTAADNrFwDxoM737.png
BlueNRG-1_2 閃光器
?

實(shí)際設(shè)備名稱是BCN-002,但不確定與本地名稱有什么區(qū)別。

poYBAGOXz76ACbaLAAA657bULDQ421.jpg
新設(shè)備名稱
?

在文件中的Sensor_DeviceInit() 函數(shù)中sensors.c更改了aci_gap_set_authentication_requirement 刪除引腳配對。只需更改USE_FIXED_PIN_FOR_PAIRINGDONOT_USE_FIXED_PIN_FOR_PAIRING

尋找服務(wù)和特點(diǎn)

要為傳感器板構(gòu)建 BLE 客戶端,您必須在此處獲取更多關(guān)于 BLE 的 Service UUID 和 Characteristic UUID 。

ST Micro 有關(guān)于如何對 BlueNRG-2 進(jìn)行編程的文檔以及有關(guān)服務(wù)的詳細(xì)信息,但我們使用BLE 掃描儀來搜索可用的服務(wù)和特性。

BlueNRG-2有 3 項(xiàng)服務(wù),但傳感器數(shù)據(jù)正在服務(wù)00000000-0001-11E1-9AB4-0002A5D5C51B中。服務(wù)00000000-000E 00000000-000F是調(diào)試和配置。更多關(guān)于第 3 節(jié)的內(nèi)容

pYYBAGOXz8KANJZDAADCXnrJvwY288.jpg
BlueNRG-2 服務(wù)
?

這些是服務(wù)下可用的特性00000000-0001-11E1-9AB4-0002A5D5C51B

  • 001c0000-0001-11E1-AC36-0002A5D5C51B - 環(huán)境的
  • 00000100-0001-11E1-AC36-0002A5D5C51B- 傳感器融合
  • 40000000-0001-11E1-AC36-0002A5D5C51B- ?
  • 00000400-0001-11E1-AC36-0002A5D5C51B- 加速度計(jì)事件
  • 00020000-0001-11E1-AC36-0002A5D5C51B- 儀表(用于電池電量)
  • 00000040-0001-11E1-AC36-0002A5D5C51B- 指南針
  • 20000000-0001-11E1-AC36-0002A5D5C51B- 引領(lǐng)
  • 08000000-0001-11E1-AC36-0002A5D5C51B- 聲音的
  • 00E00000-0001-11E1-AC36-0002A5D5C51B - 運(yùn)動(dòng)傳感器
  • 02000000-0001-11E1-AC36-0002A5D5C51B- 接近

創(chuàng)建 BLE 客戶端

我們使用DOIT Esp32 DevKit v1嘗試連接到傳感器板,基于 ESP32 庫管理器中的 Arduino BLE 客戶端示例。

pYYBAGOXz9OAbqJ0AAIEqqhAupg19.jpeg
ESP32 DevKit 和 BlueTile
?

程序?qū)ふ曳?wù)00000000-0001-11E1-9AB4-0002A5D5C51B001c0000-0001-11E1-AC36-0002A5D5C51B環(huán)境特性。

// The remote service we wish to connect to.
static BLEUUID serviceUUID("00000000-0001-11E1-9AB4-0002A5D5C51B");
// The characteristic of the remote service we are interested in.
static BLEUUID    char1UUID("001c0000-0001-11E1-AC36-0002A5D5C51B"); //Env

在掃描 BLE 設(shè)備時(shí),ESP32 能夠看到傳感器板但無法連接到它。

為確保 ESP32 草圖正常工作,我們使用了健身手環(huán)(服務(wù)器)和 ESP32(客戶端),連接成功,但在創(chuàng)建客戶端時(shí)掛起。

poYBAGOXz9iAIxVJAAE1IQLH9bo824.png
連接到健身手環(huán)
?

我們遇到了 Neil Kolban 的ESP32 片段,似乎 Arduino 庫在信號量方面存在問題,因此我們構(gòu)建了新庫并重新編程了 ESP32。

但是 ESP32 仍然無法連接到傳感器板。我們嘗試使用 MAC 地址進(jìn)行連接,該地址是在 BLE 設(shè)備掃描時(shí)確定的。

std::string My_BLE_Address = "ec:4d:a6:01:a1:eb";

當(dāng)找到 MAC 地址而不是服務(wù) UUID 時(shí),將調(diào)用 BLE 通告設(shè)備函數(shù)。

// We have found a device, let us now see if it contains the service we are looking for.
if (advertisedDevice.getAddress().toString()==  My_BLE_Address ) {
Serial.println("Found DEVICE!");
BLEDevice::getScan()->stop();
myDevice = new BLEAdvertisedDevice(advertisedDevice);
doConnect = true;
doScan = true;

然后 ESP32 能夠與傳感器板建立連接,連接沒有掛起。我們需要調(diào)查為什么在掃描時(shí)在傳感器板上看不到服務(wù)。

poYBAGOXz-SACv7VAAHVhEedufc833.png
客戶端連接到傳感器板亂碼數(shù)據(jù)
?

BLE 客戶端示例具有通知回調(diào)函數(shù),但數(shù)據(jù)未正確顯示。需要更新回調(diào)函數(shù)(由Andreas Spiess完成)以顯示原始數(shù)據(jù)。

poYBAGOXz_KAPvRFAAIXZOuZT5o335.png
環(huán)境原始數(shù)據(jù)
?

讀取特征值

gatt_db.c文件包含更新特征值的函數(shù)。

/**
 * @brief  Update Environmental characteristic value
 * @param  int32_t Press Pressure in mbar
 * @param  uint16_t Hum humidity RH (Relative Humidity) in thenths of %
 * @param  int16_t Temp1 Temperature in tenths of degree
 * @retval tBleStatus   Status
 */
tBleStatus Environmental_Update(int32_t Press, uint16_t Hum, int16_t Temp) {
	uint8_t BuffPos = 0;

我們使用 ST 傳感器演示應(yīng)用程序獲得了一些日志。

?
?
?
poYBAGOX0AaAe-PzAAI8icXBqmw842.png
?
1 / 3 ?溫度記錄
?

在溫度日志中,0x1B01 MSB 為 0x01 = 283 dec,但以“十分之一度”表示,即為 28.3°C。

我們使用類似的方法來獲取濕度和壓力值。然后環(huán)境數(shù)據(jù)以易于理解的方式顯示在控制臺(tái)上。

pYYBAGOX0AqARkQ7AAFGBnAWfYA966.png
環(huán)境數(shù)據(jù)
?

僅包括另外兩個(gè)特征:

運(yùn)動(dòng)傳感器 (MotionFX)。這個(gè)特性在這里更多地使用了四元數(shù)。該數(shù)據(jù)將代表用戶在睡眠時(shí)間的運(yùn)動(dòng),也許這可以用來估計(jì)睡眠質(zhì)量。

MotionFX 是 X-CUBE-MEMS1 軟件的中間件庫組件,在 STM32 上運(yùn)行。它提供實(shí)時(shí)運(yùn)動(dòng)傳感器數(shù)據(jù)融合。它還執(zhí)行陀螺儀偏置和磁力計(jì)硬鐵校準(zhǔn)[2] 。

儀表。儀表特性以 mV 為單位發(fā)送電池電壓。

所有特征都有屬性:READ、NOTIFY、WRITE 等。更多信息請參見此處。 Arduino 上的 ESP32 BLE 客戶端有一個(gè) notify 和 read 回調(diào),主要區(qū)別是當(dāng)一個(gè)特征值改變時(shí)服務(wù)器會(huì)發(fā)送一個(gè)通知。

?
?
?
pYYBAGOX0BGAMwenAACHNBNC_vg022.jpg
?
1 / 3 ?環(huán)境特性可以讀取和通知
?

要獲取數(shù)據(jù),必須啟用和禁用通知,肯定有更好的方法可以做到這一點(diǎn),但似乎發(fā)送NULL會(huì)禁用通知。

if(p1RemoteCharacteristic->canNotify())
    p1RemoteCharacteristic->registerForNotify(NotifyCallback);
//Serial.println("Unregister for notifying!");
delay(100);
p1RemoteCharacteristic->registerForNotify(NULL);

此時(shí)我們已準(zhǔn)備好配置 ESP32 以連接到 Adafruit IO。

IFTTT 小程序

由于我們想控制 AC 風(fēng)扇的速度,我們認(rèn)為如果可以使用 Google Assistant 進(jìn)行語音控制會(huì)很好。

我們在 IFTTT 上創(chuàng)建了以下小程序:高速、低速、關(guān)閉 自動(dòng)模式控制放置在床頭柜上的小風(fēng)扇。自動(dòng)模式旨在根據(jù)可能指示潮熱發(fā)作的皮膚溫度變化打開/關(guān)閉風(fēng)扇。

pYYBAGOX0BWAOCnkAADgasTtu8M549.png
IFTTT 小程序
?

DOIT Esp32 DevKit v1 開發(fā)板只有 4MB 內(nèi)存,因此不適合合并 BLE 和 MQTT :(

poYBAGOX0CaAL3hUAACasK54PAs144.png
Esp32 DevKit 空間不足
?

電路

亞伯拉罕有備用的 16MB ESP32 WRover 模塊,他在另一個(gè)項(xiàng)目中使用了這些模塊。

pYYBAGOX0FKARbmXAAVM4ugaFsk402.png
ESP32 WRover 模塊
?

我們使用 Abraham 的 ODOROID-GO 定制 PCB,他手工焊接了啟用 ESP32 WRover 模塊所需的最少組件:USB 轉(zhuǎn)串口、USB 連接器、3.3V LDO 等。

?
?
?
pYYBAGOX0GyAMW8BAANKBf7ZSGw61.jpeg
?
1 / 2 ?定制 PCB odroid go
?

僅使用了幾個(gè) GPIO,因此左側(cè)的標(biāo)頭(安裝 SPI tft 屏幕的位置)有足夠的 GPIO 來控制繼電器板。

ESP32 GPIO 不能承受 5V 電壓,因此 Abraham 為 2 個(gè)繼電器、電源和復(fù)位按鈕制作了這個(gè)小屏蔽。

pYYBAGOX0ICAfl-EAAJ_YIIqy3I950.png
使用 ESP32 wRover 板、電源、繼電器板和復(fù)位按鈕進(jìn)行風(fēng)扇控制
?

。(00:43)看到。

記錄數(shù)據(jù)

我們正在使用 Adafruit IO 記錄傳感器的數(shù)據(jù),這些是我們的提要:

  • 溫度。
  • 濕度。
  • 壓力。
  • 用戶隨時(shí)間的運(yùn)動(dòng)。
  • 隨著時(shí)間的推移潮熱發(fā)作。
  • 電池電量。
poYBAGOX0IOAY9HwAACgSxuem9M806.png
Adafruit IO 儀表板
?

?

?

此功能仍需要改進(jìn),可能會(huì)在更長的時(shí)間內(nèi)平均溫度通知,而不僅僅是在發(fā)布之后。我們使用吹風(fēng)機(jī)來提高溫度,當(dāng)電路板通電時(shí),第一個(gè)脈沖是假潮熱,我們需要解決這個(gè)問題,但接下來的 2 個(gè)溫度峰值代表潮熱事件。

pYYBAGOX0IqAR8prAABqGywRHiM317.png
上電時(shí)第一事件誤觸發(fā)
?

傳感器板放置在 3D 打印外殼內(nèi)。

?

外殼有一個(gè)用于溫度傳感器和復(fù)位按鈕的開口

?
?
?
pYYBAGOX0JGAHn7gAAE2WLwB-Y8750.png
?
1 / 2 ?溫度傳感器開口
?

溫度傳感器應(yīng)該與皮膚接觸,但我們需要收集更多信息,例如 HTS221 是否是皮膚溫度的正確傳感器。此外,我們需要確定傳感器的正確位置,可能在手腕內(nèi)或更靠近胸部。

未來的工作

傳感器板有許多傳感器,可用于收集更多信息,例如:

  • MEMS麥克風(fēng)可用于監(jiān)測打鼾。
  • Motion FX 傳感器甚至可以推斷出您的睡眠位置。
  • BlueNRG-2 還具有自由落體檢測功能。

也許熱敏電阻紅外溫度計(jì)可能是測量皮膚溫度的更好方法。此外,傳感器的位置也很重要,但它必須是非侵入性的,以便在睡覺時(shí)佩戴。

除了皮膚溫度升高外,潮熱還可能導(dǎo)致女性心率加快。當(dāng)身體試圖降低溫度時(shí),這會(huì)導(dǎo)致突然出汗。這種癥狀還可能伴有心悸和頭暈[3] 。

心率測量可以使這個(gè)項(xiàng)目更加穩(wěn)健,也許可以用來預(yù)測潮熱。

為簡單起見,選擇使用小型交流風(fēng)扇,但生物特征數(shù)據(jù)可用于觸發(fā)更復(fù)雜的執(zhí)行器。

我們?nèi)匀恍枰迯?fù) Arduino 草圖的錯(cuò)誤并對其進(jìn)行優(yōu)化。

結(jié)論

在炎熱的一天隨時(shí)享受清新的微風(fēng)是很好的,但在潮熱時(shí)立即得到緩解就更好了!

通過這個(gè)項(xiàng)目,我們打算解決更年期最常見的癥狀之一。由于自動(dòng)模式是一種簡單的開/關(guān)控制,因此不需要復(fù)雜的算法和電子設(shè)備。

大部分時(shí)間都花在弄清楚如何讓 BLE 設(shè)備按預(yù)期工作。我們利用 bluetile 小尺寸和低功耗的優(yōu)勢構(gòu)建了一個(gè)小型應(yīng)用程序,該應(yīng)用程序可以擴(kuò)展到我們目前提供的內(nèi)容之外。

希望你喜歡它!


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

評論

查看更多

下載排行

本周

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

本月

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

總榜

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