现在国产的芯片越来越强大,更重要的是,不仅强大,而且便宜,有时候能便宜到让你无法想象。今天我试用了一款超级便宜的2.4G无线串口模块,非常简单易用,性能也不错,样片的价格只要4块多钱。
这个模组只有6个引脚,串口两个引脚,电源两个引脚,还有一个EN(休眠)引脚和一个SET(设置)引脚。不需要仔细研究,接上电源和串口,EN拉低,SET拉高或悬空,两个模块就能直接双向通信。
我做了一个小底板,方便测试:
如果想更深入的研究一下,可以查看模块配套的说明书,有很多设置的选项,比如串口波特率,组网ID,发射功率等等。将SET拉低就可以进入设置模式,通过串口写入18个字节的数据完成设置。我还写了一个小程序,用来生成这18个字节的数据,代码如下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
#include <stdio.h> #include <stdint.h> #include <string.h> #include <stdlib.h> int main(int argc,char **argv) { if(argc != 6) { printf("usage:\n"); printf("%s self_id net_id rf_power baud rf_chn\n",argv[0]); return -1; } uint8_t buffer[18]; buffer[0] = 0xaa; buffer[1] = 0x5a; uint16_t self_id = atoi(argv[1]); memcpy(buffer+2,&self_id,2); uint16_t net_id = atoi(argv[2]); memcpy(buffer+4,&net_id,2); buffer[6] = 0; uint8_t rf_power = atoi(argv[3]); buffer[7] = rf_power; buffer[8] = 0; uint8_t baud = atoi(argv[4]); buffer[9] = baud; buffer[10] = 0; uint8_t rf_chn = atoi(argv[5]); buffer[11] = rf_chn; buffer[12] = 0; buffer[13] = 0; buffer[14] = 0; buffer[15] = 0x12; buffer[16] = 0; uint8_t chechsum = 0; for(int i=0;i<=16;i++) { chechsum += buffer[i]; } buffer[17] = chechsum; for(int i=0;i<18;i++) { printf("%02X",buffer[i]); } printf("\n"); } |
这个模块使用的是BK2461芯片,是上海博通(BEKEN)公司出品,从功能上看,还是很丰富的,内置51核心的MCU,可以一次性编程,成本应该很低。我估计批量价格在2元以内。
物美价廉的模块,推荐给大家,希望能对大家有所帮助。参考资料:
http://www.bekencorp.com/en/Botong.Asp?Parent_id=2&Class_id=8&Id=91