作者:男勃丸兒
嗨,在張大媽裡鬼混的各位高人,是不有很多人都買過微控制器開發板?
入門第一課,是不是按照教程開啟一個GPIO,點亮某個LED燈?
點的開發板多了,就會獲得“點燈大師”的稱號(其實,啥也不會就會點個燈),哈哈
正好,最近在研究一個“真點燈”的需求,其中的遙控資料謎題有點燒腦,麼有尋得規律,特來求助於各位“點燈大師“。
在張大媽隱於市的”點燈大師“們,一起來動動腦吧,看看誰能破題,一躍成為“最強點燈王”!
0x01 背景:
1、由於家裡換燈,購買了歐普的智慧吸頂燈。吸頂燈支援小愛同學&天貓精靈等等智慧音箱控制,本身也還自帶遙控器,支援透過遙控器按鍵的方法,控制燈的開關亮度等的功能。
2、經過一段時間的使用,發現所謂的智慧家居,淨是些智障家居。關個燈要經歷:使用喚醒詞喚醒智慧音箱->等待音箱回覆->發出關哪個燈的命令。本來躺在床上就睏意來襲,眼皮打架,還要這番折騰喊話,真的很不友好。用來用去,最好用的燈控竟然是遙控器。床邊放個遙控器,困了就隨手一按,真的是簡單快捷!
0x02 新的需求(煩惱):
看我訂單,只買了三個燈,其實還缺個餐廳的吊燈。因為沒看中歐普的,想買個其他家設計好看點的。但是其他家的控制器,跟歐普肯定不通用,就會導致不是一個遙控器就能搞定全屋燈具了。
於是就有了,把歐普遙控器上第四個燈的控制按鈕,給挪到購買的第三方燈具上的需求。
0x03 遙控器分析:
1、拆。拿過遙控器來,直接拆開看晶片,看電路結構。
從圖中可以看到,遙控器最頂上是可以控制四個燈的按鈕,並且開和關是獨立的按鍵。
從電路板上看,天線蛇形走線,那訊號至少不是紅外線。
看晶片,16腳的晶片絲印是BK2461,經過查詢是一款2。4G hz的低功耗射頻晶片。
另外的一課8腳晶片是個常見的SPI Flash儲存晶片。
只拆遙控器來,還不足以確定是什麼型別的遙控器。藍芽?wifi?2。4G射頻?
2、拆。上梯子,趴屋頂,將歐普燈的控制器開啟。
看電路做工用料十足,非常難得啊。因為之前也拆過很多便宜貨,都是一個簡單的恆流LED控制器。
像歐普燈這種控制器,真的是良心了,也許是一分錢一分貨。畢竟歐普的燈具,還是貴一點。
迴歸主題,圖上控制小板上的晶片:
上邊是,1顆樂鑫的:ESP8266 用於wifi接入家庭網,可以接收智慧音箱的控制命令。
下邊是,1顆螃蟹的:8752CMF 經過查詢,是一款低功耗藍芽晶片。
拆到現在就比較能確定遙控方案了:70%是2。4Ghz的藍芽遙控,畢竟接收資料的是顆藍芽晶片。
但是,還有點疑問:介紹上說BK2461是一顆2。4Ghz的射頻晶片而已,並沒有提到有藍芽功能。是怎麼實現藍芽通訊的?軟體方法?????niubility……
0x04 遙控資料分析:
翻箱倒櫃,找到祖傳的ESP32開發板。Esp32除了wifi還自帶藍芽功能,一機多用,非常nice~~
簡單說下接收藍芽資料的過程:
1、遙控器,其實發出的是藍芽廣播資訊,任何藍芽裝置都能收聽到。在廣播資訊中,會帶有遙控器的Mac地址和控制資料資訊。這裡將開發板設定為藍芽廣播通道監聽模式,即可接收到資料。但注意,可能會收到很多資料,可透過設定黑白mac名單的方法,過濾篩選一下。
2、控制部分資料接收採集。先扣下遙控器電池斷電,再接通電池之後,一直按一個按鍵,接收資料。最後,發現數據是每256(0xFF)次一個大迴圈的。
也就是說微控制器內部可能有個1位元組的計數器,每按一次都會計數,然後順帶做了一些運算。
3、資料部分分析:如果將256個數據分為前後兩部分,參考下邊第一個圖:每128個數據,除了高位不同,低位都相同。
如果將資料每16個分為一組,也有除了高位不同,低位都相同的規律。
關於低位:如果豎著看的話,某些是0-F迴圈的:CDEF89AB45670123
反正這麼一堆規律看下來,說難好像特別有規律,說簡單又沒總結出來規律,彷彿近在眼前,但怎麼都觸控不到。。。
0x05 燈控接收方案設想:
接收到控制資料,透過查表將第四個按鈕的256個數據迴圈查詢一遍。如果在表中就控制有效,否則無效。這個方法,明顯不夠優雅,不夠完美。
0x06 求點燈王者解答最後的謎題:
求助各位點燈大師,點燈大佬,根據收集的資料給指點一下,這是什麼演算法?能否總結出一個優雅的公式?如何將這一堆資料,抽出真實的控制資訊?
256個的完整資料如下:
Data:0a 42 88 8e 8c 8d 8c 8f 9e 9f 9f
Data:0a 42 88 8e 8c 8e 8f 8c 9d 9c 9c
Data:0a 42 88 8e 8c 8f 8e bd bc bd bd
Data:0a 42 88 8e 8c 88 89 8a 9b 9a 9a
Data:0a 42 88 8e 8c 89 88 8b 9a 9b 9b
Data:0a 42 88 8e 8c 8a 8b b8 b9 b8 b8
Data:0a 42 88 8e 8c 8b 8a 89 98 99 99
Data:0a 42 88 8e 8c 84 85 86 97 96 96
Data:0a 42 88 8e 8c 85 84 b7 b6 b7 b7
Data:0a 42 88 8e 8c 86 87 84 95 94 94
Data:0a 42 88 8e 8c 87 86 85 94 95 95
Data:0a 42 88 8e 8c 80 81 b2 b3 b2 b2
Data:0a 42 88 8e 8c 81 80 83 92 93 93
Data:0a 42 88 8e 8c 82 83 80 91 90 90
Data:0a 42 88 8e 8c 83 82 b1 b0 b1 b1
Data:0a 42 88 8e 8c 9c 9d 9e 8f 8e 8e
Data:0a 42 88 8e 8c 9d 9c 9f 8e 8f 8f
Data:0a 42 88 8e 8c 9e 9f ac ad ac ac
Data:0a 42 88 8e 8c 9f 9e 9d 8c 8d 8d
Data:0a 42 88 8e 8c 98 99 9a 8b 8a 8a
Data:0a 42 88 8e 8c 99 98 9b 8a 8b 8b
Data:0a 42 88 8e 8c 9a 9b 98 89 88 88
Data:0a 42 88 8e 8c 9b 9a a9 a8 a9 a9
Data:0a 42 88 8e 8c 94 95 96 87 86 86
Data:0a 42 88 8e 8c 95 94 97 86 87 87
Data:0a 42 88 8e 8c 96 97 a4 a5 a4 a4
Data:0a 42 88 8e 8c 97 96 95 84 85 85
Data:0a 42 88 8e 8c 90 91 92 83 82 82
Data:0a 42 88 8e 8c 91 90 a3 a2 a3 a3
Data:0a 42 88 8e 8c 92 93 90 81 80 80
Data:0a 42 88 8e 8c 93 92 91 80 81 81
Data:0a 42 88 8e 8c ac ad 9e 9f 9e 9e
Data:0a 42 88 8e 8c ad ac af be bf bf
Data:0a 42 88 8e 8c ae af ac bd bc bc
Data:0a 42 88 8e 8c af ae 9d 9c 9d 9d
Data:0a 42 88 8e 8c a8 a9 aa bb ba ba
Data:0a 42 88 8e 8c a9 a8 ab ba bb bb
Data:0a 42 88 8e 8c aa ab 98 99 98 98
Data:0a 42 88 8e 8c ab aa a9 b8 b9 b9
Data:0a 42 88 8e 8c a4 a5 a6 b7 b6 b6
Data:0a 42 88 8e 8c a5 a4 97 96 97 97
Data:0a 42 88 8e 8c a6 a7 a4 b5 b4 b4
Data:0a 42 88 8e 8c a7 a6 a5 b4 b5 b5
Data:0a 42 88 8e 8c a0 a1 92 93 92 92
Data:0a 42 88 8e 8c a1 a0 a3 b2 b3 b3
Data:0a 42 88 8e 8c a2 a3 a0 b1 b0 b0
Data:0a 42 88 8e 8c a3 a2 91 90 91 91
Data:0a 42 88 8e 8c bc bd be af ae ae
Data:0a 42 88 8e 8c bd bc bf ae af af
Data:0a 42 88 8e 8c be bf 8c 8d 8c 8c
Data:0a 42 88 8e 8c bf be bd ac ad ad
Data:0a 42 88 8e 8c b8 b9 ba ab aa aa
Data:0a 42 88 8e 8c b9 b8 8b 8a 8b 8b
Data:0a 42 88 8e 8c ba bb b8 a9 a8 a8
Data:0a 42 88 8e 8c bb ba b9 a8 a9 a9
Data:0a 42 88 8e 8c b4 b5 86 87 86 86
Data:0a 42 88 8e 8c b5 b4 b7 a6 a7 a7
Data:0a 42 88 8e 8c b6 b7 b4 a5 a4 a4
Data:0a 42 88 8e 8c b7 b6 85 84 85 85
Data:0a 42 88 8e 8c b0 b1 b2 a3 a2 a2
Data:0a 42 88 8e 8c b1 b0 b3 a2 a3 a3
Data:0a 42 88 8e 8c b2 b3 80 81 80 80
Data:0a 42 88 8e 8c b3 b2 b1 a0 a1 a1
Data:0a 42 88 8e 8c cc cd ce df de de
Data:0a 42 88 8e 8c cd cc ff fe ff ff
Data:0a 42 88 8e 8c ce cf cc dd dc dc
Data:0a 42 88 8e 8c cf ce cd dc dd dd
Data:0a 42 88 8e 8c c8 c9 fa FB fa fa
Data:0a 42 88 8e 8c c9 c8 cb da db db
Data:0a 42 88 8e 8c ca cb c8 d9 d8 d8
Data:0a 42 88 8e 8c cb ca f9 f8 f9 f9
Data:0a 42 88 8e 8c c4 c5 c6 d7 d6 d6
Data:0a 42 88 8e 8c c5 c4 c7 d6 d7 d7
Data:0a 42 88 8e 8c c6 c7 f4 f5 f4 f4
Data:0a 42 88 8e 8c c7 c6 c5 d4 d5 d5
Data:0a 42 88 8e 8c c0 c1 c2 d3 d2 d2
Data:0a 42 88 8e 8c c1 c0 f3 f2 f3 f3
Data:0a 42 88 8e 8c c2 c3 c0 d1 d0 d0
Data:0a 42 88 8e 8c c3 c2 c1 d0 d1 d1
Data:0a 42 88 8e 8c dc dd ee ef ee ee
Data:0a 42 88 8e 8c dd dc df ce cf cf
Data:0a 42 88 8e 8c de df dc cd cc cc
Data:0a 42 88 8e 8c df de ed ec ed ed
Data:0a 42 88 8e 8c d8 d9 da cb ca ca
Data:0a 42 88 8e 8c d9 d8 db ca cb cb
Data:0a 42 88 8e 8c da db e8 e9 e8 e8
Data:0a 42 88 8e 8c db da d9 c8 c9 c9
Data:0a 42 88 8e 8c d4 d5 d6 c7 c6 c6
Data:0a 42 88 8e 8c d5 d4 e7 e6 e7 e7
Data:0a 42 88 8e 8c d6 d7 d4 c5 c4 c4
Data:0a 42 88 8e 8c d7 d6 d5 c4 c5 c5
Data:0a 42 88 8e 8c d0 d1 e2 e3 e2 e2
Data:0a 42 88 8e 8c d1 d0 d3 c2 c3 c3
Data:0a 42 88 8e 8c d2 d3 e0 e1 e0 e0
Data:0a 42 88 8e 8c d3 d2 d1 c0 c1 c1
Data:0a 42 88 8e 8c ec ed ee ff fe fe
Data:0a 42 88 8e 8c ed ec df de df df
Data:0a 42 88 8e 8c ee ef ec fd fc fc
Data:0a 42 88 8e 8c ef ee ed fc fd fd
Data:0a 42 88 8e 8c e8 e9 da db da da
Data:0a 42 88 8e 8c e9 e8 eb fa fb fb
Data:0a 42 88 8e 8c ea eb e8 f9 f8 f9
Data:0a 42 88 8e 8c eb ea e9 f8 f9 f9
Data:0a 42 88 8e 8c e4 e5 e6 f7 f6 f6
Data:0a 42 88 8e 8c e5 e4 d7 d6 d7 d7
Data:0a 42 88 8e 8c e6 e7 e4 f5 f4 f4
Data:0a 42 88 8e 8c e7 e6 e5 f4 f5 f5
Data:0a 42 88 8e 8c e0 e1 d2 d3 d2 d2
Data:0a 42 88 8e 8c e1 e0 e3 f2 f3 f3
Data:0a 42 88 8e 8c e2 e3 e0 f1 f0 f0
Data:0a 42 88 8e 8c e3 e2 d1 d0 d1 d1
Data:0a 42 88 8e 8c fc fd fe ef ee ee
Data:0a 42 88 8e 8c fd fc ff ee ef ef
Data:0a 42 88 8e 8c fe ff cc cd cc cc
Data:0a 42 88 8e 8c ff fe fd ec ed ed
Data:0a 42 88 8e 8c f8 f9 fa eb ea ea
Data:0a 42 88 8e 8c f9 f8 cb ca cb cb
Data:0a 42 88 8e 8c fa fb f8 e9 e8 e8
Data:0a 42 88 8e 8c fb fa f9 e8 e9 e9
Data:0a 42 88 8e 8c f4 f5 c6 c7 c6 c6
Data:0a 42 88 8e 8c f5 f4 f7 e6 e7 e7
Data:0a 42 88 8e 8c f6 f7 f4 e5 e4 e4
Data:0a 42 88 8e 8c f7 f6 c5 c4 c5 c5
Data:0a 42 88 8e 8c f0 f1 f2 e3 e2 e2
Data:0a 42 88 8e 8c f1 f0 f3 e2 e3 e3
Data:0a 42 88 8e 8c f2 f3 c0 c1 c0 c0
Data:0a 42 88 8e 8c f3 f2 f1 e0 e1 e1
Data:0a 42 88 8e 8c 0c 0d 0e 1f 1e 1e
Data:0a 42 88 8e 8c 0d 0c 3f 3e 3f 3f
Data:0a 42 88 8e 8c 0e 0f 0c 1d 1c 1c
Data:0a 42 88 8e 8c 0f 0e 0d 1c 1d 1d
Data:0a 42 88 8e 8c 08 09 3a 3b 3a 3a
Data:0a 42 88 8e 8c 09 08 0b 1a 1b 1b
Data:0a 42 88 8e 8c 0a 0b 08 19 18 18
Data:0a 42 88 8e 8c 0b 0a 39 38 39 39
Data:0a 42 88 8e 8c 04 05 06 17 16 16
Data:0a 42 88 8e 8c 05 04 07 16 17 17
Data:0a 42 88 8e 8c 06 07 34 35 34 34
Data:0a 42 88 8e 8c 07 06 05 14 15 15
Data:0a 42 88 8e 8c 00 01 02 13 12 12
Data:0a 42 88 8e 8c 01 00 33 32 33 33
Data:0a 42 88 8e 8c 02 03 00 11 10 10
Data:0a 42 88 8e 8c 03 02 01 10 11 11
Data:0a 42 88 8e 8c 1c 1d 2e 2f 2e 2e
Data:0a 42 88 8e 8c 1d 1c 1f 0e 0f 0f
Data:0a 42 88 8e 8c 1e 1f 1c 0d 0c 0c
Data:0a 42 88 8e 8c 1f 1e 2d 2c 2d 2d
Data:0a 42 88 8e 8c 18 19 1a 0b 0a 0a
Data:0a 42 88 8e 8c 19 18 1b 0a 0b 0b
Data:0a 42 88 8e 8c 1a 1b 28 29 28 28
Data:0a 42 88 8e 8c 1b 1a 19 08 09 09
Data:0a 42 88 8e 8c 14 15 16 07 06 06
Data:0a 42 88 8e 8c 15 14 27 26 27 27
Data:0a 42 88 8e 8c 16 17 14 05 04 04
Data:0a 42 88 8e 8c 17 16 15 04 05 05
Data:0a 42 88 8e 8c 10 11 22 23 22 22
Data:0a 42 88 8e 8c 11 10 13 02 03 03
Data:0a 42 88 8e 8c 12 13 10 01 00 00
Data:0a 42 88 8e 8c 13 12 21 20 21 21
Data:0a 42 88 8e 8c 2c 2d 2e 3f 3e 3e
Data:0a 42 88 8e 8c 2d 2c 2f 3e 3f 3f
Data:0a 42 88 8e 8c 2e 2f 1c 1d 1c 1c
Data:0a 42 88 8e 8c 2f 2e 2d 3c 3d 3d
Data:0a 42 88 8e 8c 28 29 2a 3b 3a 3a
Data:0a 42 88 8e 8c 29 28 1b 1a 1b 1b
Data:0a 42 88 8e 8c 2a 2b 28 39 38 38
Data:0a 42 88 8e 8c 2b 2a 29 38 39 39
Data:0a 42 88 8e 8c 24 25 16 17 16 16
Data:0a 42 88 8e 8c 25 24 27 36 37 37
Data:0a 42 88 8e 8c 26 27 24 35 34 34
Data:0a 42 88 8e 8c 27 26 15 14 15 15
Data:0a 42 88 8e 8c 20 21 22 33 32 32
Data:0a 42 88 8e 8c 21 20 23 32 33 33
Data:0a 42 88 8e 8c 22 23 10 11 10 10
Data:0a 42 88 8e 8c 23 22 21 30 31 31
Data:0a 42 88 8e 8c 3c 3d 3e 2f 2e 2e
Data:0a 42 88 8e 8c 3d 3c 0f 0e 0f 0f
Data:0a 42 88 8e 8c 3e 3f 3c 2d 2c 2c
Data:0a 42 88 8e 8c 3f 3e 3d 2c 2d 2d
Data:0a 42 88 8e 8c 38 39 0a 0b 0a 0a
Data:0a 42 88 8e 8c 39 38 3b 2a 2b 2b
Data:0a 42 88 8e 8c 3a 3b 38 29 28 28
Data:0a 42 88 8e 8c 3b 3a 09 08 09 09
Data:0a 42 88 8e 8c 34 35 36 27 26 26
Data:0a 42 88 8e 8c 35 34 37 26 27 27
Data:0a 42 88 8e 8c 36 37 04 05 04 04
Data:0a 42 88 8e 8c 37 36 35 24 25 25
Data:0a 42 88 8e 8c 30 31 32 23 22 22
Data:0a 42 88 8e 8c 31 30 03 02 03 03
Data:0a 42 88 8e 8c 32 33 30 21 20 20
Data:0a 42 88 8e 8c 33 32 31 20 21 21
Data:0a 42 88 8e 8c 4c 4d 7e 7f 7e 7e
Data:0a 42 88 8e 8c 4d 4c 4f 5e 5f 5f
Data:0a 42 88 8e 8c 4e 4f 4c 5d 5c 5c
Data:0a 42 88 8e 8c 4f 4e 7d 7c 7d 7d
Data:0a 42 88 8e 8c 48 49 4a 5b 5a 5a
Data:0a 42 88 8e 8c 49 48 4b 5a 5b 5b
Data:0a 42 88 8e 8c 4a 4b 78 79 78 78
Data:0a 42 88 8e 8c 4b 4a 49 58 59 59
Data:0a 42 88 8e 8c 44 45 46 57 56 56
Data:0a 42 88 8e 8c 45 44 77 76 77 77
Data:0a 42 88 8e 8c 46 47 44 55 54 54
Data:0a 42 88 8e 8c 47 46 45 54 55 55
Data:0a 42 88 8e 8c 40 41 72 73 72 72
Data:0a 42 88 8e 8c 41 40 43 52 53 53
Data:0a 42 88 8e 8c 42 43 40 51 50 50
Data:0a 42 88 8e 8c 43 42 71 70 71 71
Data:0a 42 88 8e 8c 5c 5d 5e 4f 4e 4e
Data:0a 42 88 8e 8c 5d 5c 5f 4e 4f 4f
Data:0a 42 88 8e 8c 5e 5f 6c 6d 6c 6c
Data:0a 42 88 8e 8c 5f 5e 5d 4c 4d 4d
Data:0a 42 88 8e 8c 58 59 5a 4b 4a 4a
Data:0a 42 88 8e 8c 59 58 6b 6a 6b 6b
Data:0a 42 88 8e 8c 5a 5b 58 49 48 48
Data:0a 42 88 8e 8c 5b 5a 59 48 49 49
Data:0a 42 88 8e 8c 54 55 66 67 66 66
Data:0a 42 88 8e 8c 55 54 57 46 47 47
Data:0a 42 88 8e 8c 56 57 54 45 44 44
Data:0a 42 88 8e 8c 57 56 65 64 65 65
Data:0a 42 88 8e 8c 50 51 52 43 42 42
Data:0a 42 88 8e 8c 51 50 53 42 43 43
Data:0a 42 88 8e 8c 52 53 60 61 60 60
Data:0a 42 88 8e 8c 53 52 51 40 41 41
Data:0a 42 88 8e 8c 6c 6d 6e 7f 7e 7e
Data:0a 42 88 8e 8c 6d 6c 5f 5e 5f 5f
Data:0a 42 88 8e 8c 6e 6f 6c 7d 7c 7c
Data:0a 42 88 8e 8c 6f 6e 6d 7c 7d 7d
Data:0a 42 88 8e 8c 68 69 5a 5b 5a 5a
Data:0a 42 88 8e 8c 69 68 6b 7a 7b 7b
Data:0a 42 88 8e 8c 6a 6b 68 79 78 78
Data:0a 42 88 8e 8c 6b 6a 59 58 59 59
Data:0a 42 88 8e 8c 64 65 66 77 76 76
Data:0a 42 88 8e 8c 65 64 67 76 77 77
Data:0a 42 88 8e 8c 66 67 54 55 54 54
Data:0a 42 88 8e 8c 67 66 65 74 75 75
Data:0a 42 88 8e 8c 60 61 62 73 72 72
Data:0a 42 88 8e 8c 61 60 53 52 53 53
Data:0a 42 88 8e 8c 62 63 60 71 70 70
Data:0a 42 88 8e 8c 63 62 61 70 71 71
Data:0a 42 88 8e 8c 7c 7d 4e 4f 4e 4e
Data:0a 42 88 8e 8c 7d 7c 7f 6e 6f 6f
Data:0a 42 88 8e 8c 7e 7f 7c 6d 6c 6c
Data:0a 42 88 8e 8c 7f 7e 4d 4c 4d 4d
Data:0a 42 88 8e 8c 78 79 7a 6b 6a 6a
Data:0a 42 88 8e 8c 79 78 7b 6a 6b 6b
Data:0a 42 88 8e 8c 7a 7b 48 49 48 48
Data:0a 42 88 8e 8c 7b 7a 79 68 69 69
Data:0a 42 88 8e 8c 74 75 76 67 66 66
Data:0a 42 88 8e 8c 75 74 47 46 47 47
Data:0a 42 88 8e 8c 76 77 74 65 64 64
Data:0a 42 88 8e 8c 77 76 75 64 65 65
Data:0a 42 88 8e 8c 70 71 42 43 42 42
Data:0a 42 88 8e 8c 71 70 73 62 63 63
Data:0a 42 88 8e 8c 72 73 70 61 60 60
Data:0a 42 88 8e 8c 73 72 41 40 41 41
Data:0a 42 88 8e 8c 8c 8d 8e 9f 9e 9e
開啟App看更多精彩內容