| 
 
 14938| 5
 
 | 
自发电遥控开关接收的研究 | 

| 
 前面提到了315Mhz和433Mhz 发送接收模块,淘宝上这种发送+接收模块一套只要3.8。 ![]() 这次文章研究的目标是:如何让接收模块能够收到自发电无线开关(TEL0146)发送的信号。 ![]() 首先需要对这种模块的基本原理有了解,根据【参考1】资料,它使用调幅AM,OOK方式。我的理解是这种方式下:用无信号表示当前输出为0;发射433.29Mhz的无线信号表示当前输出为1。 ![]() 此外与这种方式类似还有一种ASK(“振幅键控”)的调制方式:当需要输出0时,发射幅度较低的433.29Mhz的无线信号(下图A1);当输出1时,发射幅度较高的433.29Mhz的无线信号(下图A2)。 ![]() 在【参考4】给出的频谱分析的结果中可以更清晰的看到二者区别,左侧是 ASK,右侧是 OOK 方式。 ![]() 当然,我手上没有频谱仪无法“看”到实际发射的信号,但是我可以使用示波器查看接收模块的输出引脚。接收模块有4个引脚,分别是:GND,DATA,DATA,VCC(中间2个引脚都是用于输出的DATA)。经过实验该接收模块刚好能够接收到手中这个发射器的数据,因此就先用它进行实验。 ![]() 接下来使用示波器直接观察 DATA引脚,了解一下模块输出的形式。使用的代码是RCSwitch中的例子: 当按下“开”按钮,模块收到 16529064(0x00FF 36A8);当按下“关”按钮,模块收到 16529060(0x00FF 36A4). ![]() 使用示波器查看接收模块的输出引脚,可以看到如下波形。就是说当没有数据的时候,引脚为高,之后会拉低一段时间,然后发送数据,发送完毕再次拉高。 ![]() 类似的,当我使用自发电无线开关时,接收模块也会输出类似波形。因此,它无法工作的问题是软件解码的问题,而不是硬件的问题。 ![]() 在 RCSwitch.cpp 有下面一段代码: 意思是使用高电平和低电平不同的比例来确定当前数值为0还是1.比如:高电平持续350us,然后出现一个1050us的低电平,那就是1:3,在 Protocol 1 中,这个值为0;反之高电平持续1050us,然后出现一个350u的低电平,那就是3:1,表示值为1。 接下来我们要首先查看一下正确的抓取值,然后再反推编码方式。我们使用 rf433snif-main 这个代码,这个是专用用来统计时间的分析工具。 抓取如下,左侧是原始数据,右侧是我们标记的结果(标注了前面49个数据,因为第50个数据有跟着一个很长的延时,猜测是在数据传输过程中一笔数据会重复三次): 看起来这里的猜测需要一些运气,重新写出来是下面这样: 
 有了上述的知识之后,目标非常明确,设定用于接收的GPIO引脚上会出现一个高低电平的的序列,我们需要根据序列的时间间隔来判断无线开关是否有按下。同样的代码抓取(特别注意,下面的序列是通过给自发电开关上电的方法来让其发射,这样更稳定的。具体抓到的原始数据在后面),整理之后可以看到下面的有规律的排列: 就说说,拉低3100us,然后是 100us 高,300us低….因此,理论上修改前面的Protocol结构体加入这个特征应该是可以实现的,但是不知道什么原因,无法收到。最终,我编写一个简化版的识别代码: 当接收模块收到信号时,GPIO会拉低,首先判断这个是否为 3000us的起始标志(特别注意,从2900到3100us都会被认定为启示标志。同样的,后面判定的信号也有一个容错范围)。起始之后,逐一对照SelfSwitch中定义的序列,如果相同,那么继续下一个,否则重新开始。这样,如果都能匹配上就认为确实收到了无线开关的发送信号。 经过测试,代码勉强能够工作,需要离得非常近(5CM),并且需要多按下几次。我猜测是因为发射端功率比较小,并且接收模块灵敏度不是很高的缘故。当然,如果真正想用,需要接收模块更好的天线,更加灵敏的芯片,不妨尝试数字无线开关接收端(TEL0142)。 参考: 1.     https://baike.baidu.com/item/433m%E6%97%A0%E7%BA%BF%E6%A8%A1%E5%9D%97?fromModule=lemma_search-box 2.     http://www.energiazero.org/arduino_sensori/Complete%20Guide%20for%20RF%20433MHz%20Transmitter.pdf 附录: 1.     抓取的能够正常通讯的遥控器数值: Signal duration: 1445023 us   N     LOW, HIGH -----BEGIN RF433 LOW HIGH SEQUENCE-----            , 11166 000    1076,   384    001    1072,   384 002    1072,   392 003    1064,   392 004    1064,   392 005    1064,   396 006     328,  1116 007     328,  1120 008     324,  1120 009     320,  1116 010    1060,   396 011    1064,   400 012     324,  1120 013    1056,   408 014    1052,   408 015     316,  1128 016    1048,   412 017     312,  1128 018    1048,   412 019     312,  1136 020    1044,   416 021     308,  1132 022     308,  1136 023     308,  1136 024     308, 11204 025    1048,   412 026    1048,   416 027    1044,   416 028    1044,   416 029    1044,   420 030    1040,   416 031     304,  1140 032     304,  1140 033     304,  1136 034     308,  1136 035    1044,   420 036    1044,   420 037     304,  1136 038    1044,   416 039    1044,   420 040     304,  1140 041    1040,   424 042     300,  1140 043    1040,   420 044     300,  1140 045    1040,   420 046     304,  1140 047     304,  1140 048     304,  1144 049     300, 11224 050    1036,   420 051    1040,   420 052    1040,   420 053    1044,   416 054    1044,   424 055    1036,   424 056     300,  1144 057     304,  1140 058     304,  1140 059     304,  1140 060    1040,   424 061    1036,   424 062     300,  1144 063    1036,   424 064    1040,   424 065     300,  1144 066    1036,   424 067     304,  1140 068    1040,   428 069     296,  1148 070    1036,   424 071     300,  1144 072     304,  1148 073     300,  1144 074     300, 11232 075    1036,   420 076    1040,   424 077    1036,   424 078    1040,   424 079    1036,   424 080    1036,   424 081     300,  1144 082     300,  1144 083     300,  1144 084     300,  1144 085    1036,   424 086    1036,   424 087     300,  1148 088    1032,   428 089    1040,   420 090     300,  1148 091    1036,   424 092     300,  1144 093    1040,   424 094     300,  1148 095    1032,   428 096     296,  1148 097     300,  1148 098     300,  1148 099     300, 11232 100    1036,   424 101    1040,   420 102    1040,   424 103    1036,   424 104    1036,   424 105    1036,   428 106     296,  1148 107     300,  1144 108     300,  1144 109     300,  1148 110    1036,   424 111    1036,   424 112     300,  1144 113    1036,   424 114    1036,   432 115     296,  1152 116    1032,   424 117     300,  1148 118    1036,   428 119     300,  1144 120    1040,   428 121     296,  1148 122     296,  1144 123     300,  1148 124     296, 11232 125     508,175872 126     200,   880 127     676,   160 128     848,   124 129  200000,     0 130  200000,     0 131  200000,     0 132  200000,     0 133   12296, 11176 134    1072,   392 135    1064,   396 136    1064,   396 137    1064,   400 138    1060,   404 139    1056,   404 140     316,  1132 141     312,  1128 142     312,  1128 143     316,  1128 144    1052,   412 145    1048,   412 146     312,  1128 147    1052,   408 148    1048,   412 149     312,  1132 150    1048,   412 151     312,  1132 152    1048,   412 153     312,  1132 154    1048,   412 155     312,  1132 156     312,  1136 157     308,  1136 158     308, 11212 159    1048,   412 160    1048,   412 161    1048,   416 162    1044,   416 163    1044,   412 164    1048,   416 165     308,  1136 166     308,  1136 167     308,  1136 168     308,  1136 169    1048,   416 170    1044,   416 171     308,  1132 172    1048,   416 173    1044,   416 174     308,  1136 175    1044,   416 176     308,  1140 177    1040,   416 178     308,  1140 179    1044,   416 180     308,  1140 181     308,  1140 182     304,  1140 183     304, 11224 184    1044,   416 185    1044,   416 186    1044,   416 187    1044,   416 188    1044,   416 189    1048,   420 190     304,  1144 191     304,  1136 192     308,  1140 193     304,  1140 194    1044,   416 195    1044,   420 196     308,  1140 197    1044,   420 198    1044,   420 199     304,  1140 200    1044,   420 201     304,  1140 202    1044,   420 203     304,  1140 204    1044,   420 205     304,  1140 206     308,  1140 207     304,  1140 208     308, 11228 209    1044,   420 210    1040,   420 211    1040,   420 212    1040,   420 213    1044,   416 214    1044,   416 215     308,  1144 216     304,  1140 217     308,  1144 218     300,  1140 219    1044,   416 220    1044,   420 221     308,  1136 222    1040,   420 223    1040,   424 224     300,  1144 225    1040,   424 226     300,  1144 227    1040,   420 228     304,  1144 229    1040,   420 230     304,  1140 231     304,  1140 232     304,  1140 233     304, 11236 234    1040,   416 235    1044,   420 236    1044,   420 237    1044,   420 238    1044,   420 239    1044,   420 240     304,  1140 241     304,  1148 242     300,  1140 243     308,  1136 244    1044,   420 245    1040,   420 246     304,  1140 247    1040,   420 248    1040,   424 249     304,  1140 -----END RF433 LOW HIGH SEQUENCE----- Waiting for signal... 2.抓取的自发电开关数据。 ⸮⸮)⸮Signal duration: 210193 us   N     LOW, HIGH -----BEGIN RF433 LOW HIGH SEQUENCE-----            , 38599 000     116,  3084 001     112,   284 002     108,   288 003     108,   284 004     112,   284 005     108,   284 006     112,   284 007     112,   284 008     112,   284 009     112,   284 010     108,   284 011     108,   288 012     308,    88 013     308,    88 014     108,   288 015     108,   288 016     308,    92 017     304,    92 018     304,    92 019     304,    92 020     304,    92 021     304,    92 022     104,   292 023     104,   292 024     104,   292 025     104,  3092 026     104,   288 027     104,   292 028     104,   292 029     104,   292 030     104,   292 031     104,   292 032     104,   292 033     104,   292 034     104,   292 035     104,   292 036     104,   292 037     304,    92 038     304,    92 039     104,   292 040     104,   292 041     304,    92 042     304,    92 043     304,    92 044     108, 98916 045      36,  1072 046      40,  2668 047      68,   740 048      64,  3240 049     148,    28 050      36,  2304 051      40,   392 052      32,   600 053      60,    48 054     216,   856 055      20,   588 056     128,   284 057      20,   876 058      48,   392 059      36,  1696 060      72,   988 061      60,   360 062      84,   104 063      24,  1220 064     128,   140 065      64,   216 066      52,  1108 067      52,    96 068      32,   100 069      16,   176 070      44,   760 071      88,   192 072      60,   648 073     100,   720 074     196,   752 075     100,  1136 076      96,    68 077      32,   288 078      52,   284 079      20,   176 080     136,   372 081      24,    60 082      60,   140 083      56,    76 084     352,   492 085      36,   320 086      76,   244 087     100,   144 088     364,   720 089      68,   132 090     204,   336 091     236,    32 092     100,   100 093     232,   380 094     192,    28 095     264,   132 096      28,    28 097     136,   752 098      60,   312 099      88,   360 100     236,   588 101     104,   432 102      92,   156 103      56,    40 104     176,   252 105      72,   456 106      36,    92 107     160,    88 108     112,   336 109     232,    56 110     264,    80 111      56,   160 112     136,    44 113     272,    88 114     136,    40 115     108,   112 116     372,    84 117      56,   532 118     284,    48 119     360,    88 120      36,   164 121      80,    88 122      88,   212 123      64,    12 124      32,   116 125     124,   192 126     376,   260 127     112,   296 128      56,    84 129     128,   328 130     128,   592 131     200,   608 132     380,   172 133      40,   140 134     100,   148 135      56,   480 136      64,   356 137     640,   356 138     120,    12 139      16,   220 140     124,   536 141     320,    84 142      60,    80 143      44,   128 144     120,    52 145      72,    44 146     108,    36 147     204,    76 148      88,   224 149     308,   108 150       8,    52 151      64,     8 152     128,    36 153      80,   428 154     204,    96 155     108,    68 156      88,   180 157     116,    28 158     172,   136 159      76,    40 160      92,    84 161      52,   516 162     472,   472 163     156,    84 164     292,   368 165     180,   120 166     268,   196 167     248,     0 168     188,   236 169     172,   104 170      24,    36 171     140,   180 172     180,   192 173     108,   136 174     112,   140 175      72,    16 176     292,    48 177     164,   136 178       8,   240 179      76,    92 180     156,    32 181     264,   292 182     600,   260 183      88,    76 184     412,    88 185     108,   184 186      60,    52 187     236,     0 188     168,    68 189      76,    80 190     100,   568 191     436,   156 192     108,    72 193      68,   304 194     120,   544 195       4,    20 196     180,    68 197      48,    48 198     188,   244 199     160,   104 200     496,   184 201     148,   276 202       8,   116 203      64,    24 204     168,   520 205      20,   172 206     104,   340 207     108,    72 208     384,    48 209     164,   164 210     176,    76 211     228,    40 212     200,   248 213     188,   132 214     328,    92 215     152,   112 216     176,    64 217     132,    80 218      76,   144 219     196,   228 220     140,    40 221      16,   280 222     272,   100 223     900,   152 224      48,    92 225     572,    52 226      68,   196 227     120,   256 228     156,   128 229      48,    48 230      36,   128 231     772,   232 232     516,    60 233     272,   172 234     164,    92 235     568,   144 236      80,   120 237      16,     8 238     164,    28 239      16,    88 240     304,   180 241     652,   340 242      48,   108 243     116,    32 244     264,    36 245     200,   192 246     448,    68 247     180,   552 248      80,    80 249      80,    76 -----END RF433 LOW HIGH SEQUENCE----- Waiting for signal...  | 
创客造
                                                  
编辑选择奖
                                                  
编辑选择奖
                          
 沪公网安备31011502402448© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed