【RW007系列綜合實戰2】使用RW007模塊連接小米藍牙溫溼度計2代

2022-01-29 RTThread物聯網作業系統

收錄於話題 #RW007 3個


本期文章將分為5篇連載,前2篇將圍繞模塊功能詳解展開,其後3篇將為大家講解基於RW007相關DEMO的實現,文章目錄如下,目前是第4篇:

通過前面的幾篇分享文章,基本上知道RW007高速WIFI模塊可以使用BLE主機功能去連接BLE從機設備,進行數據交互。下面將會說明如何使用RW007高速WIFI模塊的BLE主機功能去連接米家藍牙溫溼度計2代並解析溫溼度數據。
一、米家藍牙溫溼度計2代簡介

米家藍牙溫溼度計2代米家藍牙溫溼度計2代內置瑞士Sensirion高精度數字溫溼傳感器,能快速精準的發現溫溼變化,感受0.1℃的溫度波動和1%RH的溼度變化。通過米家藍牙網關,米家藍牙溫溼度計2 可與家中其他智能設備聯動,改善室內冷暖乾濕,讓你的家變得更舒適。米家藍牙溫溼度計2貼心設計了嬰兒模式,當溫度或溼度超出嬰兒的舒適區間,米家APP將自動提醒,同時為你提供應對建議。其採用超低功耗屏幕,一顆CR2032紐扣電池可供電待機約1年。有位知乎網友把第1代米家藍牙溫度計和第2代做了一些對比測評:
外觀一如既往地延續了米家白色米家簡約風格,只是相比第1代米家藍牙溫度計,第2代最大的外觀改變在於,更加小巧了,還從起初的圓柱體演變為輕薄的正方體。除此之外,米家藍牙溫溼度計2 採用了1.5寸(28×28mm)液晶LCD、超低功耗的顯示屏,不僅減少耗電量,而且確保數欄位碼效果,顯示更清晰。當拿出米家藍牙溫溼度計2,撕去裡面的電池下面的膜,就能看到屏幕上的數欄位碼效果。我們通過觀察屏幕信息,可以發現有3部分數據進行顯示——「19.7℃、75%、(-∧-)」,如果連接了藍牙,還會顯示有藍牙連接的符號。當然,當電量過低時,屏幕也會有一個電池圖標出現,提醒更換電池。總的來說,米家藍牙溫溼度計2 代溫溼度傳感器的精度更高,續航能力更強。二、手機測試連接並解析數據作為一個 DIY 愛好者,十分好奇米家藍牙溫度計2代裡面的溫溼度數據是怎樣同步到手機 APP 的。為了一探究竟,這裡我們嘗試用 BLE調試助手進行調試,看看能否查到溫溼度數據是怎樣傳輸的。第一步:使用 BLE調試助手進行掃描周圍的藍牙設備,可以找到 LYWSD03MMC名稱的藍牙設備,這個就是需要連接的米家藍牙溫溼度計2代的設備,這個名稱可以從設備後蓋上查到。

手機掃描周圍藍牙設備

注意:這裡需要記錄米家藍牙溫溼度計2代的 MAC 地址,後面需要用到

第二步:通過第一步,掃描周圍的藍牙設備,找到需要連接的米家藍牙溫溼度計2代的設備進行連接,點擊CONNECT按鍵就可以進行連接了,當連接完成後,會進入設備提供的Service列表,如下圖:

米家溫溼度計2代提供的service看到提供的Device Information這個Service,嘗試讀取數據,驗證一下數據讀取是否有限制。

讀取米家溫溼度2代的產品名稱

讀取米家溫溼度2代的產品名稱可以發現只要連接上設備後,讀取數據沒有任何限制,這樣就可以繼續嘗試進行讀取溫溼度數據了。第三步:關於米家藍牙溫溼度計2代溫溼度數據對應的 UUID,這個比較麻煩,需要從設備提供的眾多Service列表中去查找,去猜測。所幸的是依靠強大的度娘或谷哥,這些坑已經有人踩過了,這裡就可以參考他們的踩坑經驗快速定位到需要的數據。在https://github.com/JsBergbau/MiTemperature2/issues/1這個issue中,就有不少的借鑑經驗,例如讀取溫溼度的 UUID和溫溼度數據的換算方式。

讀取溫溼度數據的UUID


米家溫溼度計2代讀取的數據

1讀取的原始數據:
2E6 0A 36 B4 0A
3
4溫度換算方法
5溫度 = 0x0AE6 = 2790
6溼度 = 0x36 = 54
7電量 = 0x0AB4 =2740
8
9實際顯示:
10溫度:27.9 C
11溼度:54%
12電量: 2.742 V (讀數後使用萬用表測量電池)

米家溫溼度計2代顯示數據
對比獲取數據時,米家藍牙溫溼度計2代的當前讀數和讀取數據經換算後的數據是一致的,驗證了讀取溫溼度數據的準確性。三、使用RW007高速WIFI模塊連接並解析數據通過使用手機測試連接米家藍牙溫度計2代並參考相關的資料可以正確解析數據後,這裡嘗試使用RW007高速WIFI模塊的BLE主機功能嘗試讀取米家藍牙溫度計2代的溫溼度數據,這裡使用STM32F411-NUCLEO開發板 和RW007 EVB進行測試。第一步:RW007掃描附近的設備,查找米家藍牙溫度計2代設備,並進行連接。由於前面使用手機測試連接米家藍牙溫度計2代設備時知道了,米家藍牙溫度計2代設備的mac地址為A4:C1:38:35:52:94,使用RW007模塊進行掃描,在掃描的結果列表中可以找到對應的mac地址。使用以下的命令,進行RW007初始化和執行掃描操作。

1msh />rw007_ble init central
2msh />rw007_ble scan 


RW007掃描米家藍牙溫溼度計2代的設備

第二步:RW007模塊連接上米家藍牙溫溼度計2代的設備,後會收到來自米家藍牙溫溼度計2代的設備的NOTIFY數據,內容剛好是溫溼度及電量數據。

1msh />rw007_ble connect A4:C1:38:35:52:94

通過上面的命令進行連接米家藍牙溫溼度計2代的設備。

RW007接收到來自米家溫溼度計2代的數據第三步:在接收到數據的位置添加解析數據的功能,由於連接上米家藍牙溫溼度計2代的設備後就能接收到包含溫溼度及電量數據的NOTIFY,在接收數據的位置,添加解析數據的功能即可,在rw007_ble_ntf_handle的函數中進行以下的修改。

1case RW007_BLE_NTF_TYPE_NOTIFY_RX:
2            {
3                struct rw007_ble_gap_event_notify_rx *notify_rx;
4
5                rt_kprintf("RW007_BLE_NTF_TYPE_NOTIFY_RX\n");
6
7                notify_rx = (struct rw007_ble_gap_event_notify_rx *)data;
8                rt_kprintf("conn_handle:%d, attr_handle:%d, rcv (%s) length:%d, data:\n",
9                        notify_rx->conn_handle, notify_rx->attr_handle,
10                        notify_rx->indication ? "indication":"notification", notify_rx->length_data);
11                hex_dump((const rt_uint8_t *)(notify_rx + 1), notify_rx->length_data);
12                int32_t temp = 0xffff;
13                int hum = 0xff;
14                int32_t v_bat = 0xffff;
15
16                rt_uint8_t *ptr = (const rt_uint8_t *)(notify_rx + 1);
17
18               //Here to get mi tempture data
19                temp = 0xffff & ptr[1];
20                temp = temp<<8;
21                temp = temp | ptr[0];
22                hum = ptr[2];
23                v_bat = 0xffff & ptr[4] ;
24                v_bat = v_bat << 8 ;
25                v_bat = v_bat | ptr[3];
26                rt_kprintf("temp=%d mC,hum=%d%,v_bat=%dmV\n",temp,hum,v_bat);
27                break;
28            }

第四步:編譯燒錄程序,驗證功能。

RW007_解析數據

RW007_顯示的數據

驗證功能成功!

四、總結通過這次的RW007 模塊連接米家藍牙溫溼度計2代設備,主要體驗了如何通過 BLE 調試助手調試米家藍牙溫溼度計2代設備的過程,還有 RW007 BLE 主機功能的操作,以及如何把米家藍牙溫溼度計2代設備的溫溼度數據進行換算的流程,總的來說 RW007 BLE 主機功能使用還算方便,比較麻煩和多坑的是解析溫溼度數據,開始一直沒弄清楚哪一個 UUID 和 溫溼度數據有關的,也是折騰了不少時間,幸好在朋友的幫助下才順利解析到溫溼度數據。

🔗RW007資料連結:

奶牛網盤 https://realthread.cowtransfer.com/s/274a38fde4b543


🔗RW007購買連結:

https://item.taobao.com/item.htm?&id=587364858221


口令(複製至X寶打開):5嘻6bLxXVYVZEv嘻 https://m.tb.cn/h.4rai8N8?sm=35e672  RW007 高速WIFI模塊 SPI  物聯網 透傳模塊 無線模塊



你可以添加微信17775982065為好友,註明:公司+姓名,拉進 RT-Thread 官方微信交流群!

相關焦點

  • 智能家居篇2:不太智能的智能家居,小米藍牙溫溼度計2使用體驗
    傳統溫溼度計價格都在15元左右,小米藍牙溫溼度計2 29元,小米智能溫溼度計是99。在考慮性價比的前提下我選擇了這款小米藍牙溫溼度計。外觀展示正面非常簡潔,只有顯示溫度和溼度的電子屏。還有那個不太清楚什麼意思表情。
  • 感知0.1℃的冷暖 淺談米家藍牙溫溼度計 2的智能互聯
    ,米家藍牙溫溼度計 2就是其中的一款。參數上能看到溫度測量範圍為0℃~60℃,溼度範圍為:0%~99%RH,整機含電池重量21克左右,從參數上能判斷出這款溫溼度計不適宜在極寒地區戶外使用。 包裝盒兩個側面列舉出了米家溫溼度計 2的四大特點:智能互聯、高精度數字傳感器、超低功耗、靈活擺放。接下來就以這四個特點來認識這款米家藍牙溫溼度計 2。
  • 感知溫溼度的智能家居小伴侶 米家藍牙溫溼度計評測
    筆者最近入手了米家的藍牙溫溼度計,想隨時了解家中的溫溼度情況,同時還能豐富米家智能環境,具體體驗如何呢,接下來為你揭曉。米家藍牙溫溼度計很小巧,放在牆面上幾乎不易察覺,圓形的機身圓形的分段式LCD屏幕,雖然是1.78英寸,但顯示數據還是十分清晰。
  • 青萍 李吉他藍牙溫溼度計上線,靈敏精準,精緻小巧!
    開開心心來上班,高高興興回家去,近日,我們發現小米系平臺上新了一款「青萍 李吉他藍牙溫溼度計」上新。據官方宣傳資料介紹這個「青萍 李吉他藍牙溫溼度計」是李宗盛老師主導的,稍後我會在文中介紹,當音樂人士與科技交匯會發生怎樣的奇妙?李宗盛老師的「盛」迷們,這回大家會支持一下李宗盛老師嗎?把這款藍牙溫溼度計帶回家和李老師「交」個朋友!
  • 米家溫溼度計2開箱體驗
    來源:新浪眾測作者:你好辰同學2017年11月,小米第一款藍牙溫溼度計發布,而現在米家藍牙溫溼度計2發布,價格卻只有一代的四分之一,價格的下降體驗會下降嗎?讓我們一起來看下吧!溫溼度計小米眾籌售價49元3個還包郵,57小時眾籌銷量突破30萬個,可以看出這款產品是非常受歡迎的。
  • 大媽控訴血淚史,那些年擼過的溫溼度計.
    華盛昌(CEM)多功能溫溼度計 DT-322 室內臺式表(橙色) *2件80元(合40元/件)值友爆料原文:該款商品關注已久,現用99-30優惠券,2件實付80,很適合家用,寶寶房等。得力於藍牙網管和WIFI 連接的便利性,溫溼度作為一個小小的家居互聯接口也被納入了各大廠家競爭的入口,不可否認小米依然得天獨厚的搶佔了入口。
  • 智能家居入門之選:青萍溫溼度計輕體驗
    隨著家裡的設備原來越多,一些設備為了自身的續航考慮,比如溫溼度計、指紋鎖、不支持 Wifi 連接,所以也就無法遠程控制以及查看這些設備,這時候就需要一個藍牙網關了。我在用的小愛鬧鐘支持藍牙網關,但是因為放在臥室,所以客廳的溫溼度計有時候會出現連接不穩定的情況,所以這次,我只需要的是網關不需要額外的功能,小巧穩定即可,然後就看到青萍這款藍牙網關了,然後家裡廚房也需要一個溫度計,順便在店裡一塊下單買了。
  • 小米有品眾籌藍牙鬧鐘:59元能買到鬧鐘 + 溫溼度計 + 小夜燈?
    小米有品12月11日發布眾籌新品——青萍藍牙鬧鐘,眾籌價僅售59元。該產品可通過米家app設置16組個性化鬧鐘,並支持聯動米家設備;內置瑞士Sensirion溫溼度傳感器,可作為高精度溫溼度計使用;同時,背光亮度和時長均可調,輕拍即可在夜晚變身小夜燈。
  • 秒秒測新品:智能時鐘、鬧鈴、溫溼度計一個功能都不少
    提到小米的溫溼度計,相信大家應該都不陌生了吧,大家用過之後說沒有僅有溫溼度計沒有時間顯示等功能吐槽,後續小米發布過一款電子溫溼度計Pro,大家用過後又認為其時鐘功能過於單一,今天這款產品的製造商發布了一款升級產品——秒秒測溫溼智能時鐘,在前代產品的基礎上增加了智能鬧鐘、一鍵計時、番茄工作法等新的功能,那麼到底有什麼變化呢,還請大家跟我一起來看看吧
  • 小米米家電子溫溼度計Pro一年體驗小結:室內舒適,幫你感知
    今天跟大夥聊的,就是小米推出的米家電子溫溼度計Pro。這貨還有個別名叫「米家溫溼檢測電子表」,不管用哪個名字,功能都是一致的,那就是大字體顯示時間(時鐘功能),小字體顯示實時溫度和溼度,同時有個表情提醒「舒適度」。整機薄如手機,大小也類似小屏手機,可粘牆、磁吸掛起,也可配合自帶支架立於桌面。
  • 替換機械翻頁時鐘,秒秒測時鐘溫溼度計體驗
    前者憑藉復古和機械元素恰好命中男性審美,但功能相對單一;後者則走向了簡約風,在時鐘基礎上增加溫度和溼度兩個測量維度,同時依託於小米強大的智能家居生態而強勢吸粉。機械翻頁時鐘重在設計,但遺憾的是設計已經相當成熟,改進空間渺茫;而米家電子溫溼度計Pro重在顏值和功能,找到一個好的切入點還是有迭代空間。
  • 小米有品眾籌青萍藍牙鬧鐘 鬧鐘/溫溼度監測/小夜燈
    來源:快科技12月11日消息,小米有品眾籌上架了青萍藍牙鬧鐘,集鬧鐘、溫溼度監測、小夜燈三合一,售價59元。青萍藍牙鬧鐘採用無按鍵設計,簡約百搭,產品可被整體按下,軟膠底座配合精巧的內部設計,實現了舒適的按壓手感。簡約的外觀,輕鬆融入各種家居風格。
  • 新品免費玩|青萍藍牙溫溼度計,組建智能家居的開始
    這幾天剛好從「新浪眾測」收到一套青萍藍牙網關和藍牙溫溼度計。我想,藉助這個小巧的設備,幫助我實現溫度溼度自動化控制的願望。青萍藍牙溫溼度計M版本,青萍藍牙網關開箱後,呈現在我面前的有兩部分:青萍藍牙溫溼度計M版本,青萍藍牙網關。從外觀上看青萍藍牙溫溼度計M版本傳承了小米生態系列以來簡潔的外包裝,包裝上只有簡單的本體。
  • 拆解報告:小米真無線藍牙耳機Air2 SE
    下面就通過我愛音頻網的詳細拆解,看看小米真無線藍牙耳機Air2 SE,「SE」特別在什麼地方吧~此前,我愛音頻網曾經拆解過小米真無線藍牙耳機Air 2s、小米真無線藍牙耳機 Air 2、小米藍牙耳機Air。
  • 選溫溼度計看花眼了?青萍鬧鐘一件搞定全部
    來源:新浪眾測作者:數碼風潮DigitalStorm不做米粉不用小米手機的人有很多,但智能家居還能繞過米家生態的可以說幾乎沒有。現在剛出的二代,前一陣子特價完疊加優惠差不多也就這個價格。但是去實體店看過屏幕小得有點嚇人,感覺做工有點一般了。代工廠青萍在原有基礎上加入了米家聯動,不過價格也是水漲船高。如果中意一代外形的建議上這款,而非一代那款。由於個人對於溫溼度計的心理預算不超過一百元,特別有逼格的另當別論。
  • 選溫溼度計看花眼了?功能全面的青萍鬧鐘,完美演繹物美價廉
    不做米粉不用小米手機的人有很多,但智能家居還能繞過米家生態的可以說幾乎沒有。目前米家生態品牌已經不僅僅是百花齊放那麼簡單了,任意一個小件可能都有四五個品牌在做類似的產品。米家智能家居產品中很難找到一款顏值低下的,當然白色極簡的主調性確實也更容易被人接受。
  • 小米手環2 小米手環2怎麼連接手機
    小米手環2新買的第一件事情就是要先連接手機和自己的手機進行綁定,很多人剛剛買小米手環2還不清楚到底要怎麼才能連接手機,只有連接綁定了小米手環2>才能正常的使用查數據,所以今天就來為大家分享一下小米手環2連接手機的教程。
  • 誰將是下一個特工007?
    隨著007系列最新一部《無暇赴死》預告片的發布,也宣告了丹尼爾克雷格的邦德特工時代的結束。因為這將是他最後一次出演007特工,聽到這個消息實屬有些遺憾。丹尼爾是第六代007特工,一共出演了5部007系列電影。
  • 5支《007》邦德槍枝被盜,這是要盜版007啊
    5支曾在《007》系列電影中使用過的槍枝,於本周一晚上在倫敦被盜,警方呼籲民眾提供更多信息。  據報導,該房屋的鄰居描述,三名帶有東歐口音的白人男人進入房屋,偷走了詹姆斯·邦德在《007》系列電影中使用過的5支槍枝,估計價值超過10萬英鎊(約合人民幣87萬元)。
  • 第一代「007」 著名影星肖恩·康納利在睡夢中去世
    1961年,007詹姆斯·邦德的系列片計劃開拍,肖恩·康納利被確定為邦德的扮演者。1962年,007第一部電影《諾博士》上映,很快取得了成功。此後,他一口氣演了5部007電影,除了《諾博士》,還包括《來自俄羅斯的愛》、《金手指》、《霹靂彈》、《雷霆谷》、《金剛鑽》,此後他宣布不再演007電影。不過12年後,他出演了007電影《永不說不》,只是這部影片並沒列入007系列電影正式名單。